summaryrefslogtreecommitdiff
path: root/drivers/staging/rtl8712/xmit_linux.c
diff options
context:
space:
mode:
authorAli Bahar <ali@internetdog.org>2011-09-04 03:14:18 +0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-09-06 17:00:34 -0700
commitf95302eed91061d1d9440d572166e46d58d35b7c (patch)
tree9ee3a217e60ae4cc2211d72374275c35cd1de600 /drivers/staging/rtl8712/xmit_linux.c
parent0aeb623d376c05a8618bf10418b9a0cb2b43e944 (diff)
staging: r8712u: Merging Realtek's latest (v2.6.6). tx: NULL _in_ spin lock.
In transmit path, r8712_free_xmitframe(), the pkt pointer is now NULLed _within_ the spin lock. Signed-off-by: Ali Bahar <ali@internetDog.org> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rtl8712/xmit_linux.c')
-rw-r--r--drivers/staging/rtl8712/xmit_linux.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/staging/rtl8712/xmit_linux.c b/drivers/staging/rtl8712/xmit_linux.c
index d3535ba5dd43..c9703627c8f5 100644
--- a/drivers/staging/rtl8712/xmit_linux.c
+++ b/drivers/staging/rtl8712/xmit_linux.c
@@ -44,7 +44,6 @@
static uint remainder_len(struct pkt_file *pfile)
{
- /* Kovich: Need to extend the buf_len to 64 bit ?(unsigned long long) */
return (uint)(pfile->buf_len - ((addr_t)(pfile->cur_addr) -
(addr_t)(pfile->buf_start)));
}
@@ -109,6 +108,26 @@ void r8712_set_qos(struct pkt_file *ppktfile, struct pkt_attrib *pattrib)
pattrib->subtype = WIFI_QOS_DATA_TYPE;
}
+void r8712_SetFilter(struct work_struct *work)
+{
+ struct _adapter *padapter = container_of(work, struct _adapter,
+ wkFilterRxFF0);
+ u8 oldvalue = 0x00, newvalue = 0x00;
+ unsigned long irqL;
+
+ oldvalue = r8712_read8(padapter, 0x117);
+ newvalue = oldvalue & 0xfe;
+ r8712_write8(padapter, 0x117, newvalue);
+
+ spin_lock_irqsave(&padapter->lockRxFF0Filter, irqL);
+ padapter->blnEnableRxFF0Filter = 1;
+ spin_unlock_irqrestore(&padapter->lockRxFF0Filter, irqL);
+ do {
+ msleep(100);
+ } while (padapter->blnEnableRxFF0Filter == 1);
+ r8712_write8(padapter, 0x117, oldvalue);
+}
+
int r8712_xmit_resource_alloc(struct _adapter *padapter,
struct xmit_buf *pxmitbuf)
{