Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40fbb290 authored by Roland Vossen's avatar Roland Vossen Committed by Greg Kroah-Hartman
Browse files

staging: brcm80211: sparse endianness warnings on dongle events



Structures received from dongle have been annotated.

Reported-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Reviewed-by: default avatarArend van Spriel <arend@broadcom.com>
Reviewed-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent e0f4c674
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -134,13 +134,13 @@
#define BRCMF_EVENT_MSG_GROUP		0x04

struct brcmf_event_msg {
	u16 version;
	u16 flags;
	u32 event_type;
	u32 status;
	u32 reason;
	u32 auth_type;
	u32 datalen;
	__be16 version;
	__be16 flags;
	__be32 event_type;
	__be32 status;
	__be32 reason;
	__be32 auth_type;
	__be32 datalen;
	u8 addr[ETH_ALEN];
	char ifname[IFNAMSIZ];
} __packed;
+2 −1
Original line number Diff line number Diff line
@@ -322,7 +322,8 @@ brcmf_proto_ioctl(struct brcmf_pub *drvr, int ifidx, struct brcmf_ioctl *ioc,
	/* Intercept the wme_dp ioctl here */
	if (!ret && ioc->cmd == BRCMF_C_SET_VAR &&
	    !strcmp(ioc->buf, "wme_dp")) {
		int slen, val = 0;
		int slen;
		__le32 val = 0;

		slen = strlen("wme_dp") + 1;
		if (len >= (int)(slen + sizeof(int)))
+11 −10
Original line number Diff line number Diff line
@@ -53,15 +53,15 @@ static const char brcmf_version[] =
struct msgtrace_hdr {
	u8 version;
	u8 spare;
	u16 len;		/* Len of the trace */
	u32 seqnum;		/* Sequence number of message. Useful
	__be16 len;		/* Len of the trace */
	__be32 seqnum;		/* Sequence number of message. Useful
				 * if the messsage has been lost
				 * because of DMA error or a bus reset
				 * (ex: SDIO Func2)
				 */
	u32 discarded_bytes;	/* Number of discarded bytes because of
	__be32 discarded_bytes;	/* Number of discarded bytes because of
				 trace overflow  */
	u32 discarded_printf;	/* Number of discarded printf
	__be32 discarded_printf;	/* Number of discarded printf
				 because of trace overflow */
} __packed;

@@ -401,7 +401,7 @@ brcmf_c_show_host_event(struct brcmf_event_msg *event, void *event_data)

	case BRCMF_E_RSSI:
		brcmf_dbg(EVENT, "MACEVENT: %s %d\n",
			  event_name, be32_to_cpu(*((int *)event_data)));
			  event_name, be32_to_cpu(*((__be32 *)event_data)));
		break;

	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 */
		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",
				  temp);
				  temp1);

			temp = be32_to_cpu(BRCMF_E_NDIS_LINK);
			memcpy((void *)(&pvt_data->msg.event_type), &temp,
			temp2 = cpu_to_be32(BRCMF_E_NDIS_LINK);
			memcpy((void *)(&pvt_data->msg.event_type), &temp2,
			       sizeof(pvt_data->msg.event_type));
		}
		break;
+12 −12
Original line number Diff line number Diff line
@@ -63,10 +63,10 @@ struct brcmf_trap {

#define CBUF_LEN	(128)

struct rte_log {
	u32 buf;		/* Can't be pointer on (64-bit) hosts */
	uint buf_size;
	uint idx;
struct rte_log_le {
	__le32 buf;		/* Can't be pointer on (64-bit) hosts */
	__le32 buf_size;
	__le32 idx;
	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
	 * polls.
	 */
	struct rte_log log;
	struct rte_log_le log_le;

	/* Console input line buffer
	 * Characters are read one at a time into cbuf
@@ -512,7 +512,7 @@ struct sdpcmd_regs {
struct brcmf_console {
	uint count;		/* Poll interval msec counter */
	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 */
	u8 *buf;		/* Log buffer (host copy) */
	uint last;		/* Last buffer read index */
@@ -3153,21 +3153,21 @@ static int brcmf_sdbrcm_readconsole(struct brcmf_bus *bus)
		return 0;

	/* Read console log struct */
	addr = bus->console_addr + offsetof(struct rte_console, log);
	rv = brcmf_sdbrcm_membytes(bus, false, addr, (u8 *)&c->log,
				sizeof(c->log));
	addr = bus->console_addr + offsetof(struct rte_console, log_le);
	rv = brcmf_sdbrcm_membytes(bus, false, addr, (u8 *)&c->log_le,
				   sizeof(c->log_le));
	if (rv < 0)
		return rv;

	/* Allocate console buffer (one time only) */
	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);
		if (c->buf == NULL)
			return -ENOMEM;
	}

	idx = le32_to_cpu(c->log.idx);
	idx = le32_to_cpu(c->log_le.idx);

	/* Protect against corrupt value */
	if (idx > c->bufsize)
@@ -3179,7 +3179,7 @@ static int brcmf_sdbrcm_readconsole(struct brcmf_bus *bus)
		return 0;

	/* 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);
	if (rv < 0)
		return rv;