diff options
author | Li Zefan <lizf@cn.fujitsu.com> | 2007-12-06 13:01:21 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 15:06:07 -0800 |
commit | abe3ed14d39adcea9ae186cf741b15d11544458f (patch) | |
tree | 65f0e7df2a2fea79541815a4a50349c4f020f533 /drivers/net | |
parent | 6228c0aea544f5292977e6b27cd231a4ea137a62 (diff) |
libertas: don't cast a pointer to pointer of
Don't cast struct foo * to struct list_head *, it's safe only when
the list member is the first member of struct foo.
Also don't cast struct list_head * to struct foo *.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
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')
-rw-r--r-- | drivers/net/wireless/libertas/cmd.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index 7097dcf7abc..851eb3ce3e1 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c @@ -1021,11 +1021,10 @@ void lbs_queue_cmd(struct lbs_adapter *adapter, spin_lock_irqsave(&adapter->driver_lock, flags); if (addtail) { - list_add_tail((struct list_head *)cmdnode, - &adapter->cmdpendingq); + list_add_tail(&cmdnode->list, &adapter->cmdpendingq); adapter->nr_cmd_pending++; } else - list_add((struct list_head *)cmdnode, &adapter->cmdpendingq); + list_add(&cmdnode->list, &adapter->cmdpendingq); spin_unlock_irqrestore(&adapter->driver_lock, flags); @@ -1144,7 +1143,7 @@ void __lbs_cleanup_and_insert_cmd(struct lbs_private *priv, return; cleanup_cmdnode(ptempcmd); - list_add_tail((struct list_head *)ptempcmd, &adapter->cmdfreeq); + list_add_tail(&ptempcmd->list, &adapter->cmdfreeq); } static void lbs_cleanup_and_insert_cmd(struct lbs_private *priv, @@ -1642,8 +1641,9 @@ struct cmd_ctrl_node *lbs_get_cmd_ctrl_node(struct lbs_private *priv) spin_lock_irqsave(&adapter->driver_lock, flags); if (!list_empty(&adapter->cmdfreeq)) { - tempnode = (struct cmd_ctrl_node *)adapter->cmdfreeq.next; - list_del((struct list_head *)tempnode); + tempnode = list_first_entry(&adapter->cmdfreeq, + struct cmd_ctrl_node, list); + list_del(&tempnode->list); } else { lbs_deb_host("GET_CMD_NODE: cmd_ctrl_node is not available\n"); tempnode = NULL; @@ -1738,8 +1738,8 @@ int lbs_execute_next_command(struct lbs_private *priv) } if (!list_empty(&adapter->cmdpendingq)) { - cmdnode = (struct cmd_ctrl_node *) - adapter->cmdpendingq.next; + cmdnode = list_first_entry(&adapter->cmdpendingq, + struct cmd_ctrl_node, list); } spin_unlock_irqrestore(&adapter->driver_lock, flags); @@ -1803,7 +1803,7 @@ int lbs_execute_next_command(struct lbs_private *priv) cpu_to_le16(CMD_SUBCMD_EXIT_PS)) { lbs_deb_host( "EXEC_NEXT_CMD: ignore ENTER_PS cmd\n"); - list_del((struct list_head *)cmdnode); + list_del(&cmdnode->list); lbs_cleanup_and_insert_cmd(priv, cmdnode); ret = 0; @@ -1814,7 +1814,7 @@ int lbs_execute_next_command(struct lbs_private *priv) (adapter->psstate == PS_STATE_PRE_SLEEP)) { lbs_deb_host( "EXEC_NEXT_CMD: ignore EXIT_PS cmd in sleep\n"); - list_del((struct list_head *)cmdnode); + list_del(&cmdnode->list); lbs_cleanup_and_insert_cmd(priv, cmdnode); adapter->needtowakeup = 1; @@ -1826,7 +1826,7 @@ int lbs_execute_next_command(struct lbs_private *priv) "EXEC_NEXT_CMD: sending EXIT_PS\n"); } } - list_del((struct list_head *)cmdnode); + list_del(&cmdnode->list); lbs_deb_host("EXEC_NEXT_CMD: sending command 0x%04x\n", le16_to_cpu(cmdptr->command)); DownloadcommandToStation(priv, cmdnode); |