lkml.org 
[lkml]   [2021]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] staging: rtl8723bs: Fix uninitialized variable
    On Sun, Jun 06, 2021 at 12:00:21AM -0700, Wenli Looi wrote:
    > Uninitialized struct with invalid pointer causes BUG and prevents access
    > point from working. Access point works once I apply this patch.
    >
    > https://forum.armbian.com/topic/14727-wifi-ap-kernel-bug-in-kernel-5444/
    > has more details.
    >
    > Signed-off-by: Wenli Looi <wlooi@ucalgary.ca>
    > ---

    This patch is correct but the commit message needs to be updated. Your
    version 2 patch is not correct.

    We don't like "follow this link for all the information" type commit
    messages. Clicking on a link is annoying and links die after five
    years. The link can be there but the main information needs
    to be in the commit message. Generally it's good to put the stack trace
    in the commit so that people can search for it.

    As Greg pointed out, you need to add a Fixes tag. So far as I can see
    it's ->pertid and ->generation which are not initialized and the bugs
    were introduced in two different commits so you need two Fixes tags.

    Fixes: 8689c051a201 ("cfg80211: dynamically allocate per-tid stats for station info")
    Fixes: f5ea9120be2e ("nl80211: add generation number to all dumps")

    Adding a Fixes tag will mean the correct people are CC'd in the patch
    and can review the fix.

    Greg asked about struct holes and the answer is "= {}" will zero out
    struct holes but it's not important in this case. The "= {}" is a GCC
    extension for zeroing structs and it's not part of the C standard.
    The struct has a kernel pointer in it so we had better not be shairing
    it to user space.

    Here is a better commit message. Please resend the commit with
    something like the following.

    staging: rtl8723bs: Fix uninitialized variables

    The sinfo.pertid and sinfo.generation variables are not initialized
    and it causes a crash when we use this as a wireless access point.

    [ 456.873025] ------------[ cut here ]------------
    [ 456.878198] kernel BUG at mm/slub.c:3968!
    [ 456.882680] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM

    [ snip ]

    [ 457.271004] Backtrace:
    [ 457.273733] [<c02b7ee4>] (kfree) from [<c0e2a470>] (nl80211_send_station+0x954/0xfc4)
    [ 457.282481] r9:eccca0c0 r8:e8edfec0 r7:00000000 r6:00000011 r5:e80a9480 r4:e8edfe00
    [ 457.291132] [<c0e29b1c>] (nl80211_send_station) from [<c0e2b18c>] (cfg80211_new_sta+0x90/0x1cc)
    [ 457.300850] r10:e80a9480 r9:e8edfe00 r8:ea678cca r7:00000a20 r6:00000000 r5:ec46d000
    [ 457.309586] r4:ec46d9e0
    [ 457.312433] [<c0e2b0fc>] (cfg80211_new_sta) from [<bf086684>] (rtw_cfg80211_indicate_sta_assoc+0x80/0x9c [r8723bs])
    [ 457.324095] r10:00009930 r9:e85b9d80 r8:bf091050 r7:00000000 r6:00000000 r5:0000001c
    [ 457.332831] r4:c1606788
    [ 457.335692] [<bf086604>] (rtw_cfg80211_indicate_sta_assoc [r8723bs]) from [<bf03df38>] (rtw_stassoc_event_callback+0x1c8/0x1d4 [r8723bs])
    [ 457.349489] r7:ea678cc0 r6:000000a1 r5:f1225f84 r4:f086b000
    [ 457.355845] [<bf03dd70>] (rtw_stassoc_event_callback [r8723bs]) from [<bf048e4c>] (mlme_evt_hdl+0x8c/0xb4 [r8723bs])
    [ 457.367601] r7:c1604900 r6:f086c4b8 r5:00000000 r4:f086c000
    [ 457.373959] [<bf048dc0>] (mlme_evt_hdl [r8723bs]) from [<bf03693c>] (rtw_cmd_thread+0x198/0x3d8 [r8723bs])
    [ 457.384744] r5:f086e000 r4:f086c000
    [ 457.388754] [<bf0367a4>] (rtw_cmd_thread [r8723bs]) from [<c014a214>] (kthread+0x170/0x174)
    [ 457.398083] r10:ed7a57e8 r9:bf0367a4 r8:f086b000 r7:e8ede000 r6:00000000 r5:e9975200
    [ 457.406828] r4:e8369900
    [ 457.409653] [<c014a0a4>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
    [ 457.417718] Exception stack(0xe8edffb0 to 0xe8edfff8)
    [ 457.423356] ffa0: 00000000 00000000 00000000 00000000
    [ 457.432492] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [ 457.441618] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
    [ 457.449006] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c014a0a4
    [ 457.457750] r4:e9975200
    [ 457.460574] Code: 1a000003 e5953004 e3130001 1a000000 (e7f001f2)
    [ 457.467381] ---[ end trace 4acbc8c15e9e6aa7 ]---

    Link: https://forum.armbian.com/topic/14727-wifi-ap-kernel-bug-in-kernel-5444/
    Fixes: 8689c051a201 ("cfg80211: dynamically allocate per-tid stats for station info")
    Fixes: f5ea9120be2e ("nl80211: add generation number to all dumps")
    Signed-off-by:

    regards,
    dan carpenter

    \
     
     \ /
      Last update: 2021-06-07 10:33    [W:2.451 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site