mbox series

[SRU,Jammy/OEM-5.17,0/1] Fix calltrace in mac80211

Message ID 20220610090102.323501-1-aaron.ma@canonical.com
Headers show
Series Fix calltrace in mac80211 | expand

Message

Aaron Ma June 10, 2022, 9:01 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1978297

[Impact]
When bootup Jammy kernel, it shows callrace:
kernel: ================================================================================
kernel: UBSAN: invalid-load in /home/u/aaron/bionic/net/mac80211/status.c:1164:21
kernel: load of value 216 is not a valid value for type '_Bool'
kernel: CPU: 9 PID: 0 Comm: swapper/9 Not tainted 5.15.36+ #12
kernel: Hardware name: LENOVO 21D2SIT061/21D2SIT061, BIOS N3GET30W (1.11 ) 05/27/2022
kernel: Call Trace:
kernel:  <IRQ>
kernel:  dump_stack_lvl+0x4a/0x5f
kernel:  dump_stack+0x10/0x12
kernel:  ubsan_epilogue+0x9/0x45
kernel:  __ubsan_handle_load_invalid_value.cold+0x44/0x49
kernel:  ieee80211_tx_status_ext.cold+0x1e/0xb0 [mac80211]
kernel:  ? percpu_ref_kill_and_confirm+0xd0/0xd0
kernel:  ? rht_key_get_hash.isra.0+0x19/0x20 [mac80211]
kernel:  ? sta_info_hash_lookup+0xac/0x100 [mac80211]
kernel:  ieee80211_tx_status+0x72/0xa0 [mac80211]
kernel:  ieee80211_tasklet_handler+0xa2/0xd0 [mac80211]
kernel:  tasklet_action_common.constprop.0+0xc0/0xf0
kernel:  tasklet_action+0x22/0x30
kernel:  __do_softirq+0xd9/0x2e3
kernel:  irq_exit_rcu+0x8c/0xb0
kernel:  common_interrupt+0x8a/0xa0
kernel:  </IRQ>
kernel:  <TASK>
kernel:  asm_common_interrupt+0x1e/0x40
kernel: RIP: 0010:cpuidle_enter_state+0xd9/0x620
kernel: Code: 3d b4 85 3d 5c e8 57 a7 6b ff 49 89 c7 0f 1f 44 00 00 31 ff e8 a8 b3 6b ff 80 7d d0>
kernel: RSP: 0018:ffff9e2dc01f7e38 EFLAGS: 00000246
kernel: RAX: ffff8dfdb6870b00 RBX: ffff8df6c3ab6c00 RCX: 000000023cd33784
kernel: RDX: 000000023d103fa8 RSI: 000000023cd33784 RDI: 0000000000000000
kernel: RBP: ffff9e2dc01f7e88 R08: 000000023cd33d63 R09: 00000000000aae60
kernel: R10: 0000000000000004 R11: 071c71c71c71c71c R12: ffffffffa4ce65a0
kernel: R13: 0000000000000003 R14: 0000000000000003 R15: 000000023cd33d63
kernel:  ? cpuidle_enter_state+0xc8/0x620
kernel:  ? sched_clock_local+0x13/0x90
kernel:  cpuidle_enter+0x2e/0x40
kernel:  do_idle+0x203/0x2a0
kernel:  cpu_startup_entry+0x20/0x30
kernel:  start_secondary+0x12a/0x180
kernel:  secondary_startup_64_no_verify+0xc2/0xcb
kernel:  </TASK>
kernel: ================================================================================

[Fix]
The size of the status_driver_data field was not adjusted
when the is_valid_ack_signal field was added.
Adjust the struct size accordingly.

[Test]
Verified on hardware, no error.

[Where problems could occur]
Low risk, It may break wifi driver.
Minor changes in title of "Copyright" when backport.

Avraham Stern (1):
  mac80211: fix struct ieee80211_tx_info size

 drivers/net/wireless/ath/ath10k/txrx.c  |  2 +-
 drivers/net/wireless/ath/ath10k/wmi.c   |  2 +-
 drivers/net/wireless/ath/ath11k/dp_tx.c |  5 +++--
 include/net/mac80211.h                  | 19 +++++++++++++++----
 net/mac80211/status.c                   | 11 ++++++++---
 5 files changed, 28 insertions(+), 11 deletions(-)

Comments

Tim Gardner June 10, 2022, 12:39 p.m. UTC | #1
Acked-by: Tim Gardner <tim.gardner@canonical.com>

Remember to describe the backport next time, even if the changes are 
trivial (as in this case).

On 6/10/22 03:01, Aaron Ma wrote:
> BugLink: https://bugs.launchpad.net/bugs/1978297
> 
> [Impact]
> When bootup Jammy kernel, it shows callrace:
> kernel: ================================================================================
> kernel: UBSAN: invalid-load in /home/u/aaron/bionic/net/mac80211/status.c:1164:21
> kernel: load of value 216 is not a valid value for type '_Bool'
> kernel: CPU: 9 PID: 0 Comm: swapper/9 Not tainted 5.15.36+ #12
> kernel: Hardware name: LENOVO 21D2SIT061/21D2SIT061, BIOS N3GET30W (1.11 ) 05/27/2022
> kernel: Call Trace:
> kernel:  <IRQ>
> kernel:  dump_stack_lvl+0x4a/0x5f
> kernel:  dump_stack+0x10/0x12
> kernel:  ubsan_epilogue+0x9/0x45
> kernel:  __ubsan_handle_load_invalid_value.cold+0x44/0x49
> kernel:  ieee80211_tx_status_ext.cold+0x1e/0xb0 [mac80211]
> kernel:  ? percpu_ref_kill_and_confirm+0xd0/0xd0
> kernel:  ? rht_key_get_hash.isra.0+0x19/0x20 [mac80211]
> kernel:  ? sta_info_hash_lookup+0xac/0x100 [mac80211]
> kernel:  ieee80211_tx_status+0x72/0xa0 [mac80211]
> kernel:  ieee80211_tasklet_handler+0xa2/0xd0 [mac80211]
> kernel:  tasklet_action_common.constprop.0+0xc0/0xf0
> kernel:  tasklet_action+0x22/0x30
> kernel:  __do_softirq+0xd9/0x2e3
> kernel:  irq_exit_rcu+0x8c/0xb0
> kernel:  common_interrupt+0x8a/0xa0
> kernel:  </IRQ>
> kernel:  <TASK>
> kernel:  asm_common_interrupt+0x1e/0x40
> kernel: RIP: 0010:cpuidle_enter_state+0xd9/0x620
> kernel: Code: 3d b4 85 3d 5c e8 57 a7 6b ff 49 89 c7 0f 1f 44 00 00 31 ff e8 a8 b3 6b ff 80 7d d0>
> kernel: RSP: 0018:ffff9e2dc01f7e38 EFLAGS: 00000246
> kernel: RAX: ffff8dfdb6870b00 RBX: ffff8df6c3ab6c00 RCX: 000000023cd33784
> kernel: RDX: 000000023d103fa8 RSI: 000000023cd33784 RDI: 0000000000000000
> kernel: RBP: ffff9e2dc01f7e88 R08: 000000023cd33d63 R09: 00000000000aae60
> kernel: R10: 0000000000000004 R11: 071c71c71c71c71c R12: ffffffffa4ce65a0
> kernel: R13: 0000000000000003 R14: 0000000000000003 R15: 000000023cd33d63
> kernel:  ? cpuidle_enter_state+0xc8/0x620
> kernel:  ? sched_clock_local+0x13/0x90
> kernel:  cpuidle_enter+0x2e/0x40
> kernel:  do_idle+0x203/0x2a0
> kernel:  cpu_startup_entry+0x20/0x30
> kernel:  start_secondary+0x12a/0x180
> kernel:  secondary_startup_64_no_verify+0xc2/0xcb
> kernel:  </TASK>
> kernel: ================================================================================
> 
> [Fix]
> The size of the status_driver_data field was not adjusted
> when the is_valid_ack_signal field was added.
> Adjust the struct size accordingly.
> 
> [Test]
> Verified on hardware, no error.
> 
> [Where problems could occur]
> Low risk, It may break wifi driver.
> Minor changes in title of "Copyright" when backport.
> 
> Avraham Stern (1):
>    mac80211: fix struct ieee80211_tx_info size
> 
>   drivers/net/wireless/ath/ath10k/txrx.c  |  2 +-
>   drivers/net/wireless/ath/ath10k/wmi.c   |  2 +-
>   drivers/net/wireless/ath/ath11k/dp_tx.c |  5 +++--
>   include/net/mac80211.h                  | 19 +++++++++++++++----
>   net/mac80211/status.c                   | 11 ++++++++---
>   5 files changed, 28 insertions(+), 11 deletions(-)
>
Timo Aaltonen June 13, 2022, 11:38 a.m. UTC | #2
Aaron Ma kirjoitti 10.6.2022 klo 12.01:
> BugLink: https://bugs.launchpad.net/bugs/1978297
> 
> [Impact]
> When bootup Jammy kernel, it shows callrace:
> kernel: ================================================================================
> kernel: UBSAN: invalid-load in /home/u/aaron/bionic/net/mac80211/status.c:1164:21
> kernel: load of value 216 is not a valid value for type '_Bool'
> kernel: CPU: 9 PID: 0 Comm: swapper/9 Not tainted 5.15.36+ #12
> kernel: Hardware name: LENOVO 21D2SIT061/21D2SIT061, BIOS N3GET30W (1.11 ) 05/27/2022
> kernel: Call Trace:
> kernel:  <IRQ>
> kernel:  dump_stack_lvl+0x4a/0x5f
> kernel:  dump_stack+0x10/0x12
> kernel:  ubsan_epilogue+0x9/0x45
> kernel:  __ubsan_handle_load_invalid_value.cold+0x44/0x49
> kernel:  ieee80211_tx_status_ext.cold+0x1e/0xb0 [mac80211]
> kernel:  ? percpu_ref_kill_and_confirm+0xd0/0xd0
> kernel:  ? rht_key_get_hash.isra.0+0x19/0x20 [mac80211]
> kernel:  ? sta_info_hash_lookup+0xac/0x100 [mac80211]
> kernel:  ieee80211_tx_status+0x72/0xa0 [mac80211]
> kernel:  ieee80211_tasklet_handler+0xa2/0xd0 [mac80211]
> kernel:  tasklet_action_common.constprop.0+0xc0/0xf0
> kernel:  tasklet_action+0x22/0x30
> kernel:  __do_softirq+0xd9/0x2e3
> kernel:  irq_exit_rcu+0x8c/0xb0
> kernel:  common_interrupt+0x8a/0xa0
> kernel:  </IRQ>
> kernel:  <TASK>
> kernel:  asm_common_interrupt+0x1e/0x40
> kernel: RIP: 0010:cpuidle_enter_state+0xd9/0x620
> kernel: Code: 3d b4 85 3d 5c e8 57 a7 6b ff 49 89 c7 0f 1f 44 00 00 31 ff e8 a8 b3 6b ff 80 7d d0>
> kernel: RSP: 0018:ffff9e2dc01f7e38 EFLAGS: 00000246
> kernel: RAX: ffff8dfdb6870b00 RBX: ffff8df6c3ab6c00 RCX: 000000023cd33784
> kernel: RDX: 000000023d103fa8 RSI: 000000023cd33784 RDI: 0000000000000000
> kernel: RBP: ffff9e2dc01f7e88 R08: 000000023cd33d63 R09: 00000000000aae60
> kernel: R10: 0000000000000004 R11: 071c71c71c71c71c R12: ffffffffa4ce65a0
> kernel: R13: 0000000000000003 R14: 0000000000000003 R15: 000000023cd33d63
> kernel:  ? cpuidle_enter_state+0xc8/0x620
> kernel:  ? sched_clock_local+0x13/0x90
> kernel:  cpuidle_enter+0x2e/0x40
> kernel:  do_idle+0x203/0x2a0
> kernel:  cpu_startup_entry+0x20/0x30
> kernel:  start_secondary+0x12a/0x180
> kernel:  secondary_startup_64_no_verify+0xc2/0xcb
> kernel:  </TASK>
> kernel: ================================================================================
> 
> [Fix]
> The size of the status_driver_data field was not adjusted
> when the is_valid_ack_signal field was added.
> Adjust the struct size accordingly.
> 
> [Test]
> Verified on hardware, no error.
> 
> [Where problems could occur]
> Low risk, It may break wifi driver.
> Minor changes in title of "Copyright" when backport.
> 
> Avraham Stern (1):
>    mac80211: fix struct ieee80211_tx_info size
> 
>   drivers/net/wireless/ath/ath10k/txrx.c  |  2 +-
>   drivers/net/wireless/ath/ath10k/wmi.c   |  2 +-
>   drivers/net/wireless/ath/ath11k/dp_tx.c |  5 +++--
>   include/net/mac80211.h                  | 19 +++++++++++++++----
>   net/mac80211/status.c                   | 11 ++++++++---
>   5 files changed, 28 insertions(+), 11 deletions(-)
> 

applied to oem-5.17, thanks
Luke Nowakowski-Krijger June 22, 2022, 5:34 a.m. UTC | #3
Acked-by: Luke Nowakowski-Krijger <luke.nowakowskikrijger@canonical.com>

On Fri, Jun 10, 2022 at 2:01 AM Aaron Ma <aaron.ma@canonical.com> wrote:

> BugLink: https://bugs.launchpad.net/bugs/1978297
>
> [Impact]
> When bootup Jammy kernel, it shows callrace:
> kernel:
> ================================================================================
> kernel: UBSAN: invalid-load in
> /home/u/aaron/bionic/net/mac80211/status.c:1164:21
> kernel: load of value 216 is not a valid value for type '_Bool'
> kernel: CPU: 9 PID: 0 Comm: swapper/9 Not tainted 5.15.36+ #12
> kernel: Hardware name: LENOVO 21D2SIT061/21D2SIT061, BIOS N3GET30W (1.11 )
> 05/27/2022
> kernel: Call Trace:
> kernel:  <IRQ>
> kernel:  dump_stack_lvl+0x4a/0x5f
> kernel:  dump_stack+0x10/0x12
> kernel:  ubsan_epilogue+0x9/0x45
> kernel:  __ubsan_handle_load_invalid_value.cold+0x44/0x49
> kernel:  ieee80211_tx_status_ext.cold+0x1e/0xb0 [mac80211]
> kernel:  ? percpu_ref_kill_and_confirm+0xd0/0xd0
> kernel:  ? rht_key_get_hash.isra.0+0x19/0x20 [mac80211]
> kernel:  ? sta_info_hash_lookup+0xac/0x100 [mac80211]
> kernel:  ieee80211_tx_status+0x72/0xa0 [mac80211]
> kernel:  ieee80211_tasklet_handler+0xa2/0xd0 [mac80211]
> kernel:  tasklet_action_common.constprop.0+0xc0/0xf0
> kernel:  tasklet_action+0x22/0x30
> kernel:  __do_softirq+0xd9/0x2e3
> kernel:  irq_exit_rcu+0x8c/0xb0
> kernel:  common_interrupt+0x8a/0xa0
> kernel:  </IRQ>
> kernel:  <TASK>
> kernel:  asm_common_interrupt+0x1e/0x40
> kernel: RIP: 0010:cpuidle_enter_state+0xd9/0x620
> kernel: Code: 3d b4 85 3d 5c e8 57 a7 6b ff 49 89 c7 0f 1f 44 00 00 31 ff
> e8 a8 b3 6b ff 80 7d d0>
> kernel: RSP: 0018:ffff9e2dc01f7e38 EFLAGS: 00000246
> kernel: RAX: ffff8dfdb6870b00 RBX: ffff8df6c3ab6c00 RCX: 000000023cd33784
> kernel: RDX: 000000023d103fa8 RSI: 000000023cd33784 RDI: 0000000000000000
> kernel: RBP: ffff9e2dc01f7e88 R08: 000000023cd33d63 R09: 00000000000aae60
> kernel: R10: 0000000000000004 R11: 071c71c71c71c71c R12: ffffffffa4ce65a0
> kernel: R13: 0000000000000003 R14: 0000000000000003 R15: 000000023cd33d63
> kernel:  ? cpuidle_enter_state+0xc8/0x620
> kernel:  ? sched_clock_local+0x13/0x90
> kernel:  cpuidle_enter+0x2e/0x40
> kernel:  do_idle+0x203/0x2a0
> kernel:  cpu_startup_entry+0x20/0x30
> kernel:  start_secondary+0x12a/0x180
> kernel:  secondary_startup_64_no_verify+0xc2/0xcb
> kernel:  </TASK>
> kernel:
> ================================================================================
>
> [Fix]
> The size of the status_driver_data field was not adjusted
> when the is_valid_ack_signal field was added.
> Adjust the struct size accordingly.
>
> [Test]
> Verified on hardware, no error.
>
> [Where problems could occur]
> Low risk, It may break wifi driver.
> Minor changes in title of "Copyright" when backport.
>
> Avraham Stern (1):
>   mac80211: fix struct ieee80211_tx_info size
>
>  drivers/net/wireless/ath/ath10k/txrx.c  |  2 +-
>  drivers/net/wireless/ath/ath10k/wmi.c   |  2 +-
>  drivers/net/wireless/ath/ath11k/dp_tx.c |  5 +++--
>  include/net/mac80211.h                  | 19 +++++++++++++++----
>  net/mac80211/status.c                   | 11 ++++++++---
>  5 files changed, 28 insertions(+), 11 deletions(-)
>
> --
> 2.34.1
>
>
> --
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>
Stefan Bader June 22, 2022, 10:01 a.m. UTC | #4
On 10.06.22 11:01, Aaron Ma wrote:
> BugLink: https://bugs.launchpad.net/bugs/1978297
> 
> [Impact]
> When bootup Jammy kernel, it shows callrace:
> kernel: ================================================================================
> kernel: UBSAN: invalid-load in /home/u/aaron/bionic/net/mac80211/status.c:1164:21
> kernel: load of value 216 is not a valid value for type '_Bool'
> kernel: CPU: 9 PID: 0 Comm: swapper/9 Not tainted 5.15.36+ #12
> kernel: Hardware name: LENOVO 21D2SIT061/21D2SIT061, BIOS N3GET30W (1.11 ) 05/27/2022
> kernel: Call Trace:
> kernel:  <IRQ>
> kernel:  dump_stack_lvl+0x4a/0x5f
> kernel:  dump_stack+0x10/0x12
> kernel:  ubsan_epilogue+0x9/0x45
> kernel:  __ubsan_handle_load_invalid_value.cold+0x44/0x49
> kernel:  ieee80211_tx_status_ext.cold+0x1e/0xb0 [mac80211]
> kernel:  ? percpu_ref_kill_and_confirm+0xd0/0xd0
> kernel:  ? rht_key_get_hash.isra.0+0x19/0x20 [mac80211]
> kernel:  ? sta_info_hash_lookup+0xac/0x100 [mac80211]
> kernel:  ieee80211_tx_status+0x72/0xa0 [mac80211]
> kernel:  ieee80211_tasklet_handler+0xa2/0xd0 [mac80211]
> kernel:  tasklet_action_common.constprop.0+0xc0/0xf0
> kernel:  tasklet_action+0x22/0x30
> kernel:  __do_softirq+0xd9/0x2e3
> kernel:  irq_exit_rcu+0x8c/0xb0
> kernel:  common_interrupt+0x8a/0xa0
> kernel:  </IRQ>
> kernel:  <TASK>
> kernel:  asm_common_interrupt+0x1e/0x40
> kernel: RIP: 0010:cpuidle_enter_state+0xd9/0x620
> kernel: Code: 3d b4 85 3d 5c e8 57 a7 6b ff 49 89 c7 0f 1f 44 00 00 31 ff e8 a8 b3 6b ff 80 7d d0>
> kernel: RSP: 0018:ffff9e2dc01f7e38 EFLAGS: 00000246
> kernel: RAX: ffff8dfdb6870b00 RBX: ffff8df6c3ab6c00 RCX: 000000023cd33784
> kernel: RDX: 000000023d103fa8 RSI: 000000023cd33784 RDI: 0000000000000000
> kernel: RBP: ffff9e2dc01f7e88 R08: 000000023cd33d63 R09: 00000000000aae60
> kernel: R10: 0000000000000004 R11: 071c71c71c71c71c R12: ffffffffa4ce65a0
> kernel: R13: 0000000000000003 R14: 0000000000000003 R15: 000000023cd33d63
> kernel:  ? cpuidle_enter_state+0xc8/0x620
> kernel:  ? sched_clock_local+0x13/0x90
> kernel:  cpuidle_enter+0x2e/0x40
> kernel:  do_idle+0x203/0x2a0
> kernel:  cpu_startup_entry+0x20/0x30
> kernel:  start_secondary+0x12a/0x180
> kernel:  secondary_startup_64_no_verify+0xc2/0xcb
> kernel:  </TASK>
> kernel: ================================================================================
> 
> [Fix]
> The size of the status_driver_data field was not adjusted
> when the is_valid_ack_signal field was added.
> Adjust the struct size accordingly.
> 
> [Test]
> Verified on hardware, no error.
> 
> [Where problems could occur]
> Low risk, It may break wifi driver.
> Minor changes in title of "Copyright" when backport.
> 
> Avraham Stern (1):
>    mac80211: fix struct ieee80211_tx_info size
> 
>   drivers/net/wireless/ath/ath10k/txrx.c  |  2 +-
>   drivers/net/wireless/ath/ath10k/wmi.c   |  2 +-
>   drivers/net/wireless/ath/ath11k/dp_tx.c |  5 +++--
>   include/net/mac80211.h                  | 19 +++++++++++++++----
>   net/mac80211/status.c                   | 11 ++++++++---
>   5 files changed, 28 insertions(+), 11 deletions(-)
> 

Applied to jammy:linux/master-next. Thanks.

-Stefan