Skip to content

Changes made more stable#7

Open
britus wants to merge 67 commits into
friendlyarm:nanopi4-linux-v4.4.yfrom
britus:nanopi4-linux-v4.4.y
Open

Changes made more stable#7
britus wants to merge 67 commits into
friendlyarm:nanopi4-linux-v4.4.yfrom
britus:nanopi4-linux-v4.4.y

Conversation

@britus

@britus britus commented Jun 8, 2024

Copy link
Copy Markdown

This changes make the kernel more stable.

britus and others added 23 commits January 22, 2024 08:24
Signed-off-by: B. Eschrich <bjoern.eschrich@gmail.com>
…minors in case of other connected USB serial devices.
…minors in case of other connected USB serial devices.
Remove redundant YYLOC global declaration
friendlyarm pushed a commit that referenced this pull request Jan 8, 2025
[ Upstream commit a154f5f ]

The following call trace shows a deadlock issue due to recursive locking of
mutex "device_mutex". First lock acquire is in target_for_each_device() and
second in target_free_device().

 PID: 148266   TASK: ffff8be21ffb5d00  CPU: 10   COMMAND: "iscsi_ttx"
  #0 [ffffa2bfc9ec3b18] __schedule at ffffffffa8060e7f
  #1 [ffffa2bfc9ec3ba0] schedule at ffffffffa8061224
  #2 [ffffa2bfc9ec3bb8] schedule_preempt_disabled at ffffffffa80615ee
  #3 [ffffa2bfc9ec3bc8] __mutex_lock at ffffffffa8062fd7
  #4 [ffffa2bfc9ec3c40] __mutex_lock_slowpath at ffffffffa80631d3
  #5 [ffffa2bfc9ec3c50] mutex_lock at ffffffffa806320c
  #6 [ffffa2bfc9ec3c68] target_free_device at ffffffffc0935998 [target_core_mod]
  #7 [ffffa2bfc9ec3c90] target_core_dev_release at ffffffffc092f975 [target_core_mod]
  #8 [ffffa2bfc9ec3ca0] config_item_put at ffffffffa79d250f
  #9 [ffffa2bfc9ec3cd0] config_item_put at ffffffffa79d2583
 #10 [ffffa2bfc9ec3ce0] target_devices_idr_iter at ffffffffc0933f3a [target_core_mod]
 #11 [ffffa2bfc9ec3d00] idr_for_each at ffffffffa803f6fc
 #12 [ffffa2bfc9ec3d60] target_for_each_device at ffffffffc0935670 [target_core_mod]
 #13 [ffffa2bfc9ec3d98] transport_deregister_session at ffffffffc0946408 [target_core_mod]
 rockchip-linux#14 [ffffa2bfc9ec3dc8] iscsit_close_session at ffffffffc09a44a6 [iscsi_target_mod]
 rockchip-linux#15 [ffffa2bfc9ec3df0] iscsit_close_connection at ffffffffc09a4a88 [iscsi_target_mod]
 rockchip-linux#16 [ffffa2bfc9ec3df8] finish_task_switch at ffffffffa76e5d07
 rockchip-linux#17 [ffffa2bfc9ec3e78] iscsit_take_action_for_connection_exit at ffffffffc0991c23 [iscsi_target_mod]
 rockchip-linux#18 [ffffa2bfc9ec3ea0] iscsi_target_tx_thread at ffffffffc09a403b [iscsi_target_mod]
 rockchip-linux#19 [ffffa2bfc9ec3f08] kthread at ffffffffa76d8080
 rockchip-linux#20 [ffffa2bfc9ec3f50] ret_from_fork at ffffffffa8200364

Fixes: 36d4cb4 ("scsi: target: Avoid that EXTENDED COPY commands trigger lock inversion")
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
Link: https://lore.kernel.org/r/20230918225848.66463-1-junxiao.bi@oracle.com
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
friendlyarm pushed a commit that referenced this pull request Jan 8, 2025
[ Upstream commit a84fbf2 ]

Generating metrics llc_code_read_mpi_demand_plus_prefetch,
llc_data_read_mpi_demand_plus_prefetch,
llc_miss_local_memory_bandwidth_read,
llc_miss_local_memory_bandwidth_write,
nllc_miss_remote_memory_bandwidth_read, memory_bandwidth_read,
memory_bandwidth_write, uncore_frequency, upi_data_transmit_bw,
C2_Pkg_Residency, C3_Core_Residency, C3_Pkg_Residency,
C6_Core_Residency, C6_Pkg_Residency, C7_Core_Residency,
C7_Pkg_Residency, UNCORE_FREQ and tma_info_system_socket_clks would
trigger an address sanitizer heap-buffer-overflows on a SkylakeX.

```
==2567752==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x5020003ed098 at pc 0x5621a816654e bp 0x7fffb55d4da0 sp 0x7fffb55d4d98
READ of size 4 at 0x5020003eee78 thread T0
    #0 0x558265d6654d in aggr_cpu_id__is_empty tools/perf/util/cpumap.c:694:12
    #1 0x558265c914da in perf_stat__get_aggr tools/perf/builtin-stat.c:1490:6
    #2 0x558265c914da in perf_stat__get_global_cached tools/perf/builtin-stat.c:1530:9
    #3 0x558265e53290 in should_skip_zero_counter tools/perf/util/stat-display.c:947:31
    #4 0x558265e53290 in print_counter_aggrdata tools/perf/util/stat-display.c:985:18
    #5 0x558265e51931 in print_counter tools/perf/util/stat-display.c:1110:3
    #6 0x558265e51931 in evlist__print_counters tools/perf/util/stat-display.c:1571:5
    #7 0x558265c8ec87 in print_counters tools/perf/builtin-stat.c:981:2
    #8 0x558265c8cc71 in cmd_stat tools/perf/builtin-stat.c:2837:3
    #9 0x558265bb9bd4 in run_builtin tools/perf/perf.c:323:11
    #10 0x558265bb98eb in handle_internal_command tools/perf/perf.c:377:8
    #11 0x558265bb9389 in run_argv tools/perf/perf.c:421:2
    #12 0x558265bb9389 in main tools/perf/perf.c:537:3
```

The issue was the use of testing a cpumap with NULL rather than using
empty, as a map containing the dummy value isn't NULL and the -1
results in an empty aggr map being allocated which legitimately
overflows when any member is accessed.

Fixes: 8a96f45 ("perf stat: Avoid SEGV if core.cpus isn't set")
Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20230906003912.3317462-1-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
@britus

britus commented Feb 21, 2025

Copy link
Copy Markdown
Author

Mainly fixes WiFi DHD stability for iPhone reconnect. Added debug outputs and a lot more stuff which makes stable

newayer pushed a commit to newayer/my-kernel that referenced this pull request Nov 29, 2025
The pd revision can't be initialized when the 'pd-disable' property
is added in DT, and the negotiated_rev becomes be invalid, which
causes kernel panics.

The Kernel panic has the following stack trace:

[    4.262221][  T182] Unable to handle kernel paging request at virtual address ffffffc8096bf508
[    4.264702][  T182] Mem abort info:
[    4.265014][  T182]   ESR = 0x0000000096000005
[    4.265411][  T182]   EC = 0x25: DABT (current EL), IL = 32 bits
[    4.265939][  T182]   SET = 0, FnV = 0
[    4.266271][  T182]   EA = 0, S1PTW = 0
[    4.266612][  T182]   FSC = 0x05: level 1 translation fault
[    4.267107][  T182] Data abort info:
[    4.267426][  T182]   ISV = 0, ISS = 0x00000005
[    4.267823][  T182]   CM = 0, WnR = 0
[    4.268152][  T182] swapper pgtable: 4k pages, 39-bit VAs, pgdp=000000004217e000
[    4.268802][  T182] [ffffffc8096bf508] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000
[    4.269633][  T182] Internal error: Oops: 0000000096000005 [friendlyarm#1] PREEMPT SMP
[    4.270250][  T182] Modules linked in:
[    4.270584][  T182] CPU: 5 PID: 182 Comm: 2-004e Not tainted 6.1.99 friendlyarm#7
[    4.271158][  T182] Hardware name: Rockchip RK3576 EVB1 V10 Board (DT)
[    4.271730][  T182] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    4.272402][  T182] pc : tcpm_set_state+0x6c/0x11c
[    4.272834][  T182] lr : tcpm_set_state+0x40/0x11c
[    4.273254][  T182] sp : ffffffc00beebd70
[    4.273606][  T182] x29: ffffffc00beebd70 x28: 0000000000000000 x27: ffffffc009f59e00
[    4.274303][  T182] x26: ffffffc009f27008 x25: 0000000000000001 x24: ffffff80c7dc7148
[    4.274996][  T182] x23: ffffffc008c22ee8 x22: 0000000000000011 x21: 0000000000000000
[    4.275689][  T182] x20: 0000000000000012 x19: ffffff80c4f8c040 x18: ffffffc00bd45028
[    4.276372][  T182] x17: 3a736d61202c312d x16: ffffffffffffffff x15: 0000000000000004
[    4.277065][  T182] x14: ffffffc009fdc100 x13: 0000000000003fff x12: 0000000000000003
[    4.277757][  T182] x11: ffffffc0096bf510 x10: 00000000ffffffff x9 : ffffffc0096bf528
[    4.278450][  T182] x8 : 0000000000000000 x7 : 205b5d3430323236 x6 : 322e34202020205b
[    4.279143][  T182] x5 : ffffffc00a3fb617 x4 : ffffffc00beebac7 x3 : ffffffc009ba7471
[    4.279836][  T182] x2 : ffffffc009bc41de x1 : ffffffc00beebb30 x0 : 0000000000000058
[    4.280528][  T182] Call trace:
[    4.280805][  T182]  tcpm_set_state+0x6c/0x11c
[    4.281204][  T182]  run_state_machine+0x108c/0x1908
[    4.281645][  T182]  tcpm_state_machine_work+0x84/0xcc
[    4.282097][  T182]  kthread_worker_fn+0xf4/0x228
[    4.282517][  T182]  kthread+0xec/0x1b8
[    4.282860][  T182]  ret_from_fork+0x10/0x20

Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Change-Id: I7039c541039e17199f1db6b42ecf23af7f317963
M1cha pushed a commit to M1cha/kernel-rockchip that referenced this pull request Apr 25, 2026
commit 1ac22c8 upstream.

This leak will cause a hang when tearing down the SCSI host. For example,
iscsid hangs with the following call trace:

[130120.652718] scsi_alloc_sdev: Allocation failure during SCSI scanning, some SCSI devices might not be configured

PID: 2528     TASK: ffff9d0408974e00  CPU: 3    COMMAND: "iscsid"
 #0 [ffffb5b9c134b9e0] __schedule at ffffffff860657d4
 friendlyarm#1 [ffffb5b9c134ba28] schedule at ffffffff86065c6f
 friendlyarm#2 [ffffb5b9c134ba40] schedule_timeout at ffffffff86069fb0
 friendlyarm#3 [ffffb5b9c134bab0] __wait_for_common at ffffffff8606674f
 friendlyarm#4 [ffffb5b9c134bb10] scsi_remove_host at ffffffff85bfe84b
 friendlyarm#5 [ffffb5b9c134bb30] iscsi_sw_tcp_session_destroy at ffffffffc03031c4 [iscsi_tcp]
 friendlyarm#6 [ffffb5b9c134bb48] iscsi_if_recv_msg at ffffffffc0292692 [scsi_transport_iscsi]
 friendlyarm#7 [ffffb5b9c134bb98] iscsi_if_rx at ffffffffc02929c2 [scsi_transport_iscsi]
 friendlyarm#8 [ffffb5b9c134bbf0] netlink_unicast at ffffffff85e551d6
 friendlyarm#9 [ffffb5b9c134bc38] netlink_sendmsg at ffffffff85e554ef

Fixes: 8fe4ce5 ("scsi: core: Fix a use-after-free")
Cc: stable@vger.kernel.org
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/20260223232728.93350-1-junxiao.bi@oracle.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
friendlyarm pushed a commit that referenced this pull request Jun 9, 2026
commit 1ac22c8 upstream.

This leak will cause a hang when tearing down the SCSI host. For example,
iscsid hangs with the following call trace:

[130120.652718] scsi_alloc_sdev: Allocation failure during SCSI scanning, some SCSI devices might not be configured

PID: 2528     TASK: ffff9d0408974e00  CPU: 3    COMMAND: "iscsid"
 #0 [ffffb5b9c134b9e0] __schedule at ffffffff860657d4
 #1 [ffffb5b9c134ba28] schedule at ffffffff86065c6f
 #2 [ffffb5b9c134ba40] schedule_timeout at ffffffff86069fb0
 #3 [ffffb5b9c134bab0] __wait_for_common at ffffffff8606674f
 #4 [ffffb5b9c134bb10] scsi_remove_host at ffffffff85bfe84b
 #5 [ffffb5b9c134bb30] iscsi_sw_tcp_session_destroy at ffffffffc03031c4 [iscsi_tcp]
 #6 [ffffb5b9c134bb48] iscsi_if_recv_msg at ffffffffc0292692 [scsi_transport_iscsi]
 #7 [ffffb5b9c134bb98] iscsi_if_rx at ffffffffc02929c2 [scsi_transport_iscsi]
 #8 [ffffb5b9c134bbf0] netlink_unicast at ffffffff85e551d6
 #9 [ffffb5b9c134bc38] netlink_sendmsg at ffffffff85e554ef

Fixes: 8fe4ce5 ("scsi: core: Fix a use-after-free")
Cc: stable@vger.kernel.org
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/20260223232728.93350-1-junxiao.bi@oracle.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
wangcheng711 pushed a commit to wangcheng711/kernel-rockchip that referenced this pull request Jun 24, 2026
When a userspace process that is not the drm master calls
drm_mode_getconnector(), fill_modes() will not be called and
connector mode list will not be updated. If mode list is not
cleared when hdmi plug out, mode list obtained by the use-space
process when hdmi is disconnected will still be the same as when
hdmi is connected. This is inconsistent with the actual situation.
So when the hdmi plug out, connector mode list needs to be
actively cleared. The "modetest -c" printed when the error occurs
is as follows:

Connectors:
id      encoder status          name            size (mm)       modes   encoders
410     409     disconnected    HDMI-A-1        0x0             49      409
  modes:
        index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
  #0 3840x2160 24.00 3840 4092 4180 5500 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: preferred, driver
  friendlyarm#1 4096x2160 60.00 4096 4184 4272 4400 2160 2168 2178 2250 594000 flags: phsync, pvsync; type: driver
  friendlyarm#2 4096x2160 59.94 4096 4184 4272 4400 2160 2168 2178 2250 593407 flags: phsync, pvsync; type: driver
  friendlyarm#3 4096x2160 50.00 4096 5064 5152 5280 2160 2168 2178 2250 594000 flags: phsync, pvsync; type: driver
  friendlyarm#4 4096x2160 30.00 4096 4184 4272 4400 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver
  friendlyarm#5 4096x2160 29.97 4096 4184 4272 4400 2160 2168 2178 2250 296703 flags: phsync, pvsync; type: driver
  friendlyarm#6 4096x2160 24.00 4096 5116 5204 5500 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver
  friendlyarm#7 4096x2160 23.98 4096 5116 5204 5500 2160 2168 2178 2250 296703 flags: phsync, pvsync; type: driver
  friendlyarm#8 3840x2160 120.00 3840 4016 4104 4400 2160 2168 2178 2250 1188000 flags: phsync, pvsync; type: driver
  friendlyarm#9 3840x2160 119.88 3840 4016 4104 4400 2160 2168 2178 2250 1186813 flags: phsync, pvsync; type: driver
  friendlyarm#10 3840x2160 100.00 3840 4896 4984 5280 2160 2168 2178 2250 1188000 flags: phsync, pvsync; type: driver
  friendlyarm#11 3840x2160 60.00 3840 4016 4104 4400 2160 2168 2178 2250 594000 flags: phsync, pvsync; type: driver
  friendlyarm#12 3840x2160 59.94 3840 4016 4104 4400 2160 2168 2178 2250 593407 flags: phsync, pvsync; type: driver
  friendlyarm#13 3840x2160 50.00 3840 4896 4984 5280 2160 2168 2178 2250 594000 flags: phsync, pvsync; type: driver
  rockchip-linux#14 3840x2160 30.00 3840 4016 4104 4400 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver
  rockchip-linux#15 3840x2160 29.97 3840 4016 4104 4400 2160 2168 2178 2250 296703 flags: phsync, pvsync; type: driver
  rockchip-linux#16 3840x2160 25.00 3840 4896 4984 5280 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver
  rockchip-linux#17 3840x2160 24.00 3840 5116 5204 5500 2160 2168 2178 2250 297000 flags: phsync, pvsync; type: driver
  rockchip-linux#18 3840x2160 23.98 3840 5116 5204 5500 2160 2168 2178 2250 296703 flags: phsync, pvsync; type: driver
  rockchip-linux#19 1920x1080 120.00 1920 2008 2052 2200 1080 1084 1089 1125 297000 flags: phsync, pvsync; type: driver
  rockchip-linux#20 1920x1080 119.88 1920 2008 2052 2200 1080 1084 1089 1125 296703 flags: phsync, pvsync; type: driver
  rockchip-linux#21 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver
  rockchip-linux#22 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver
  rockchip-linux#23 1920x1080 59.94 1920 2008 2052 2200 1080 1084 1089 1125 148352 flags: phsync, pvsync; type: driver
  rockchip-linux#24 1920x1080i 30.00 1920 2008 2052 2200 1080 1084 1094 1125 74250 flags: phsync, pvsync, interlace; type: driver
  rockchip-linux#25 1920x1080i 29.97 1920 2008 2052 2200 1080 1084 1094 1125 74176 flags: phsync, pvsync, interlace; type: driver
  rockchip-linux#26 1920x1080 50.00 1920 2448 2492 2640 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver
  rockchip-linux#27 1920x1080i 25.00 1920 2448 2492 2640 1080 1084 1094 1125 74250 flags: phsync, pvsync, interlace; type: driver
  rockchip-linux#28 1920x1080 30.00 1920 2008 2052 2200 1080 1084 1089 1125 74250 flags: phsync, pvsync; type: driver
  rockchip-linux#29 1920x1080 29.97 1920 2008 2052 2200 1080 1084 1089 1125 74176 flags: phsync, pvsync; type: driver
  rockchip-linux#30 1920x1080 24.00 1920 2558 2602 2750 1080 1084 1089 1125 74250 flags: phsync, pvsync; type: driver
  rockchip-linux#31 1920x1080 23.98 1920 2558 2602 2750 1080 1084 1089 1125 74176 flags: phsync, pvsync; type: driver
  rockchip-linux#32 1280x1024 60.02 1280 1328 1440 1688 1024 1025 1028 1066 108000 flags: phsync, pvsync; type: driver
  rockchip-linux#33 1280x800 59.91 1280 1328 1360 1440 800 803 809 823 71000 flags: phsync, nvsync; type: driver
  rockchip-linux#34 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  rockchip-linux#35 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  rockchip-linux#36 1280x720 59.94 1280 1390 1430 1650 720 725 730 750 74176 flags: phsync, pvsync; type: driver
  rockchip-linux#37 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver
  rockchip-linux#38 1024x768 119.99 1024 1072 1104 1184 768 771 775 813 115500 flags: phsync, nvsync; type: driver
  rockchip-linux#39 1024x768 60.00 1024 1048 1184 1344 768 771 777 806 65000 flags: nhsync, nvsync; type: driver
  rockchip-linux#40 800x600 60.32 800 840 968 1056 600 601 605 628 40000 flags: phsync, pvsync; type: driver
  rockchip-linux#41 720x576 50.00 720 732 796 864 576 581 586 625 27000 flags: nhsync, nvsync; type: driver
  rockchip-linux#42 720x576 50.00 720 732 796 864 576 581 586 625 27000 flags: nhsync, nvsync; type: driver
  rockchip-linux#43 720x480 60.00 720 736 798 858 480 489 495 525 27027 flags: nhsync, nvsync; type: driver
  rockchip-linux#44 720x480 60.00 720 736 798 858 480 489 495 525 27027 flags: nhsync, nvsync; type: driver
  rockchip-linux#45 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver
  rockchip-linux#46 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver
  rockchip-linux#47 640x480 60.00 640 656 752 800 480 490 492 525 25200 flags: nhsync, nvsync; type: driver
  rockchip-linux#48 640x480 59.94 640 656 752 800 480 490 492 525 25175 flags: nhsync, nvsync; type: driver
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 0

Fixes: f1c83fa ("drm/bridge: synopsys: dw-hdmi-qp: Clear edid property when hdmi plug out")

Change-Id: I76551a751dd7ebe1da440c38ca5186b1d2b74e93
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
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

Successfully merging this pull request may close these issues.

3 participants