summaryrefslogtreecommitdiffstats
path: root/drivers/net/wavelan.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wavelan.c')
-rw-r--r--drivers/net/wavelan.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/net/wavelan.c b/drivers/net/wavelan.c
index 0b18de7d9..336283df0 100644
--- a/drivers/net/wavelan.c
+++ b/drivers/net/wavelan.c
@@ -64,8 +64,8 @@ wv_irq_to_psa(int irq)
/*
* Translate PSA irq parameter to irq number
*/
-static int
-wv_psa_to_irq(u_char irqval)
+__initfunc(static int
+wv_psa_to_irq(u_char irqval))
{
int irq;
@@ -895,7 +895,7 @@ wv_82586_reconfig(device * dev)
net_local * lp = (net_local *)dev->priv;
/* Check if we can do it now ! */
- if(!(dev->start) || (set_bit(0, (void *)&dev->tbusy) != 0))
+ if(!(dev->start) || (test_and_set_bit(0, (void *)&dev->tbusy) != 0))
{
lp->reconfig_82586 = 1;
#ifdef DEBUG_CONFIG_INFO
@@ -2799,7 +2799,7 @@ wavelan_packet_xmit(struct sk_buff * skb,
* Block a timer-based transmit from overlapping.
* In other words, prevent reentering this routine.
*/
- if(set_bit(0, (void *)&dev->tbusy) != 0)
+ if(test_and_set_bit(0, (void *)&dev->tbusy) != 0)
#ifdef DEBUG_TX_ERROR
printk(KERN_INFO "%s: Transmitter access conflict.\n", dev->name);
#endif
@@ -3999,8 +3999,8 @@ wavelan_close(device * dev)
* device structure
* (called by wavelan_probe() & via init_module())
*/
-static int
-wavelan_config(device * dev)
+__initfunc(static int
+wavelan_config(device * dev))
{
u_long ioaddr = dev->base_addr;
u_char irq_mask;
@@ -4112,11 +4112,9 @@ wavelan_config(device * dev)
* the initial value of dev->base_addr.
* We follow the example in drivers/net/ne.c.)
* (called in "Space.c")
- * As this function is called outside the wavelan module, it should be
- * declared extern, but it seem to cause troubles...
*/
-/* extern */ int
-wavelan_probe(device * dev)
+__initfunc(int
+wavelan_probe(device * dev))
{
short base_addr;
mac_addr mac; /* Mac address (check wavelan existence) */