Commit 96b6efb7 authored by Ivan Safonov's avatar Ivan Safonov Committed by Greg Kroah-Hartman

r8188eu: remove unused urbs from struct xmit_buf

Driver allocates eighth urbs per xmit_buf, but uses only first urb.
Allocation of seven remaining urbs wastes memory for nothing.
Reviewed-by: default avatarPavel Skripkin <paskripkin@gmail.com>
Signed-off-by: default avatarIvan Safonov <insafonov@gmail.com>
Link: https://lore.kernel.org/r/20220417163608.42917-1-insafonov@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent db84803c
...@@ -198,7 +198,7 @@ struct xmit_buf { ...@@ -198,7 +198,7 @@ struct xmit_buf {
u32 len; u32 len;
struct submit_ctx *sctx; struct submit_ctx *sctx;
u32 ff_hwaddr; u32 ff_hwaddr;
struct urb *pxmit_urb[8]; struct urb *pxmit_urb;
dma_addr_t dma_transfer_addr; /* (in) dma addr for transfer_buffer */ dma_addr_t dma_transfer_addr; /* (in) dma addr for transfer_buffer */
u8 bpending[8]; u8 bpending[8];
int last[8]; int last[8];
......
...@@ -140,7 +140,7 @@ u32 rtw_write_port(struct adapter *padapter, u32 addr, u32 cnt, u8 *wmem) ...@@ -140,7 +140,7 @@ u32 rtw_write_port(struct adapter *padapter, u32 addr, u32 cnt, u8 *wmem)
spin_unlock_irqrestore(&pxmitpriv->lock, irqL); spin_unlock_irqrestore(&pxmitpriv->lock, irqL);
purb = pxmitbuf->pxmit_urb[0]; purb = pxmitbuf->pxmit_urb;
/* translate DMA FIFO addr to pipehandle */ /* translate DMA FIFO addr to pipehandle */
pipe = ffaddr2pipehdl(pdvobj, addr); pipe = ffaddr2pipehdl(pdvobj, addr);
...@@ -178,25 +178,21 @@ u32 rtw_write_port(struct adapter *padapter, u32 addr, u32 cnt, u8 *wmem) ...@@ -178,25 +178,21 @@ u32 rtw_write_port(struct adapter *padapter, u32 addr, u32 cnt, u8 *wmem)
void rtw_write_port_cancel(struct adapter *padapter) void rtw_write_port_cancel(struct adapter *padapter)
{ {
int i, j; int i;
struct xmit_buf *pxmitbuf = (struct xmit_buf *)padapter->xmitpriv.pxmitbuf; struct xmit_buf *pxmitbuf = (struct xmit_buf *)padapter->xmitpriv.pxmitbuf;
padapter->bWritePortCancel = true; padapter->bWritePortCancel = true;
for (i = 0; i < NR_XMITBUFF; i++) { for (i = 0; i < NR_XMITBUFF; i++) {
for (j = 0; j < 8; j++) { if (pxmitbuf->pxmit_urb)
if (pxmitbuf->pxmit_urb[j]) usb_kill_urb(pxmitbuf->pxmit_urb);
usb_kill_urb(pxmitbuf->pxmit_urb[j]);
}
pxmitbuf++; pxmitbuf++;
} }
pxmitbuf = (struct xmit_buf *)padapter->xmitpriv.pxmit_extbuf; pxmitbuf = (struct xmit_buf *)padapter->xmitpriv.pxmit_extbuf;
for (i = 0; i < NR_XMIT_EXTBUFF; i++) { for (i = 0; i < NR_XMIT_EXTBUFF; i++) {
for (j = 0; j < 8; j++) { if (pxmitbuf->pxmit_urb)
if (pxmitbuf->pxmit_urb[j]) usb_kill_urb(pxmitbuf->pxmit_urb);
usb_kill_urb(pxmitbuf->pxmit_urb[j]);
}
pxmitbuf++; pxmitbuf++;
} }
} }
...@@ -67,8 +67,6 @@ bool rtw_endofpktfile(struct pkt_file *pfile) ...@@ -67,8 +67,6 @@ bool rtw_endofpktfile(struct pkt_file *pfile)
int rtw_os_xmit_resource_alloc(struct adapter *padapter, struct xmit_buf *pxmitbuf, u32 alloc_sz) int rtw_os_xmit_resource_alloc(struct adapter *padapter, struct xmit_buf *pxmitbuf, u32 alloc_sz)
{ {
int i;
pxmitbuf->pallocated_buf = kzalloc(alloc_sz, GFP_KERNEL); pxmitbuf->pallocated_buf = kzalloc(alloc_sz, GFP_KERNEL);
if (!pxmitbuf->pallocated_buf) if (!pxmitbuf->pallocated_buf)
return _FAIL; return _FAIL;
...@@ -76,21 +74,17 @@ int rtw_os_xmit_resource_alloc(struct adapter *padapter, struct xmit_buf *pxmitb ...@@ -76,21 +74,17 @@ int rtw_os_xmit_resource_alloc(struct adapter *padapter, struct xmit_buf *pxmitb
pxmitbuf->pbuf = (u8 *)N_BYTE_ALIGMENT((size_t)(pxmitbuf->pallocated_buf), XMITBUF_ALIGN_SZ); pxmitbuf->pbuf = (u8 *)N_BYTE_ALIGMENT((size_t)(pxmitbuf->pallocated_buf), XMITBUF_ALIGN_SZ);
pxmitbuf->dma_transfer_addr = 0; pxmitbuf->dma_transfer_addr = 0;
for (i = 0; i < 8; i++) { pxmitbuf->pxmit_urb = usb_alloc_urb(0, GFP_KERNEL);
pxmitbuf->pxmit_urb[i] = usb_alloc_urb(0, GFP_KERNEL); if (!pxmitbuf->pxmit_urb)
if (!pxmitbuf->pxmit_urb[i]) return _FAIL;
return _FAIL;
}
return _SUCCESS; return _SUCCESS;
} }
void rtw_os_xmit_resource_free(struct adapter *padapter, void rtw_os_xmit_resource_free(struct adapter *padapter,
struct xmit_buf *pxmitbuf, u32 free_sz) struct xmit_buf *pxmitbuf, u32 free_sz)
{ {
int i; usb_free_urb(pxmitbuf->pxmit_urb);
for (i = 0; i < 8; i++)
usb_free_urb(pxmitbuf->pxmit_urb[i]);
kfree(pxmitbuf->pallocated_buf); kfree(pxmitbuf->pallocated_buf);
} }
......
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