diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-31 10:26:06 -0500 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-31 10:26:06 -0500 |
commit | 15b99ac1729503db9e6dc642a50b9b6cb3bf51f9 (patch) | |
tree | cfb8897487beba502aac2b28bc35066a87e34299 /drivers/net/pcmcia/pcnet_cs.c | |
parent | fba395eee7d3f342ca739c20f5b3ee635d0420a0 (diff) |
[PATCH] pcmcia: add return value to _config() functions
Most of the driver initialization isn't done in the .probe function, but in
the internal _config() functions. Make them return a value, so that .probe
can properly report whether the probing of the device succeeded or not.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/net/pcmcia/pcnet_cs.c')
-rw-r--r-- | drivers/net/pcmcia/pcnet_cs.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c index 9f41355e6beb..d840c0f03ea9 100644 --- a/drivers/net/pcmcia/pcnet_cs.c +++ b/drivers/net/pcmcia/pcnet_cs.c | |||
@@ -103,7 +103,7 @@ module_param_array(hw_addr, int, NULL, 0); | |||
103 | /*====================================================================*/ | 103 | /*====================================================================*/ |
104 | 104 | ||
105 | static void mii_phy_probe(struct net_device *dev); | 105 | static void mii_phy_probe(struct net_device *dev); |
106 | static void pcnet_config(struct pcmcia_device *link); | 106 | static int pcnet_config(struct pcmcia_device *link); |
107 | static void pcnet_release(struct pcmcia_device *link); | 107 | static void pcnet_release(struct pcmcia_device *link); |
108 | static int pcnet_open(struct net_device *dev); | 108 | static int pcnet_open(struct net_device *dev); |
109 | static int pcnet_close(struct net_device *dev); | 109 | static int pcnet_close(struct net_device *dev); |
@@ -265,9 +265,7 @@ static int pcnet_probe(struct pcmcia_device *link) | |||
265 | dev->set_config = &set_config; | 265 | dev->set_config = &set_config; |
266 | 266 | ||
267 | link->state |= DEV_PRESENT | DEV_CONFIG_PENDING; | 267 | link->state |= DEV_PRESENT | DEV_CONFIG_PENDING; |
268 | pcnet_config(link); | 268 | return pcnet_config(link); |
269 | |||
270 | return 0; | ||
271 | } /* pcnet_attach */ | 269 | } /* pcnet_attach */ |
272 | 270 | ||
273 | /*====================================================================== | 271 | /*====================================================================== |
@@ -516,7 +514,7 @@ static int try_io_port(struct pcmcia_device *link) | |||
516 | } | 514 | } |
517 | } | 515 | } |
518 | 516 | ||
519 | static void pcnet_config(struct pcmcia_device *link) | 517 | static int pcnet_config(struct pcmcia_device *link) |
520 | { | 518 | { |
521 | struct net_device *dev = link->priv; | 519 | struct net_device *dev = link->priv; |
522 | pcnet_dev_t *info = PRIV(dev); | 520 | pcnet_dev_t *info = PRIV(dev); |
@@ -701,14 +699,14 @@ static void pcnet_config(struct pcmcia_device *link) | |||
701 | printk(" hw_addr "); | 699 | printk(" hw_addr "); |
702 | for (i = 0; i < 6; i++) | 700 | for (i = 0; i < 6; i++) |
703 | printk("%02X%s", dev->dev_addr[i], ((i<5) ? ":" : "\n")); | 701 | printk("%02X%s", dev->dev_addr[i], ((i<5) ? ":" : "\n")); |
704 | return; | 702 | return 0; |
705 | 703 | ||
706 | cs_failed: | 704 | cs_failed: |
707 | cs_error(link, last_fn, last_ret); | 705 | cs_error(link, last_fn, last_ret); |
708 | failed: | 706 | failed: |
709 | pcnet_release(link); | 707 | pcnet_release(link); |
710 | link->state &= ~DEV_CONFIG_PENDING; | 708 | link->state &= ~DEV_CONFIG_PENDING; |
711 | return; | 709 | return -ENODEV; |
712 | } /* pcnet_config */ | 710 | } /* pcnet_config */ |
713 | 711 | ||
714 | /*====================================================================== | 712 | /*====================================================================== |