Subject: [PATCH v3] Staging: rtl8192e: Casting correct Endianness

From: Gnanachandran Dhanapal <[email protected]>

Casting correct Endianness for __le16 variable used in assignment and
condition check

Signed-off-by: Gnanachandran Dhanapal <[email protected]>
---
v3: Greg review comments addressed

---
drivers/staging/rtl8192e/rtllib_softmac.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c
index 9dce121..a842170 100644
--- a/drivers/staging/rtl8192e/rtllib_softmac.c
+++ b/drivers/staging/rtl8192e/rtllib_softmac.c
@@ -1265,7 +1265,7 @@ inline struct sk_buff *rtllib_association_req(struct rtllib_network *beacon,
skb_put(skb, sizeof(struct rtllib_assoc_request_frame) + 2);


- hdr->header.frame_ctl = RTLLIB_STYPE_ASSOC_REQ;
+ hdr->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_ASSOC_REQ);
hdr->header.duration_id = cpu_to_le16(37);
ether_addr_copy(hdr->header.addr1, beacon->bssid);
ether_addr_copy(hdr->header.addr2, ieee->dev->dev_addr);
@@ -2244,8 +2244,10 @@ inline int rtllib_rx_assoc_resp(struct rtllib_device *ieee, struct sk_buff *skb,
struct rtllib_assoc_response_frame *assoc_resp;
struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data;

+ u16 frame_ctl = le16_to_cpu(header->frame_ctl);
+
netdev_dbg(ieee->dev, "received [RE]ASSOCIATION RESPONSE (%d)\n",
- WLAN_FC_GET_STYPE(header->frame_ctl));
+ WLAN_FC_GET_STYPE(frame_ctl));

if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATED &&
@@ -2389,6 +2391,7 @@ inline int rtllib_rx_auth(struct rtllib_device *ieee, struct sk_buff *skb,
inline int rtllib_rx_deauth(struct rtllib_device *ieee, struct sk_buff *skb)
{
struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data;
+ u16 frame_ctl;

if (memcmp(header->addr3, ieee->current_network.bssid, ETH_ALEN) != 0)
return 0;
@@ -2399,9 +2402,10 @@ inline int rtllib_rx_deauth(struct rtllib_device *ieee, struct sk_buff *skb)
if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
ieee->state == RTLLIB_LINKED &&
(ieee->iw_mode == IW_MODE_INFRA)) {
+ frame_ctl = le16_to_cpu(header->frame_ctl);
netdev_info(ieee->dev,
"==========>received disassoc/deauth(%x) frame, reason code:%x\n",
- WLAN_FC_GET_STYPE(header->frame_ctl),
+ WLAN_FC_GET_STYPE(frame_ctl),
((struct rtllib_disassoc *)skb->data)->reason);
ieee->state = RTLLIB_ASSOCIATING;
ieee->softmac_stats.reassoc++;
@@ -2427,11 +2431,13 @@ inline int rtllib_rx_frame_softmac(struct rtllib_device *ieee,
u16 stype)
{
struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data;
+ u16 frame_ctl;

if (!ieee->proto_started)
return 0;

- switch (WLAN_FC_GET_STYPE(header->frame_ctl)) {
+ frame_ctl = le16_to_cpu(header->frame_ctl);
+ switch (WLAN_FC_GET_STYPE(frame_ctl)) {
case RTLLIB_STYPE_ASSOC_RESP:
case RTLLIB_STYPE_REASSOC_RESP:
if (rtllib_rx_assoc_resp(ieee, skb, rx_stats) == 1)
--
1.7.9.5


2015-06-08 20:42:02

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v3] Staging: rtl8192e: Casting correct Endianness

On Tue, Jun 02, 2015 at 03:59:32PM +0000, DHANAPAL, GNANACHANDRAN (G.) wrote:
> From: Gnanachandran Dhanapal <[email protected]>
>
> Casting correct Endianness for __le16 variable used in assignment and
> condition check
>
> Signed-off-by: Gnanachandran Dhanapal <[email protected]>
> ---
> v3: Greg review comments addressed
>
> ---
> drivers/staging/rtl8192e/rtllib_softmac.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c
> index 9dce121..a842170 100644
> --- a/drivers/staging/rtl8192e/rtllib_softmac.c
> +++ b/drivers/staging/rtl8192e/rtllib_softmac.c
> @@ -1265,7 +1265,7 @@ inline struct sk_buff *rtllib_association_req(struct rtllib_network *beacon,
> skb_put(skb, sizeof(struct rtllib_assoc_request_frame) + 2);
>
>
> - hdr->header.frame_ctl = RTLLIB_STYPE_ASSOC_REQ;
> + hdr->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_ASSOC_REQ);
> hdr->header.duration_id = cpu_to_le16(37);
> ether_addr_copy(hdr->header.addr1, beacon->bssid);
> ether_addr_copy(hdr->header.addr2, ieee->dev->dev_addr);
> @@ -2244,8 +2244,10 @@ inline int rtllib_rx_assoc_resp(struct rtllib_device *ieee, struct sk_buff *skb,
> struct rtllib_assoc_response_frame *assoc_resp;
> struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data;
>
> + u16 frame_ctl = le16_to_cpu(header->frame_ctl);
> +

Why the blank line before this variable definition?