2023-02-22 00:11:09

by Ben Greear

[permalink] [raw]
Subject: Potential issue in ieee80211_rx_handlers_result related to link_sta?

I'm working to rebase my patches on the 6.2 kernel.

I am currently tracking down something I did that causes the code to crash in the code below
right above 'fallthrough'. I'm wondering why it is checking for rx->sta but then access
ing rx->link_sta?

static void ieee80211_rx_handlers_result(struct ieee80211_rx_data *rx,
ieee80211_rx_result res)
{
switch (res) {
case RX_DROP_MONITOR:
I802_DEBUG_INC(rx->sdata->local->rx_handlers_drop);
if (rx->sta)
rx->link_sta->rx_stats.dropped++;
fallthrough;

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com


2023-02-22 05:16:57

by Ben Greear

[permalink] [raw]
Subject: Re: Potential issue in ieee80211_rx_handlers_result related to link_sta?

On 2/21/23 4:10 PM, Ben Greear wrote:
> I'm working to rebase my patches on the 6.2 kernel.
>
> I am currently tracking down something I did that causes the code to crash in the code below
> right above 'fallthrough'.  I'm wondering why it is checking for rx->sta but then access
> ing rx->link_sta?
>
> static void ieee80211_rx_handlers_result(struct ieee80211_rx_data *rx,
>                      ieee80211_rx_result res)
> {
>     switch (res) {
>     case RX_DROP_MONITOR:
>         I802_DEBUG_INC(rx->sdata->local->rx_handlers_drop);
>         if (rx->sta)
>             rx->link_sta->rx_stats.dropped++;
>         fallthrough;

I found my bug, hash fast path wasn't setting up the link_sta.

Still, the checks might be better changed?

Thanks,
Ben

>
> Thanks,
> Ben
>