mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-23 08:02:37 +07:00
bd1c6142ed
Bug 60815 - Interface hangs in mwifiex_usb https://bugzilla.kernel.org/show_bug.cgi?id=60815 We have 4 bytes of interface header for packets delivered to SDIO and PCIe, but not for USB interface. In Tx AMSDU case, currently 4 bytes of garbage data is unnecessarily appended for USB packets. This sometimes leads to a firmware hang, because it may not interpret the data packet correctly. Problem is fixed by removing this redundant headroom for USB. Cc: <stable@vger.kernel.org> # 3.5+ Tested-by: Dmitry Khromov <icechrome@gmail.com> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
34 lines
1.3 KiB
C
34 lines
1.3 KiB
C
/*
|
|
* Marvell Wireless LAN device driver: 802.11n Aggregation
|
|
*
|
|
* Copyright (C) 2011, Marvell International Ltd.
|
|
*
|
|
* This software file (the "File") is distributed by Marvell International
|
|
* Ltd. under the terms of the GNU General Public License Version 2, June 1991
|
|
* (the "License"). You may use, redistribute and/or modify this File in
|
|
* accordance with the terms and conditions of the License, a copy of which
|
|
* is available by writing to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
|
|
* worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
*
|
|
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE EXPRESSLY DISCLAIMED. The License provides additional details about
|
|
* this warranty disclaimer.
|
|
*/
|
|
|
|
#ifndef _MWIFIEX_11N_AGGR_H_
|
|
#define _MWIFIEX_11N_AGGR_H_
|
|
|
|
#define PKT_TYPE_AMSDU 0xE6
|
|
#define MIN_NUM_AMSDU 2
|
|
|
|
int mwifiex_11n_deaggregate_pkt(struct mwifiex_private *priv,
|
|
struct sk_buff *skb);
|
|
int mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
|
|
struct mwifiex_ra_list_tbl *ptr,
|
|
int ptr_index, unsigned long flags)
|
|
__releases(&priv->wmm.ra_list_spinlock);
|
|
|
|
#endif /* !_MWIFIEX_11N_AGGR_H_ */
|