diff mbox

brcmfmac: Use put_unaligned_le32

Message ID 20150106035319.GA4082@vaishali-Ideapad-Z570 (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show

Commit Message

Vaishali Thakkar Jan. 6, 2015, 3:53 a.m. UTC
This patch introduces the use of function put_unaligned_le32.

This is done using Coccinelle and semantic patch used is as follows:

@a@
typedef u32, __le32, uint32_t;
{u32,__le32,uint32_t} e32;
identifier tmp;
expression ptr;
expression y,e;
type T;
type T;
@@

- tmp = cpu_to_le32(y);

<+... when != tmp
(
- memcpy(ptr, (T)&tmp, \(4\|sizeof(u32)\|sizeof(__le32)\|sizeof(uint32_t)\|s
+ put_unaligned_le32(y,ptr);
|
- memcpy(ptr, (T)&tmp, ...);
+ put_unaligned_le32(y,ptr);
)
...+>
? tmp = e

@@ type T; identifier a.tmp; @@

- T tmp;
...when != tmp

Signed-off-by: Vaishali Thakkar <vthakkar1994@gmail.com>
---
 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

Comments

Kalle Valo Jan. 15, 2015, 1 p.m. UTC | #1
Vaishali Thakkar <vthakkar1994@gmail.com> writes:

> This patch introduces the use of function put_unaligned_le32.
>
> This is done using Coccinelle and semantic patch used is as follows:
>
> @a@
> typedef u32, __le32, uint32_t;
> {u32,__le32,uint32_t} e32;
> identifier tmp;
> expression ptr;
> expression y,e;
> type T;
> type T;
> @@
>
> - tmp = cpu_to_le32(y);
>
> <+... when != tmp
> (
> - memcpy(ptr, (T)&tmp, \(4\|sizeof(u32)\|sizeof(__le32)\|sizeof(uint32_t)\|s
> + put_unaligned_le32(y,ptr);
> |
> - memcpy(ptr, (T)&tmp, ...);
> + put_unaligned_le32(y,ptr);
> )
> ...+>
> ? tmp = e
>
> @@ type T; identifier a.tmp; @@
>
> - T tmp;
> ...when != tmp
>
> Signed-off-by: Vaishali Thakkar <vthakkar1994@gmail.com>

This failed to apply, please rebase:

Applying: brcmfmac: Use put_unaligned_le32
error: drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c: does not exist in index
Patch failed at 0001 brcmfmac: Use put_unaligned_le32
Vaishali Thakkar Jan. 16, 2015, 3:33 p.m. UTC | #2
On Thu, Jan 15, 2015 at 6:30 PM, Kalle Valo <kvalo@codeaurora.org> wrote:
> Vaishali Thakkar <vthakkar1994@gmail.com> writes:
>
>> This patch introduces the use of function put_unaligned_le32.
>>
>> This is done using Coccinelle and semantic patch used is as follows:
>>
>> @a@
>> typedef u32, __le32, uint32_t;
>> {u32,__le32,uint32_t} e32;
>> identifier tmp;
>> expression ptr;
>> expression y,e;
>> type T;
>> type T;
>> @@
>>
>> - tmp = cpu_to_le32(y);
>>
>> <+... when != tmp
>> (
>> - memcpy(ptr, (T)&tmp, \(4\|sizeof(u32)\|sizeof(__le32)\|sizeof(uint32_t)\|s
>> + put_unaligned_le32(y,ptr);
>> |
>> - memcpy(ptr, (T)&tmp, ...);
>> + put_unaligned_le32(y,ptr);
>> )
>> ...+>
>> ? tmp = e
>>
>> @@ type T; identifier a.tmp; @@
>>
>> - T tmp;
>> ...when != tmp
>>
>> Signed-off-by: Vaishali Thakkar <vthakkar1994@gmail.com>
>
> This failed to apply, please rebase:
>
> Applying: brcmfmac: Use put_unaligned_le32
> error: drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c: does not exist in index
> Patch failed at 0001 brcmfmac: Use put_unaligned_le32
>

Yes. Sorry. Because of some technical problems with my machine, I
couldn't be able to send new patch as I didn't have code with me.
Actually I sent follow up mail to John about dropping this patch
[about 6 days back] until I rebase it. But forgot to cced it to
mailing list. I will send rebased patch.

Sorry again.

> --
> Kalle Valo
diff mbox

Patch

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
index 28fa25b..6d37618 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
@@ -3550,17 +3550,12 @@  static u32
 brcmf_vndr_ie(u8 *iebuf, s32 pktflag, u8 *ie_ptr, u32 ie_len, s8 *add_del_cmd)
 {
 
-	__le32 iecount_le;
-	__le32 pktflag_le;
-
 	strncpy(iebuf, add_del_cmd, VNDR_IE_CMD_LEN - 1);
 	iebuf[VNDR_IE_CMD_LEN - 1] = '\0';
 
-	iecount_le = cpu_to_le32(1);
-	memcpy(&iebuf[VNDR_IE_COUNT_OFFSET], &iecount_le, sizeof(iecount_le));
+	put_unaligned_le32(1, &iebuf[VNDR_IE_COUNT_OFFSET]);
 
-	pktflag_le = cpu_to_le32(pktflag);
-	memcpy(&iebuf[VNDR_IE_PKTFLAG_OFFSET], &pktflag_le, sizeof(pktflag_le));
+	put_unaligned_le32(pktflag, &iebuf[VNDR_IE_PKTFLAG_OFFSET]);
 
 	memcpy(&iebuf[VNDR_IE_VSIE_OFFSET], ie_ptr, ie_len);