staging: brcm80211: sparse endianness warnings on dongle events
Structures received from dongle have been annotated. Reported-by: Johannes Berg <johannes@sipsolutions.net> Reviewed-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e0f4c6742b
commit
40fbb29011
@@ -134,13 +134,13 @@
|
|||||||
#define BRCMF_EVENT_MSG_GROUP 0x04
|
#define BRCMF_EVENT_MSG_GROUP 0x04
|
||||||
|
|
||||||
struct brcmf_event_msg {
|
struct brcmf_event_msg {
|
||||||
u16 version;
|
__be16 version;
|
||||||
u16 flags;
|
__be16 flags;
|
||||||
u32 event_type;
|
__be32 event_type;
|
||||||
u32 status;
|
__be32 status;
|
||||||
u32 reason;
|
__be32 reason;
|
||||||
u32 auth_type;
|
__be32 auth_type;
|
||||||
u32 datalen;
|
__be32 datalen;
|
||||||
u8 addr[ETH_ALEN];
|
u8 addr[ETH_ALEN];
|
||||||
char ifname[IFNAMSIZ];
|
char ifname[IFNAMSIZ];
|
||||||
} __packed;
|
} __packed;
|
||||||
|
@@ -322,7 +322,8 @@ brcmf_proto_ioctl(struct brcmf_pub *drvr, int ifidx, struct brcmf_ioctl *ioc,
|
|||||||
/* Intercept the wme_dp ioctl here */
|
/* Intercept the wme_dp ioctl here */
|
||||||
if (!ret && ioc->cmd == BRCMF_C_SET_VAR &&
|
if (!ret && ioc->cmd == BRCMF_C_SET_VAR &&
|
||||||
!strcmp(ioc->buf, "wme_dp")) {
|
!strcmp(ioc->buf, "wme_dp")) {
|
||||||
int slen, val = 0;
|
int slen;
|
||||||
|
__le32 val = 0;
|
||||||
|
|
||||||
slen = strlen("wme_dp") + 1;
|
slen = strlen("wme_dp") + 1;
|
||||||
if (len >= (int)(slen + sizeof(int)))
|
if (len >= (int)(slen + sizeof(int)))
|
||||||
|
@@ -53,15 +53,15 @@ static const char brcmf_version[] =
|
|||||||
struct msgtrace_hdr {
|
struct msgtrace_hdr {
|
||||||
u8 version;
|
u8 version;
|
||||||
u8 spare;
|
u8 spare;
|
||||||
u16 len; /* Len of the trace */
|
__be16 len; /* Len of the trace */
|
||||||
u32 seqnum; /* Sequence number of message. Useful
|
__be32 seqnum; /* Sequence number of message. Useful
|
||||||
* if the messsage has been lost
|
* if the messsage has been lost
|
||||||
* because of DMA error or a bus reset
|
* because of DMA error or a bus reset
|
||||||
* (ex: SDIO Func2)
|
* (ex: SDIO Func2)
|
||||||
*/
|
*/
|
||||||
u32 discarded_bytes; /* Number of discarded bytes because of
|
__be32 discarded_bytes; /* Number of discarded bytes because of
|
||||||
trace overflow */
|
trace overflow */
|
||||||
u32 discarded_printf; /* Number of discarded printf
|
__be32 discarded_printf; /* Number of discarded printf
|
||||||
because of trace overflow */
|
because of trace overflow */
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
@@ -401,7 +401,7 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)
|
|||||||
|
|
||||||
case BRCMF_E_RSSI:
|
case BRCMF_E_RSSI:
|
||||||
brcmf_dbg(EVENT, "MACEVENT: %s %d\n",
|
brcmf_dbg(EVENT, "MACEVENT: %s %d\n",
|
||||||
event_name, be32_to_cpu(*((int *)event_data)));
|
event_name, be32_to_cpu(*((__be32 *)event_data)));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -498,14 +498,15 @@ brcmf_c_host_event(struct brcmf_info *drvr_priv, int *ifidx, void *pktdata,
|
|||||||
|
|
||||||
/* put it back to BRCMF_E_NDIS_LINK */
|
/* put it back to BRCMF_E_NDIS_LINK */
|
||||||
if (type == BRCMF_E_NDIS_LINK) {
|
if (type == BRCMF_E_NDIS_LINK) {
|
||||||
u32 temp;
|
u32 temp1;
|
||||||
|
__be32 temp2;
|
||||||
|
|
||||||
temp = get_unaligned_be32(&event->event_type);
|
temp1 = get_unaligned_be32(&event->event_type);
|
||||||
brcmf_dbg(TRACE, "Converted to WLC_E_LINK type %d\n",
|
brcmf_dbg(TRACE, "Converted to WLC_E_LINK type %d\n",
|
||||||
temp);
|
temp1);
|
||||||
|
|
||||||
temp = be32_to_cpu(BRCMF_E_NDIS_LINK);
|
temp2 = cpu_to_be32(BRCMF_E_NDIS_LINK);
|
||||||
memcpy((void *)(&pvt_data->msg.event_type), &temp,
|
memcpy((void *)(&pvt_data->msg.event_type), &temp2,
|
||||||
sizeof(pvt_data->msg.event_type));
|
sizeof(pvt_data->msg.event_type));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@@ -63,10 +63,10 @@ struct brcmf_trap {
|
|||||||
|
|
||||||
#define CBUF_LEN (128)
|
#define CBUF_LEN (128)
|
||||||
|
|
||||||
struct rte_log {
|
struct rte_log_le {
|
||||||
u32 buf; /* Can't be pointer on (64-bit) hosts */
|
__le32 buf; /* Can't be pointer on (64-bit) hosts */
|
||||||
uint buf_size;
|
__le32 buf_size;
|
||||||
uint idx;
|
__le32 idx;
|
||||||
char *_buf_compat; /* Redundant pointer for backward compat. */
|
char *_buf_compat; /* Redundant pointer for backward compat. */
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ struct rte_console {
|
|||||||
* Output will be lost if the output wraps around faster than the host
|
* Output will be lost if the output wraps around faster than the host
|
||||||
* polls.
|
* polls.
|
||||||
*/
|
*/
|
||||||
struct rte_log log;
|
struct rte_log_le log_le;
|
||||||
|
|
||||||
/* Console input line buffer
|
/* Console input line buffer
|
||||||
* Characters are read one at a time into cbuf
|
* Characters are read one at a time into cbuf
|
||||||
@@ -512,7 +512,7 @@ struct sdpcmd_regs {
|
|||||||
struct brcmf_console {
|
struct brcmf_console {
|
||||||
uint count; /* Poll interval msec counter */
|
uint count; /* Poll interval msec counter */
|
||||||
uint log_addr; /* Log struct address (fixed) */
|
uint log_addr; /* Log struct address (fixed) */
|
||||||
struct rte_log log; /* Log struct (host copy) */
|
struct rte_log_le log_le; /* Log struct (host copy) */
|
||||||
uint bufsize; /* Size of log buffer */
|
uint bufsize; /* Size of log buffer */
|
||||||
u8 *buf; /* Log buffer (host copy) */
|
u8 *buf; /* Log buffer (host copy) */
|
||||||
uint last; /* Last buffer read index */
|
uint last; /* Last buffer read index */
|
||||||
@@ -3153,21 +3153,21 @@ static int brcmf_sdbrcm_readconsole(struct brcmf_bus *bus)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Read console log struct */
|
/* Read console log struct */
|
||||||
addr = bus->console_addr + offsetof(struct rte_console, log);
|
addr = bus->console_addr + offsetof(struct rte_console, log_le);
|
||||||
rv = brcmf_sdbrcm_membytes(bus, false, addr, (u8 *)&c->log,
|
rv = brcmf_sdbrcm_membytes(bus, false, addr, (u8 *)&c->log_le,
|
||||||
sizeof(c->log));
|
sizeof(c->log_le));
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
return rv;
|
return rv;
|
||||||
|
|
||||||
/* Allocate console buffer (one time only) */
|
/* Allocate console buffer (one time only) */
|
||||||
if (c->buf == NULL) {
|
if (c->buf == NULL) {
|
||||||
c->bufsize = le32_to_cpu(c->log.buf_size);
|
c->bufsize = le32_to_cpu(c->log_le.buf_size);
|
||||||
c->buf = kmalloc(c->bufsize, GFP_ATOMIC);
|
c->buf = kmalloc(c->bufsize, GFP_ATOMIC);
|
||||||
if (c->buf == NULL)
|
if (c->buf == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
idx = le32_to_cpu(c->log.idx);
|
idx = le32_to_cpu(c->log_le.idx);
|
||||||
|
|
||||||
/* Protect against corrupt value */
|
/* Protect against corrupt value */
|
||||||
if (idx > c->bufsize)
|
if (idx > c->bufsize)
|
||||||
@@ -3179,7 +3179,7 @@ static int brcmf_sdbrcm_readconsole(struct brcmf_bus *bus)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Read the console buffer */
|
/* Read the console buffer */
|
||||||
addr = le32_to_cpu(c->log.buf);
|
addr = le32_to_cpu(c->log_le.buf);
|
||||||
rv = brcmf_sdbrcm_membytes(bus, false, addr, c->buf, c->bufsize);
|
rv = brcmf_sdbrcm_membytes(bus, false, addr, c->buf, c->bufsize);
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
return rv;
|
return rv;
|
||||||
|
Reference in New Issue
Block a user