Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PD charger not support #3

Open
Xin9912 opened this issue Nov 28, 2021 · 1 comment
Open

PD charger not support #3

Xin9912 opened this issue Nov 28, 2021 · 1 comment

Comments

@Xin9912
Copy link

Xin9912 commented Nov 28, 2021

The current version of the kernel does not support the PD charging protocol. The driver code related to the kernel source code disclosed by Xiaomi is in drivers/power/supply/qcom. Hope to support。Here are two log files in android.

  • Normal charger kernel log
[  659.005767] PMI: smblib_handle_usbin_uv: IRQ: usbin-uv
[  659.005827] AWAKE: current vote is now 1 voted by CHG_AWAKE_VOTER,0,previous voted 1
[  659.005874] PMI: smblib_request_dpdm: enabling DPDM regulator
[  659.008245] PMI: smblib_usb_plugin_locked: IRQ: usbin-plugin attached
[  659.008749] QNOVO_AWAKE: current vote is now 1 voted by USB_READY_VOTER,1,previous voted 1
[  659.009213] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 3
[  659.015179] healthd: battery l=96 v=4204 t=20.0 h=2 st=4 c=-84 fc=2999000 cc=0 chg=
[  659.018570] FG: fg_adjust_ki_coeff_full_soc: Wrote ki_coeff_full_soc 733
[  659.018622] FG: status_change_work: charge_status:3 charge_type:1 charge_done:0
[  659.018880] CTM: Couldnt write ctm_current_max rc = -22
[  659.120437] PMI: smblib_get_prop_typec_power_role: TYPE_C_INTRPT_ENB_SOFTWARE_CTRL = 0x70
[  659.120676] get prop 146 is not supported in usb
[  659.125648] healthd: battery l=96 v=4204 t=20.0 h=2 st=4 c=-84 fc=2999000 cc=0 chg=
[  659.327939] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 3
[  659.329577] FG: status_change_work: charge_status:3 charge_type:1 charge_done:0
[  659.440903] PMI: smblib_get_prop_typec_power_role: TYPE_C_INTRPT_ENB_SOFTWARE_CTRL = 0x70
[  659.441134] get prop 146 is not supported in usb
[  659.445608] healthd: battery l=96 v=4204 t=20.0 h=2 st=4 c=-84 fc=2999000 cc=0 chg=
[  659.652769] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 1
[  659.654151] FG: fg_slope_limit_config: Slope limit status: 3 value: 6a
[  659.654243] FG: status_change_work: charge_status:1 charge_type:3 charge_done:0
[  659.655796] healthd: battery l=96 v=4204 t=20.0 h=2 st=2 c=-84 fc=2999000 cc=0 chg=
[  660.326126] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:1.
[  660.326151] FG: soc_monitor_work: soc:96, raw_soc:96, c:157714, s:1
[  662.528597] init: starting service 'cameraserver'...
[  662.555720] init: Service 'cameraserver' (pid 4496) exited with status 1
[  662.555757] init: Sending signal 9 to service 'cameraserver' (pid 4496) process group...
[  662.555983] libprocessgroup: Successfully killed process cgroup uid 1047 pid 4496 in 0ms
[  662.556182] init: updatable process 'cameraserver' exited 4 times in 4 minutes
[  662.556874] init: Unable to set property 'ro.init.updatable_crashing_process_name' to 'cameraserver' from uid:0 gid:0 pid:1: Read-only property was already set
[  662.557418] init: Unable to set property 'ro.init.updatable_crashing' to '1' from uid:0 gid:0 pid:1: Read-only property was already set
[  664.091688] healthd: battery l=96 v=4234 t=20.0 h=2 st=2 c=-7 fc=2999000 cc=0 chg=
[  667.545950] init: starting service 'cameraserver'...
[  667.560711] init: Service 'cameraserver' (pid 4498) exited with status 1
[  667.560737] init: Sending signal 9 to service 'cameraserver' (pid 4498) process group...
[  667.560891] libprocessgroup: Successfully killed process cgroup uid 1047 pid 4498 in 0ms
[  667.561018] init: updatable process 'cameraserver' exited 4 times in 4 minutes
[  667.561319] init: Unable to set property 'ro.init.updatable_crashing_process_name' to 'cameraserver' from uid:0 gid:0 pid:1: Read-only property was already set
[  667.561715] init: Unable to set property 'ro.init.updatable_crashing' to '1' from uid:0 gid:0 pid:1: Read-only property was already set
[  670.565939] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:1.
[  670.565957] FG: soc_monitor_work: soc:96, raw_soc:96, c:18066, s:1
[  674.400426] QNOVO_CHG_READY: current vote is now 1 voted by USB_READY_VOTER,0,previous voted 1
[  674.400447] QNOVO_NOT_OK: current vote is now 0 voted by CHG_READY_VOTER,0,previous voted 0
[  674.401705] QNOVO_AWAKE: current vote is now 0 voted by USB_READY_VOTER,1,previous voted 0
[  680.806180] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:1.
[  680.806202] FG: soc_monitor_work: soc:96, raw_soc:96, c:6347, s:1
[  716.185317] PMI: smblib_request_dpdm: disabling DPDM regulator
[  716.185334] PMI: smblib_handle_usbin_uv: IRQ: usbin-uv
[  716.185778] AWAKE: current vote is now 0 voted by CHG_AWAKE_VOTER,0,previous voted 0
[  716.185825] PMI: smblib_usb_plugin_locked: IRQ: usbin-plugin detached
[  716.189377] CTM: Couldnt write ctm_current_max rc = -22
[  716.191659] healthd: battery l=96 v=4230 t=20.0 h=2 st=3 c=-20 fc=2999000 cc=0 chg=
[  716.195939] QNOVO_CHG_READY: current vote is now 0 voted by USB_READY_VOTER,0,previous voted 0
[  716.195951] QNOVO_NOT_OK: current vote is now 1 voted by CHG_READY_VOTER,0,previous voted 1
[  716.197635] QCOM-BATT: split_settled: Couldn't  get split current rc=-22
[  716.197643] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 2
[  716.198078] FG: fg_soc_update_irq_handler: irq 998 triggered
[  716.199199] FG: fg_prime_cc_soc_sw: cc_soc_sw: 950317575
[  716.199890] FG: fg_slope_limit_config: Slope limit status: 2 value: 62
[  716.200296] FG: fg_adjust_ki_coeff_full_soc: Wrote ki_coeff_full_soc 0
[  716.200349] FG: status_change_work: charge_status:2 charge_type:1 charge_done:0
[  716.202267] healthd: battery l=96 v=4230 t=20.0 h=2 st=3 c=-20 fc=2999000 cc=0 chg=
[  716.240463] PMI: smblib_get_prop_typec_power_role: TYPE_C_INTRPT_ENB_SOFTWARE_CTRL = 0x70
[  716.240597] get prop 146 is not supported in usb
[  716.243546] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 2
[  716.244857] FG: status_change_work: charge_status:2 charge_type:1 charge_done:0
[  716.249781] healthd: battery l=96 v=4230 t=20.0 h=2 st=3 c=-20 fc=2999000 cc=0 chg=
[  716.300453] PMI: smblib_get_prop_typec_power_role: TYPE_C_INTRPT_ENB_SOFTWARE_CTRL = 0x70
[  716.300711] get prop 146 is not supported in usb
[  716.304449] healthd: battery l=96 v=4230 t=20.0 h=2 st=3 c=-20 fc=2999000 cc=0 chg=
[  721.211524] healthd: battery l=96 v=4206 t=20.0 h=2 st=3 c=-83 fc=2999000 cc=0 chg=
[  721.764412] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:1.
[  721.764444] FG: soc_monitor_work: soc:96, raw_soc:96, c:88378, s:2
[  732.004462] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:1.
[  747.946389] init: Unable to set property 'ro.init.updatable_crashing' to '1' from uid:0 gid:0 pid:1: Read-only property was already set
[  749.602363] healthd: battery l=96 v=4207 t=20.0 h=2 st=3 c=-81 fc=2999000 cc=0 chg=
[  752.486090] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:1.
[  752.486107] FG: soc_monitor_work: soc:96, raw_soc:96, c:80566, s:2
  • PD charger log
[   86.881187] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:0.
[   86.881210] FG: soc_monitor_work: soc:96, raw_soc:96, c:328613, s:2
[   90.541356] PMI: __smblib_set_prop_typec_power_role: set power_role to 2
[   90.541372] PMI: smblib_masked_write: set 0x1368 mask:0x7,val:0x2
[   90.573751] PD_VOTER: val: 500000
[   90.573765] OTG_VOTER: val: 0
[   90.573923] PMI: __smblib_set_prop_typec_power_role: set power_role to 4
[   90.573941] PMI: smblib_masked_write: set 0x1368 mask:0x7,val:0x4
[   90.574992] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 2
[   90.582425] healthd: battery l=96 v=4040 t=21.0 h=2 st=3 c=-330 fc=2999000 cc=0 chg=
[   90.586974] FG: status_change_work: charge_status:2 charge_type:1 charge_done:0
[   90.690586] PMI: smblib_get_prop_typec_power_role: TYPE_C_INTRPT_ENB_SOFTWARE_CTRL = 0x74
[   90.690762] get prop 146 is not supported in usb
[   90.696338] healthd: battery l=96 v=4040 t=20.0 h=2 st=3 c=-330 fc=2999000 cc=0 chg=
[   91.151193] PMI: smblib_handle_usbin_uv: IRQ: usbin-uv
[   91.273057] PD_VOTER: val: 500000
[   91.273071] OTG_VOTER: val: 0
[   91.278436] PD_VOTER: val: 500000
[   91.278450] USB_ICL: current vote is now 500000 voted by PD_VOTER,3,previous voted 500000
[   91.278499] smblib_set_icl_current: set icl 25000
[   91.278523] smblib_set_icl_current: set icl 500000
[   91.278805] PMI: smblib_masked_write: set 0x1368 mask:0x40,val:0x40
[   91.279149] usbpd usbpd0: Type-C Source (high - 3.0A) connected
[   91.279522] QNOVO_AWAKE: current vote is now 1 voted by USB_READY_VOTER,1,previous voted 1
[   91.280516] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 3
[   91.281534] FG: fg_adjust_ki_coeff_full_soc: Wrote ki_coeff_full_soc 733
[   91.281608] FG: status_change_work: charge_status:3 charge_type:1 charge_done:0
[   91.282817] PD_VOTER: val: 900000
[   91.282826] USB_ICL: current vote is now 900000 voted by PD_VOTER,3,previous voted 900000
[   91.282937] smblib_set_icl_current: set icl 50000
[   91.283036] smblib_set_icl_current: set icl 900000
[   91.302225] healthd: battery l=96 v=4112 t=20.0 h=2 st=4 c=-145 fc=2999000 cc=0 chg=a
[   91.390278] PMI: smblib_get_prop_typec_power_role: TYPE_C_INTRPT_ENB_SOFTWARE_CTRL = 0x74
[   91.390521] get prop 146 is not supported in usb
[   91.392644] healthd: battery l=96 v=4112 t=20.0 h=2 st=4 c=-145 fc=2999000 cc=0 chg=a
[   91.447869] tas2557 2-004c: tas2557_startup
[   91.450195] tas2557 2-004c: tas2557_hw_params
[   91.450201] tas2557 2-004c: tas2557_setup_clocks: nSamplingRate = 48000 [Hz]
[   91.450204] tas2557 2-004c: Sampling rate for current configuration matches: 48000
[   91.451409] tas2557 2-004c: tas2557_set_bias_level: 1
[   91.451414] tas2557 2-004c: tas2557_set_bias_level: 2
[   91.451553] tas2557 2-004c: tas2557_set_bias_level: 3
[   91.451635] tas2557 2-004c: tas2557_prepare
[   91.457855] tas2557 2-004c: tas2557_mute
[   91.457860] tas2557 2-004c: Enable: 1
[   91.459274] tas2557 2-004c: Enable: load startup sequence
[   91.462920] tas2557 2-004c: Enable: load unmute sequence
[   91.471036] tas2557 2-004c: IRQ Status: 0x2, 0x0
[   91.471306] tas2557 2-004c: irq_work_routine: INT1=0x2, INT2=0x0; PowerUpFlag=0xfc
[   91.928894] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 1
[   91.933446] healthd: battery l=96 v=4112 t=21.0 h=2 st=2 c=-145 fc=2999000 cc=0 chg=a
[   91.933928] FG: fg_slope_limit_config: Slope limit status: 3 value: 6a
[   91.933987] FG: status_change_work: charge_status:1 charge_type:3 charge_done:0
[   92.137531] healthd: battery l=96 v=4112 t=20.0 h=2 st=2 c=-145 fc=2999000 cc=0 chg=a
[   95.606565] healthd: battery l=96 v=4357 t=20.0 h=2 st=2 c=608 fc=2999000 cc=0 chg=a
[   95.881382] tas2557 2-004c: tas2557_mute
[   95.881399] tas2557 2-004c: Enable: 0
[   95.882733] tas2557 2-004c: Enable: load shutdown sequence
[   95.908415] tas2557 2-004c: tas2557_set_bias_level: 2
[   95.908800] tas2557 2-004c: tas2557_set_bias_level: 1
[   95.908808] tas2557 2-004c: tas2557_set_bias_level: 0
[   95.913651] tas2557 2-004c: tas2557_shutdown
[   96.654676] PL_AWAKE: current vote is now 1 voted by TAPER_END_VOTER,1,previous voted 1
[   96.656956] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 1
[   96.657783] PL_AWAKE: current vote is now 0 voted by TAPER_END_VOTER,1,previous voted 0
[   96.657982] FG: status_change_work: charge_status:1 charge_type:4 charge_done:0
[   96.660990] healthd: battery l=96 v=4384 t=20.0 h=2 st=2 c=744 fc=2999000 cc=0 chg=a
[   97.121918] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:1.
[   97.121936] FG: soc_monitor_work: soc:96, raw_soc:96, c:-744140, s:1
[  100.646634] healthd: battery l=96 v=4377 t=20.0 h=2 st=2 c=642 fc=2999000 cc=0 chg=a
[  102.053590] healthd: battery l=96 v=4388 t=20.0 h=2 st=2 c=685 fc=2999000 cc=0 chg=a
[  102.053799] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 1
[  102.054423] FG: status_change_work: charge_status:1 charge_type:3 charge_done:0
[  105.067885] init: Unable to set property 'ro.init.updatable_crashing' to '1' from uid:0 gid:0 pid:1: Read-only property was already set
[  105.430740] PL_AWAKE: current vote is now 1 voted by TAPER_END_VOTER,1,previous voted 1
[  105.434404] healthd: battery l=96 v=4385 t=20.0 h=2 st=2 c=631 fc=2999000 cc=0 chg=a
[  105.437672] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 1
[  105.437872] PL_AWAKE: current vote is now 0 voted by TAPER_END_VOTER,1,previous voted 0
[  105.439102] FG: status_change_work: charge_status:1 charge_type:4 charge_done:0
[  105.685895] healthd: battery l=96 v=4385 t=20.0 h=2 st=2 c=631 fc=2999000 cc=0 chg=a
[  106.252311] CPU6: update max cpu_capacity 967
[  106.256904] tas2557 2-004c: tas2557_startup
[  106.258450] tas2557 2-004c: tas2557_hw_params
[  106.258453] tas2557 2-004c: tas2557_setup_clocks: nSamplingRate = 48000 [Hz]
[  106.258455] tas2557 2-004c: Sampling rate for current configuration matches: 48000
[  106.259276] tas2557 2-004c: tas2557_set_bias_level: 1
[  106.259278] tas2557 2-004c: tas2557_set_bias_level: 2
[  106.259519] tas2557 2-004c: tas2557_set_bias_level: 3
[  106.259555] tas2557 2-004c: tas2557_prepare
[  106.264881] tas2557 2-004c: tas2557_mute
[  106.264884] tas2557 2-004c: Enable: 1
[  106.266064] tas2557 2-004c: Enable: load startup sequence
[  106.269454] tas2557 2-004c: Enable: load unmute sequence
[  106.281449] tas2557 2-004c: IRQ Status: 0x2, 0x0
[  106.281682] tas2557 2-004c: irq_work_routine: INT1=0x2, INT2=0x0; PowerUpFlag=0xfc
[  106.338758] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 1
[  106.339192] healthd: battery l=96 v=4385 t=20.0 h=2 st=2 c=631 fc=2999000 cc=0 chg=a
[  106.341865] FG: status_change_work: charge_status:1 charge_type:3 charge_done:0
[  106.590257] CPU7: update max cpu_capacity 1024
[  106.720195] QNOVO_CHG_READY: current vote is now 1 voted by USB_READY_VOTER,0,previous voted 1
[  106.720207] QNOVO_NOT_OK: current vote is now 0 voted by CHG_READY_VOTER,0,previous voted 0
[  106.721989] QNOVO_AWAKE: current vote is now 0 voted by USB_READY_VOTER,1,previous voted 0
[  107.360294] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:1.
[  107.360306] FG: soc_monitor_work: soc:96, raw_soc:96, c:-158203, s:1
[  107.713873] PL_AWAKE: current vote is now 1 voted by TAPER_END_VOTER,1,previous voted 1
[  107.718132] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 1
[  107.718329] PL_AWAKE: current vote is now 0 voted by TAPER_END_VOTER,1,previous voted 0
[  107.718660] FG: status_change_work: charge_status:1 charge_type:4 charge_done:0
[  107.719545] healthd: battery l=96 v=4281 t=20.0 h=2 st=2 c=158 fc=2999000 cc=0 chg=a
[  108.114548] [ FTS ]  fts_enter_pointer_event_handler finger down in the fod area
[  108.730835] [ FTS ]  fts_enter_pointer_event_handler finger down in the fod area
[  108.831374] CPU7: update max cpu_capacity 967
[  108.946071] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 1
[  108.946326] healthd: battery l=96 v=4384 t=20.0 h=2 st=2 c=578 fc=2999000 cc=0 chg=a
[  108.946486] FG: status_change_work: charge_status:1 charge_type:3 charge_done:0
[  109.570539] CPU6: update max cpu_capacity 1024
[  109.598674] PL_AWAKE: current vote is now 1 voted by TAPER_END_VOTER,1,previous voted 1
[  109.601144] healthd: battery l=96 v=4384 t=20.0 h=2 st=2 c=578 fc=2999000 cc=0 chg=a
[  109.601539] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 1
[  109.601676] PL_AWAKE: current vote is now 0 voted by TAPER_END_VOTER,1,previous voted 0
[  109.601957] FG: status_change_work: charge_status:1 charge_type:4 charge_done:0
[  110.063919] init: starting service 'cameraserver'...
[  110.097386] init: Service 'cameraserver' (pid 3798) exited with status 1
[  110.097435] init: Sending signal 9 to service 'cameraserver' (pid 3798) process group...
[  110.097720] libprocessgroup: Successfully killed process cgroup uid 1047 pid 3798 in 0ms
[  110.097969] init: updatable process 'cameraserver' exited 4 times in 4 minutes
[  110.098499] init: Unable to set property 'ro.init.updatable_crashing_process_name' to 'cameraserver' from uid:0 gid:0 pid:1: Read-only property was already set
[  110.099231] init: Unable to set property 'ro.init.updatable_crashing' to '1' from uid:0 gid:0 pid:1: Read-only property was already set
[  110.251418] [ FTS ]  fts_enter_pointer_event_handler finger down in the fod area
[  110.724129] healthd: battery l=96 v=4384 t=20.0 h=2 st=2 c=558 fc=2999000 cc=0 chg=a
[  110.861743] [ FTS ]  fts_enter_pointer_event_handler finger down in the fod area
[  110.960122] CPU6: update max cpu_capacity 967
[  111.053756] type=1400 audit(1592204064.059:11): avc: granted { read } for comm="main" name="u:object_r:net_dns_prop:s0" dev="tmpfs" ino=22699 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:net_dns_prop:s0 tclass=file app=com.android.email
[  111.053789] type=1400 audit(1592204106.619:12): avc: denied { search } for comm="ndroid.settings" name="zram0" dev="sysfs" ino=51577 scontext=u:r:system_app:s0 tcontext=u:object_r:sysfs_zram:s0 tclass=dir permissive=0
[  111.064406] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 1
[  111.064763] healthd: battery l=96 v=4384 t=20.0 h=2 st=2 c=558 fc=2999000 cc=0 chg=a
[  111.065220] FG: status_change_work: charge_status:1 charge_type:3 charge_done:0
[  111.118813] init: processing action (logd.logpersistd=clear && logd.logpersistd.enable=true) from (/system/etc/init/logcatd.rc:40)
[  111.123771] init: starting service 'exec 16 (/system/bin/logcat -c -f /data/misc/logd/logcat -n 256)'...
[  111.123825] type=1400 audit(1592204106.619:13): avc: denied { search } for comm="ndroid.settings" name="zram0" dev="sysfs" ino=51577 scontext=u:r:system_app:s0 tcontext=u:object_r:sysfs_zram:s0 tclass=dir permissive=0
[  111.123852] type=1400 audit(1592204106.689:14): avc: denied { search } for comm="pool-1-thread-3" name="zram0" dev="sysfs" ino=51577 scontext=u:r:system_app:s0 tcontext=u:object_r:sysfs_zram:s0 tclass=dir permissive=0
[  111.127526] init: SVC_EXEC service 'exec 16 (/system/bin/logcat -c -f /data/misc/logd/logcat -n 256)' pid 3811 (uid 1036 gid 1007+0 context default) started; waiting...
[  111.138000] init: Service 'exec 16 (/system/bin/logcat -c -f /data/misc/logd/logcat -n 256)' (pid 3811) exited with status 0 waiting took 0.011000 seconds
[  111.229725] binder: 2375:3795 transaction failed 29201/-1, size 0-0 line 3144
[  111.230157] type=1400 audit(1592204106.689:15): avc: denied { search } for comm="pool-1-thread-3" name="zram0" dev="sysfs" ino=51577 scontext=u:r:system_app:s0 tcontext=u:object_r:sysfs_zram:s0 tclass=dir permissive=0
[  111.230201] type=1400 audit(1592204106.789:16): avc: denied { call } for comm=4173796E635461736B202332 scontext=u:r:system_app:s0 tcontext=u:r:storaged:s0 tclass=binder permissive=0
[  111.231375] audit: audit_lost=1 audit_rate_limit=5 audit_backlog_limit=64
[  111.231380] audit: rate limit exceeded
[  111.231387] binder: 2375:3795 transaction failed 29201/-1, size 0-0 line 3144
[  111.250326] binder: 2375:3795 transaction failed 29201/-1, size 0-0 line 3144
[  111.272226] tas2557 2-004c: Die=0xe90fffe, degree=29
[  111.281756] tas2557 2-004c: IRQ Status: 0x2, 0x0
[  111.282020] tas2557 2-004c: irq_work_routine: INT1=0x2, INT2=0x0; PowerUpFlag=0xfc
[  111.321128] IRQ6 no longer affine to CPU5
[  111.632477] CPU6: update max cpu_capacity 1024
[  112.880433] PL_AWAKE: current vote is now 1 voted by TAPER_END_VOTER,1,previous voted 1
[  112.881431] FG: fg_cycle_counter_update: batt_soc: 225 bucket: 7 chg_status: 1
[  112.881665] PL_AWAKE: current vote is now 0 voted by TAPER_END_VOTER,1,previous voted 0
[  112.882007] FG: status_change_work: charge_status:1 charge_type:4 charge_done:0
[  112.883409] healthd: battery l=96 v=4388 t=20.0 h=2 st=2 c=580 fc=2999000 cc=0 chg=a
[  114.055784] tas2557 2-004c: tas2557_mute
[  114.055798] tas2557 2-004c: Enable: 0
[  114.056850] tas2557 2-004c: Enable: load shutdown sequence
[  114.080328] tas2557 2-004c: tas2557_set_bias_level: 2
[  114.080806] tas2557 2-004c: tas2557_set_bias_level: 1
[  114.080812] tas2557 2-004c: tas2557_set_bias_level: 0
[  114.085720] tas2557 2-004c: tas2557_shutdown
[  115.002309] tas2557 2-004c: tas2557_startup
[  115.004290] tas2557 2-004c: tas2557_hw_params
[  115.004295] tas2557 2-004c: tas2557_setup_clocks: nSamplingRate = 48000 [Hz]
[  115.004301] tas2557 2-004c: Sampling rate for current configuration matches: 48000
[  115.005260] tas2557 2-004c: tas2557_set_bias_level: 1
[  115.005265] tas2557 2-004c: tas2557_set_bias_level: 2
[  115.005499] tas2557 2-004c: tas2557_set_bias_level: 3
[  115.005640] tas2557 2-004c: tas2557_prepare
[  115.011558] tas2557 2-004c: tas2557_mute
[  115.011564] tas2557 2-004c: Enable: 1
[  115.012917] tas2557 2-004c: Enable: load startup sequence
[  115.016395] tas2557 2-004c: Enable: load unmute sequence
[  115.021060] tas2557 2-004c: IRQ Status: 0x2, 0x0
[  115.021318] tas2557 2-004c: irq_work_routine: INT1=0x2, INT2=0x0; PowerUpFlag=0xfc
[  115.765203] healthd: battery l=96 v=4381 t=20.0 h=2 st=2 c=514 fc=2999000 cc=0 chg=a
[  116.786570] android_work: did not send uevent (0 0 0000000000000000)
[  116.918374] healthd: battery l=96 v=4381 t=20.0 h=2 st=2 c=514 fc=2999000 cc=0 chg=a
[  116.919537] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 1
[  116.920281] FG: status_change_work: charge_status:1 charge_type:3 charge_done:0
[  117.467164] PL_AWAKE: current vote is now 1 voted by TAPER_END_VOTER,1,previous voted 1
[  117.469865] healthd: battery l=96 v=4374 t=20.0 h=2 st=2 c=505 fc=2999000 cc=0 chg=a
[  117.472522] PL_AWAKE: current vote is now 0 voted by TAPER_END_VOTER,1,previous voted 0
[  117.472614] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 1
[  117.473070] FG: status_change_work: charge_status:1 charge_type:4 charge_done:0
[  117.580106] CPU6: update max cpu_capacity 967
[  117.600165] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:1.
[  117.600170] FG: soc_monitor_work: soc:96, raw_soc:96, c:-505370, s:1
[  117.669592] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 1
[  117.670581] FG: status_change_work: charge_status:1 charge_type:3 charge_done:0
[  117.673336] healthd: battery l=96 v=4374 t=20.0 h=2 st=2 c=505 fc=2999000 cc=0 chg=a
[  117.721896] IRQ6 no longer affine to CPU5
[  118.132954] CPU7: update max cpu_capacity 1024
[  118.947864] PL_AWAKE: current vote is now 1 voted by TAPER_END_VOTER,1,previous voted 1
[  118.952065] healthd: battery l=96 v=4374 t=20.0 h=2 st=2 c=454 fc=2999000 cc=0 chg=a
[  118.953308] PL_AWAKE: current vote is now 0 voted by TAPER_END_VOTER,1,previous voted 0
[  118.953412] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 1
[  118.953884] FG: status_change_work: charge_status:1 charge_type:4 charge_done:0
[  120.022462] tas2557 2-004c: Die=0xb4faaaa, degree=22
[  120.025815] tas2557 2-004c: IRQ Status: 0x2, 0x0
[  120.026908] tas2557 2-004c: irq_work_routine: INT1=0x2, INT2=0x0; PowerUpFlag=0xfc
[  120.576759] tas2557 2-004c: tas2557_mute
[  120.576764] tas2557 2-004c: Enable: 0
[  120.577337] tas2557 2-004c: Enable: load shutdown sequence
[  120.601334] tas2557 2-004c: tas2557_set_bias_level: 2
[  120.601674] tas2557 2-004c: tas2557_set_bias_level: 1
[  120.601679] tas2557 2-004c: tas2557_set_bias_level: 0
[  120.607046] tas2557 2-004c: tas2557_shutdown
[  120.804772] healthd: battery l=96 v=4380 t=20.0 h=2 st=2 c=479 fc=2999000 cc=0 chg=a
[  126.571111] healthd: battery l=96 v=4389 t=20.0 h=2 st=2 c=498 fc=2999000 cc=0 chg=a
[  126.577522] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 1
[  126.578356] FG: status_change_work: charge_status:1 charge_type:4 charge_done:0
[  126.583584] healthd: battery l=96 v=4389 t=20.0 h=2 st=2 c=498 fc=2999000 cc=0 chg=a
[  127.247953] read descriptors
[  127.248193] read strings
[  127.252262] init: processing action (sys.usb.config=adb && sys.usb.configfs=1 && sys.usb.ffs.ready=1) from (/init.usb.configfs.rc:20)
[  127.265232] android_work: did not send uevent (0 0 0000000000000000)
[  127.841001] FG: fg_battery_soc_smooth_tracking: soc:96, last_soc:96, raw_soc:96, soc_changed:1.
[  127.841020] FG: soc_monitor_work: soc:96, raw_soc:96, c:-494628, s:1
[  128.752343] healthd: battery l=96 v=4359 t=20.0 h=2 st=2 c=278 fc=2999000 cc=0 chg=a
[  128.754898] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 1
[  128.756486] FG: status_change_work: charge_status:1 charge_type:3 charge_done:0
[  131.434657] PL_AWAKE: current vote is now 1 voted by TAPER_END_VOTER,1,previous voted 1
[  131.435574] FG: fg_cycle_counter_update: batt_soc: 226 bucket: 7 chg_status: 1
[  131.438107] healthd: battery l=96 v=4388 t=20.0 h=2 st=2 c=480 fc=2999000 cc=0 chg=a
[  131.438854] PL_AWAKE: current vote is now 0 voted by TAPER_END_VOTER,1,previous voted 0
[  131.439146] FG: status_change_work: charge_status:1 charge_type:4 charge_done:0
[  131.605978] healthd: battery l=96 v=4388 t=20.0 h=2 st=2 c=480 fc=2999000 cc=0 chg=a
@BigfootACA
Copy link
Member

yes, this driver currently only shows battery level and status...

strongtz pushed a commit that referenced this issue Sep 19, 2022
Because rxrpc pretends to be a tunnel on top of a UDP/UDP6 socket, allowing
it to siphon off UDP packets early in the handling of received UDP packets
thereby avoiding the packet going through the UDP receive queue, it doesn't
get ICMP packets through the UDP ->sk_error_report() callback.  In fact, it
doesn't appear that there's any usable option for getting hold of ICMP
packets.

Fix this by adding a new UDP encap hook to distribute error messages for
UDP tunnels.  If the hook is set, then the tunnel driver will be able to
see ICMP packets.  The hook provides the offset into the packet of the UDP
header of the original packet that caused the notification.

An alternative would be to call the ->error_handler() hook - but that
requires that the skbuff be cloned (as ip_icmp_error() or ipv6_cmp_error()
do, though isn't really necessary or desirable in rxrpc's case is we want
to parse them there and then, not queue them).

Changes
=======
ver #3)
 - Fixed an uninitialised variable.

ver #2)
 - Fixed some missing CONFIG_AF_RXRPC_IPV6 conditionals.

Fixes: 5271953 ("rxrpc: Use the UDP encap_rcv hook")
Signed-off-by: David Howells <[email protected]>
strongtz pushed a commit that referenced this issue Sep 19, 2022
The SRv6 layer allows defining HMAC data that can later be used to sign IPv6
Segment Routing Headers. This configuration is realised via netlink through
four attributes: SEG6_ATTR_HMACKEYID, SEG6_ATTR_SECRET, SEG6_ATTR_SECRETLEN and
SEG6_ATTR_ALGID. Because the SECRETLEN attribute is decoupled from the actual
length of the SECRET attribute, it is possible to provide invalid combinations
(e.g., secret = "", secretlen = 64). This case is not checked in the code and
with an appropriately crafted netlink message, an out-of-bounds read of up
to 64 bytes (max secret length) can occur past the skb end pointer and into
skb_shared_info:

Breakpoint 1, seg6_genl_sethmac (skb=<optimized out>, info=<optimized out>) at net/ipv6/seg6.c:208
208		memcpy(hinfo->secret, secret, slen);
(gdb) bt
 #0  seg6_genl_sethmac (skb=<optimized out>, info=<optimized out>) at net/ipv6/seg6.c:208
 #1  0xffffffff81e012e9 in genl_family_rcv_msg_doit (skb=skb@entry=0xffff88800b1f9f00, nlh=nlh@entry=0xffff88800b1b7600,
    extack=extack@entry=0xffffc90000ba7af0, ops=ops@entry=0xffffc90000ba7a80, hdrlen=4, net=0xffffffff84237580 <init_net>, family=<optimized out>,
    family=<optimized out>) at net/netlink/genetlink.c:731
 #2  0xffffffff81e01435 in genl_family_rcv_msg (extack=0xffffc90000ba7af0, nlh=0xffff88800b1b7600, skb=0xffff88800b1f9f00,
    family=0xffffffff82fef6c0 <seg6_genl_family>) at net/netlink/genetlink.c:775
 #3  genl_rcv_msg (skb=0xffff88800b1f9f00, nlh=0xffff88800b1b7600, extack=0xffffc90000ba7af0) at net/netlink/genetlink.c:792
 #4  0xffffffff81dfffc3 in netlink_rcv_skb (skb=skb@entry=0xffff88800b1f9f00, cb=cb@entry=0xffffffff81e01350 <genl_rcv_msg>)
    at net/netlink/af_netlink.c:2501
 #5  0xffffffff81e00919 in genl_rcv (skb=0xffff88800b1f9f00) at net/netlink/genetlink.c:803
 #6  0xffffffff81dff6ae in netlink_unicast_kernel (ssk=0xffff888010eec800, skb=0xffff88800b1f9f00, sk=0xffff888004aed000)
    at net/netlink/af_netlink.c:1319
 #7  netlink_unicast (ssk=ssk@entry=0xffff888010eec800, skb=skb@entry=0xffff88800b1f9f00, portid=portid@entry=0, nonblock=<optimized out>)
    at net/netlink/af_netlink.c:1345
 #8  0xffffffff81dff9a4 in netlink_sendmsg (sock=<optimized out>, msg=0xffffc90000ba7e48, len=<optimized out>) at net/netlink/af_netlink.c:1921
...
(gdb) p/x ((struct sk_buff *)0xffff88800b1f9f00)->head + ((struct sk_buff *)0xffff88800b1f9f00)->end
$1 = 0xffff88800b1b76c0
(gdb) p/x secret
$2 = 0xffff88800b1b76c0
(gdb) p slen
$3 = 64 '@'

The OOB data can then be read back from userspace by dumping HMAC state. This
commit fixes this by ensuring SECRETLEN cannot exceed the actual length of
SECRET.

Reported-by: Lucas Leong <[email protected]>
Tested: verified that EINVAL is correctly returned when secretlen > len(secret)
Fixes: 4f4853d ("ipv6: sr: implement API to control SR HMAC structure")
Signed-off-by: David Lebrun <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
strongtz pushed a commit that referenced this issue Sep 19, 2022
During stress testing with CONFIG_SMP disabled, KASAN reports as below:

==================================================================
BUG: KASAN: use-after-free in __mutex_lock+0xe5/0xc30
Read of size 8 at addr ffff8881094223f8 by task stress/7789

CPU: 0 PID: 7789 Comm: stress Not tainted 6.0.0-rc1-00002-g0d53d2e882f9 #3
Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
Call Trace:
 <TASK>
..
 __mutex_lock+0xe5/0xc30
..
 z_erofs_do_read_page+0x8ce/0x1560
..
 z_erofs_readahead+0x31c/0x580
..
Freed by task 7787
 kasan_save_stack+0x1e/0x40
 kasan_set_track+0x20/0x30
 kasan_set_free_info+0x20/0x40
 __kasan_slab_free+0x10c/0x190
 kmem_cache_free+0xed/0x380
 rcu_core+0x3d5/0xc90
 __do_softirq+0x12d/0x389

Last potentially related work creation:
 kasan_save_stack+0x1e/0x40
 __kasan_record_aux_stack+0x97/0xb0
 call_rcu+0x3d/0x3f0
 erofs_shrink_workstation+0x11f/0x210
 erofs_shrink_scan+0xdc/0x170
 shrink_slab.constprop.0+0x296/0x530
 drop_slab+0x1c/0x70
 drop_caches_sysctl_handler+0x70/0x80
 proc_sys_call_handler+0x20a/0x2f0
 vfs_write+0x555/0x6c0
 ksys_write+0xbe/0x160
 do_syscall_64+0x3b/0x90

The root cause is that erofs_workgroup_unfreeze() doesn't reset to
orig_val thus it causes a race that the pcluster reuses unexpectedly
before freeing.

Since UP platforms are quite rare now, such path becomes unnecessary.
Let's drop such specific-designed path directly instead.

Fixes: 73f5c66 ("staging: erofs: fix `erofs_workgroup_{try_to_freeze, unfreeze}'")
Reviewed-by: Yue Hu <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Gao Xiang <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants