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

sc7180 camss + s5k5e9 cant verify without strobe probe #3

Closed
99degree opened this issue Apr 27, 2024 · 5 comments
Closed

sc7180 camss + s5k5e9 cant verify without strobe probe #3

99degree opened this issue Apr 27, 2024 · 5 comments

Comments

@99degree
Copy link
Owner

media-ctl --reset
media-ctl -V '"msm_csid0":0[fmt:SRGGB10/2592x1944 field:none]'
media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/2592x1944 field:none]'
media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
v4l2-ctl -d /dev/v4l-subdev4 -c test_pattern=0
v4l2-ctl -d /dev/v4l-subdev5 -c test_pattern=0
v4l2-ctl -d /dev/v4l-subdev6 -c test_pattern=0

media-ctl -V '"s5k5e9 13-002d":0[fmt:SRGGB10/2592x1944 field:none]'
media-ctl -V '"msm_csiphy2":0[fmt:SRGGB10/2592x1944 field:none]'
media-ctl -l '"msm_csiphy2":1->"msm_csid0":0[1]'
yavta -B capture-mplane --capture=3 -n 3 -f SRGGB10P -s 2592x1944 /dev/video0 -F

don't have any dump, likely not receiving any signal from csiphy

@99degree
Copy link
Owner Author

look like clks are all up
cam_cc_bps_ahb_clk: off
cam_cc_bps_areg_clk: off
cam_cc_bps_axi_clk: off
cam_cc_bps_clk: off
cam_cc_camnoc_atb_clk: off
cam_cc_camnoc_axi_clk: 416.828024MHz (416828024Hz)
cam_cc_cci_0_clk: off
cam_cc_cci_1_clk: off
cam_cc_core_ahb_clk: 80.001680MHz (80001680Hz)
cam_cc_cpas_ahb_clk: 80.000512MHz (80000512Hz)
cam_cc_csi0phytimer_clk: off
cam_cc_csi1phytimer_clk: off
cam_cc_csi2phytimer_clk: 299.999504MHz (299999504Hz)
cam_cc_csi3phytimer_clk: off
cam_cc_csiphy0_clk: off
cam_cc_csiphy1_clk: off
cam_cc_csiphy2_clk: 150.001064MHz (150001064Hz)
cam_cc_csiphy3_clk: off
cam_cc_icp_apb_clk: off
cam_cc_icp_atb_clk: off
cam_cc_icp_clk: off
cam_cc_icp_cti_clk: off
cam_cc_icp_ts_clk: off
cam_cc_ife_0_axi_clk: 416.821000MHz (416821000Hz)
cam_cc_ife_0_clk: 239.999192MHz (239999192Hz)
cam_cc_ife_0_cphy_rx_clk: 150.001656MHz (150001656Hz)
cam_cc_ife_0_csid_clk: 149.999896MHz (149999896Hz)
cam_cc_ife_0_dsp_clk: off
cam_cc_ife_1_axi_clk: off
cam_cc_ife_1_clk: off
cam_cc_ife_1_cphy_rx_clk: off
cam_cc_ife_1_csid_clk: off
cam_cc_ife_1_dsp_clk: off
cam_cc_ife_lite_clk: off
cam_cc_ife_lite_cphy_rx_clk: off
cam_cc_ife_lite_csid_clk: off
cam_cc_ipe_0_ahb_clk: off
cam_cc_ipe_0_areg_clk: off
cam_cc_ipe_0_axi_clk: off
cam_cc_ipe_0_clk: off
cam_cc_jpeg_clk: off
cam_cc_lrme_clk: off
cam_cc_mclk0_clk: off
cam_cc_mclk1_clk: off
cam_cc_mclk2_clk: off
cam_cc_mclk3_clk: off
cam_cc_mclk4_clk: off
cam_cc_soc_ahb_clk: 74.999216MHz (74999216Hz)
cam_cc_sys_tmr_clk: off

@99degree
Copy link
Owner Author

99degree commented Apr 27, 2024

will try to force cam_cc_mclk2_clk always on
cam_cc_bps_ahb_clk: off
cam_cc_bps_areg_clk: off
cam_cc_bps_axi_clk: off
cam_cc_bps_clk: off
cam_cc_camnoc_atb_clk: off
cam_cc_camnoc_axi_clk: 414.693568MHz (414693568Hz)
cam_cc_cci_0_clk: off
cam_cc_cci_1_clk: off
cam_cc_core_ahb_clk: 80.001096MHz (80001096Hz)
cam_cc_cpas_ahb_clk: 79.999920MHz (79999920Hz)
cam_cc_csi0phytimer_clk: off
cam_cc_csi1phytimer_clk: off
cam_cc_csi2phytimer_clk: 300.001848MHz (300001848Hz)
cam_cc_csi3phytimer_clk: off
cam_cc_csiphy0_clk: off
cam_cc_csiphy1_clk: off
cam_cc_csiphy2_clk: 149.999896MHz (149999896Hz)
cam_cc_csiphy3_clk: off
cam_cc_icp_apb_clk: off
cam_cc_icp_atb_clk: off
cam_cc_icp_clk: off
cam_cc_icp_cti_clk: off
cam_cc_icp_ts_clk: off
cam_cc_ife_0_axi_clk: 425.920120MHz (425920120Hz)
cam_cc_ife_0_clk: 240.000952MHz (240000952Hz)
cam_cc_ife_0_cphy_rx_clk: 149.998720MHz (149998720Hz)
cam_cc_ife_0_csid_clk: 150.001656MHz (150001656Hz)
cam_cc_ife_0_dsp_clk: off
cam_cc_ife_1_axi_clk: off
cam_cc_ife_1_clk: off
cam_cc_ife_1_cphy_rx_clk: off
cam_cc_ife_1_csid_clk: off
cam_cc_ife_1_dsp_clk: off
cam_cc_ife_lite_clk: off
cam_cc_ife_lite_cphy_rx_clk: off
cam_cc_ife_lite_csid_clk: off
cam_cc_ipe_0_ahb_clk: off
cam_cc_ipe_0_areg_clk: off
cam_cc_ipe_0_axi_clk: off
cam_cc_ipe_0_clk: off
cam_cc_jpeg_clk: off
cam_cc_lrme_clk: off
cam_cc_mclk0_clk: off
cam_cc_mclk1_clk: off
cam_cc_mclk2_clk: 19.199848MHz (19199848Hz)
cam_cc_mclk3_clk: off
cam_cc_mclk4_clk: off
cam_cc_soc_ahb_clk: 75.000968MHz (75000968Hz)
cam_cc_sys_tmr_clk: off

@99degree
Copy link
Owner Author

camss log
[ 280.101723] qcom-camss acb3000.camss: media_gobj_create id 79: intf_devnode v4l-subdev - major: 81, minor: 6
[ 280.119360] qcom-camss acb3000.camss: media_gobj_create id 80: interface link id 79 ==> id 7
[ 280.170267] qcom-camss acb3000.camss: media_gobj_create id 81: intf_devnode v4l-subdev - major: 81, minor: 7
[ 280.176623] qcom-camss acb3000.camss: media_gobj_create id 82: interface link id 81 ==> id 10
[ 280.185002] qcom-camss acb3000.camss: media_gobj_create id 83: intf_devnode v4l-subdev - major: 81, minor: 8
[ 280.191444] qcom-camss acb3000.camss: media_gobj_create id 84: interface link id 83 ==> id 13
[ 280.200042] qcom-camss acb3000.camss: media_gobj_create id 85: intf_devnode v4l-subdev - major: 81, minor: 9
[ 280.206445] qcom-camss acb3000.camss: media_gobj_create id 86: interface link id 85 ==> id 19
[ 280.215229] qcom-camss acb3000.camss: media_gobj_create id 87: intf_devnode v4l-subdev - major: 81, minor: 10
[ 280.221680] qcom-camss acb3000.camss: media_gobj_create id 88: interface link id 87 ==> id 28
[ 280.230030] qcom-camss acb3000.camss: media_gobj_create id 89: intf_devnode v4l-subdev - major: 81, minor: 11
[ 280.236428] qcom-camss acb3000.camss: media_gobj_create id 90: interface link id 89 ==> id 37
[ 280.244307] qcom-camss acb3000.camss: media_gobj_create id 91: intf_devnode v4l-subdev - major: 81, minor: 12
[ 280.250767] qcom-camss acb3000.camss: media_gobj_create id 92: interface link id 91 ==> id 46
[ 280.259830] qcom-camss acb3000.camss: media_gobj_create id 93: intf_devnode v4l-subdev - major: 81, minor: 13
[ 280.266246] qcom-camss acb3000.camss: media_gobj_create id 94: interface link id 93 ==> id 71
[ 290.811710] qcom-camss acb3000.camss: begin graph walk at 'msm_csid0'
[ 290.859593] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 290.865934] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 290.872438] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 290.878760] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 290.885010] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':1 -> 'msm_vfe0_rdi0':0
[ 290.891259] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 290.897443] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 290.903610] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 290.909733] qcom-camss acb3000.camss: walk: returning entity 'msm_csid0'
[ 290.915782] qcom-camss acb3000.camss: begin graph walk at 'msm_vfe0_rdi0'
[ 290.921855] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_video0' on stack
[ 290.928374] qcom-camss acb3000.camss: walk: skipping entity 'msm_vfe0_rdi0' (already seen)
[ 290.974429] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_video0'
[ 291.019830] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':1 -> 'msm_vfe0_rdi0':0
[ 291.066090] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_rdi0'
[ 291.072181] qcom-camss acb3000.camss: begin graph walk at 'msm_csid0'
[ 291.078149] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 291.084148] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 291.090090] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 291.095949] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 291.101785] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_rdi0' on stack
[ 291.107546] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_video0' on stack
[ 291.113320] qcom-camss acb3000.camss: walk: skipping entity 'msm_vfe0_rdi0' (already seen)
[ 291.119499] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_video0'
[ 291.162869] qcom-camss acb3000.camss: walk: skipping entity 'msm_csid0' (already seen)
[ 291.168611] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_rdi0'
[ 291.174258] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 291.179943] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 291.185563] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 291.191195] qcom-camss acb3000.camss: walk: returning entity 'msm_csid0'
[ 291.196787] qcom-camss acb3000.camss: begin graph walk at 'msm_vfe0_rdi0'
[ 291.202369] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_video0' on stack
[ 291.207898] qcom-camss acb3000.camss: walk: skipping entity 'msm_vfe0_rdi0' (already seen)
[ 291.213428] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_video0'
[ 291.219429] qcom-camss acb3000.camss: walk: pushing 'msm_csid0' on stack
[ 291.261318] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 291.266780] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 291.272219] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 291.277565] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 291.282886] qcom-camss acb3000.camss: walk: skipping entity 'msm_vfe0_rdi0' (already seen)
[ 291.288151] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 291.293429] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 291.298656] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 291.304323] qcom-camss acb3000.camss: walk: returning entity 'msm_csid0'
[ 291.343574] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_rdi0'
[ 291.622667] qcom-camss acb3000.camss: begin graph walk at 'msm_csiphy2'
[ 291.660950] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 291.698999] qcom-camss acb3000.camss: walk: pushing 's5k5e9 13-002d' on stack
[ 291.737005] qcom-camss acb3000.camss: walk: skipping entity 'msm_csiphy2' (already seen)
[ 291.774909] qcom-camss acb3000.camss: walk: returning entity 's5k5e9 13-002d'
[ 291.812690] qcom-camss acb3000.camss: walk: returning entity 'msm_csiphy2'
[ 291.849740] qcom-camss acb3000.camss: begin graph walk at 'msm_csid0'
[ 291.886961] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 291.891953] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 291.896779] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 291.901584] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 291.906310] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_rdi0' on stack
[ 291.911034] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_video0' on stack
[ 291.916212] qcom-camss acb3000.camss: walk: skipping entity 'msm_vfe0_rdi0' (already seen)
[ 291.920887] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_video0'
[ 291.925512] qcom-camss acb3000.camss: walk: skipping entity 'msm_csid0' (already seen)
[ 291.930160] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_rdi0'
[ 291.935117] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 291.939909] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 291.944516] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 291.949116] qcom-camss acb3000.camss: walk: returning entity 'msm_csid0'
[ 291.953648] qcom-camss acb3000.camss: begin graph walk at 'msm_csiphy2'
[ 291.958156] qcom-camss acb3000.camss: walk: pushing 'msm_csid0' on stack
[ 291.962687] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 291.967187] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 291.971654] qcom-camss acb3000.camss: walk: skipping entity 'msm_csiphy2' (already seen)
[ 291.976401] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 291.980908] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_rdi0' on stack
[ 291.985283] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_video0' on stack
[ 291.989647] qcom-camss acb3000.camss: walk: skipping entity 'msm_vfe0_rdi0' (already seen)
[ 291.994485] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_video0'
[ 292.027135] qcom-camss acb3000.camss: walk: skipping entity 'msm_csid0' (already seen)
[ 292.059564] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_rdi0'
[ 292.091269] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 292.122874] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 292.154393] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 292.186190] qcom-camss acb3000.camss: walk: returning entity 'msm_csid0'
[ 292.190414] qcom-camss acb3000.camss: walk: pushing 's5k5e9 13-002d' on stack
[ 292.194490] qcom-camss acb3000.camss: walk: skipping entity 'msm_csiphy2' (already seen)
[ 292.198621] qcom-camss acb3000.camss: walk: returning entity 's5k5e9 13-002d'
[ 292.202669] qcom-camss acb3000.camss: walk: returning entity 'msm_csiphy2'
[ 292.206691] qcom-camss acb3000.camss: begin graph walk at 'msm_csid0'
[ 292.210715] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 292.214709] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 292.218697] qcom-camss acb3000.camss: walk: pushing 'msm_csiphy2' on stack
[ 292.222628] qcom-camss acb3000.camss: walk: skipping entity 'msm_csid0' (already seen)
[ 292.226551] qcom-camss acb3000.camss: walk: pushing 's5k5e9 13-002d' on stack
[ 292.230961] qcom-camss acb3000.camss: walk: skipping entity 'msm_csiphy2' (already seen)
[ 292.260703] qcom-camss acb3000.camss: walk: returning entity 's5k5e9 13-002d'
[ 292.264563] qcom-camss acb3000.camss: walk: returning entity 'msm_csiphy2'
[ 292.268308] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 292.272134] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_rdi0' on stack
[ 292.275881] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_video0' on stack
[ 292.279643] qcom-camss acb3000.camss: walk: skipping entity 'msm_vfe0_rdi0' (already seen)
[ 292.283386] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_video0'
[ 292.287079] qcom-camss acb3000.camss: walk: skipping entity 'msm_csid0' (already seen)
[ 292.290771] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_rdi0'
[ 292.294415] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 292.298060] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 292.301674] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 292.305220] qcom-camss acb3000.camss: walk: returning entity 'msm_csid0'
[ 292.342783] qcom-camss acb3000.camss: begin graph walk at 'msm_vfe0_video0'
[ 292.368815] qcom-camss acb3000.camss: walk: pushing 'msm_vfe0_rdi0' on stack
[ 292.395216] qcom-camss acb3000.camss: walk: skipping entity 'msm_vfe0_video0' (already seen)
[ 292.398856] qcom-camss acb3000.camss: walk: pushing 'msm_csid0' on stack
[ 292.402286] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 292.405735] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 292.409248] qcom-camss acb3000.camss: walk: pushing 'msm_csiphy2' on stack
[ 292.412686] qcom-camss acb3000.camss: walk: skipping entity 'msm_csid0' (already seen)
[ 292.416102] qcom-camss acb3000.camss: walk: pushing 's5k5e9 13-002d' on stack
[ 292.419497] qcom-camss acb3000.camss: walk: skipping entity 'msm_csiphy2' (already seen)
[ 292.422847] qcom-camss acb3000.camss: walk: returning entity 's5k5e9 13-002d'
[ 292.426158] qcom-camss acb3000.camss: walk: returning entity 'msm_csiphy2'
[ 292.429483] csiphy_set_power 202 0
[ 292.438968] qcom-camss acb3000.camss: CSIPHY 3PH HW Version = 0x40010000
[ 292.445453] csiphy_set_power 232 0
[ 292.445468] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 292.451872] qcom-camss acb3000.camss: walk: skipping entity 'msm_vfe0_rdi0' (already seen)
[ 292.455062] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 292.458220] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 292.461415] qcom-camss acb3000.camss: walk: skipping disabled link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 292.464497] qcom-camss acb3000.camss: walk: returning entity 'msm_csid0'
[ 292.467499] csid_set_power 167 0
[ 292.467509] csid_set_power 169 0
[ 292.470503] vfe_get: 679 0
[ 292.473468] vfe_get: 683 0
[ 292.476932] vfe_get: 687 0
[ 292.479948] vfe_get: 691 0
[ 292.483761] vfe_get: 695 0
[ 292.505986] vfe_get: 700 0
[ 292.528498] vfe_get: 704 0
[ 292.531388] vfe_get: 719 0
[ 292.534191] csid_set_power 178 0
[ 292.536971] csid_set_power 182 0
[ 292.540871] csid_set_power 189 0
[ 292.543885] csid_set_power 197 0
[ 292.546708] csid_set_power 205 0
[ 292.550822] csid_set_power 219 0
[ 292.553627] csid_set_power 231 0
[ 292.556365] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_rdi0'
[ 292.561816] vfe_set_power: 815 0
[ 292.561827] vfe_set_power: 818 0
[ 292.564557] vfe_get: 679 0
[ 292.567298] vfe_get: 714 0
[ 292.570036] vfe_get: 719 0
[ 292.572717] vfe_set_power: 828 0
[ 292.575391] qcom-camss acb3000.camss: walk: returning entity 'msm_vfe0_video0'
[ 292.597440] video_start_streaming 502
[ 292.597469] qcom-camss acb3000.camss: media pipeline: added pad 'msm_vfe0_video0':0
[ 292.603161] qcom-camss acb3000.camss: media pipeline: pushed entry 0: 'msm_vfe0_video0':0
[ 292.605990] qcom-camss acb3000.camss: media pipeline: entry 0 has no more links, popping
[ 292.608848] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_vfe0_rdi0':1 -> 'msm_vfe0_video0':0
[ 292.611681] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_vfe0_video0':0
[ 292.614494] qcom-camss acb3000.camss: media pipeline: added pad 'msm_vfe0_rdi0':1
[ 292.617286] qcom-camss acb3000.camss: media pipeline: pushed entry 0: 'msm_vfe0_rdi0':1
[ 292.620125] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 'msm_vfe0_video0'
[ 292.622922] qcom-camss acb3000.camss: media pipeline: moved entry 0 to next link
[ 292.625716] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_vfe0_rdi0':1 -> 'msm_vfe0_video0':0
[ 292.628625] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_vfe0_rdi0':1
[ 292.632059] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_vfe0_video0':0
[ 292.653436] qcom-camss acb3000.camss: media pipeline: entry 0 has no more links, popping
[ 292.674675] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':1 -> 'msm_vfe0_rdi0':0
[ 292.695693] qcom-camss acb3000.camss: media pipeline: added pad 'msm_vfe0_rdi0':0
[ 292.717427] qcom-camss acb3000.camss: media pipeline: pushed entry 0: 'msm_vfe0_rdi0':0
[ 292.720692] qcom-camss acb3000.camss: media pipeline: added pad 'msm_csid0':1
[ 292.723526] qcom-camss acb3000.camss: media pipeline: pushed entry 1: 'msm_csid0':1
[ 292.726316] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 'msm_vfe0_rdi0'
[ 292.729177] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_vfe0_rdi0':0
[ 292.732035] qcom-camss acb3000.camss: media pipeline: moved entry 1 to next link
[ 292.734866] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 292.737692] qcom-camss acb3000.camss: media pipeline: added pad 'msm_csid0':0
[ 292.740546] qcom-camss acb3000.camss: media pipeline: pushed entry 2: 'msm_csid0':0
[ 292.743379] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 292.746199] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 292.749048] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 292.751885] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 292.754724] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 292.757565] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 292.760446] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 292.763661] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 292.766564] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 292.769502] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 292.772901] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 292.794331] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 292.816393] qcom-camss acb3000.camss: media pipeline: added pad 'msm_csiphy2':1
[ 292.819405] qcom-camss acb3000.camss: media pipeline: pushed entry 3: 'msm_csiphy2':1
[ 292.822295] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 292.825132] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 292.827974] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csiphy2':1
[ 292.830862] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 292.833730] qcom-camss acb3000.camss: media pipeline: entry 3 has no more links, popping
[ 292.836590] qcom-camss acb3000.camss: media pipeline: exploring link 's5k5e9 13-002d':0 -> 'msm_csiphy2':0
[ 292.839490] qcom-camss acb3000.camss: media pipeline: added pad 'msm_csiphy2':0
[ 292.842356] qcom-camss acb3000.camss: media pipeline: pushed entry 3: 'msm_csiphy2':0
[ 292.845243] qcom-camss acb3000.camss: media pipeline: added pad 's5k5e9 13-002d':0
[ 292.848138] qcom-camss acb3000.camss: media pipeline: pushed entry 4: 's5k5e9 13-002d':0
[ 292.851051] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 'msm_csiphy2'
[ 292.853954] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csiphy2':0
[ 292.856849] qcom-camss acb3000.camss: media pipeline: entry 4 has no more links, popping
[ 292.860213] qcom-camss acb3000.camss: media pipeline: exploring link 's5k5e9 13-002d':0 -> 'msm_csiphy2':0
[ 292.882604] qcom-camss acb3000.camss: media pipeline: already contains pad 's5k5e9 13-002d':0
[ 292.885525] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csiphy2':0
[ 292.888370] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 's5k5e9 13-002d'
[ 292.891325] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 292.894235] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 292.897155] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csiphy2':1
[ 292.900100] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 292.903005] qcom-camss acb3000.camss: media pipeline: entry 3 has no more links, popping
[ 292.905896] qcom-camss acb3000.camss: media pipeline: exploring link 's5k5e9 13-002d':0 -> 'msm_csiphy2':0
[ 292.908847] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csiphy2':0
[ 292.911762] qcom-camss acb3000.camss: media pipeline: already contains pad 's5k5e9 13-002d':0
[ 292.914672] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 'msm_csiphy2'
[ 292.917572] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csiphy2':1
[ 292.920503] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 292.923397] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 292.926308] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 292.929234] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 292.932623] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 292.954353] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':1 -> 'msm_vfe0_rdi0':0
[ 292.975897] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':1
[ 292.997438] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_vfe0_rdi0':0
[ 293.019768] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 293.022681] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 293.025566] qcom-camss acb3000.camss: media pipeline: added pad 'msm_csid0':2
[ 293.028421] qcom-camss acb3000.camss: media pipeline: pushed entry 3: 'msm_csid0':2
[ 293.031417] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.034330] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.037216] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 293.040171] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.043077] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.045967] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.048880] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 293.051785] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.054678] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.057567] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.060475] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 293.063373] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.066280] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csiphy2':1
[ 293.069213] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.072628] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 293.094650] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.115962] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.137077] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.159030] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':1 -> 'msm_vfe0_rdi0':0
[ 293.161970] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.164835] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.167741] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 293.170720] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':2
[ 293.173636] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.176524] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.179462] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 293.182381] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.185267] qcom-camss acb3000.camss: media pipeline: entry 3 has no more links, popping
[ 293.188161] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 293.191099] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.193991] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 'msm_csid0'
[ 293.196891] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.199823] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 293.203191] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 293.224684] qcom-camss acb3000.camss: media pipeline: added pad 'msm_csid0':3
[ 293.246570] qcom-camss acb3000.camss: media pipeline: pushed entry 3: 'msm_csid0':3
[ 293.249553] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.252408] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.255220] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 293.258055] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.260949] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.263810] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.266655] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 293.269564] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.272444] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.275325] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.278214] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 293.281169] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.284103] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csiphy2':1
[ 293.287038] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.290527] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 293.312760] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.335618] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.338722] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.341727] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':1 -> 'msm_vfe0_rdi0':0
[ 293.344729] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.347710] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.350769] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 293.353846] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.356893] qcom-camss acb3000.camss: media pipeline: moved entry 3 to next link
[ 293.359954] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 293.363029] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':3
[ 293.366105] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.369201] qcom-camss acb3000.camss: media pipeline: entry 3 has no more links, popping
[ 293.372297] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 293.375414] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.378529] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 'msm_csid0'
[ 293.382115] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.404969] qcom-camss acb3000.camss: media pipeline: entry 2 has no more links, popping
[ 293.428473] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 293.431591] qcom-camss acb3000.camss: media pipeline: added pad 'msm_csid0':4
[ 293.434624] qcom-camss acb3000.camss: media pipeline: pushed entry 2: 'msm_csid0':4
[ 293.437646] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.440752] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 'msm_csid0'
[ 293.443837] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':1
[ 293.446903] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':2
[ 293.449985] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':3
[ 293.453013] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':4
[ 293.456021] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 293.459057] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy0':1 -> 'msm_csid0':0
[ 293.462089] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.465113] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.468114] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 293.471140] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 293.474594] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.497054] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.520256] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 293.523287] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 293.526286] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.529704] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csiphy2':1
[ 293.532743] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 293.535711] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 293.538811] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.541849] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.544864] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 293.547876] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':1 -> 'msm_vfe0_rdi0':0
[ 293.550941] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.554458] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 293.576802] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 293.600001] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.603041] qcom-camss acb3000.camss: media pipeline: moved entry 2 to next link
[ 293.606026] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 293.609124] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.612161] qcom-camss acb3000.camss: media pipeline: entry 2 has no more links, popping
[ 293.615200] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 293.618253] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':4
[ 293.621328] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.624360] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 'msm_csid0'
[ 293.627401] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.630475] qcom-camss acb3000.camss: media pipeline: moved entry 1 to next link
[ 293.633523] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy1':1 -> 'msm_csid0':0
[ 293.636584] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.639656] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.643285] qcom-camss acb3000.camss: media pipeline: moved entry 1 to next link
[ 293.665866] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy2':1 -> 'msm_csid0':0
[ 293.689314] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.692385] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csiphy2':1
[ 293.695390] qcom-camss acb3000.camss: media pipeline: moved entry 1 to next link
[ 293.698388] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csiphy3':1 -> 'msm_csid0':0
[ 293.701471] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.704519] qcom-camss acb3000.camss: media pipeline: skipping link (disabled)
[ 293.707560] qcom-camss acb3000.camss: media pipeline: moved entry 1 to next link
[ 293.710629] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':1 -> 'msm_vfe0_rdi0':0
[ 293.713695] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':1
[ 293.716746] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_vfe0_rdi0':0
[ 293.719809] qcom-camss acb3000.camss: media pipeline: moved entry 1 to next link
[ 293.723210] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':2 -> 'msm_vfe0_rdi1':0
[ 293.726326] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.729864] qcom-camss acb3000.camss: media pipeline: moved entry 1 to next link
[ 293.752346] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':3 -> 'msm_vfe0_rdi2':0
[ 293.775693] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.778852] qcom-camss acb3000.camss: media pipeline: entry 1 has no more links, popping
[ 293.781928] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':4 -> 'msm_vfe0_pix':0
[ 293.785008] qcom-camss acb3000.camss: media pipeline: skipping link (no route)
[ 293.788037] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 'msm_csid0'
[ 293.791118] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':0
[ 293.794181] qcom-camss acb3000.camss: media pipeline: moved entry 0 to next link
[ 293.797237] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_vfe0_rdi0':1 -> 'msm_vfe0_video0':0
[ 293.800356] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_vfe0_rdi0':1
[ 293.803433] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_vfe0_video0':0
[ 293.806506] qcom-camss acb3000.camss: media pipeline: entry 0 has no more links, popping
[ 293.809598] qcom-camss acb3000.camss: media pipeline: exploring link 'msm_csid0':1 -> 'msm_vfe0_rdi0':0
[ 293.812677] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_vfe0_rdi0':0
[ 293.815719] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_csid0':1
[ 293.818799] qcom-camss acb3000.camss: media pipeline: adding unconnected pads of 'msm_vfe0_rdi0'
[ 293.822381] qcom-camss acb3000.camss: media pipeline: already contains pad 'msm_vfe0_rdi0':1
[ 293.845172] qcom-camss acb3000.camss: media pipeline populated, found pads:
[ 293.868427] qcom-camss acb3000.camss: - 'msm_vfe0_video0':0
[ 293.871557] qcom-camss acb3000.camss: - 'msm_vfe0_rdi0':1
[ 293.874549] qcom-camss acb3000.camss: - 'msm_vfe0_rdi0':0
[ 293.877528] qcom-camss acb3000.camss: - 'msm_csid0':1
[ 293.880567] qcom-camss acb3000.camss: - 'msm_csid0':0
[ 293.883564] qcom-camss acb3000.camss: - 'msm_csiphy2':1
[ 293.886543] qcom-camss acb3000.camss: - 'msm_csiphy2':0
[ 293.889540] qcom-camss acb3000.camss: - 's5k5e9 13-002d':0
[ 293.892501] qcom-camss acb3000.camss: - 'msm_csid0':2
[ 293.895443] qcom-camss acb3000.camss: - 'msm_csid0':3
[ 293.898385] qcom-camss acb3000.camss: - 'msm_csid0':4
[ 293.901336] qcom-camss acb3000.camss: Validating pad 'msm_vfe0_video0':0
[ 293.904277] qcom-camss acb3000.camss: Validating pad 'msm_vfe0_rdi0':1
[ 293.907200] qcom-camss acb3000.camss: Validating pad 'msm_vfe0_rdi0':0
[ 293.910135] qcom-camss acb3000.camss: validating link "msm_csid0":1 -> "msm_vfe0_rdi0":0
[ 293.913584] qcom-camss acb3000.camss: validating stream "msm_csid0":1:0 -> "msm_vfe0_rdi0":0:0
[ 293.935667] qcom-camss acb3000.camss: Link 'msm_csid0':1 -> 'msm_vfe0_rdi0':0 is valid
[ 293.957391] qcom-camss acb3000.camss: Validating pad 'msm_csid0':1
[ 293.979593] qcom-camss acb3000.camss: Validating pad 'msm_csid0':0
[ 293.982515] qcom-camss acb3000.camss: validating link "msm_csiphy2":1 -> "msm_csid0":0
[ 293.985396] qcom-camss acb3000.camss: validating stream "msm_csiphy2":1:0 -> "msm_csid0":0:0
[ 293.988285] qcom-camss acb3000.camss: Link 'msm_csiphy2':1 -> 'msm_csid0':0 is valid
[ 293.991275] qcom-camss acb3000.camss: Validating pad 'msm_csiphy2':1
[ 293.994207] qcom-camss acb3000.camss: Validating pad 'msm_csiphy2':0
[ 293.997107] qcom-camss acb3000.camss: validating link "s5k5e9 13-002d":0 -> "msm_csiphy2":0
[ 294.000064] qcom-camss acb3000.camss: validating stream "s5k5e9 13-002d":0:0 -> "msm_csiphy2":0:0
[ 294.003006] qcom-camss acb3000.camss: Link 's5k5e9 13-002d':0 -> 'msm_csiphy2':0 is valid
[ 294.005933] qcom-camss acb3000.camss: Validating pad 's5k5e9 13-002d':0
[ 294.008877] qcom-camss acb3000.camss: Validating pad 'msm_csid0':2
[ 294.011785] qcom-camss acb3000.camss: Validating pad 'msm_csid0':3
[ 294.014677] qcom-camss acb3000.camss: Validating pad 'msm_csid0':4
[ 294.017546] video_start_streaming 508
[ 294.017560] video_start_streaming 514
[ 294.020433] vfe_set_stream: 846 0
[ 294.023268] vfe_set_stream: 848 0
[ 294.026206] vfe_set_stream: 861 0
[ 294.029069] csid_set_stream 248 0
[ 294.032410] csid_set_stream 256 0
[ 294.052975] csid_set_stream 272 0
[ 294.074098] csiphy_set_stream 309 0
[ 294.076894] csiphy_stream_on 255 0
[ 294.079738] csiphy_stream_on 263 0
[ 294.082505] csiphy_stream_on 278 0
[ 294.085255] csiphy_stream_on 280 0
[ 294.087984] csiphy_set_stream 315 0
[ 294.174045] video_start_streaming 532

@99degree
Copy link
Owner Author

joyeuse:/ # i2cdetect -l
i2c-15 i2c Qualcomm-CCI I2C Adapter
i2c-13 i2c Qualcomm-CCI I2C Adapter
i2c-16 i2c dpu_dp_aux I2C Adapter
i2c-14 i2c Qualcomm-CCI I2C Adapter
i2c-12 i2c Qualcomm-CCI I2C Adapter
joyeuse:/ # i2cdetect -q i2c-13
i2cdetect: not integer: i2c-13
1|joyeuse:/ # i2cdetect -q 13
Probe chips 0x03-0x77 on bus 13? (Y/n):y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- UU -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- 51 -- -- 54 -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
joyeuse:/ #

@99degree
Copy link
Owner Author

ok found out that cmos csiphy using 2 lanes instead of 4 lanes

99degree pushed a commit that referenced this issue Jun 2, 2024
Andrii Nakryiko says:

====================
Fix BPF multi-uprobe PID filtering logic

It turns out that current implementation of multi-uprobe PID filtering logic
is broken. It filters by thread, while the promise is filtering by process.
Patch #1 fixes the logic trivially. The rest is testing and mitigations that
are necessary for libbpf to not break users of USDT programs.

v1->v2:
  - fix selftest in last patch (CI);
  - use semicolon in patch #3 (Jiri).
====================

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Alexei Starovoitov <[email protected]>
99degree pushed a commit that referenced this issue Jun 2, 2024
…git/netfilter/nf

Pablo Neira Ayuso says:

====================
Netfilter fixes for net

The following patchset contains Netfilter fixes for net:

Patch #1 syzbot reports that nf_reinject() could be called without
         rcu_read_lock() when flushing pending packets at nfnetlink
         queue removal, from Eric Dumazet.

Patch #2 flushes ipset list:set when canceling garbage collection to
         reference to other lists to fix a race, from Jozsef Kadlecsik.

Patch #3 restores q-in-q matching with nft_payload by reverting
         f6ae9f1 ("netfilter: nft_payload: add C-VLAN support").

Patch #4 fixes vlan mangling in skbuff when vlan offload is present
         in skbuff, without this patch nft_payload corrupts packets
         in this case.

Patch #5 fixes possible nul-deref in tproxy no IP address is found in
         netdevice, reported by syzbot and patch from Florian Westphal.

Patch #6 removes a superfluous restriction which prevents loose fib
         lookups from input and forward hooks, from Eric Garver.

My assessment is that patches #1, #2 and #5 address possible kernel
crash, anything else in this batch fixes broken features.

netfilter pull request 24-05-29

* tag 'nf-24-05-29' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
  netfilter: nft_fib: allow from forward/input without iif selector
  netfilter: tproxy: bail out if IP has been disabled on the device
  netfilter: nft_payload: skbuff vlan metadata mangle support
  netfilter: nft_payload: restore vlan q-in-q match support
  netfilter: ipset: Add list flush to cancel_gc
  netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()
====================

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Abeni <[email protected]>
99degree pushed a commit that referenced this issue Jun 9, 2024
With commit c4cb231 ("iommu/amd: Add support for enable/disable IOPF")
we are hitting below issue. This happens because in IOPF enablement path
it holds spin lock with irq disable and then tries to take mutex lock.

dmesg:
-----
[    0.938739] =============================
[    0.938740] [ BUG: Invalid wait context ]
[    0.938742] 6.10.0-rc1+ #1 Not tainted
[    0.938745] -----------------------------
[    0.938746] swapper/0/1 is trying to lock:
[    0.938748] ffffffff8c9f01d8 (&port_lock_key){....}-{3:3}, at: serial8250_console_write+0x78/0x4a0
[    0.938767] other info that might help us debug this:
[    0.938768] context-{5:5}
[    0.938769] 7 locks held by swapper/0/1:
[    0.938772]  #0: ffff888101a91310 (&group->mutex){+.+.}-{4:4}, at: bus_iommu_probe+0x70/0x160
[    0.938790]  #1: ffff888101d1f1b8 (&domain->lock){....}-{3:3}, at: amd_iommu_attach_device+0xa5/0x700
[    0.938799]  #2: ffff888101cc3d18 (&dev_data->lock){....}-{3:3}, at: amd_iommu_attach_device+0xc5/0x700
[    0.938806]  #3: ffff888100052830 (&iommu->lock){....}-{2:2}, at: amd_iommu_iopf_add_device+0x3f/0xa0
[    0.938813]  #4: ffffffff8945a340 (console_lock){+.+.}-{0:0}, at: _printk+0x48/0x50
[    0.938822]  #5: ffffffff8945a390 (console_srcu){....}-{0:0}, at: console_flush_all+0x58/0x4e0
[    0.938867]  #6: ffffffff82459f80 (console_owner){....}-{0:0}, at: console_flush_all+0x1f0/0x4e0
[    0.938872] stack backtrace:
[    0.938874] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 6.10.0-rc1+ #1
[    0.938877] Hardware name: HP HP EliteBook 745 G3/807E, BIOS N73 Ver. 01.39 04/16/2019

Fix above issue by re-arranging code in attach device path:
  - move device PASID/IOPF enablement outside lock in AMD IOMMU driver.
    This is safe as core layer holds group->mutex lock before calling
    iommu_ops->attach_dev.

Reported-by: Borislav Petkov <[email protected]>
Reported-by: Mikhail Gavrilov <[email protected]>
Reported-by: Chris Bainbridge <[email protected]>
Fixes: c4cb231 ("iommu/amd: Add support for enable/disable IOPF")
Tested-by: Borislav Petkov <[email protected]>
Tested-by: Chris Bainbridge <[email protected]>
Tested-by: Mikhail Gavrilov <[email protected]>
Signed-off-by: Vasant Hegde <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Joerg Roedel <[email protected]>
99degree pushed a commit that referenced this issue Jun 9, 2024
We have been seeing crashes on duplicate keys in
btrfs_set_item_key_safe():

  BTRFS critical (device vdb): slot 4 key (450 108 8192) new key (450 108 8192)
  ------------[ cut here ]------------
  kernel BUG at fs/btrfs/ctree.c:2620!
  invalid opcode: 0000 [#1] PREEMPT SMP PTI
  CPU: 0 PID: 3139 Comm: xfs_io Kdump: loaded Not tainted 6.9.0 #6
  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014
  RIP: 0010:btrfs_set_item_key_safe+0x11f/0x290 [btrfs]

With the following stack trace:

  #0  btrfs_set_item_key_safe (fs/btrfs/ctree.c:2620:4)
  #1  btrfs_drop_extents (fs/btrfs/file.c:411:4)
  #2  log_one_extent (fs/btrfs/tree-log.c:4732:9)
  #3  btrfs_log_changed_extents (fs/btrfs/tree-log.c:4955:9)
  #4  btrfs_log_inode (fs/btrfs/tree-log.c:6626:9)
  #5  btrfs_log_inode_parent (fs/btrfs/tree-log.c:7070:8)
  #6  btrfs_log_dentry_safe (fs/btrfs/tree-log.c:7171:8)
  torvalds#7  btrfs_sync_file (fs/btrfs/file.c:1933:8)
  torvalds#8  vfs_fsync_range (fs/sync.c:188:9)
  torvalds#9  vfs_fsync (fs/sync.c:202:9)
  torvalds#10 do_fsync (fs/sync.c:212:9)
  torvalds#11 __do_sys_fdatasync (fs/sync.c:225:9)
  torvalds#12 __se_sys_fdatasync (fs/sync.c:223:1)
  torvalds#13 __x64_sys_fdatasync (fs/sync.c:223:1)
  torvalds#14 do_syscall_x64 (arch/x86/entry/common.c:52:14)
  torvalds#15 do_syscall_64 (arch/x86/entry/common.c:83:7)
  torvalds#16 entry_SYSCALL_64+0xaf/0x14c (arch/x86/entry/entry_64.S:121)

So we're logging a changed extent from fsync, which is splitting an
extent in the log tree. But this split part already exists in the tree,
triggering the BUG().

This is the state of the log tree at the time of the crash, dumped with
drgn (https://github.com/osandov/drgn/blob/main/contrib/btrfs_tree.py)
to get more details than btrfs_print_leaf() gives us:

  >>> print_extent_buffer(prog.crashed_thread().stack_trace()[0]["eb"])
  leaf 33439744 level 0 items 72 generation 9 owner 18446744073709551610
  leaf 33439744 flags 0x100000000000000
  fs uuid e5bd3946-400c-4223-8923-190ef1f18677
  chunk uuid d58cb17e-6d02-494a-829a-18b7d8a399da
          item 0 key (450 INODE_ITEM 0) itemoff 16123 itemsize 160
                  generation 7 transid 9 size 8192 nbytes 8473563889606862198
                  block group 0 mode 100600 links 1 uid 0 gid 0 rdev 0
                  sequence 204 flags 0x10(PREALLOC)
                  atime 1716417703.220000000 (2024-05-22 15:41:43)
                  ctime 1716417704.983333333 (2024-05-22 15:41:44)
                  mtime 1716417704.983333333 (2024-05-22 15:41:44)
                  otime 17592186044416.000000000 (559444-03-08 01:40:16)
          item 1 key (450 INODE_REF 256) itemoff 16110 itemsize 13
                  index 195 namelen 3 name: 193
          item 2 key (450 XATTR_ITEM 1640047104) itemoff 16073 itemsize 37
                  location key (0 UNKNOWN.0 0) type XATTR
                  transid 7 data_len 1 name_len 6
                  name: user.a
                  data a
          item 3 key (450 EXTENT_DATA 0) itemoff 16020 itemsize 53
                  generation 9 type 1 (regular)
                  extent data disk byte 303144960 nr 12288
                  extent data offset 0 nr 4096 ram 12288
                  extent compression 0 (none)
          item 4 key (450 EXTENT_DATA 4096) itemoff 15967 itemsize 53
                  generation 9 type 2 (prealloc)
                  prealloc data disk byte 303144960 nr 12288
                  prealloc data offset 4096 nr 8192
          item 5 key (450 EXTENT_DATA 8192) itemoff 15914 itemsize 53
                  generation 9 type 2 (prealloc)
                  prealloc data disk byte 303144960 nr 12288
                  prealloc data offset 8192 nr 4096
  ...

So the real problem happened earlier: notice that items 4 (4k-12k) and 5
(8k-12k) overlap. Both are prealloc extents. Item 4 straddles i_size and
item 5 starts at i_size.

Here is the state of the filesystem tree at the time of the crash:

  >>> root = prog.crashed_thread().stack_trace()[2]["inode"].root
  >>> ret, nodes, slots = btrfs_search_slot(root, BtrfsKey(450, 0, 0))
  >>> print_extent_buffer(nodes[0])
  leaf 30425088 level 0 items 184 generation 9 owner 5
  leaf 30425088 flags 0x100000000000000
  fs uuid e5bd3946-400c-4223-8923-190ef1f18677
  chunk uuid d58cb17e-6d02-494a-829a-18b7d8a399da
  	...
          item 179 key (450 INODE_ITEM 0) itemoff 4907 itemsize 160
                  generation 7 transid 7 size 4096 nbytes 12288
                  block group 0 mode 100600 links 1 uid 0 gid 0 rdev 0
                  sequence 6 flags 0x10(PREALLOC)
                  atime 1716417703.220000000 (2024-05-22 15:41:43)
                  ctime 1716417703.220000000 (2024-05-22 15:41:43)
                  mtime 1716417703.220000000 (2024-05-22 15:41:43)
                  otime 1716417703.220000000 (2024-05-22 15:41:43)
          item 180 key (450 INODE_REF 256) itemoff 4894 itemsize 13
                  index 195 namelen 3 name: 193
          item 181 key (450 XATTR_ITEM 1640047104) itemoff 4857 itemsize 37
                  location key (0 UNKNOWN.0 0) type XATTR
                  transid 7 data_len 1 name_len 6
                  name: user.a
                  data a
          item 182 key (450 EXTENT_DATA 0) itemoff 4804 itemsize 53
                  generation 9 type 1 (regular)
                  extent data disk byte 303144960 nr 12288
                  extent data offset 0 nr 8192 ram 12288
                  extent compression 0 (none)
          item 183 key (450 EXTENT_DATA 8192) itemoff 4751 itemsize 53
                  generation 9 type 2 (prealloc)
                  prealloc data disk byte 303144960 nr 12288
                  prealloc data offset 8192 nr 4096

Item 5 in the log tree corresponds to item 183 in the filesystem tree,
but nothing matches item 4. Furthermore, item 183 is the last item in
the leaf.

btrfs_log_prealloc_extents() is responsible for logging prealloc extents
beyond i_size. It first truncates any previously logged prealloc extents
that start beyond i_size. Then, it walks the filesystem tree and copies
the prealloc extent items to the log tree.

If it hits the end of a leaf, then it calls btrfs_next_leaf(), which
unlocks the tree and does another search. However, while the filesystem
tree is unlocked, an ordered extent completion may modify the tree. In
particular, it may insert an extent item that overlaps with an extent
item that was already copied to the log tree.

This may manifest in several ways depending on the exact scenario,
including an EEXIST error that is silently translated to a full sync,
overlapping items in the log tree, or this crash. This particular crash
is triggered by the following sequence of events:

- Initially, the file has i_size=4k, a regular extent from 0-4k, and a
  prealloc extent beyond i_size from 4k-12k. The prealloc extent item is
  the last item in its B-tree leaf.
- The file is fsync'd, which copies its inode item and both extent items
  to the log tree.
- An xattr is set on the file, which sets the
  BTRFS_INODE_COPY_EVERYTHING flag.
- The range 4k-8k in the file is written using direct I/O. i_size is
  extended to 8k, but the ordered extent is still in flight.
- The file is fsync'd. Since BTRFS_INODE_COPY_EVERYTHING is set, this
  calls copy_inode_items_to_log(), which calls
  btrfs_log_prealloc_extents().
- btrfs_log_prealloc_extents() finds the 4k-12k prealloc extent in the
  filesystem tree. Since it starts before i_size, it skips it. Since it
  is the last item in its B-tree leaf, it calls btrfs_next_leaf().
- btrfs_next_leaf() unlocks the path.
- The ordered extent completion runs, which converts the 4k-8k part of
  the prealloc extent to written and inserts the remaining prealloc part
  from 8k-12k.
- btrfs_next_leaf() does a search and finds the new prealloc extent
  8k-12k.
- btrfs_log_prealloc_extents() copies the 8k-12k prealloc extent into
  the log tree. Note that it overlaps with the 4k-12k prealloc extent
  that was copied to the log tree by the first fsync.
- fsync calls btrfs_log_changed_extents(), which tries to log the 4k-8k
  extent that was written.
- This tries to drop the range 4k-8k in the log tree, which requires
  adjusting the start of the 4k-12k prealloc extent in the log tree to
  8k.
- btrfs_set_item_key_safe() sees that there is already an extent
  starting at 8k in the log tree and calls BUG().

Fix this by detecting when we're about to insert an overlapping file
extent item in the log tree and truncating the part that would overlap.

CC: [email protected] # 6.1+
Reviewed-by: Filipe Manana <[email protected]>
Signed-off-by: Omar Sandoval <[email protected]>
Signed-off-by: David Sterba <[email protected]>
99degree pushed a commit that referenced this issue Jun 17, 2024
…PLES event"

This reverts commit 7d1405c.

This causes segfaults in some cases, as reported by Milian:

  ```
  sudo /usr/bin/perf record -z --call-graph dwarf -e cycles -e
  raw_syscalls:sys_enter ls
  ...
  [ perf record: Woken up 3 times to write data ]
  malloc(): invalid next size (unsorted)
  Aborted
  ```

  Backtrace with GDB + debuginfod:

  ```
  malloc(): invalid next size (unsorted)

  Thread 1 "perf" received signal SIGABRT, Aborted.
  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6,
  no_tid=no_tid@entry=0) at pthread_kill.c:44
  Downloading source file /usr/src/debug/glibc/glibc/nptl/pthread_kill.c
  44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO
  (ret) : 0;
  (gdb) bt
  #0  __pthread_kill_implementation (threadid=<optimized out>,
  signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
  #1  0x00007ffff6ea8eb3 in __pthread_kill_internal (threadid=<optimized out>,
  signo=6) at pthread_kill.c:78
  #2  0x00007ffff6e50a30 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/
  raise.c:26
  #3  0x00007ffff6e384c3 in __GI_abort () at abort.c:79
  #4  0x00007ffff6e39354 in __libc_message_impl (fmt=fmt@entry=0x7ffff6fc22ea
  "%s\n") at ../sysdeps/posix/libc_fatal.c:132
  #5  0x00007ffff6eb3085 in malloc_printerr (str=str@entry=0x7ffff6fc5850
  "malloc(): invalid next size (unsorted)") at malloc.c:5772
  #6  0x00007ffff6eb657c in _int_malloc (av=av@entry=0x7ffff6ff6ac0
  <main_arena>, bytes=bytes@entry=368) at malloc.c:4081
  torvalds#7  0x00007ffff6eb877e in __libc_calloc (n=<optimized out>,
  elem_size=<optimized out>) at malloc.c:3754
  torvalds#8  0x000055555569bdb6 in perf_session.do_write_header ()
  torvalds#9  0x00005555555a373a in __cmd_record.constprop.0 ()
  torvalds#10 0x00005555555a6846 in cmd_record ()
  torvalds#11 0x000055555564db7f in run_builtin ()
  torvalds#12 0x000055555558ed77 in main ()
  ```

  Valgrind memcheck:
  ```
  ==45136== Invalid write of size 8
  ==45136==    at 0x2B38A5: perf_event__synthesize_id_sample (in /usr/bin/perf)
  ==45136==    by 0x157069: __cmd_record.constprop.0 (in /usr/bin/perf)
  ==45136==    by 0x15A845: cmd_record (in /usr/bin/perf)
  ==45136==    by 0x201B7E: run_builtin (in /usr/bin/perf)
  ==45136==    by 0x142D76: main (in /usr/bin/perf)
  ==45136==  Address 0x6a866a8 is 0 bytes after a block of size 40 alloc'd
  ==45136==    at 0x4849BF3: calloc (vg_replace_malloc.c:1675)
  ==45136==    by 0x3574AB: zalloc (in /usr/bin/perf)
  ==45136==    by 0x1570E0: __cmd_record.constprop.0 (in /usr/bin/perf)
  ==45136==    by 0x15A845: cmd_record (in /usr/bin/perf)
  ==45136==    by 0x201B7E: run_builtin (in /usr/bin/perf)
  ==45136==    by 0x142D76: main (in /usr/bin/perf)
  ==45136==
  ==45136== Syscall param write(buf) points to unaddressable byte(s)
  ==45136==    at 0x575953D: __libc_write (write.c:26)
  ==45136==    by 0x575953D: write (write.c:24)
  ==45136==    by 0x35761F: ion (in /usr/bin/perf)
  ==45136==    by 0x357778: writen (in /usr/bin/perf)
  ==45136==    by 0x1548F7: record__write (in /usr/bin/perf)
  ==45136==    by 0x15708A: __cmd_record.constprop.0 (in /usr/bin/perf)
  ==45136==    by 0x15A845: cmd_record (in /usr/bin/perf)
  ==45136==    by 0x201B7E: run_builtin (in /usr/bin/perf)
  ==45136==    by 0x142D76: main (in /usr/bin/perf)
  ==45136==  Address 0x6a866a8 is 0 bytes after a block of size 40 alloc'd
  ==45136==    at 0x4849BF3: calloc (vg_replace_malloc.c:1675)
  ==45136==    by 0x3574AB: zalloc (in /usr/bin/perf)
  ==45136==    by 0x1570E0: __cmd_record.constprop.0 (in /usr/bin/perf)
  ==45136==    by 0x15A845: cmd_record (in /usr/bin/perf)
  ==45136==    by 0x201B7E: run_builtin (in /usr/bin/perf)
  ==45136==    by 0x142D76: main (in /usr/bin/perf)
  ==45136==
 -----

Closes: https://lore.kernel.org/linux-perf-users/23879991.0LEYPuXRzz@milian-workstation/
Reported-by: Milian Wolff <[email protected]>
Tested-by: Milian Wolff <[email protected]>
Cc: Adrian Hunter <[email protected]>
Cc: Ian Rogers <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Kan Liang <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: [email protected] # 6.8+
Link: https://lore.kernel.org/lkml/Zl9ksOlHJHnKM70p@x1
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
99degree pushed a commit that referenced this issue Jun 17, 2024
…git/netfilter/nf

Pablo Neira Ayuso says:

====================
Netfilter fixes for net

The following patchset contains Netfilter fixes for net:

Patch #1 fixes insufficient sanitization of netlink attributes for the
	 inner expression which can trigger nul-pointer dereference,
	 from Davide Ornaghi.

Patch #2 address a report that there is a race condition between
         namespace cleanup and the garbage collection of the list:set
         type. This patch resolves this issue with other minor issues
	 as well, from Jozsef Kadlecsik.

Patch #3 ip6_route_me_harder() ignores flowlabel/dsfield when ip dscp
	 has been mangled, this unbreaks ip6 dscp set $v,
	 from Florian Westphal.

All of these patches address issues that are present in several releases.

* tag 'nf-24-06-11' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
  netfilter: Use flowlabel flow key when re-routing mangled packets
  netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type
  netfilter: nft_inner: validate mandatory meta and payload
====================

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
99degree pushed a commit that referenced this issue Jun 17, 2024
Nikolay Aleksandrov says:

====================
net: bridge: mst: fix suspicious rcu usage warning

This set fixes a suspicious RCU usage warning triggered by syzbot[1] in
the bridge's MST code. After I converted br_mst_set_state to RCU, I
forgot to update the vlan group dereference helper. Fix it by using
the proper helper, in order to do that we need to pass the vlan group
which is already obtained correctly by the callers for their respective
context. Patch 01 is a requirement for the fix in patch 02.

Note I did consider rcu_dereference_rtnl() but the churn is much bigger
and in every part of the bridge. We can do that as a cleanup in
net-next.

[1] https://syzkaller.appspot.com/bug?extid=9bbe2de1bc9d470eb5fe
 =============================
 WARNING: suspicious RCU usage
 6.10.0-rc2-syzkaller-00235-g8a92980606e3 #0 Not tainted
 -----------------------------
 net/bridge/br_private.h:1599 suspicious rcu_dereference_protected() usage!

 other info that might help us debug this:

 rcu_scheduler_active = 2, debug_locks = 1
 4 locks held by syz-executor.1/5374:
  #0: ffff888022d50b18 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_lock include/linux/mmap_lock.h:144 [inline]
  #0: ffff888022d50b18 (&mm->mmap_lock){++++}-{3:3}, at: __mm_populate+0x1b0/0x460 mm/gup.c:2111
  #1: ffffc90000a18c00 ((&p->forward_delay_timer)){+.-.}-{0:0}, at: call_timer_fn+0xc0/0x650 kernel/time/timer.c:1789
  #2: ffff88805fb2ccb8 (&br->lock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline]
  #2: ffff88805fb2ccb8 (&br->lock){+.-.}-{2:2}, at: br_forward_delay_timer_expired+0x50/0x440 net/bridge/br_stp_timer.c:86
  #3: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:329 [inline]
  #3: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:781 [inline]
  #3: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: br_mst_set_state+0x171/0x7a0 net/bridge/br_mst.c:105

 stack backtrace:
 CPU: 1 PID: 5374 Comm: syz-executor.1 Not tainted 6.10.0-rc2-syzkaller-00235-g8a92980606e3 #0
 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024
 Call Trace:
  <IRQ>
  __dump_stack lib/dump_stack.c:88 [inline]
  dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114
  lockdep_rcu_suspicious+0x221/0x340 kernel/locking/lockdep.c:6712
  nbp_vlan_group net/bridge/br_private.h:1599 [inline]
  br_mst_set_state+0x29e/0x7a0 net/bridge/br_mst.c:106
  br_set_state+0x28a/0x7b0 net/bridge/br_stp.c:47
  br_forward_delay_timer_expired+0x176/0x440 net/bridge/br_stp_timer.c:88
  call_timer_fn+0x18e/0x650 kernel/time/timer.c:1792
  expire_timers kernel/time/timer.c:1843 [inline]
  __run_timers kernel/time/timer.c:2417 [inline]
  __run_timer_base+0x66a/0x8e0 kernel/time/timer.c:2428
  run_timer_base kernel/time/timer.c:2437 [inline]
  run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2447
  handle_softirqs+0x2c4/0x970 kernel/softirq.c:554
  __do_softirq kernel/softirq.c:588 [inline]
  invoke_softirq kernel/softirq.c:428 [inline]
  __irq_exit_rcu+0xf4/0x1c0 kernel/softirq.c:637
  irq_exit_rcu+0x9/0x30 kernel/softirq.c:649
  instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
  sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1043
  </IRQ>
  <TASK>
====================

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
99degree pushed a commit that referenced this issue Jun 17, 2024
The syzbot fuzzer found that the interrupt-URB completion callback in
the cdc-wdm driver was taking too long, and the driver's immediate
resubmission of interrupt URBs with -EPROTO status combined with the
dummy-hcd emulation to cause a CPU lockup:

cdc_wdm 1-1:1.0: nonzero urb status received: -71
cdc_wdm 1-1:1.0: wdm_int_callback - 0 bytes
watchdog: BUG: soft lockup - CPU#0 stuck for 26s! [syz-executor782:6625]
CPU#0 Utilization every 4s during lockup:
	#1:  98% system,	  0% softirq,	  3% hardirq,	  0% idle
	#2:  98% system,	  0% softirq,	  3% hardirq,	  0% idle
	#3:  98% system,	  0% softirq,	  3% hardirq,	  0% idle
	#4:  98% system,	  0% softirq,	  3% hardirq,	  0% idle
	#5:  98% system,	  1% softirq,	  3% hardirq,	  0% idle
Modules linked in:
irq event stamp: 73096
hardirqs last  enabled at (73095): [<ffff80008037bc00>] console_emit_next_record kernel/printk/printk.c:2935 [inline]
hardirqs last  enabled at (73095): [<ffff80008037bc00>] console_flush_all+0x650/0xb74 kernel/printk/printk.c:2994
hardirqs last disabled at (73096): [<ffff80008af10b00>] __el1_irq arch/arm64/kernel/entry-common.c:533 [inline]
hardirqs last disabled at (73096): [<ffff80008af10b00>] el1_interrupt+0x24/0x68 arch/arm64/kernel/entry-common.c:551
softirqs last  enabled at (73048): [<ffff8000801ea530>] softirq_handle_end kernel/softirq.c:400 [inline]
softirqs last  enabled at (73048): [<ffff8000801ea530>] handle_softirqs+0xa60/0xc34 kernel/softirq.c:582
softirqs last disabled at (73043): [<ffff800080020de8>] __do_softirq+0x14/0x20 kernel/softirq.c:588
CPU: 0 PID: 6625 Comm: syz-executor782 Tainted: G        W          6.10.0-rc2-syzkaller-g8867bbd4a056 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024

Testing showed that the problem did not occur if the two error
messages -- the first two lines above -- were removed; apparently adding
material to the kernel log takes a surprisingly large amount of time.

In any case, the best approach for preventing these lockups and to
avoid spamming the log with thousands of error messages per second is
to ratelimit the two dev_err() calls.  Therefore we replace them with
dev_err_ratelimited().

Signed-off-by: Alan Stern <[email protected]>
Suggested-by: Greg KH <[email protected]>
Reported-and-tested-by: [email protected]
Closes: https://lore.kernel.org/linux-usb/[email protected]/
Reported-and-tested-by: [email protected]
Closes: https://lore.kernel.org/linux-usb/[email protected]/
Fixes: 9908a32 ("USB: remove err() macro from usb class drivers")
Link: https://lore.kernel.org/linux-usb/[email protected]/
Cc: [email protected]
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
99degree added a commit that referenced this issue Jun 22, 2024
SM7125 is the SoC found in the Xiaomi Redmi Note 9 Pro(joyeuse) cellphone.
This series adds support to bring up the CSIPHY, CSID, VFE/RDI interfaces.

Since SM7125 is a low-speed variant of SC7180, SC7180 testers please
take a look and have a test as well.

sc7180 provides

- 2 x VFE
- 1 x VFE Lite
- 2 x CSID
- 1 x CSID Lite
- 4 x CSI PHY

The sc7180-camss binding should be comaptible with sdm845 yaml.
I've copied a new yaml from sdm845-camss.yaml, strip all _src clk and
put new maintainer information. If this is not desirable then i can add binding to
existing sdm845 yaml instead.

In addition, a bootable tree of sm7125/joyeuse is availble at:
https://github.com/99degree/linux/tree/camss
  

To: Robert Foss <[email protected]>
To: Todor Tomov <[email protected]>
To: Bryan O'Donoghue <[email protected]>
To: Mauro Carvalho Chehab <[email protected]>
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: Conor Dooley <[email protected]>
To: [email protected]
To: Bjorn Andersson <[email protected]>
To: Konrad Dybcio <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: George Chan <[email protected]>

---
Changes in v2:
- Revised dt-binding as stated by krzk
- Added dt-binding item power-domain-name as stated by Bryan
- Combine patch #2 and #3 as stated by krzk and Bryan
- Split eror-print log for clk name from patch #5 as suggested by Konrad
- Reformat dt-node of camss as stated by krzk
- Corrected phy init sequence for v1.2.2 as spot by Bryan
- Link to v1: https://lore.kernel.org/r/[email protected]

--- b4-submit-tracking ---
# This section is used internally by b4 prep for tracking purposes.
{
  "series": {
    "revision": 2,
    "change-id": "20240621-b4-sc7180-camss-cddc6b60a9b4",
    "prefixes": [],
    "history": {
      "v1": [
        "[email protected]"
      ]
    }
  }
}
99degree added a commit that referenced this issue Jun 22, 2024
SM7125 is the SoC found in the Xiaomi Redmi Note 9 Pro(joyeuse) cellphone.
This series adds support to bring up the CSIPHY, CSID, VFE/RDI interfaces.

Since SM7125 is a low-speed variant of SC7180, SC7180 testers please
take a look and have a test as well.

sc7180 provides

- 2 x VFE
- 1 x VFE Lite
- 2 x CSID
- 1 x CSID Lite
- 4 x CSI PHY

The sc7180-camss binding should be comaptible with sdm845 yaml.
I've copied a new yaml from sdm845-camss.yaml, strip all _src clk and
put new maintainer information. If this is not desirable then i can add binding to
existing sdm845 yaml instead.

In addition, a bootable tree of sm7125/joyeuse is availble at:
https://github.com/99degree/linux/tree/camss
  

To: Robert Foss <[email protected]>
To: Todor Tomov <[email protected]>
To: Bryan O'Donoghue <[email protected]>
To: Mauro Carvalho Chehab <[email protected]>
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: Conor Dooley <[email protected]>
To: [email protected]
To: Bjorn Andersson <[email protected]>
To: Konrad Dybcio <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: George Chan <[email protected]>

---
Changes in v2:
- Revised dt-binding as stated by krzk
- Added dt-binding item power-domain-name as stated by Bryan
- Combine patch #2 and #3 as stated by krzk and Bryan
- Split eror-print log for clk name from patch #5 as suggested by Konrad
- Reformat dt-node of camss as stated by krzk
- Corrected phy init sequence for v1.2.2 as spot by Bryan
- Added 3 more debug info for missing clk and low clk-rate issue.
- Adding port info to ports sub-node
- Adding required-opps node to dt
- Link to v1: https://lore.kernel.org/r/[email protected]

--- b4-submit-tracking ---
# This section is used internally by b4 prep for tracking purposes.
{
  "series": {
    "revision": 2,
    "change-id": "20240621-b4-sc7180-camss-cddc6b60a9b4",
    "prefixes": [],
    "history": {
      "v1": [
        "[email protected]"
      ]
    }
  }
}
99degree pushed a commit that referenced this issue Jun 23, 2024
…git/netfilter/nf

Pablo Neira Ayuso says:

====================
Netfilter fixes for net

The following patchset contains Netfilter fixes for net:

Patch #1 fixes the suspicious RCU usage warning that resulted from the
	 recent fix for the race between namespace cleanup and gc in
	 ipset left out checking the pernet exit phase when calling
	 rcu_dereference_protected(), from Jozsef Kadlecsik.

Patch #2 fixes incorrect input and output netdevice in SRv6 prerouting
	 hooks, from Jianguo Wu.

Patch #3 moves nf_hooks_lwtunnel sysctl toggle to the netfilter core.
	 The connection tracking system is loaded on-demand, this
	 ensures availability of this knob regardless.

Patch #4-#5 adds selftests for SRv6 netfilter hooks also from Jianguo Wu.

netfilter pull request 24-06-19

* tag 'nf-24-06-19' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
  selftests: add selftest for the SRv6 End.DX6 behavior with netfilter
  selftests: add selftest for the SRv6 End.DX4 behavior with netfilter
  netfilter: move the sysctl nf_hooks_lwtunnel into the netfilter core
  seg6: fix parameter passing when calling NF_HOOK() in End.DX4 and End.DX6 behaviors
  netfilter: ipset: Fix suspicious rcu_dereference_protected()
====================

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Abeni <[email protected]>
99degree added a commit that referenced this issue Jun 24, 2024
SM7125 is the SoC found in the Xiaomi Redmi Note 9 Pro(joyeuse) cellphone.
This series adds support to bring up the CSIPHY, CSID, VFE/RDI interfaces.

Since SM7125 is a low-speed variant of SC7180, SC7180 testers please
take a look and have a test as well.

sc7180 provides

- 2 x VFE
- 1 x VFE Lite
- 2 x CSID
- 1 x CSID Lite
- 4 x CSI PHY

The sc7180-camss binding should be comaptible with sdm845 yaml.
I've copied a new yaml from sdm845-camss.yaml, strip all _src clk and
put new maintainer information. If this is not desirable then i can add binding to
existing sdm845 yaml instead.

In addition, a bootable tree of sm7125/joyeuse is availble at:
https://github.com/99degree/linux/tree/camss  

To: Robert Foss <[email protected]>
To: Todor Tomov <[email protected]>
To: Bryan O'Donoghue <[email protected]>
To: Mauro Carvalho Chehab <[email protected]>
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: Conor Dooley <[email protected]>
To: [email protected]
To: Bjorn Andersson <[email protected]>
To: Konrad Dybcio <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: George Chan <[email protected]>

---
Changes in v4:
- EDITME: describe what is new in this series revision.
- EDITME: use bulletpoints and terse descriptions.
- Link to v3: https://lore.kernel.org/r/[email protected]

Changes in v3:
- Rebased on [email protected] - Bryan
- Align email title to sc8280xp series - krzk
- Line-up dt-binding example ordering to same as qcom,sm8250-camss.yaml - krzk 
- Drop non-related patches #5 #6 torvalds#7, I will send follow-up patches later
- Add RFT tag to all patches, since no tested-by at all.
- Drop required-opps node from dt
- Link to v2: https://lore.kernel.org/r/[email protected]

Changes in v2:
- Revised dt-binding title - krzk
- Revised dt-binding maintainers - krzk
- Drop all dt-binding minItems - krzk
- Drops "|" symbol postfixed to description - krzk 
- Accending order of dt-binding required list - krzk
- Added dt-binding item power-domain-name - Bryan
- Reformat dt-binding example - krzk
- Move reg as 2nd property - krzk
- Move reg-names as 3nd property - krzk
- Reduce iommus maxItems to 3 - rob's bot
- Reduce clocks maxItems to 24 - rob's bot
- Combine patch #2 and #3 - krzk and Bryan
- Split eror-print log for clk name from #5 - Konrad
- Reformat dt-node - krzk
- Corrected phy init sequence for v1.2.2 - Bryan
- Added 3 more debug info for missing clk and low clk-rate issue.
- Adding port info to ports sub-node
- Adding required-opps node to dt
- Link to v1: https://lore.kernel.org/r/[email protected]

--- b4-submit-tracking ---
# This section is used internally by b4 prep for tracking purposes.
{
  "series": {
    "revision": 4,
    "change-id": "20240621-b4-sc7180-camss-cddc6b60a9b4",
    "prefixes": [
      "RFT"
    ],
    "history": {
      "v1": [
        "[email protected]"
      ],
      "v2": [
        "[email protected]"
      ],
      "v3": [
        "[email protected]"
      ]
    }
  }
}
99degree pushed a commit that referenced this issue Jun 27, 2024
The code in ocfs2_dio_end_io_write() estimates number of necessary
transaction credits using ocfs2_calc_extend_credits().  This however does
not take into account that the IO could be arbitrarily large and can
contain arbitrary number of extents.

Extent tree manipulations do often extend the current transaction but not
in all of the cases.  For example if we have only single block extents in
the tree, ocfs2_mark_extent_written() will end up calling
ocfs2_replace_extent_rec() all the time and we will never extend the
current transaction and eventually exhaust all the transaction credits if
the IO contains many single block extents.  Once that happens a
WARN_ON(jbd2_handle_buffer_credits(handle) <= 0) is triggered in
jbd2_journal_dirty_metadata() and subsequently OCFS2 aborts in response to
this error.  This was actually triggered by one of our customers on a
heavily fragmented OCFS2 filesystem.

To fix the issue make sure the transaction always has enough credits for
one extent insert before each call of ocfs2_mark_extent_written().

Heming Zhao said:

------
PANIC: "Kernel panic - not syncing: OCFS2: (device dm-1): panic forced after error"

PID: xxx  TASK: xxxx  CPU: 5  COMMAND: "SubmitThread-CA"
  #0 machine_kexec at ffffffff8c069932
  #1 __crash_kexec at ffffffff8c1338fa
  #2 panic at ffffffff8c1d69b9
  #3 ocfs2_handle_error at ffffffffc0c86c0c [ocfs2]
  #4 __ocfs2_abort at ffffffffc0c88387 [ocfs2]
  #5 ocfs2_journal_dirty at ffffffffc0c51e98 [ocfs2]
  #6 ocfs2_split_extent at ffffffffc0c27ea3 [ocfs2]
  torvalds#7 ocfs2_change_extent_flag at ffffffffc0c28053 [ocfs2]
  torvalds#8 ocfs2_mark_extent_written at ffffffffc0c28347 [ocfs2]
  torvalds#9 ocfs2_dio_end_io_write at ffffffffc0c2bef9 [ocfs2]
torvalds#10 ocfs2_dio_end_io at ffffffffc0c2c0f5 [ocfs2]
torvalds#11 dio_complete at ffffffff8c2b9fa7
torvalds#12 do_blockdev_direct_IO at ffffffff8c2bc09f
torvalds#13 ocfs2_direct_IO at ffffffffc0c2b653 [ocfs2]
torvalds#14 generic_file_direct_write at ffffffff8c1dcf14
torvalds#15 __generic_file_write_iter at ffffffff8c1dd07b
torvalds#16 ocfs2_file_write_iter at ffffffffc0c49f1f [ocfs2]
torvalds#17 aio_write at ffffffff8c2cc72e
torvalds#18 kmem_cache_alloc at ffffffff8c248dde
torvalds#19 do_io_submit at ffffffff8c2ccada
torvalds#20 do_syscall_64 at ffffffff8c004984
torvalds#21 entry_SYSCALL_64_after_hwframe at ffffffff8c8000ba

Link: https://lkml.kernel.org/r/[email protected]
Link: https://lkml.kernel.org/r/[email protected]
Fixes: c15471f ("ocfs2: fix sparse file & data ordering issue in direct io")
Signed-off-by: Jan Kara <[email protected]>
Reviewed-by: Joseph Qi <[email protected]>
Reviewed-by: Heming Zhao <[email protected]>
Cc: Mark Fasheh <[email protected]>
Cc: Joel Becker <[email protected]>
Cc: Junxiao Bi <[email protected]>
Cc: Changwei Ge <[email protected]>
Cc: Gang He <[email protected]>
Cc: Jun Piao <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
99degree pushed a commit that referenced this issue Aug 14, 2024
When l2tp tunnels use a socket provided by userspace, we can hit
lockdep splats like the below when data is transmitted through another
(unrelated) userspace socket which then gets routed over l2tp.

This issue was previously discussed here:
https://lore.kernel.org/netdev/[email protected]/

The solution is to have lockdep treat socket locks of l2tp tunnel
sockets separately than those of standard INET sockets. To do so, use
a different lockdep subclass where lock nesting is possible.

  ============================================
  WARNING: possible recursive locking detected
  6.10.0+ torvalds#34 Not tainted
  --------------------------------------------
  iperf3/771 is trying to acquire lock:
  ffff8881027601d8 (slock-AF_INET/1){+.-.}-{2:2}, at: l2tp_xmit_skb+0x243/0x9d0

  but task is already holding lock:
  ffff888102650d98 (slock-AF_INET/1){+.-.}-{2:2}, at: tcp_v4_rcv+0x1848/0x1e10

  other info that might help us debug this:
   Possible unsafe locking scenario:

         CPU0
         ----
    lock(slock-AF_INET/1);
    lock(slock-AF_INET/1);

   *** DEADLOCK ***

   May be due to missing lock nesting notation

  10 locks held by iperf3/771:
   #0: ffff888102650258 (sk_lock-AF_INET){+.+.}-{0:0}, at: tcp_sendmsg+0x1a/0x40
   #1: ffffffff822ac220 (rcu_read_lock){....}-{1:2}, at: __ip_queue_xmit+0x4b/0xbc0
   #2: ffffffff822ac220 (rcu_read_lock){....}-{1:2}, at: ip_finish_output2+0x17a/0x1130
   #3: ffffffff822ac220 (rcu_read_lock){....}-{1:2}, at: process_backlog+0x28b/0x9f0
   #4: ffffffff822ac220 (rcu_read_lock){....}-{1:2}, at: ip_local_deliver_finish+0xf9/0x260
   #5: ffff888102650d98 (slock-AF_INET/1){+.-.}-{2:2}, at: tcp_v4_rcv+0x1848/0x1e10
   #6: ffffffff822ac220 (rcu_read_lock){....}-{1:2}, at: __ip_queue_xmit+0x4b/0xbc0
   torvalds#7: ffffffff822ac220 (rcu_read_lock){....}-{1:2}, at: ip_finish_output2+0x17a/0x1130
   torvalds#8: ffffffff822ac1e0 (rcu_read_lock_bh){....}-{1:2}, at: __dev_queue_xmit+0xcc/0x1450
   torvalds#9: ffff888101f33258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock#2){+...}-{2:2}, at: __dev_queue_xmit+0x513/0x1450

  stack backtrace:
  CPU: 2 UID: 0 PID: 771 Comm: iperf3 Not tainted 6.10.0+ torvalds#34
  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
  Call Trace:
   <IRQ>
   dump_stack_lvl+0x69/0xa0
   dump_stack+0xc/0x20
   __lock_acquire+0x135d/0x2600
   ? srso_alias_return_thunk+0x5/0xfbef5
   lock_acquire+0xc4/0x2a0
   ? l2tp_xmit_skb+0x243/0x9d0
   ? __skb_checksum+0xa3/0x540
   _raw_spin_lock_nested+0x35/0x50
   ? l2tp_xmit_skb+0x243/0x9d0
   l2tp_xmit_skb+0x243/0x9d0
   l2tp_eth_dev_xmit+0x3c/0xc0
   dev_hard_start_xmit+0x11e/0x420
   sch_direct_xmit+0xc3/0x640
   __dev_queue_xmit+0x61c/0x1450
   ? ip_finish_output2+0xf4c/0x1130
   ip_finish_output2+0x6b6/0x1130
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? __ip_finish_output+0x217/0x380
   ? srso_alias_return_thunk+0x5/0xfbef5
   __ip_finish_output+0x217/0x380
   ip_output+0x99/0x120
   __ip_queue_xmit+0xae4/0xbc0
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? tcp_options_write.constprop.0+0xcb/0x3e0
   ip_queue_xmit+0x34/0x40
   __tcp_transmit_skb+0x1625/0x1890
   __tcp_send_ack+0x1b8/0x340
   tcp_send_ack+0x23/0x30
   __tcp_ack_snd_check+0xa8/0x530
   ? srso_alias_return_thunk+0x5/0xfbef5
   tcp_rcv_established+0x412/0xd70
   tcp_v4_do_rcv+0x299/0x420
   tcp_v4_rcv+0x1991/0x1e10
   ip_protocol_deliver_rcu+0x50/0x220
   ip_local_deliver_finish+0x158/0x260
   ip_local_deliver+0xc8/0xe0
   ip_rcv+0xe5/0x1d0
   ? __pfx_ip_rcv+0x10/0x10
   __netif_receive_skb_one_core+0xce/0xe0
   ? process_backlog+0x28b/0x9f0
   __netif_receive_skb+0x34/0xd0
   ? process_backlog+0x28b/0x9f0
   process_backlog+0x2cb/0x9f0
   __napi_poll.constprop.0+0x61/0x280
   net_rx_action+0x332/0x670
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? find_held_lock+0x2b/0x80
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? srso_alias_return_thunk+0x5/0xfbef5
   handle_softirqs+0xda/0x480
   ? __dev_queue_xmit+0xa2c/0x1450
   do_softirq+0xa1/0xd0
   </IRQ>
   <TASK>
   __local_bh_enable_ip+0xc8/0xe0
   ? __dev_queue_xmit+0xa2c/0x1450
   __dev_queue_xmit+0xa48/0x1450
   ? ip_finish_output2+0xf4c/0x1130
   ip_finish_output2+0x6b6/0x1130
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? __ip_finish_output+0x217/0x380
   ? srso_alias_return_thunk+0x5/0xfbef5
   __ip_finish_output+0x217/0x380
   ip_output+0x99/0x120
   __ip_queue_xmit+0xae4/0xbc0
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? tcp_options_write.constprop.0+0xcb/0x3e0
   ip_queue_xmit+0x34/0x40
   __tcp_transmit_skb+0x1625/0x1890
   tcp_write_xmit+0x766/0x2fb0
   ? __entry_text_end+0x102ba9/0x102bad
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? __might_fault+0x74/0xc0
   ? srso_alias_return_thunk+0x5/0xfbef5
   __tcp_push_pending_frames+0x56/0x190
   tcp_push+0x117/0x310
   tcp_sendmsg_locked+0x14c1/0x1740
   tcp_sendmsg+0x28/0x40
   inet_sendmsg+0x5d/0x90
   sock_write_iter+0x242/0x2b0
   vfs_write+0x68d/0x800
   ? __pfx_sock_write_iter+0x10/0x10
   ksys_write+0xc8/0xf0
   __x64_sys_write+0x3d/0x50
   x64_sys_call+0xfaf/0x1f50
   do_syscall_64+0x6d/0x140
   entry_SYSCALL_64_after_hwframe+0x76/0x7e
  RIP: 0033:0x7f4d143af992
  Code: c3 8b 07 85 c0 75 24 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> e9 01 cc ff ff 41 54 b8 02 00 00 0
  RSP: 002b:00007ffd65032058 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
  RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 00007f4d143af992
  RDX: 0000000000000025 RSI: 00007f4d143f3bcc RDI: 0000000000000005
  RBP: 00007f4d143f2b28 R08: 0000000000000000 R09: 0000000000000000
  R10: 0000000000000000 R11: 0000000000000246 R12: 00007f4d143f3bcc
  R13: 0000000000000005 R14: 0000000000000000 R15: 00007ffd650323f0
   </TASK>

Fixes: 0b2c597 ("l2tp: close all race conditions in l2tp_tunnel_register()")
Suggested-by: Eric Dumazet <[email protected]>
Reported-by: [email protected]
Closes: https://syzkaller.appspot.com/bug?extid=6acef9e0a4d1f46c83d4
CC: [email protected]
CC: [email protected]
Signed-off-by: James Chapman <[email protected]>
Signed-off-by: Tom Parkin <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
99degree pushed a commit that referenced this issue Aug 17, 2024
Lockdep reported a warning in Linux version 6.6:

[  414.344659] ================================
[  414.345155] WARNING: inconsistent lock state
[  414.345658] 6.6.0-07439-gba2303cacfda #6 Not tainted
[  414.346221] --------------------------------
[  414.346712] inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage.
[  414.347545] kworker/u10:3/1152 [HC0[0]:SC0[0]:HE0:SE1] takes:
[  414.349245] ffff88810edd1098 (&sbq->ws[i].wait){+.?.}-{2:2}, at: blk_mq_dispatch_rq_list+0x131c/0x1ee0
[  414.351204] {IN-SOFTIRQ-W} state was registered at:
[  414.351751]   lock_acquire+0x18d/0x460
[  414.352218]   _raw_spin_lock_irqsave+0x39/0x60
[  414.352769]   __wake_up_common_lock+0x22/0x60
[  414.353289]   sbitmap_queue_wake_up+0x375/0x4f0
[  414.353829]   sbitmap_queue_clear+0xdd/0x270
[  414.354338]   blk_mq_put_tag+0xdf/0x170
[  414.354807]   __blk_mq_free_request+0x381/0x4d0
[  414.355335]   blk_mq_free_request+0x28b/0x3e0
[  414.355847]   __blk_mq_end_request+0x242/0xc30
[  414.356367]   scsi_end_request+0x2c1/0x830
[  414.345155] WARNING: inconsistent lock state
[  414.345658] 6.6.0-07439-gba2303cacfda #6 Not tainted
[  414.346221] --------------------------------
[  414.346712] inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage.
[  414.347545] kworker/u10:3/1152 [HC0[0]:SC0[0]:HE0:SE1] takes:
[  414.349245] ffff88810edd1098 (&sbq->ws[i].wait){+.?.}-{2:2}, at: blk_mq_dispatch_rq_list+0x131c/0x1ee0
[  414.351204] {IN-SOFTIRQ-W} state was registered at:
[  414.351751]   lock_acquire+0x18d/0x460
[  414.352218]   _raw_spin_lock_irqsave+0x39/0x60
[  414.352769]   __wake_up_common_lock+0x22/0x60
[  414.353289]   sbitmap_queue_wake_up+0x375/0x4f0
[  414.353829]   sbitmap_queue_clear+0xdd/0x270
[  414.354338]   blk_mq_put_tag+0xdf/0x170
[  414.354807]   __blk_mq_free_request+0x381/0x4d0
[  414.355335]   blk_mq_free_request+0x28b/0x3e0
[  414.355847]   __blk_mq_end_request+0x242/0xc30
[  414.356367]   scsi_end_request+0x2c1/0x830
[  414.356863]   scsi_io_completion+0x177/0x1610
[  414.357379]   scsi_complete+0x12f/0x260
[  414.357856]   blk_complete_reqs+0xba/0xf0
[  414.358338]   __do_softirq+0x1b0/0x7a2
[  414.358796]   irq_exit_rcu+0x14b/0x1a0
[  414.359262]   sysvec_call_function_single+0xaf/0xc0
[  414.359828]   asm_sysvec_call_function_single+0x1a/0x20
[  414.360426]   default_idle+0x1e/0x30
[  414.360873]   default_idle_call+0x9b/0x1f0
[  414.361390]   do_idle+0x2d2/0x3e0
[  414.361819]   cpu_startup_entry+0x55/0x60
[  414.362314]   start_secondary+0x235/0x2b0
[  414.362809]   secondary_startup_64_no_verify+0x18f/0x19b
[  414.363413] irq event stamp: 428794
[  414.363825] hardirqs last  enabled at (428793): [<ffffffff816bfd1c>] ktime_get+0x1dc/0x200
[  414.364694] hardirqs last disabled at (428794): [<ffffffff85470177>] _raw_spin_lock_irq+0x47/0x50
[  414.365629] softirqs last  enabled at (428444): [<ffffffff85474780>] __do_softirq+0x540/0x7a2
[  414.366522] softirqs last disabled at (428419): [<ffffffff813f65ab>] irq_exit_rcu+0x14b/0x1a0
[  414.367425]
               other info that might help us debug this:
[  414.368194]  Possible unsafe locking scenario:
[  414.368900]        CPU0
[  414.369225]        ----
[  414.369548]   lock(&sbq->ws[i].wait);
[  414.370000]   <Interrupt>
[  414.370342]     lock(&sbq->ws[i].wait);
[  414.370802]
                *** DEADLOCK ***
[  414.371569] 5 locks held by kworker/u10:3/1152:
[  414.372088]  #0: ffff88810130e938 ((wq_completion)writeback){+.+.}-{0:0}, at: process_scheduled_works+0x357/0x13f0
[  414.373180]  #1: ffff88810201fdb8 ((work_completion)(&(&wb->dwork)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x3a3/0x13f0
[  414.374384]  #2: ffffffff86ffbdc0 (rcu_read_lock){....}-{1:2}, at: blk_mq_run_hw_queue+0x637/0xa00
[  414.375342]  #3: ffff88810edd1098 (&sbq->ws[i].wait){+.?.}-{2:2}, at: blk_mq_dispatch_rq_list+0x131c/0x1ee0
[  414.376377]  #4: ffff888106205a08 (&hctx->dispatch_wait_lock){+.-.}-{2:2}, at: blk_mq_dispatch_rq_list+0x1337/0x1ee0
[  414.378607]
               stack backtrace:
[  414.379177] CPU: 0 PID: 1152 Comm: kworker/u10:3 Not tainted 6.6.0-07439-gba2303cacfda #6
[  414.380032] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014
[  414.381177] Workqueue: writeback wb_workfn (flush-253:0)
[  414.381805] Call Trace:
[  414.382136]  <TASK>
[  414.382429]  dump_stack_lvl+0x91/0xf0
[  414.382884]  mark_lock_irq+0xb3b/0x1260
[  414.383367]  ? __pfx_mark_lock_irq+0x10/0x10
[  414.383889]  ? stack_trace_save+0x8e/0xc0
[  414.384373]  ? __pfx_stack_trace_save+0x10/0x10
[  414.384903]  ? graph_lock+0xcf/0x410
[  414.385350]  ? save_trace+0x3d/0xc70
[  414.385808]  mark_lock.part.20+0x56d/0xa90
[  414.386317]  mark_held_locks+0xb0/0x110
[  414.386791]  ? __pfx_do_raw_spin_lock+0x10/0x10
[  414.387320]  lockdep_hardirqs_on_prepare+0x297/0x3f0
[  414.387901]  ? _raw_spin_unlock_irq+0x28/0x50
[  414.388422]  trace_hardirqs_on+0x58/0x100
[  414.388917]  _raw_spin_unlock_irq+0x28/0x50
[  414.389422]  __blk_mq_tag_busy+0x1d6/0x2a0
[  414.389920]  __blk_mq_get_driver_tag+0x761/0x9f0
[  414.390899]  blk_mq_dispatch_rq_list+0x1780/0x1ee0
[  414.391473]  ? __pfx_blk_mq_dispatch_rq_list+0x10/0x10
[  414.392070]  ? sbitmap_get+0x2b8/0x450
[  414.392533]  ? __blk_mq_get_driver_tag+0x210/0x9f0
[  414.393095]  __blk_mq_sched_dispatch_requests+0xd99/0x1690
[  414.393730]  ? elv_attempt_insert_merge+0x1b1/0x420
[  414.394302]  ? __pfx___blk_mq_sched_dispatch_requests+0x10/0x10
[  414.394970]  ? lock_acquire+0x18d/0x460
[  414.395456]  ? blk_mq_run_hw_queue+0x637/0xa00
[  414.395986]  ? __pfx_lock_acquire+0x10/0x10
[  414.396499]  blk_mq_sched_dispatch_requests+0x109/0x190
[  414.397100]  blk_mq_run_hw_queue+0x66e/0xa00
[  414.397616]  blk_mq_flush_plug_list.part.17+0x614/0x2030
[  414.398244]  ? __pfx_blk_mq_flush_plug_list.part.17+0x10/0x10
[  414.398897]  ? writeback_sb_inodes+0x241/0xcc0
[  414.399429]  blk_mq_flush_plug_list+0x65/0x80
[  414.399957]  __blk_flush_plug+0x2f1/0x530
[  414.400458]  ? __pfx___blk_flush_plug+0x10/0x10
[  414.400999]  blk_finish_plug+0x59/0xa0
[  414.401467]  wb_writeback+0x7cc/0x920
[  414.401935]  ? __pfx_wb_writeback+0x10/0x10
[  414.402442]  ? mark_held_locks+0xb0/0x110
[  414.402931]  ? __pfx_do_raw_spin_lock+0x10/0x10
[  414.403462]  ? lockdep_hardirqs_on_prepare+0x297/0x3f0
[  414.404062]  wb_workfn+0x2b3/0xcf0
[  414.404500]  ? __pfx_wb_workfn+0x10/0x10
[  414.404989]  process_scheduled_works+0x432/0x13f0
[  414.405546]  ? __pfx_process_scheduled_works+0x10/0x10
[  414.406139]  ? do_raw_spin_lock+0x101/0x2a0
[  414.406641]  ? assign_work+0x19b/0x240
[  414.407106]  ? lock_is_held_type+0x9d/0x110
[  414.407604]  worker_thread+0x6f2/0x1160
[  414.408075]  ? __kthread_parkme+0x62/0x210
[  414.408572]  ? lockdep_hardirqs_on_prepare+0x297/0x3f0
[  414.409168]  ? __kthread_parkme+0x13c/0x210
[  414.409678]  ? __pfx_worker_thread+0x10/0x10
[  414.410191]  kthread+0x33c/0x440
[  414.410602]  ? __pfx_kthread+0x10/0x10
[  414.411068]  ret_from_fork+0x4d/0x80
[  414.411526]  ? __pfx_kthread+0x10/0x10
[  414.411993]  ret_from_fork_asm+0x1b/0x30
[  414.412489]  </TASK>

When interrupt is turned on while a lock holding by spin_lock_irq it
throws a warning because of potential deadlock.

blk_mq_prep_dispatch_rq
 blk_mq_get_driver_tag
  __blk_mq_get_driver_tag
   __blk_mq_alloc_driver_tag
    blk_mq_tag_busy -> tag is already busy
    // failed to get driver tag
 blk_mq_mark_tag_wait
  spin_lock_irq(&wq->lock) -> lock A (&sbq->ws[i].wait)
  __add_wait_queue(wq, wait) -> wait queue active
  blk_mq_get_driver_tag
  __blk_mq_tag_busy
-> 1) tag must be idle, which means there can't be inflight IO
   spin_lock_irq(&tags->lock) -> lock B (hctx->tags)
   spin_unlock_irq(&tags->lock) -> unlock B, turn on interrupt accidentally
-> 2) context must be preempt by IO interrupt to trigger deadlock.

As shown above, the deadlock is not possible in theory, but the warning
still need to be fixed.

Fix it by using spin_lock_irqsave to get lockB instead of spin_lock_irq.

Fixes: 4f1731d ("blk-mq: fix potential io hang by wrong 'wake_batch'")
Signed-off-by: Li Lingfeng <[email protected]>
Reviewed-by: Ming Lei <[email protected]>
Reviewed-by: Yu Kuai <[email protected]>
Reviewed-by: Bart Van Assche <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jens Axboe <[email protected]>
99degree added a commit that referenced this issue Aug 17, 2024
SM7125 is the SoC found in the Xiaomi Redmi Note 9 Pro(joyeuse) cellphone.
This series adds support to bring up the CSIPHY, CSID, VFE/RDI interfaces.

Since SM7125 is a low-speed variant of SC7180, SC7180 testers please
take a look and have a test as well.

sc7180 provides

- 2 x VFE
- 1 x VFE Lite
- 2 x CSID
- 1 x CSID Lite
- 4 x CSI PHY

The sc7180-camss binding should be comaptible with sdm845 yaml.
I've copied a new yaml from sdm845-camss.yaml, strip all _src clk and
put new maintainer information. If this is not desirable then i can add binding to
existing sdm845 yaml instead.

In addition, a bootable tree of sm7125/joyeuse is availble at:
https://github.com/99degree/linux/tree/camss
  

To: Robert Foss <[email protected]>
To: Todor Tomov <[email protected]>
To: Bryan O'Donoghue <[email protected]>
To: Mauro Carvalho Chehab <[email protected]>
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: Conor Dooley <[email protected]>
To: [email protected]
To: Bjorn Andersson <[email protected]>
To: Konrad Dybcio <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: George Chan <[email protected]>

---
Changes in v3:
- Align email title to sc8280xp series - krzk
- Line-up dt-binding example ordering to same as qcom,sm8250-camss.yaml - krzk 
- Drop non-related patches #5 #6 torvalds#7
- Add RFT tag to all patches, since no tested-by at all.
- Drop required-opps node from dt
- Link to v2: https://lore.kernel.org/r/[email protected]

Changes in v2:
- Revised dt-binding title - krzk
- Revised dt-binding maintainers - krzk
- Drop all dt-binding minItems - krzk
- Drops "|" symbol postfixed to description - krzk 
- Accending order of dt-binding required list - krzk
- Added dt-binding item power-domain-name - Bryan
- Reformat dt-binding example - krzk
- Move reg as 2nd property - krzk
- Move reg-names as 3nd property - krzk
- Reduce iommus maxItems to 3 - rob's bot
- Reduce clocks maxItems to 24 - rob's bot
- Combine patch #2 and #3 - krzk and Bryan
- Split eror-print log for clk name from #5 - Konrad
- Reformat dt-node - krzk
- Corrected phy init sequence for v1.2.2 - Bryan
- Added 3 more debug info for missing clk and low clk-rate issue.
- Adding port info to ports sub-node
- Adding required-opps node to dt
- Link to v1: https://lore.kernel.org/r/[email protected]

--- b4-submit-tracking ---
# This section is used internally by b4 prep for tracking purposes.
{
  "series": {
    "revision": 3,
    "change-id": "20240621-b4-sc7180-camss-cddc6b60a9b4",
    "prefixes": [
      "RFT"
    ],
    "history": {
      "v1": [
        "[email protected]"
      ],
      "v2": [
        "[email protected]"
      ]
    }
  }
}
99degree added a commit that referenced this issue Aug 17, 2024
SM7125 is the SoC found in the Xiaomi Redmi Note 9 Pro(joyeuse) cellphone.
This series adds support to bring up the CSIPHY, CSID, VFE/RDI interfaces.

Since SM7125 is a low-speed variant of SC7180, SC7180 testers please
take a look and have a test as well.

sc7180 provides

- 2 x VFE
- 1 x VFE Lite
- 2 x CSID
- 1 x CSID Lite
- 4 x CSI PHY

The sc7180-camss binding should be comaptible with sdm845 yaml.
I've copied a new yaml from sdm845-camss.yaml, strip all _src clk and
put new maintainer information. If this is not desirable then i can add binding to
existing sdm845 yaml instead.

In addition, a bootable tree of sm7125/joyeuse is availble at:
https://github.com/99degree/linux/tree/camss
  

To: Robert Foss <[email protected]>
To: Todor Tomov <[email protected]>
To: Bryan O'Donoghue <[email protected]>
To: Mauro Carvalho Chehab <[email protected]>
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: Conor Dooley <[email protected]>
To: [email protected]
To: Bjorn Andersson <[email protected]>
To: Konrad Dybcio <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: George Chan <[email protected]>

---
Changes in v3:
- Set proper email title manually again to all patches - krzk
- Line-up dt-binding example ordering to same as qcom,sm8250-camss.yaml - krzk 
- Drop non-related patches #5 #6 torvalds#7
- Add RFT tag to all patches, since no tested-by at all.
- Drop required-opps node from dt
- Link to v2: https://lore.kernel.org/r/[email protected]

Changes in v2:
- Revised dt-binding title - krzk
- Revised dt-binding maintainers - krzk
- Drop all dt-binding minItems - krzk
- Drops "|" symbol postfixed to description - krzk 
- Accending order of dt-binding required list - krzk
- Added dt-binding item power-domain-name - Bryan
- Reformat dt-binding example - krzk
- Move reg as 2nd property - krzk
- Move reg-names as 3nd property - krzk
- Reduce iommus maxItems to 3 - rob's bot
- Reduce clocks maxItems to 24 - rob's bot
- Combine patch #2 and #3 - krzk and Bryan
- Split eror-print log for clk name from #5 - Konrad
- Reformat dt-node - krzk
- Corrected phy init sequence for v1.2.2 - Bryan
- Added 3 more debug info for missing clk and low clk-rate issue.
- Adding port info to ports sub-node
- Adding required-opps node to dt
- Link to v1: https://lore.kernel.org/r/[email protected]

--- b4-submit-tracking ---
# This section is used internally by b4 prep for tracking purposes.
{
  "series": {
    "revision": 3,
    "change-id": "20240621-b4-sc7180-camss-cddc6b60a9b4",
    "prefixes": [
      "RFT"
    ],
    "history": {
      "v1": [
        "[email protected]"
      ],
      "v2": [
        "[email protected]"
      ]
    }
  }
}
99degree added a commit that referenced this issue Aug 17, 2024
SM7125 is the SoC found in the Xiaomi Redmi Note 9 Pro(joyeuse) cellphone.
This series adds support to bring up the CSIPHY, CSID, VFE/RDI interfaces.

Since SM7125 is a low-speed variant of SC7180, SC7180 testers please
take a look and have a test as well.

sc7180 provides

- 2 x VFE
- 1 x VFE Lite
- 2 x CSID
- 1 x CSID Lite
- 4 x CSI PHY

The sc7180-camss binding should be comaptible with sdm845 yaml.
I've copied a new yaml from sdm845-camss.yaml, strip all _src clk and
put new maintainer information. If this is not desirable then i can add binding to
existing sdm845 yaml instead.

In addition, a bootable tree of sm7125/joyeuse is availble at:
https://github.com/99degree/linux/tree/camss  

To: Robert Foss <[email protected]>
To: Todor Tomov <[email protected]>
To: Bryan O'Donoghue <[email protected]>
To: Mauro Carvalho Chehab <[email protected]>
To: Rob Herring <[email protected]>
To: Krzysztof Kozlowski <[email protected]>
To: Conor Dooley <[email protected]>
To: [email protected]
To: Bjorn Andersson <[email protected]>
To: Konrad Dybcio <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: George Chan <[email protected]>

---
Changes in v3:
- Rebased on [email protected] - Bryan
- Align email title to sc8280xp series - krzk
- Line-up dt-binding example ordering to same as qcom,sm8250-camss.yaml - krzk 
- Drop non-related patches #5 #6 torvalds#7
- Add RFT tag to all patches, since no tested-by at all.
- Drop required-opps node from dt
- Link to v2: https://lore.kernel.org/r/[email protected]

Changes in v2:
- Revised dt-binding title - krzk
- Revised dt-binding maintainers - krzk
- Drop all dt-binding minItems - krzk
- Drops "|" symbol postfixed to description - krzk 
- Accending order of dt-binding required list - krzk
- Added dt-binding item power-domain-name - Bryan
- Reformat dt-binding example - krzk
- Move reg as 2nd property - krzk
- Move reg-names as 3nd property - krzk
- Reduce iommus maxItems to 3 - rob's bot
- Reduce clocks maxItems to 24 - rob's bot
- Combine patch #2 and #3 - krzk and Bryan
- Split eror-print log for clk name from #5 - Konrad
- Reformat dt-node - krzk
- Corrected phy init sequence for v1.2.2 - Bryan
- Added 3 more debug info for missing clk and low clk-rate issue.
- Adding port info to ports sub-node
- Adding required-opps node to dt
- Link to v1: https://lore.kernel.org/r/[email protected]

--- b4-submit-tracking ---
# This section is used internally by b4 prep for tracking purposes.
{
  "series": {
    "revision": 3,
    "change-id": "20240621-b4-sc7180-camss-cddc6b60a9b4",
    "prefixes": [
      "RFT"
    ],
    "history": {
      "v1": [
        "[email protected]"
      ],
      "v2": [
        "[email protected]"
      ]
    }
  }
}
99degree pushed a commit that referenced this issue Aug 28, 2024
…git/netfilter/nf

Pablo Neira Ayuso says:

====================
Netfilter fixes for net

The following patchset contains Netfilter fixes for net:

Patch #1 disable BH when collecting stats via hardware offload to ensure
         concurrent updates from packet path do not result in losing stats.
         From Sebastian Andrzej Siewior.

Patch #2 uses write seqcount to reset counters serialize against reader.
         Also from Sebastian Andrzej Siewior.

Patch #3 ensures vlan header is in place before accessing its fields,
         according to KMSAN splat triggered by syzbot.

* tag 'nf-24-08-22' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
  netfilter: flowtable: validate vlan header
  netfilter: nft_counter: Synchronize nft_counter_reset() against reader.
  netfilter: nft_counter: Disable BH in nft_counter_offload_stats().
====================

Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
99degree pushed a commit that referenced this issue Oct 13, 2024
On the node of an NFS client, some files saved in the mountpoint of the
NFS server were copied to another location of the same NFS server.
Accidentally, the nfs42_complete_copies() got a NULL-pointer dereference
crash with the following syslog:

[232064.838881] NFSv4: state recovery failed for open file nfs/pvc-12b5200d-cd0f-46a3-b9f0-af8f4fe0ef64.qcow2, error = -116
[232064.839360] NFSv4: state recovery failed for open file nfs/pvc-12b5200d-cd0f-46a3-b9f0-af8f4fe0ef64.qcow2, error = -116
[232066.588183] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000058
[232066.588586] Mem abort info:
[232066.588701]   ESR = 0x0000000096000007
[232066.588862]   EC = 0x25: DABT (current EL), IL = 32 bits
[232066.589084]   SET = 0, FnV = 0
[232066.589216]   EA = 0, S1PTW = 0
[232066.589340]   FSC = 0x07: level 3 translation fault
[232066.589559] Data abort info:
[232066.589683]   ISV = 0, ISS = 0x00000007
[232066.589842]   CM = 0, WnR = 0
[232066.589967] user pgtable: 64k pages, 48-bit VAs, pgdp=00002000956ff400
[232066.590231] [0000000000000058] pgd=08001100ae100003, p4d=08001100ae100003, pud=08001100ae100003, pmd=08001100b3c00003, pte=0000000000000000
[232066.590757] Internal error: Oops: 96000007 [#1] SMP
[232066.590958] Modules linked in: rpcsec_gss_krb5 auth_rpcgss nfsv4 dns_resolver nfs lockd grace fscache netfs ocfs2_dlmfs ocfs2_stack_o2cb ocfs2_dlm vhost_net vhost vhost_iotlb tap tun ipt_rpfilter xt_multiport ip_set_hash_ip ip_set_hash_net xfrm_interface xfrm6_tunnel tunnel4 tunnel6 esp4 ah4 wireguard libcurve25519_generic veth xt_addrtype xt_set nf_conntrack_netlink ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_bitmap_port ip_set_hash_ipport dummy ip_set ip_vs_sh ip_vs_wrr ip_vs_rr ip_vs iptable_filter sch_ingress nfnetlink_cttimeout vport_gre ip_gre ip_tunnel gre vport_geneve geneve vport_vxlan vxlan ip6_udp_tunnel udp_tunnel openvswitch nf_conncount dm_round_robin dm_service_time dm_multipath xt_nat xt_MASQUERADE nft_chain_nat nf_nat xt_mark xt_conntrack xt_comment nft_compat nft_counter nf_tables nfnetlink ocfs2 ocfs2_nodemanager ocfs2_stackglue iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ipmi_ssif nbd overlay 8021q garp mrp bonding tls rfkill sunrpc ext4 mbcache jbd2
[232066.591052]  vfat fat cas_cache cas_disk ses enclosure scsi_transport_sas sg acpi_ipmi ipmi_si ipmi_devintf ipmi_msghandler ip_tables vfio_pci vfio_pci_core vfio_virqfd vfio_iommu_type1 vfio dm_mirror dm_region_hash dm_log dm_mod nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 br_netfilter bridge stp llc fuse xfs libcrc32c ast drm_vram_helper qla2xxx drm_kms_helper syscopyarea crct10dif_ce sysfillrect ghash_ce sysimgblt sha2_ce fb_sys_fops cec sha256_arm64 sha1_ce drm_ttm_helper ttm nvme_fc igb sbsa_gwdt nvme_fabrics drm nvme_core i2c_algo_bit i40e scsi_transport_fc megaraid_sas aes_neon_bs
[232066.596953] CPU: 6 PID: 4124696 Comm: 10.253.166.125- Kdump: loaded Not tainted 5.15.131-9.cl9_ocfs2.aarch64 #1
[232066.597356] Hardware name: Great Wall .\x93\x8e...RF6260 V5/GWMSSE2GL1T, BIOS T656FBE_V3.0.18 2024-01-06
[232066.597721] pstate: 20400009 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[232066.598034] pc : nfs4_reclaim_open_state+0x220/0x800 [nfsv4]
[232066.598327] lr : nfs4_reclaim_open_state+0x12c/0x800 [nfsv4]
[232066.598595] sp : ffff8000f568fc70
[232066.598731] x29: ffff8000f568fc70 x28: 0000000000001000 x27: ffff21003db33000
[232066.599030] x26: ffff800005521ae0 x25: ffff0100f98fa3f0 x24: 0000000000000001
[232066.599319] x23: ffff800009920008 x22: ffff21003db33040 x21: ffff21003db33050
[232066.599628] x20: ffff410172fe9e40 x19: ffff410172fe9e00 x18: 0000000000000000
[232066.599914] x17: 0000000000000000 x16: 0000000000000004 x15: 0000000000000000
[232066.600195] x14: 0000000000000000 x13: ffff800008e685a8 x12: 00000000eac0c6e6
[232066.600498] x11: 0000000000000000 x10: 0000000000000008 x9 : ffff8000054e5828
[232066.600784] x8 : 00000000ffffffbf x7 : 0000000000000001 x6 : 000000000a9eb14a
[232066.601062] x5 : 0000000000000000 x4 : ffff70ff8a14a800 x3 : 0000000000000058
[232066.601348] x2 : 0000000000000001 x1 : 54dce46366daa6c6 x0 : 0000000000000000
[232066.601636] Call trace:
[232066.601749]  nfs4_reclaim_open_state+0x220/0x800 [nfsv4]
[232066.601998]  nfs4_do_reclaim+0x1b8/0x28c [nfsv4]
[232066.602218]  nfs4_state_manager+0x928/0x10f0 [nfsv4]
[232066.602455]  nfs4_run_state_manager+0x78/0x1b0 [nfsv4]
[232066.602690]  kthread+0x110/0x114
[232066.602830]  ret_from_fork+0x10/0x20
[232066.602985] Code: 1400000d f9403f20 f9402e61 91016003 (f9402c00)
[232066.603284] SMP: stopping secondary CPUs
[232066.606936] Starting crashdump kernel...
[232066.607146] Bye!

Analysing the vmcore, we know that nfs4_copy_state listed by destination
nfs_server->ss_copies was added by the field copies in handle_async_copy(),
and we found a waiting copy process with the stack as:
PID: 3511963  TASK: ffff710028b47e00  CPU: 0   COMMAND: "cp"
 #0 [ffff8001116ef740] __switch_to at ffff8000081b92f4
 #1 [ffff8001116ef760] __schedule at ffff800008dd0650
 #2 [ffff8001116ef7c0] schedule at ffff800008dd0a00
 #3 [ffff8001116ef7e0] schedule_timeout at ffff800008dd6aa0
 #4 [ffff8001116ef860] __wait_for_common at ffff800008dd166c
 #5 [ffff8001116ef8e0] wait_for_completion_interruptible at ffff800008dd1898
 #6 [ffff8001116ef8f0] handle_async_copy at ffff8000055142f4 [nfsv4]
 torvalds#7 [ffff8001116ef970] _nfs42_proc_copy at ffff8000055147c8 [nfsv4]
 torvalds#8 [ffff8001116efa80] nfs42_proc_copy at ffff800005514cf0 [nfsv4]
 torvalds#9 [ffff8001116efc50] __nfs4_copy_file_range.constprop.0 at ffff8000054ed694 [nfsv4]

The NULL-pointer dereference was due to nfs42_complete_copies() listed
the nfs_server->ss_copies by the field ss_copies of nfs4_copy_state.
So the nfs4_copy_state address ffff0100f98fa3f0 was offset by 0x10 and
the data accessed through this pointer was also incorrect. Generally,
the ordered list nfs4_state_owner->so_states indicate open(O_RDWR) or
open(O_WRITE) states are reclaimed firstly by nfs4_reclaim_open_state().
When destination state reclaim is failed with NFS_STATE_RECOVERY_FAILED
and copies are not deleted in nfs_server->ss_copies, the source state
may be passed to the nfs42_complete_copies() process earlier, resulting
in this crash scene finally. To solve this issue, we add a list_head
nfs_server->ss_src_copies for a server-to-server copy specially.

Fixes: 0e65a32 ("NFS: handle source server reboot")
Signed-off-by: Yanjun Zhang <[email protected]>
Reviewed-by: Trond Myklebust <[email protected]>
Signed-off-by: Anna Schumaker <[email protected]>
99degree pushed a commit that referenced this issue Oct 15, 2024
…git/netfilter/nf

Pablo Neira Ayuso says:

====================
Netfilter fixes for net

v2: with kdoc fixes per Paolo Abeni.

The following patchset contains Netfilter fixes for net:

Patch #1 and #2 handle an esoteric scenario: Given two tasks sending UDP
packets to one another, two packets of the same flow in each direction
handled by different CPUs that result in two conntrack objects in NEW
state, where reply packet loses race. Then, patch #3 adds a testcase for
this scenario. Series from Florian Westphal.

1) NAT engine can falsely detect a port collision if it happens to pick
   up a reply packet as NEW rather than ESTABLISHED. Add extra code to
   detect this and suppress port reallocation in this case.

2) To complete the clash resolution in the reply direction, extend conntrack
   logic to detect clashing conntrack in the reply direction to existing entry.

3) Adds a test case.

Then, an assorted list of fixes follow:

4) Add a selftest for tproxy, from Antonio Ojea.

5) Guard ctnetlink_*_size() functions under
   #if defined(CONFIG_NETFILTER_NETLINK_GLUE_CT) || defined(CONFIG_NF_CONNTRACK_EVENTS)
   From Andy Shevchenko.

6) Use -m socket --transparent in iptables tproxy documentation.
   From XIE Zhibang.

7) Call kfree_rcu() when releasing flowtable hooks to address race with
   netlink dump path, from Phil Sutter.

8) Fix compilation warning in nf_reject with CONFIG_BRIDGE_NETFILTER=n.
   From Simon Horman.

9) Guard ctnetlink_label_size() under CONFIG_NF_CONNTRACK_EVENTS which
   is its only user, to address a compilation warning. From Simon Horman.

10) Use rcu-protected list iteration over basechain hooks from netlink
    dump path.

11) Fix memcg for nf_tables, use GFP_KERNEL_ACCOUNT is not complete.

12) Remove old nfqueue conntrack clash resolution. Instead trying to
    use same destination address consistently which requires double DNAT,
    use the existing clash resolution which allows clashing packets
    go through with different destination. Antonio Ojea originally
    reported an issue from the postrouting chain, I proposed a fix:
    https://lore.kernel.org/netfilter-devel/ZuwSwAqKgCB2a51-@calendula/T/
    which he reported it did not work for him.

13) Adds a selftest for patch 12.

14) Fixes ipvs.sh selftest.

netfilter pull request 24-09-26

* tag 'nf-24-09-26' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
  selftests: netfilter: Avoid hanging ipvs.sh
  kselftest: add test for nfqueue induced conntrack race
  netfilter: nfnetlink_queue: remove old clash resolution logic
  netfilter: nf_tables: missing objects with no memcg accounting
  netfilter: nf_tables: use rcu chain hook list iterator from netlink dump path
  netfilter: ctnetlink: compile ctnetlink_label_size with CONFIG_NF_CONNTRACK_EVENTS
  netfilter: nf_reject: Fix build warning when CONFIG_BRIDGE_NETFILTER=n
  netfilter: nf_tables: Keep deleted flowtable hooks until after RCU
  docs: tproxy: ignore non-transparent sockets in iptables
  netfilter: ctnetlink: Guard possible unused functions
  selftests: netfilter: nft_tproxy.sh: add tcp tests
  selftests: netfilter: add reverse-clash resolution test case
  netfilter: conntrack: add clash resolution for reverse collisions
  netfilter: nf_nat: don't try nat source port reallocation for reverse dir clash
====================

Link: https://patch.msgid.link/[email protected]
Signed-off-by: Paolo Abeni <[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

1 participant