diff options
author | Holger Schurig <hs4233@mail.mn-solutions.de> | 2007-12-07 10:30:44 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:06:13 -0500 |
commit | c2df2efe96742b78454acdffe6d278ae334fc838 (patch) | |
tree | 972dc13146959e44f2d487bf1b86968f2b175076 /drivers/net/wireless/libertas/cmd.c | |
parent | 1723047d6742cc172d5c0f1a5245deaee67ff331 (diff) |
libertas: endianness fixes
Recently I found that that sparse by default doesn't endianness
checks. So I changed my compilation habit to be
make modules C=1 SUBDIRS=drivers/net/wireless/libertas
CHECKFLAGS="-D__CHECK_ENDIAN__"
so that I get the little-endian checks from sparse as well. That
showed up a good bunch of problems.
Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/cmd.c')
-rw-r--r-- | drivers/net/wireless/libertas/cmd.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index ebfcb7bac681..cf1ab8a345fe 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c | |||
@@ -431,7 +431,7 @@ static int lbs_cmd_802_11_snmp_mib(struct lbs_private *priv, | |||
431 | u8 mode = (u8) (size_t) pdata_buf; | 431 | u8 mode = (u8) (size_t) pdata_buf; |
432 | pSNMPMIB->querytype = cpu_to_le16(CMD_ACT_SET); | 432 | pSNMPMIB->querytype = cpu_to_le16(CMD_ACT_SET); |
433 | pSNMPMIB->oid = cpu_to_le16((u16) DESIRED_BSSTYPE_I); | 433 | pSNMPMIB->oid = cpu_to_le16((u16) DESIRED_BSSTYPE_I); |
434 | pSNMPMIB->bufsize = sizeof(u8); | 434 | pSNMPMIB->bufsize = cpu_to_le16(sizeof(u8)); |
435 | if (mode == IW_MODE_ADHOC) { | 435 | if (mode == IW_MODE_ADHOC) { |
436 | ucTemp = SNMP_MIB_VALUE_ADHOC; | 436 | ucTemp = SNMP_MIB_VALUE_ADHOC; |
437 | } else { | 437 | } else { |
@@ -451,8 +451,8 @@ static int lbs_cmd_802_11_snmp_mib(struct lbs_private *priv, | |||
451 | pSNMPMIB->oid = cpu_to_le16((u16) DOT11D_I); | 451 | pSNMPMIB->oid = cpu_to_le16((u16) DOT11D_I); |
452 | 452 | ||
453 | if (cmd_action == CMD_ACT_SET) { | 453 | if (cmd_action == CMD_ACT_SET) { |
454 | pSNMPMIB->querytype = CMD_ACT_SET; | 454 | pSNMPMIB->querytype = cpu_to_le16(CMD_ACT_SET); |
455 | pSNMPMIB->bufsize = sizeof(u16); | 455 | pSNMPMIB->bufsize = cpu_to_le16(sizeof(u16)); |
456 | ulTemp = *(u32 *)pdata_buf; | 456 | ulTemp = *(u32 *)pdata_buf; |
457 | *((__le16 *)(pSNMPMIB->value)) = | 457 | *((__le16 *)(pSNMPMIB->value)) = |
458 | cpu_to_le16((u16) ulTemp); | 458 | cpu_to_le16((u16) ulTemp); |
@@ -484,7 +484,7 @@ static int lbs_cmd_802_11_snmp_mib(struct lbs_private *priv, | |||
484 | { | 484 | { |
485 | 485 | ||
486 | u32 ulTemp; | 486 | u32 ulTemp; |
487 | pSNMPMIB->oid = le16_to_cpu((u16) RTSTHRESH_I); | 487 | pSNMPMIB->oid = cpu_to_le16(RTSTHRESH_I); |
488 | 488 | ||
489 | if (cmd_action == CMD_ACT_GET) { | 489 | if (cmd_action == CMD_ACT_GET) { |
490 | pSNMPMIB->querytype = cpu_to_le16(CMD_ACT_GET); | 490 | pSNMPMIB->querytype = cpu_to_le16(CMD_ACT_GET); |
@@ -759,7 +759,7 @@ static int lbs_cmd_reg_access(struct lbs_private *priv, | |||
759 | 759 | ||
760 | offval = (struct lbs_offset_value *)pdata_buf; | 760 | offval = (struct lbs_offset_value *)pdata_buf; |
761 | 761 | ||
762 | switch (cmdptr->command) { | 762 | switch (le16_to_cpu(cmdptr->command)) { |
763 | case CMD_MAC_REG_ACCESS: | 763 | case CMD_MAC_REG_ACCESS: |
764 | { | 764 | { |
765 | struct cmd_ds_mac_reg_access *macreg; | 765 | struct cmd_ds_mac_reg_access *macreg; |
@@ -999,7 +999,7 @@ void lbs_queue_cmd(struct lbs_adapter *adapter, | |||
999 | } | 999 | } |
1000 | 1000 | ||
1001 | /* Exit_PS command needs to be queued in the header always. */ | 1001 | /* Exit_PS command needs to be queued in the header always. */ |
1002 | if (cmdptr->command == CMD_802_11_PS_MODE) { | 1002 | if (le16_to_cpu(cmdptr->command) == CMD_802_11_PS_MODE) { |
1003 | struct cmd_ds_802_11_ps_mode *psm = &cmdptr->params.psmode; | 1003 | struct cmd_ds_802_11_ps_mode *psm = &cmdptr->params.psmode; |
1004 | if (psm->action == cpu_to_le16(CMD_SUBCMD_EXIT_PS)) { | 1004 | if (psm->action == cpu_to_le16(CMD_SUBCMD_EXIT_PS)) { |
1005 | if (adapter->psstate != PS_STATE_FULL_POWER) | 1005 | if (adapter->psstate != PS_STATE_FULL_POWER) |
@@ -1062,15 +1062,14 @@ static int DownloadcommandToStation(struct lbs_private *priv, | |||
1062 | adapter->cur_cmd_retcode = 0; | 1062 | adapter->cur_cmd_retcode = 0; |
1063 | spin_unlock_irqrestore(&adapter->driver_lock, flags); | 1063 | spin_unlock_irqrestore(&adapter->driver_lock, flags); |
1064 | 1064 | ||
1065 | cmdsize = cmdptr->size; | 1065 | cmdsize = le16_to_cpu(cmdptr->size); |
1066 | command = cpu_to_le16(cmdptr->command); | 1066 | command = le16_to_cpu(cmdptr->command); |
1067 | 1067 | ||
1068 | lbs_deb_host("DNLD_CMD: command 0x%04x, size %d, jiffies %lu\n", | 1068 | lbs_deb_host("DNLD_CMD: command 0x%04x, size %d, jiffies %lu\n", |
1069 | command, le16_to_cpu(cmdptr->size), jiffies); | 1069 | command, cmdsize, jiffies); |
1070 | lbs_deb_hex(LBS_DEB_HOST, "DNLD_CMD", cmdnode->bufvirtualaddr, cmdsize); | 1070 | lbs_deb_hex(LBS_DEB_HOST, "DNLD_CMD", cmdnode->bufvirtualaddr, cmdsize); |
1071 | 1071 | ||
1072 | cmdnode->cmdwaitqwoken = 0; | 1072 | cmdnode->cmdwaitqwoken = 0; |
1073 | cmdsize = cpu_to_le16(cmdsize); | ||
1074 | 1073 | ||
1075 | ret = priv->hw_host_to_card(priv, MVMS_CMD, (u8 *) cmdptr, cmdsize); | 1074 | ret = priv->hw_host_to_card(priv, MVMS_CMD, (u8 *) cmdptr, cmdsize); |
1076 | 1075 | ||
@@ -1426,9 +1425,10 @@ int lbs_prepare_and_send_command(struct lbs_private *priv, | |||
1426 | 1425 | ||
1427 | #define ACTION_NUMLED_TLVTYPE_LEN_FIELDS_LEN 8 | 1426 | #define ACTION_NUMLED_TLVTYPE_LEN_FIELDS_LEN 8 |
1428 | cmdptr->size = | 1427 | cmdptr->size = |
1429 | cpu_to_le16(gpio->header.len + S_DS_GEN + | 1428 | cpu_to_le16(le16_to_cpu(gpio->header.len) |
1430 | ACTION_NUMLED_TLVTYPE_LEN_FIELDS_LEN); | 1429 | + S_DS_GEN |
1431 | gpio->header.len = cpu_to_le16(gpio->header.len); | 1430 | + ACTION_NUMLED_TLVTYPE_LEN_FIELDS_LEN); |
1431 | gpio->header.len = gpio->header.len; | ||
1432 | 1432 | ||
1433 | ret = 0; | 1433 | ret = 0; |
1434 | break; | 1434 | break; |
@@ -2019,7 +2019,7 @@ static int lbs_cmd_callback(uint16_t respcmd, struct cmd_ds_command *resp, struc | |||
2019 | { | 2019 | { |
2020 | struct cmd_ds_gen *r = (struct cmd_ds_gen *)resp; | 2020 | struct cmd_ds_gen *r = (struct cmd_ds_gen *)resp; |
2021 | struct lbs_adapter *adapter = priv->adapter; | 2021 | struct lbs_adapter *adapter = priv->adapter; |
2022 | u16 sz = cpu_to_le16(resp->size) - S_DS_GEN; | 2022 | u16 sz = le16_to_cpu(resp->size) - S_DS_GEN; |
2023 | 2023 | ||
2024 | if (sz > *adapter->cur_cmd->pdata_size) { | 2024 | if (sz > *adapter->cur_cmd->pdata_size) { |
2025 | lbs_pr_err("response 0x%04x doesn't fit into buffer (%d > %d)\n", | 2025 | lbs_pr_err("response 0x%04x doesn't fit into buffer (%d > %d)\n", |