瀏覽代碼

rt2x00: Initialize TX control field in data entries

In the TX path, the driver didn't copy the TX control data structure. Thus, it
was invalid in the TX done handler, causing serious trouble and misbehaviour.

Signed-off-by: Mattias Nissler <mattias.nissler@gmx.de>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Mattias Nissler 17 年之前
父節點
當前提交
92f5ac6320
共有 2 個文件被更改,包括 2 次插入0 次删除
  1. 1 0
      drivers/net/wireless/rt2x00/rt2x00pci.c
  2. 1 0
      drivers/net/wireless/rt2x00/rt2x00usb.c

+ 1 - 0
drivers/net/wireless/rt2x00/rt2x00pci.c

@@ -67,6 +67,7 @@ int rt2x00pci_write_tx_data(struct rt2x00_dev *rt2x00dev,
 	skbdesc->desc_len = queue->desc_size;
 	skbdesc->entry = entry;
 
+	memcpy(&priv_tx->control, control, sizeof(priv_tx->control));
 	memcpy(priv_tx->data, skb->data, skb->len);
 	rt2x00lib_write_tx_desc(rt2x00dev, skb, control);
 

+ 1 - 0
drivers/net/wireless/rt2x00/rt2x00usb.c

@@ -206,6 +206,7 @@ int rt2x00usb_write_tx_data(struct rt2x00_dev *rt2x00dev,
 	skbdesc->desc_len = queue->desc_size;
 	skbdesc->entry = entry;
 
+	memcpy(&priv_tx->control, control, sizeof(priv_tx->control));
 	rt2x00lib_write_tx_desc(rt2x00dev, skb, control);
 
 	/*