diff options
| author | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-05 10:45:09 +0100 | 
|---|---|---|
| committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2006-03-31 17:15:57 +0200 | 
| commit | fd238232cd0ff4840ae6946bb338502154096d88 (patch) | |
| tree | d20e8f5871f7cff9d0867a84f6ba088fbffcbe28 /drivers/net/wireless/spectrum_cs.c | |
| parent | a78f4dd331a4f6a396eb5849656a4a72a70a56d7 (diff) | |
| download | olio-linux-3.10-fd238232cd0ff4840ae6946bb338502154096d88.tar.xz olio-linux-3.10-fd238232cd0ff4840ae6946bb338502154096d88.zip  | |
[PATCH] pcmcia: embed dev_link_t into struct pcmcia_device
Embed dev_link_t into struct pcmcia_device(), as they basically address the
same entity. The actual contents of dev_link_t will be cleaned up step by step.
This patch includes a bugfix from and signed-off-by Andrew Morton.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/net/wireless/spectrum_cs.c')
| -rw-r--r-- | drivers/net/wireless/spectrum_cs.c | 21 | 
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/net/wireless/spectrum_cs.c b/drivers/net/wireless/spectrum_cs.c index 7a4a80b01f9..be36679c8c9 100644 --- a/drivers/net/wireless/spectrum_cs.c +++ b/drivers/net/wireless/spectrum_cs.c @@ -63,7 +63,7 @@ MODULE_PARM_DESC(ignore_cis_vcc, "Allow voltage mismatch between card and socket  /* PCMCIA specific device information (goes in the card field of   * struct orinoco_private */  struct orinoco_pccard { -	dev_link_t link; +	struct pcmcia_device	*p_dev;  	dev_node_t node;  }; @@ -554,12 +554,12 @@ static int  spectrum_cs_hard_reset(struct orinoco_private *priv)  {  	struct orinoco_pccard *card = priv->card; -	dev_link_t *link = &card->link; +	dev_link_t *link = card->p_dev;  	int err;  	if (!hermes_present(&priv->hw)) {  		/* The firmware needs to be reloaded */ -		if (spectrum_dl_firmware(&priv->hw, &card->link) != 0) { +		if (spectrum_dl_firmware(&priv->hw, link) != 0) {  			printk(KERN_ERR PFX "Firmware download failed\n");  			err = -ENODEV;  		} @@ -589,7 +589,7 @@ spectrum_cs_attach(struct pcmcia_device *p_dev)  	struct net_device *dev;  	struct orinoco_private *priv;  	struct orinoco_pccard *card; -	dev_link_t *link; +	dev_link_t *link = dev_to_instance(p_dev);  	dev = alloc_orinocodev(sizeof(*card), spectrum_cs_hard_reset);  	if (! dev) @@ -598,7 +598,7 @@ spectrum_cs_attach(struct pcmcia_device *p_dev)  	card = priv->card;  	/* Link both structures together */ -	link = &card->link; +	card->p_dev = p_dev;  	link->priv = dev;  	/* Interrupt setup */ @@ -615,9 +615,6 @@ spectrum_cs_attach(struct pcmcia_device *p_dev)  	link->conf.Attributes = 0;  	link->conf.IntType = INT_MEMORY_AND_IO; -	link->handle = p_dev; -	p_dev->instance = link; -  	link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;  	spectrum_cs_config(link); @@ -638,8 +635,8 @@ static void spectrum_cs_detach(struct pcmcia_device *p_dev)  	if (link->state & DEV_CONFIG)  		spectrum_cs_release(link); -	DEBUG(0, PFX "detach: link=%p link->dev=%p\n", link, link->dev); -	if (link->dev) { +	DEBUG(0, PFX "detach: link=%p link->dev_node=%p\n", link, link->dev_node); +	if (link->dev_node) {  		DEBUG(0, PFX "About to unregister net device %p\n",  		      dev);  		unregister_netdev(dev); @@ -842,9 +839,9 @@ spectrum_cs_config(dev_link_t *link)  	}  	/* At this point, the dev_node_t structure(s) needs to be -	 * initialized and arranged in a linked list at link->dev. */ +	 * initialized and arranged in a linked list at link->dev_node. */  	strcpy(card->node.dev_name, dev->name); -	link->dev = &card->node; /* link->dev being non-NULL is also +	link->dev_node = &card->node; /* link->dev_node being non-NULL is also                                      used to indicate that the                                      net_device has been registered */  	link->state &= ~DEV_CONFIG_PENDING;  |