lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 20 Aug 2013 10:15:05 +0200
From:	"Arend van Spriel" <arend@...adcom.com>
To:	"Felix Fietkau" <nbd@...nwrt.org>
cc:	"Greg Kroah-Hartman" <gregkh@...uxfoundation.org>,
	"Tom Gundersen" <teg@...m.no>, stable@...r.kernel.org,
	"Linux Wireless List" <linux-wireless@...r.kernel.org>,
	LKML <linux-kernel@...r.kernel.org>,
	"Johannes Berg" <johannes@...solutions.net>
Subject: Re: [REGRESSION] 3.10.{6,7} crashes on network activity

On 08/20/2013 06:56 AM, Felix Fietkau wrote:
> On 2013-08-20 2:28 AM, Greg Kroah-Hartman wrote:
>> On Tue, Aug 20, 2013 at 08:26:11AM +0800, Tom Gundersen wrote:
>>> On Tue, Aug 20, 2013 at 8:03 AM, Greg Kroah-Hartman
>>> <gregkh@...uxfoundation.org> wrote:
>>>> On Tue, Aug 20, 2013 at 07:59:47AM +0800, Tom Gundersen wrote:
>>>>> Hi guys,
>>>>>
>>>>> Starting with 3.10.6 (and still present in .7) I get an oops on
>>>>> connecting to the network.
>>>>>
>>>>> The attached picture shows the oops. In case it does not reach the ML,
>>>>> the top of the call trace reads:
>>>>>
>>>>> brcms_c_compute_rtscts_dur
>>>>> brcms_c_ampdu_finalize
>>>>> ampdu_finalize
>>>>> dma_txfast
>>>>> brcms_c_txfifo
>>>>> brcms_c_sendpkt_mac80211
>>>>> brcms_ops_tx
>>>>> __ieee80211_tx
>>>>>
>>>>> I bisected the problem and the first bad commit is
>>>>>
>>>>> commit ef47a5e4f1aaf1d0e2e6875e34b2c9595897bef6
>>>>> Author: Felix Fietkau <nbd@...nwrt.org>
>>>>> Date:   Fri Jun 28 21:04:35 2013 +0200
>>>>>
>>>>>      mac80211/minstrel_ht: fix cck rate sampling
>>>>>
>>>>>      commit 1cd158573951f737fbc878a35cb5eb47bf9af3d5 upstream.
>>>>>
>>>>> Reverting it on top of .7 fixes the problem.
>>>>>
>>>>> I had the same (I suppose) problem on mainline some time ago, but I
>>>>> have not bisected it, verified that the problem still occurs there, or
>>>>> checked if reverting the upstream patch fixes it. I'd be happy to do
>>>>> that if it would help though.
>>>>>
>>>>> Let me know if you need any more information.
>>>>
>>>> Do you have this same problem with 3.11-rc6 as well?
>>>
>>> Yes, I just confirmed. I also confirmed that reverting the mainline
>>> commit on top of -rc6 fixes the problem.
>>
>> Great, thanks.
>>
>> Felix and Johannes, any chance we can get this reverted in Linus tree
>> soon, and push that revert back to the 3.10 stable tree as well?
> I'd like to avoid a revert, since that will simply replace one set of
> issues with another. Let's limit the use of the feature that brcmsmac
> can't handle to drivers that are known to work with it. Tom, Please
> test this patch to see if it fixes your issue.

Hi Felix,

I have been diving into root causing why brcmsmac can not handle cck 
fallback rates, because it should. Maybe it is better to flag no cck 
support and only change brcmsmac.

Regards,
Arend

> - Felix
> ---
> --- a/include/net/mac80211.h
> +++ b/include/net/mac80211.h
> @@ -1501,6 +1501,7 @@ enum ieee80211_hw_flags {
>   	IEEE80211_HW_SUPPORTS_RC_TABLE			= 1<<24,
>   	IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF		= 1<<25,
>   	IEEE80211_HW_TIMING_BEACON_ONLY			= 1<<26,
> +	IEEE80211_HW_SUPPORTS_HT_CCK_RATES		= 1<<27,
>   };
>
>   /**
> --- a/net/mac80211/rc80211_minstrel_ht.c
> +++ b/net/mac80211/rc80211_minstrel_ht.c
> @@ -828,6 +828,9 @@ minstrel_ht_update_cck(struct minstrel_p
>   	if (sband->band != IEEE80211_BAND_2GHZ)
>   		return;
>
> +	if (!(mp->hw->flags & IEEE80211_HW_SUPPORTS_HT_CCK_RATES))
> +		return;
> +
>   	mi->cck_supported = 0;
>   	mi->cck_supported_short = 0;
>   	for (i = 0; i < 4; i++) {
> --- a/drivers/net/wireless/ath/ath9k/init.c
> +++ b/drivers/net/wireless/ath/ath9k/init.c
> @@ -807,7 +807,8 @@ void ath9k_set_hw_capab(struct ath_softc
>   		IEEE80211_HW_PS_NULLFUNC_STACK |
>   		IEEE80211_HW_SPECTRUM_MGMT |
>   		IEEE80211_HW_REPORTS_TX_ACK_STATUS |
> -		IEEE80211_HW_SUPPORTS_RC_TABLE;
> +		IEEE80211_HW_SUPPORTS_RC_TABLE |
> +		IEEE80211_HW_SUPPORTS_HT_CCK_RATES;
>
>   	if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) {
>   		hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
> --- a/drivers/net/wireless/ath/carl9170/main.c
> +++ b/drivers/net/wireless/ath/carl9170/main.c
> @@ -1878,7 +1878,8 @@ void *carl9170_alloc(size_t priv_size)
>   		     IEEE80211_HW_PS_NULLFUNC_STACK |
>   		     IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC |
>   		     IEEE80211_HW_SUPPORTS_RC_TABLE |
> -		     IEEE80211_HW_SIGNAL_DBM;
> +		     IEEE80211_HW_SIGNAL_DBM |
> +		     IEEE80211_HW_SUPPORTS_HT_CCK_RATES;
>
>   	if (!modparam_noht) {
>   		/*
> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
> @@ -6327,7 +6327,8 @@ static int rt2800_probe_hw_mode(struct r
>   	    IEEE80211_HW_SUPPORTS_PS |
>   	    IEEE80211_HW_PS_NULLFUNC_STACK |
>   	    IEEE80211_HW_AMPDU_AGGREGATION |
> -	    IEEE80211_HW_REPORTS_TX_ACK_STATUS;
> +	    IEEE80211_HW_REPORTS_TX_ACK_STATUS |
> +	    IEEE80211_HW_SUPPORTS_HT_CCK_RATES;
>
>   	/*
>   	 * Don't set IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING for USB devices
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ