forked from Minki/linux
mwifiex: fix a bug in Tx multiport aggregation
When aggregation port limit is reached, we stop aggregation and the data is sent to firmware. It is observed that one less packet than the port limit is aggregated in this case. ex. 15 instead of 16. The reason is we have redundant port limit checks before current packet is added to aggregation buffer. The issue is fixed by removing these checks. We already have necessary check in precopy current buffer handling. Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Avinash Patil <patila@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
a659c4306b
commit
c7346c3231
@ -1527,8 +1527,7 @@ static int mwifiex_host_to_card_mp_aggr(struct mwifiex_adapter *adapter,
|
||||
__func__);
|
||||
|
||||
if (MP_TX_AGGR_IN_PROGRESS(card)) {
|
||||
if (!mp_tx_aggr_port_limit_reached(card) &&
|
||||
MP_TX_AGGR_BUF_HAS_ROOM(card, pkt_len)) {
|
||||
if (MP_TX_AGGR_BUF_HAS_ROOM(card, pkt_len)) {
|
||||
f_precopy_cur_buf = 1;
|
||||
|
||||
if (!(card->mp_wr_bitmap &
|
||||
@ -1540,8 +1539,7 @@ static int mwifiex_host_to_card_mp_aggr(struct mwifiex_adapter *adapter,
|
||||
/* No room in Aggr buf, send it */
|
||||
f_send_aggr_buf = 1;
|
||||
|
||||
if (mp_tx_aggr_port_limit_reached(card) ||
|
||||
!(card->mp_wr_bitmap &
|
||||
if (!(card->mp_wr_bitmap &
|
||||
(1 << card->curr_wr_port)))
|
||||
f_send_cur_buf = 1;
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user