aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wan/sbni.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wan/sbni.c')
-rw-r--r--drivers/net/wan/sbni.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index 1cc24a45f003..cff13a9597cd 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -43,7 +43,6 @@
43#include <linux/fcntl.h> 43#include <linux/fcntl.h>
44#include <linux/ioport.h> 44#include <linux/ioport.h>
45#include <linux/interrupt.h> 45#include <linux/interrupt.h>
46#include <linux/slab.h>
47#include <linux/string.h> 46#include <linux/string.h>
48#include <linux/errno.h> 47#include <linux/errno.h>
49#include <linux/netdevice.h> 48#include <linux/netdevice.h>
@@ -195,9 +194,9 @@ static unsigned int netcard_portlist[ ] __initdata = {
195static inline int __init 194static inline int __init
196sbni_isa_probe( struct net_device *dev ) 195sbni_isa_probe( struct net_device *dev )
197{ 196{
198 if( dev->base_addr > 0x1ff 197 if( dev->base_addr > 0x1ff &&
199 && request_region( dev->base_addr, SBNI_IO_EXTENT, dev->name ) 198 request_region( dev->base_addr, SBNI_IO_EXTENT, dev->name ) &&
200 && sbni_probe1( dev, dev->base_addr, dev->irq ) ) 199 sbni_probe1( dev, dev->base_addr, dev->irq ) )
201 200
202 return 0; 201 return 0;
203 else { 202 else {
@@ -286,8 +285,8 @@ static int __init sbni_init(struct net_device *dev)
286 285
287 for( i = 0; netcard_portlist[ i ]; ++i ) { 286 for( i = 0; netcard_portlist[ i ]; ++i ) {
288 int ioaddr = netcard_portlist[ i ]; 287 int ioaddr = netcard_portlist[ i ];
289 if( request_region( ioaddr, SBNI_IO_EXTENT, dev->name ) 288 if( request_region( ioaddr, SBNI_IO_EXTENT, dev->name ) &&
290 && sbni_probe1( dev, ioaddr, 0 )) 289 sbni_probe1( dev, ioaddr, 0 ))
291 return 0; 290 return 0;
292 } 291 }
293 292
@@ -306,9 +305,9 @@ sbni_pci_probe( struct net_device *dev )
306 unsigned long pci_ioaddr; 305 unsigned long pci_ioaddr;
307 u16 subsys; 306 u16 subsys;
308 307
309 if( pdev->vendor != SBNI_PCI_VENDOR 308 if( pdev->vendor != SBNI_PCI_VENDOR &&
310 && pdev->device != SBNI_PCI_DEVICE ) 309 pdev->device != SBNI_PCI_DEVICE )
311 continue; 310 continue;
312 311
313 pci_ioaddr = pci_resource_start( pdev, 0 ); 312 pci_ioaddr = pci_resource_start( pdev, 0 );
314 pci_irq_line = pdev->irq; 313 pci_irq_line = pdev->irq;
@@ -977,8 +976,8 @@ check_fhdr( u32 ioaddr, u32 *framelen, u32 *frameno, u32 *ack,
977 *ack = *framelen & FRAME_ACK_MASK; 976 *ack = *framelen & FRAME_ACK_MASK;
978 *is_first = (*framelen & FRAME_FIRST) != 0; 977 *is_first = (*framelen & FRAME_FIRST) != 0;
979 978
980 if( (*framelen &= FRAME_LEN_MASK) < 6 979 if( (*framelen &= FRAME_LEN_MASK) < 6 ||
981 || *framelen > SBNI_MAX_FRAME - 3 ) 980 *framelen > SBNI_MAX_FRAME - 3 )
982 return 0; 981 return 0;
983 982
984 value = inb( ioaddr + DAT ); 983 value = inb( ioaddr + DAT );
@@ -1173,10 +1172,10 @@ sbni_open( struct net_device *dev )
1173 if( dev->base_addr < 0x400 ) { /* ISA only */ 1172 if( dev->base_addr < 0x400 ) { /* ISA only */
1174 struct net_device **p = sbni_cards; 1173 struct net_device **p = sbni_cards;
1175 for( ; *p && p < sbni_cards + SBNI_MAX_NUM_CARDS; ++p ) 1174 for( ; *p && p < sbni_cards + SBNI_MAX_NUM_CARDS; ++p )
1176 if( (*p)->irq == dev->irq 1175 if( (*p)->irq == dev->irq &&
1177 && ((*p)->base_addr == dev->base_addr + 4 1176 ((*p)->base_addr == dev->base_addr + 4 ||
1178 || (*p)->base_addr == dev->base_addr - 4) 1177 (*p)->base_addr == dev->base_addr - 4) &&
1179 && (*p)->flags & IFF_UP ) { 1178 (*p)->flags & IFF_UP ) {
1180 1179
1181 ((struct net_local *) (netdev_priv(*p))) 1180 ((struct net_local *) (netdev_priv(*p)))
1182 ->second = dev; 1181 ->second = dev;