[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <fc167249-b052-89f8-1cee-b7d9bcff0d2c@gmail.com>
Date: Thu, 23 Apr 2020 16:02:10 +0300
From: Ivan Safonov <insafonov@...il.com>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Larry Finger <Larry.Finger@...inger.net>,
devel@...verdev.osuosl.org, Puranjay Mohan <puranjay12@...il.com>,
linux-kernel@...r.kernel.org,
Saurav Girepunje <saurav.girepunje@...il.com>
Subject: Re: [PATCH] staging:r8188eu: avoid skb_clone for amsdu to msdu
conversion
On 4/23/20 2:29 PM, Greg Kroah-Hartman wrote:
> On Sat, Apr 18, 2020 at 11:41:12AM +0300, Ivan Safonov wrote:
>> skb clones use same data buffer, so tail of one skb is corrupted by beginning of next skb.
>
> Please properly wrap your changelog text at the correct column (72).
>
> Also, your subject: line does not have the correct driver name :(
Correct driver name is 'r8188eu':
1.
http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2016-June/090556.html
:
> One other point, it is customary to start the patch subject with "staging:
> rtl8188eu: ..." for drivers in staging. I also prefer using r8188eu rather than
> rtl8188eu as the former is the actual name of the driver, but either will work.
2. ./drivers/staging/rtl8188eu/os_dep/usb_intf.c lines 483-522/522 (END):
> static struct usb_driver rtl8188e_usb_drv = {
> .name = "r8188eu",
> .probe = rtw_drv_init,
> .disconnect = rtw_dev_remove,
> .id_table = rtw_usb_id_tbl,
> .suspend = rtw_suspend,
> .resume = rtw_resume,
> .reset_resume = rtw_resume,
> };
>
> module_usb_driver(rtl8188e_usb_drv)
Subject contain this name.
>>
>> Signed-off-by: Ivan Safonov <insafonov@...il.com>
>> ---
>> drivers/staging/rtl8188eu/core/rtw_recv.c | 19 ++++++-------------
>> 1 file changed, 6 insertions(+), 13 deletions(-)
>>
>> diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c b/drivers/staging/rtl8188eu/core/rtw_recv.c
>> index d4278361e002..a036ef104198 100644
>> --- a/drivers/staging/rtl8188eu/core/rtw_recv.c
>> +++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
>> @@ -1525,21 +1525,14 @@ static int amsdu_to_msdu(struct adapter *padapter, struct recv_frame *prframe)
>>
>> /* Allocate new skb for releasing to upper layer */
>> sub_skb = dev_alloc_skb(nSubframe_Length + 12);
>> - if (sub_skb) {
>> - skb_reserve(sub_skb, 12);
>> - skb_put_data(sub_skb, pdata, nSubframe_Length);
>> - } else {
>> - sub_skb = skb_clone(prframe->pkt, GFP_ATOMIC);
>> - if (sub_skb) {
>> - sub_skb->data = pdata;
>> - sub_skb->len = nSubframe_Length;
>> - skb_set_tail_pointer(sub_skb, nSubframe_Length);
>> - } else {
>> - DBG_88E("skb_clone() Fail!!! , nr_subframes=%d\n", nr_subframes);
>> - break;
>> - }
>> + if (!sub_skb) {
>> + DBG_88E("dev_alloc_skb() Fail!!! , nr_subframes=%d\n", nr_subframes);
>> + break;
>> }
>>
>> + skb_reserve(sub_skb, 12);
>> + skb_put_data(sub_skb, pdata, nSubframe_Length);
>> +
>
> Have you tested this?
I have not test this change.
Ivan Safonov.
Powered by blists - more mailing lists