summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-02-25 14:37:12 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-02-25 15:16:22 +0100
commit67d938b2ea46615a2923c55def4a923241e02843 (patch)
tree84fc52ef9a1debf1368a5852aca733fa508dce10
parent2c5404651091e985c9009aa417d80fdaf50d7a68 (diff)
downloadbarebox-67d938b2ea46615a2923c55def4a923241e02843.tar.gz
barebox-67d938b2ea46615a2923c55def4a923241e02843.tar.xz
net: use container_of instead of dev->type_data
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/net/cs8900.c2
-rw-r--r--include/net.h2
-rw-r--r--net/eth.c5
3 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/cs8900.c b/drivers/net/cs8900.c
index da23755a5e..291fd0ae11 100644
--- a/drivers/net/cs8900.c
+++ b/drivers/net/cs8900.c
@@ -360,7 +360,7 @@ static const char *yesno_str(int v)
static void cs8900_info(struct device_d *dev)
{
- struct eth_device *edev = (struct eth_device *)dev->type_data;
+ struct eth_device *edev = dev_to_edev(dev);
struct cs8900_priv *priv = (struct cs8900_priv *)edev->priv;
u16 v;
diff --git a/include/net.h b/include/net.h
index 10267933c8..2eec47fb52 100644
--- a/include/net.h
+++ b/include/net.h
@@ -48,6 +48,8 @@ struct eth_device {
struct list_head list;
};
+#define dev_to_edev(d) container_of(d, struct eth_device, dev)
+
int eth_register(struct eth_device* dev); /* Register network device */
void eth_unregister(struct eth_device* dev); /* Unregister network device */
diff --git a/net/eth.c b/net/eth.c
index 20fdbf4102..00b8836ad9 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -147,7 +147,7 @@ int eth_rx(void)
static int eth_set_ethaddr(struct device_d *dev, struct param_d *param, const char *val)
{
- struct eth_device *edev = dev->type_data;
+ struct eth_device *edev = dev_to_edev(dev);
char ethaddr[sizeof("xx:xx:xx:xx:xx:xx")];
if (!val)
@@ -168,7 +168,7 @@ static int eth_set_ethaddr(struct device_d *dev, struct param_d *param, const ch
static int eth_set_ipaddr(struct device_d *dev, struct param_d *param, const char *val)
{
- struct eth_device *edev = dev->type_data;
+ struct eth_device *edev = dev_to_edev(dev);
IPaddr_t ip;
if (!val)
@@ -205,7 +205,6 @@ int eth_register(struct eth_device *edev)
register_device(&edev->dev);
- dev->type_data = edev;
dev_add_param(dev, "ipaddr", eth_set_ipaddr, NULL, 0);
dev_add_param(dev, "ethaddr", eth_set_ethaddr, NULL, 0);
dev_add_param(dev, "gateway", eth_set_ipaddr, NULL, 0);