Commit 879999ce authored by Christian Lamparter's avatar Christian Lamparter Committed by John W. Linville

ar9170usb: fix panic triggered by undersized rxstream buffer

While ar9170's USB transport packet size is currently set to 8KiB,
the PHY is capable of receiving AMPDUs with up to 64KiB.
Such a large frame will be split over several rx URBs and
exceed the previously allocated space for rx stream reconstruction.

This patch increases the buffer size to 64KiB which is
in fact the phy & rx stream designed size limit.

Cc: stable@kernel.org
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=15591Reported-by: default avatarChristian Mehlis <mehlis@inf.fu-berlin.de>
Signed-off-by: default avatarChristian Lamparter <chunkeey@googlemail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent f9ea3eb4
...@@ -425,5 +425,6 @@ enum ar9170_txq { ...@@ -425,5 +425,6 @@ enum ar9170_txq {
#define AR9170_TXQ_DEPTH 32 #define AR9170_TXQ_DEPTH 32
#define AR9170_TX_MAX_PENDING 128 #define AR9170_TX_MAX_PENDING 128
#define AR9170_RX_STREAM_MAX_SIZE 65535
#endif /* __AR9170_HW_H */ #endif /* __AR9170_HW_H */
...@@ -2515,7 +2515,7 @@ void *ar9170_alloc(size_t priv_size) ...@@ -2515,7 +2515,7 @@ void *ar9170_alloc(size_t priv_size)
* tends to split the streams into seperate rx descriptors. * tends to split the streams into seperate rx descriptors.
*/ */
skb = __dev_alloc_skb(AR9170_MAX_RX_BUFFER_SIZE, GFP_KERNEL); skb = __dev_alloc_skb(AR9170_RX_STREAM_MAX_SIZE, GFP_KERNEL);
if (!skb) if (!skb)
goto err_nomem; goto err_nomem;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment