Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
b1fc5505
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b1fc5505
编写于
5月 12, 2005
作者:
提交者:
Jeff Garzik
5月 12, 2005
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[netdrvr] Fix register_netdev() races in older ISA net drivers
上级
88d7bd8c
变更
21
隐藏空白更改
内联
并排
Showing
21 changed file
with
156 addition
and
228 deletion
+156
-228
drivers/net/3c503.c
drivers/net/3c503.c
+6
-10
drivers/net/3c515.c
drivers/net/3c515.c
+6
-6
drivers/net/3c523.c
drivers/net/3c523.c
+7
-11
drivers/net/ac3200.c
drivers/net/ac3200.c
+9
-10
drivers/net/cs89x0.c
drivers/net/cs89x0.c
+6
-13
drivers/net/e2100.c
drivers/net/e2100.c
+5
-10
drivers/net/eepro.c
drivers/net/eepro.c
+10
-11
drivers/net/eexpress.c
drivers/net/eexpress.c
+5
-7
drivers/net/es3210.c
drivers/net/es3210.c
+6
-10
drivers/net/eth16i.c
drivers/net/eth16i.c
+8
-12
drivers/net/hp-plus.c
drivers/net/hp-plus.c
+5
-10
drivers/net/hp.c
drivers/net/hp.c
+7
-10
drivers/net/hp100.c
drivers/net/hp100.c
+15
-26
drivers/net/isa-skeleton.c
drivers/net/isa-skeleton.c
+10
-10
drivers/net/lance.c
drivers/net/lance.c
+5
-10
drivers/net/lne390.c
drivers/net/lne390.c
+9
-10
drivers/net/ne-h8300.c
drivers/net/ne-h8300.c
+8
-11
drivers/net/ne.c
drivers/net/ne.c
+8
-10
drivers/net/ne2.c
drivers/net/ne2.c
+9
-10
drivers/net/smc-ultra.c
drivers/net/smc-ultra.c
+5
-10
drivers/net/wd.c
drivers/net/wd.c
+7
-11
未找到文件。
drivers/net/3c503.c
浏览文件 @
b1fc5505
...
@@ -171,12 +171,7 @@ struct net_device * __init el2_probe(int unit)
...
@@ -171,12 +171,7 @@ struct net_device * __init el2_probe(int unit)
err
=
do_el2_probe
(
dev
);
err
=
do_el2_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -356,6 +351,10 @@ el2_probe1(struct net_device *dev, int ioaddr)
...
@@ -356,6 +351,10 @@ el2_probe1(struct net_device *dev, int ioaddr)
dev
->
poll_controller
=
ei_poll
;
dev
->
poll_controller
=
ei_poll
;
#endif
#endif
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
out1
;
if
(
dev
->
mem_start
)
if
(
dev
->
mem_start
)
printk
(
"%s: %s - %dkB RAM, 8kB shared mem window at %#6lx-%#6lx.
\n
"
,
printk
(
"%s: %s - %dkB RAM, 8kB shared mem window at %#6lx-%#6lx.
\n
"
,
dev
->
name
,
ei_status
.
name
,
(
wordlength
+
1
)
<<
3
,
dev
->
name
,
ei_status
.
name
,
(
wordlength
+
1
)
<<
3
,
...
@@ -715,11 +714,8 @@ init_module(void)
...
@@ -715,11 +714,8 @@ init_module(void)
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
mem_end
=
xcvr
[
this_dev
];
/* low 4bits = xcvr sel. */
dev
->
mem_end
=
xcvr
[
this_dev
];
/* low 4bits = xcvr sel. */
if
(
do_el2_probe
(
dev
)
==
0
)
{
if
(
do_el2_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_el2
[
found
++
]
=
dev
;
dev_el2
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
printk
(
KERN_WARNING
"3c503.c: No 3c503 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
printk
(
KERN_WARNING
"3c503.c: No 3c503 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
...
...
drivers/net/3c515.c
浏览文件 @
b1fc5505
...
@@ -365,7 +365,7 @@ static int nopnp;
...
@@ -365,7 +365,7 @@ static int nopnp;
#endif
/* __ISAPNP__ */
#endif
/* __ISAPNP__ */
static
struct
net_device
*
corkscrew_scan
(
int
unit
);
static
struct
net_device
*
corkscrew_scan
(
int
unit
);
static
void
corkscrew_setup
(
struct
net_device
*
dev
,
int
ioaddr
,
static
int
corkscrew_setup
(
struct
net_device
*
dev
,
int
ioaddr
,
struct
pnp_dev
*
idev
,
int
card_number
);
struct
pnp_dev
*
idev
,
int
card_number
);
static
int
corkscrew_open
(
struct
net_device
*
dev
);
static
int
corkscrew_open
(
struct
net_device
*
dev
);
static
void
corkscrew_timer
(
unsigned
long
arg
);
static
void
corkscrew_timer
(
unsigned
long
arg
);
...
@@ -539,10 +539,9 @@ static struct net_device *corkscrew_scan(int unit)
...
@@ -539,10 +539,9 @@ static struct net_device *corkscrew_scan(int unit)
printk
(
KERN_INFO
"3c515 Resource configuration register %#4.4x, DCR %4.4x.
\n
"
,
printk
(
KERN_INFO
"3c515 Resource configuration register %#4.4x, DCR %4.4x.
\n
"
,
inl
(
ioaddr
+
0x2002
),
inw
(
ioaddr
+
0x2000
));
inl
(
ioaddr
+
0x2002
),
inw
(
ioaddr
+
0x2000
));
/* irq = inw(ioaddr + 0x2002) & 15; */
/* Use the irq from isapnp */
/* irq = inw(ioaddr + 0x2002) & 15; */
/* Use the irq from isapnp */
corkscrew_setup
(
dev
,
ioaddr
,
idev
,
cards_found
++
);
SET_NETDEV_DEV
(
dev
,
&
idev
->
dev
);
SET_NETDEV_DEV
(
dev
,
&
idev
->
dev
);
pnp_cards
++
;
pnp_cards
++
;
err
=
register_netdev
(
dev
);
err
=
corkscrew_setup
(
dev
,
ioaddr
,
idev
,
cards_found
++
);
if
(
!
err
)
if
(
!
err
)
return
dev
;
return
dev
;
cleanup_card
(
dev
);
cleanup_card
(
dev
);
...
@@ -558,8 +557,7 @@ static struct net_device *corkscrew_scan(int unit)
...
@@ -558,8 +557,7 @@ static struct net_device *corkscrew_scan(int unit)
printk
(
KERN_INFO
"3c515 Resource configuration register %#4.4x, DCR %4.4x.
\n
"
,
printk
(
KERN_INFO
"3c515 Resource configuration register %#4.4x, DCR %4.4x.
\n
"
,
inl
(
ioaddr
+
0x2002
),
inw
(
ioaddr
+
0x2000
));
inl
(
ioaddr
+
0x2002
),
inw
(
ioaddr
+
0x2000
));
corkscrew_setup
(
dev
,
ioaddr
,
NULL
,
cards_found
++
);
err
=
corkscrew_setup
(
dev
,
ioaddr
,
NULL
,
cards_found
++
);
err
=
register_netdev
(
dev
);
if
(
!
err
)
if
(
!
err
)
return
dev
;
return
dev
;
cleanup_card
(
dev
);
cleanup_card
(
dev
);
...
@@ -568,7 +566,7 @@ static struct net_device *corkscrew_scan(int unit)
...
@@ -568,7 +566,7 @@ static struct net_device *corkscrew_scan(int unit)
return
NULL
;
return
NULL
;
}
}
static
void
corkscrew_setup
(
struct
net_device
*
dev
,
int
ioaddr
,
static
int
corkscrew_setup
(
struct
net_device
*
dev
,
int
ioaddr
,
struct
pnp_dev
*
idev
,
int
card_number
)
struct
pnp_dev
*
idev
,
int
card_number
)
{
{
struct
corkscrew_private
*
vp
=
netdev_priv
(
dev
);
struct
corkscrew_private
*
vp
=
netdev_priv
(
dev
);
...
@@ -691,6 +689,8 @@ static void corkscrew_setup(struct net_device *dev, int ioaddr,
...
@@ -691,6 +689,8 @@ static void corkscrew_setup(struct net_device *dev, int ioaddr,
dev
->
get_stats
=
&
corkscrew_get_stats
;
dev
->
get_stats
=
&
corkscrew_get_stats
;
dev
->
set_multicast_list
=
&
set_rx_mode
;
dev
->
set_multicast_list
=
&
set_rx_mode
;
dev
->
ethtool_ops
=
&
netdev_ethtool_ops
;
dev
->
ethtool_ops
=
&
netdev_ethtool_ops
;
return
register_netdev
(
dev
);
}
}
...
...
drivers/net/3c523.c
浏览文件 @
b1fc5505
...
@@ -572,6 +572,10 @@ static int __init do_elmc_probe(struct net_device *dev)
...
@@ -572,6 +572,10 @@ static int __init do_elmc_probe(struct net_device *dev)
dev
->
flags
&=~
IFF_MULTICAST
;
/* Multicast doesn't work */
dev
->
flags
&=~
IFF_MULTICAST
;
/* Multicast doesn't work */
#endif
#endif
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
err_out
;
return
0
;
return
0
;
err_out:
err_out:
mca_set_adapter_procfn
(
slot
,
NULL
,
NULL
);
mca_set_adapter_procfn
(
slot
,
NULL
,
NULL
);
...
@@ -600,12 +604,7 @@ struct net_device * __init elmc_probe(int unit)
...
@@ -600,12 +604,7 @@ struct net_device * __init elmc_probe(int unit)
err
=
do_elmc_probe
(
dev
);
err
=
do_elmc_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -1288,12 +1287,9 @@ int init_module(void)
...
@@ -1288,12 +1287,9 @@ int init_module(void)
dev
->
irq
=
irq
[
this_dev
];
dev
->
irq
=
irq
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
if
(
do_elmc_probe
(
dev
)
==
0
)
{
if
(
do_elmc_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_elmc
[
this_dev
]
=
dev
;
dev_elmc
[
this_dev
]
=
dev
;
found
++
;
found
++
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
if
(
io
[
this_dev
]
==
0
)
if
(
io
[
this_dev
]
==
0
)
...
...
drivers/net/ac3200.c
浏览文件 @
b1fc5505
...
@@ -146,12 +146,7 @@ struct net_device * __init ac3200_probe(int unit)
...
@@ -146,12 +146,7 @@ struct net_device * __init ac3200_probe(int unit)
err
=
do_ac3200_probe
(
dev
);
err
=
do_ac3200_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -273,7 +268,14 @@ static int __init ac_probe1(int ioaddr, struct net_device *dev)
...
@@ -273,7 +268,14 @@ static int __init ac_probe1(int ioaddr, struct net_device *dev)
dev
->
poll_controller
=
ei_poll
;
dev
->
poll_controller
=
ei_poll
;
#endif
#endif
NS8390_init
(
dev
,
0
);
NS8390_init
(
dev
,
0
);
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
out2
;
return
0
;
return
0
;
out2:
if
(
ei_status
.
reg0
)
iounmap
((
void
*
)
dev
->
mem_start
);
out1:
out1:
free_irq
(
dev
->
irq
,
dev
);
free_irq
(
dev
->
irq
,
dev
);
out:
out:
...
@@ -392,11 +394,8 @@ init_module(void)
...
@@ -392,11 +394,8 @@ init_module(void)
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
mem_start
=
mem
[
this_dev
];
/* Currently ignored by driver */
dev
->
mem_start
=
mem
[
this_dev
];
/* Currently ignored by driver */
if
(
do_ac3200_probe
(
dev
)
==
0
)
{
if
(
do_ac3200_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_ac32
[
found
++
]
=
dev
;
dev_ac32
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
printk
(
KERN_WARNING
"ac3200.c: No ac3200 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
printk
(
KERN_WARNING
"ac3200.c: No ac3200 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
...
...
drivers/net/cs89x0.c
浏览文件 @
b1fc5505
...
@@ -319,13 +319,7 @@ struct net_device * __init cs89x0_probe(int unit)
...
@@ -319,13 +319,7 @@ struct net_device * __init cs89x0_probe(int unit)
}
}
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
outw
(
PP_ChipID
,
dev
->
base_addr
+
ADD_PORT
);
release_region
(
dev
->
base_addr
,
NETCARD_IO_EXTENT
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
printk
(
KERN_WARNING
"cs89x0: no cs8900 or cs8920 detected. Be sure to disable PnP with SETUP
\n
"
);
printk
(
KERN_WARNING
"cs89x0: no cs8900 or cs8920 detected. Be sure to disable PnP with SETUP
\n
"
);
...
@@ -735,7 +729,13 @@ printk("PP_addr=0x%x\n", inw(ioaddr + ADD_PORT));
...
@@ -735,7 +729,13 @@ printk("PP_addr=0x%x\n", inw(ioaddr + ADD_PORT));
printk
(
"
\n
"
);
printk
(
"
\n
"
);
if
(
net_debug
)
if
(
net_debug
)
printk
(
"cs89x0_probe1() successful
\n
"
);
printk
(
"cs89x0_probe1() successful
\n
"
);
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
out3
;
return
0
;
return
0
;
out3:
outw
(
PP_ChipID
,
dev
->
base_addr
+
ADD_PORT
);
out2:
out2:
release_region
(
ioaddr
&
~
3
,
NETCARD_IO_EXTENT
);
release_region
(
ioaddr
&
~
3
,
NETCARD_IO_EXTENT
);
out1:
out1:
...
@@ -1831,13 +1831,6 @@ init_module(void)
...
@@ -1831,13 +1831,6 @@ init_module(void)
if
(
ret
)
if
(
ret
)
goto
out
;
goto
out
;
if
(
register_netdev
(
dev
)
!=
0
)
{
printk
(
KERN_ERR
"cs89x0.c: No card found at 0x%x
\n
"
,
io
);
ret
=
-
ENXIO
;
outw
(
PP_ChipID
,
dev
->
base_addr
+
ADD_PORT
);
release_region
(
dev
->
base_addr
,
NETCARD_IO_EXTENT
);
goto
out
;
}
dev_cs89x0
=
dev
;
dev_cs89x0
=
dev
;
return
0
;
return
0
;
out:
out:
...
...
drivers/net/e2100.c
浏览文件 @
b1fc5505
...
@@ -162,12 +162,7 @@ struct net_device * __init e2100_probe(int unit)
...
@@ -162,12 +162,7 @@ struct net_device * __init e2100_probe(int unit)
err
=
do_e2100_probe
(
dev
);
err
=
do_e2100_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -286,6 +281,9 @@ static int __init e21_probe1(struct net_device *dev, int ioaddr)
...
@@ -286,6 +281,9 @@ static int __init e21_probe1(struct net_device *dev, int ioaddr)
#endif
#endif
NS8390_init
(
dev
,
0
);
NS8390_init
(
dev
,
0
);
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
out
;
return
0
;
return
0
;
out:
out:
release_region
(
ioaddr
,
E21_IO_EXTENT
);
release_region
(
ioaddr
,
E21_IO_EXTENT
);
...
@@ -453,11 +451,8 @@ init_module(void)
...
@@ -453,11 +451,8 @@ init_module(void)
dev
->
mem_start
=
mem
[
this_dev
];
dev
->
mem_start
=
mem
[
this_dev
];
dev
->
mem_end
=
xcvr
[
this_dev
];
/* low 4bits = xcvr sel. */
dev
->
mem_end
=
xcvr
[
this_dev
];
/* low 4bits = xcvr sel. */
if
(
do_e2100_probe
(
dev
)
==
0
)
{
if
(
do_e2100_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_e21
[
found
++
]
=
dev
;
dev_e21
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
printk
(
KERN_WARNING
"e2100.c: No E2100 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
printk
(
KERN_WARNING
"e2100.c: No E2100 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
...
...
drivers/net/eepro.c
浏览文件 @
b1fc5505
...
@@ -600,12 +600,7 @@ struct net_device * __init eepro_probe(int unit)
...
@@ -600,12 +600,7 @@ struct net_device * __init eepro_probe(int unit)
err
=
do_eepro_probe
(
dev
);
err
=
do_eepro_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
release_region
(
dev
->
base_addr
,
EEPRO_IO_EXTENT
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -758,6 +753,7 @@ static int __init eepro_probe1(struct net_device *dev, int autoprobe)
...
@@ -758,6 +753,7 @@ static int __init eepro_probe1(struct net_device *dev, int autoprobe)
int
i
;
int
i
;
struct
eepro_local
*
lp
;
struct
eepro_local
*
lp
;
int
ioaddr
=
dev
->
base_addr
;
int
ioaddr
=
dev
->
base_addr
;
int
err
;
/* Grab the region so we can find another board if autoIRQ fails. */
/* Grab the region so we can find another board if autoIRQ fails. */
if
(
!
request_region
(
ioaddr
,
EEPRO_IO_EXTENT
,
DRV_NAME
))
{
if
(
!
request_region
(
ioaddr
,
EEPRO_IO_EXTENT
,
DRV_NAME
))
{
...
@@ -873,10 +869,16 @@ static int __init eepro_probe1(struct net_device *dev, int autoprobe)
...
@@ -873,10 +869,16 @@ static int __init eepro_probe1(struct net_device *dev, int autoprobe)
/* reset 82595 */
/* reset 82595 */
eepro_reset
(
ioaddr
);
eepro_reset
(
ioaddr
);
err
=
register_netdev
(
dev
);
if
(
err
)
goto
err
;
return
0
;
return
0
;
exit:
exit:
err
=
-
ENODEV
;
err:
release_region
(
dev
->
base_addr
,
EEPRO_IO_EXTENT
);
release_region
(
dev
->
base_addr
,
EEPRO_IO_EXTENT
);
return
-
ENODEV
;
return
err
;
}
}
/* Open/initialize the board. This is called (in the current kernel)
/* Open/initialize the board. This is called (in the current kernel)
...
@@ -1834,11 +1836,8 @@ init_module(void)
...
@@ -1834,11 +1836,8 @@ init_module(void)
dev
->
irq
=
irq
[
i
];
dev
->
irq
=
irq
[
i
];
if
(
do_eepro_probe
(
dev
)
==
0
)
{
if
(
do_eepro_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_eepro
[
n_eepro
++
]
=
dev
;
dev_eepro
[
n_eepro
++
]
=
dev
;
continue
;
continue
;
}
release_region
(
dev
->
base_addr
,
EEPRO_IO_EXTENT
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
break
;
break
;
...
...
drivers/net/eexpress.c
浏览文件 @
b1fc5505
...
@@ -436,11 +436,8 @@ struct net_device * __init express_probe(int unit)
...
@@ -436,11 +436,8 @@ struct net_device * __init express_probe(int unit)
netdev_boot_setup_check
(
dev
);
netdev_boot_setup_check
(
dev
);
err
=
do_express_probe
(
dev
);
err
=
do_express_probe
(
dev
);
if
(
!
err
)
{
if
(
!
err
)
err
=
register_netdev
(
dev
);
return
dev
;
if
(
!
err
)
return
dev
;
}
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
}
}
...
@@ -1205,7 +1202,8 @@ static int __init eexp_hw_probe(struct net_device *dev, unsigned short ioaddr)
...
@@ -1205,7 +1202,8 @@ static int __init eexp_hw_probe(struct net_device *dev, unsigned short ioaddr)
dev
->
set_multicast_list
=
&
eexp_set_multicast
;
dev
->
set_multicast_list
=
&
eexp_set_multicast
;
dev
->
tx_timeout
=
eexp_timeout
;
dev
->
tx_timeout
=
eexp_timeout
;
dev
->
watchdog_timeo
=
2
*
HZ
;
dev
->
watchdog_timeo
=
2
*
HZ
;
return
0
;
return
register_netdev
(
dev
);
}
}
/*
/*
...
@@ -1716,7 +1714,7 @@ int init_module(void)
...
@@ -1716,7 +1714,7 @@ int init_module(void)
break
;
break
;
printk
(
KERN_NOTICE
"eexpress.c: Module autoprobe not recommended, give io=xx.
\n
"
);
printk
(
KERN_NOTICE
"eexpress.c: Module autoprobe not recommended, give io=xx.
\n
"
);
}
}
if
(
do_express_probe
(
dev
)
==
0
&&
register_netdev
(
dev
)
==
0
)
{
if
(
do_express_probe
(
dev
)
==
0
)
{
dev_eexp
[
this_dev
]
=
dev
;
dev_eexp
[
this_dev
]
=
dev
;
found
++
;
found
++
;
continue
;
continue
;
...
...
drivers/net/es3210.c
浏览文件 @
b1fc5505
...
@@ -177,12 +177,7 @@ struct net_device * __init es_probe(int unit)
...
@@ -177,12 +177,7 @@ struct net_device * __init es_probe(int unit)
err
=
do_es_probe
(
dev
);
err
=
do_es_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -310,6 +305,10 @@ static int __init es_probe1(struct net_device *dev, int ioaddr)
...
@@ -310,6 +305,10 @@ static int __init es_probe1(struct net_device *dev, int ioaddr)
dev
->
poll_controller
=
ei_poll
;
dev
->
poll_controller
=
ei_poll
;
#endif
#endif
NS8390_init
(
dev
,
0
);
NS8390_init
(
dev
,
0
);
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
out1
;
return
0
;
return
0
;
out1:
out1:
free_irq
(
dev
->
irq
,
dev
);
free_irq
(
dev
->
irq
,
dev
);
...
@@ -445,11 +444,8 @@ init_module(void)
...
@@ -445,11 +444,8 @@ init_module(void)
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
mem_start
=
mem
[
this_dev
];
dev
->
mem_start
=
mem
[
this_dev
];
if
(
do_es_probe
(
dev
)
==
0
)
{
if
(
do_es_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_es3210
[
found
++
]
=
dev
;
dev_es3210
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
printk
(
KERN_WARNING
"es3210.c: No es3210 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
printk
(
KERN_WARNING
"es3210.c: No es3210 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
...
...
drivers/net/eth16i.c
浏览文件 @
b1fc5505
...
@@ -473,13 +473,7 @@ struct net_device * __init eth16i_probe(int unit)
...
@@ -473,13 +473,7 @@ struct net_device * __init eth16i_probe(int unit)
err
=
do_eth16i_probe
(
dev
);
err
=
do_eth16i_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
free_irq
(
dev
->
irq
,
dev
);
release_region
(
dev
->
base_addr
,
ETH16I_IO_EXTENT
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -569,7 +563,13 @@ static int __init eth16i_probe1(struct net_device *dev, int ioaddr)
...
@@ -569,7 +563,13 @@ static int __init eth16i_probe1(struct net_device *dev, int ioaddr)
dev
->
tx_timeout
=
eth16i_timeout
;
dev
->
tx_timeout
=
eth16i_timeout
;
dev
->
watchdog_timeo
=
TX_TIMEOUT
;
dev
->
watchdog_timeo
=
TX_TIMEOUT
;
spin_lock_init
(
&
lp
->
lock
);
spin_lock_init
(
&
lp
->
lock
);
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
out1
;
return
0
;
return
0
;
out1:
free_irq
(
dev
->
irq
,
dev
);
out:
out:
release_region
(
ioaddr
,
ETH16I_IO_EXTENT
);
release_region
(
ioaddr
,
ETH16I_IO_EXTENT
);
return
retval
;
return
retval
;
...
@@ -1462,12 +1462,8 @@ int init_module(void)
...
@@ -1462,12 +1462,8 @@ int init_module(void)
}
}
if
(
do_eth16i_probe
(
dev
)
==
0
)
{
if
(
do_eth16i_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_eth16i
[
found
++
]
=
dev
;
dev_eth16i
[
found
++
]
=
dev
;
continue
;
continue
;
}
free_irq
(
dev
->
irq
,
dev
);
release_region
(
dev
->
base_addr
,
ETH16I_IO_EXTENT
);
}
}
printk
(
KERN_WARNING
"eth16i.c No Eth16i card found (i/o = 0x%x).
\n
"
,
printk
(
KERN_WARNING
"eth16i.c No Eth16i card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
io
[
this_dev
]);
...
...
drivers/net/hp-plus.c
浏览文件 @
b1fc5505
...
@@ -159,12 +159,7 @@ struct net_device * __init hp_plus_probe(int unit)
...
@@ -159,12 +159,7 @@ struct net_device * __init hp_plus_probe(int unit)
err
=
do_hpp_probe
(
dev
);
err
=
do_hpp_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -271,6 +266,9 @@ static int __init hpp_probe1(struct net_device *dev, int ioaddr)
...
@@ -271,6 +266,9 @@ static int __init hpp_probe1(struct net_device *dev, int ioaddr)
/* Leave the 8390 and HP chip reset. */
/* Leave the 8390 and HP chip reset. */
outw
(
inw
(
ioaddr
+
HPP_OPTION
)
&
~
EnableIRQ
,
ioaddr
+
HPP_OPTION
);
outw
(
inw
(
ioaddr
+
HPP_OPTION
)
&
~
EnableIRQ
,
ioaddr
+
HPP_OPTION
);
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
out
;
return
0
;
return
0
;
out:
out:
release_region
(
ioaddr
,
HP_IO_EXTENT
);
release_region
(
ioaddr
,
HP_IO_EXTENT
);
...
@@ -463,11 +461,8 @@ init_module(void)
...
@@ -463,11 +461,8 @@ init_module(void)
dev
->
irq
=
irq
[
this_dev
];
dev
->
irq
=
irq
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
if
(
do_hpp_probe
(
dev
)
==
0
)
{
if
(
do_hpp_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_hpp
[
found
++
]
=
dev
;
dev_hpp
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
printk
(
KERN_WARNING
"hp-plus.c: No HP-Plus card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
printk
(
KERN_WARNING
"hp-plus.c: No HP-Plus card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
...
...
drivers/net/hp.c
浏览文件 @
b1fc5505
...
@@ -123,12 +123,7 @@ struct net_device * __init hp_probe(int unit)
...
@@ -123,12 +123,7 @@ struct net_device * __init hp_probe(int unit)
err
=
do_hp_probe
(
dev
);
err
=
do_hp_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -227,7 +222,12 @@ static int __init hp_probe1(struct net_device *dev, int ioaddr)
...
@@ -227,7 +222,12 @@ static int __init hp_probe1(struct net_device *dev, int ioaddr)
ei_status
.
block_output
=
&
hp_block_output
;
ei_status
.
block_output
=
&
hp_block_output
;
hp_init_card
(
dev
);
hp_init_card
(
dev
);
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
out1
;
return
0
;
return
0
;
out1:
free_irq
(
dev
->
irq
,
dev
);
out:
out:
release_region
(
ioaddr
,
HP_IO_EXTENT
);
release_region
(
ioaddr
,
HP_IO_EXTENT
);
return
retval
;
return
retval
;
...
@@ -432,11 +432,8 @@ init_module(void)
...
@@ -432,11 +432,8 @@ init_module(void)
dev
->
irq
=
irq
[
this_dev
];
dev
->
irq
=
irq
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
if
(
do_hp_probe
(
dev
)
==
0
)
{
if
(
do_hp_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_hp
[
found
++
]
=
dev
;
dev_hp
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
printk
(
KERN_WARNING
"hp.c: No HP card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
printk
(
KERN_WARNING
"hp.c: No HP card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
...
...
drivers/net/hp100.c
浏览文件 @
b1fc5505
...
@@ -417,12 +417,7 @@ struct net_device * __init hp100_probe(int unit)
...
@@ -417,12 +417,7 @@ struct net_device * __init hp100_probe(int unit)
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
release_region
(
dev
->
base_addr
,
HP100_REGION_SIZE
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -776,11 +771,22 @@ static int __devinit hp100_probe1(struct net_device *dev, int ioaddr,
...
@@ -776,11 +771,22 @@ static int __devinit hp100_probe1(struct net_device *dev, int ioaddr,
printk
(
"Warning! Link down.
\n
"
);
printk
(
"Warning! Link down.
\n
"
);
}
}
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out3
;
return
0
;
return
0
;
out3:
if
(
local_mode
==
1
)
pci_free_consistent
(
lp
->
pci_dev
,
MAX_RINGSIZE
+
0x0f
,
lp
->
page_vaddr_algn
,
virt_to_whatever
(
dev
,
lp
->
page_vaddr_algn
));
if
(
mem_ptr_virt
)
iounmap
(
mem_ptr_virt
);
out2:
out2:
release_region
(
ioaddr
,
HP100_REGION_SIZE
);
release_region
(
ioaddr
,
HP100_REGION_SIZE
);
out1:
out1:
return
-
ENODEV
;
return
err
;
}
}
/* This procedure puts the card into a stable init state */
/* This procedure puts the card into a stable init state */
...
@@ -2875,18 +2881,12 @@ static int __init hp100_eisa_probe (struct device *gendev)
...
@@ -2875,18 +2881,12 @@ static int __init hp100_eisa_probe (struct device *gendev)
if
(
err
)
if
(
err
)
goto
out1
;
goto
out1
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out2
;
#ifdef HP100_DEBUG
#ifdef HP100_DEBUG
printk
(
"hp100: %s: EISA adapter found at 0x%x
\n
"
,
dev
->
name
,
printk
(
"hp100: %s: EISA adapter found at 0x%x
\n
"
,
dev
->
name
,
dev
->
base_addr
);
dev
->
base_addr
);
#endif
#endif
gendev
->
driver_data
=
dev
;
gendev
->
driver_data
=
dev
;
return
0
;
return
0
;
out2:
release_region
(
dev
->
base_addr
,
HP100_REGION_SIZE
);
out1:
out1:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
err
;
return
err
;
...
@@ -2951,17 +2951,12 @@ static int __devinit hp100_pci_probe (struct pci_dev *pdev,
...
@@ -2951,17 +2951,12 @@ static int __devinit hp100_pci_probe (struct pci_dev *pdev,
err
=
hp100_probe1
(
dev
,
ioaddr
,
HP100_BUS_PCI
,
pdev
);
err
=
hp100_probe1
(
dev
,
ioaddr
,
HP100_BUS_PCI
,
pdev
);
if
(
err
)
if
(
err
)
goto
out1
;
goto
out1
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out2
;
#ifdef HP100_DEBUG
#ifdef HP100_DEBUG
printk
(
"hp100: %s: PCI adapter found at 0x%x
\n
"
,
dev
->
name
,
ioaddr
);
printk
(
"hp100: %s: PCI adapter found at 0x%x
\n
"
,
dev
->
name
,
ioaddr
);
#endif
#endif
pci_set_drvdata
(
pdev
,
dev
);
pci_set_drvdata
(
pdev
,
dev
);
return
0
;
return
0
;
out2:
release_region
(
dev
->
base_addr
,
HP100_REGION_SIZE
);
out1:
out1:
free_netdev
(
dev
);
free_netdev
(
dev
);
out0:
out0:
...
@@ -3032,15 +3027,9 @@ static int __init hp100_isa_init(void)
...
@@ -3032,15 +3027,9 @@ static int __init hp100_isa_init(void)
SET_MODULE_OWNER
(
dev
);
SET_MODULE_OWNER
(
dev
);
err
=
hp100_isa_probe
(
dev
,
hp100_port
[
i
]);
err
=
hp100_isa_probe
(
dev
,
hp100_port
[
i
]);
if
(
!
err
)
{
if
(
!
err
)
err
=
register_netdev
(
dev
);
hp100_devlist
[
cards
++
]
=
dev
;
if
(
!
err
)
else
hp100_devlist
[
cards
++
]
=
dev
;
else
release_region
(
dev
->
base_addr
,
HP100_REGION_SIZE
);
}
if
(
err
)
free_netdev
(
dev
);
free_netdev
(
dev
);
}
}
...
...
drivers/net/isa-skeleton.c
浏览文件 @
b1fc5505
...
@@ -176,12 +176,7 @@ struct net_device * __init netcard_probe(int unit)
...
@@ -176,12 +176,7 @@ struct net_device * __init netcard_probe(int unit)
err
=
do_netcard_probe
(
dev
);
err
=
do_netcard_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -316,7 +311,15 @@ static int __init netcard_probe1(struct net_device *dev, int ioaddr)
...
@@ -316,7 +311,15 @@ static int __init netcard_probe1(struct net_device *dev, int ioaddr)
dev
->
tx_timeout
=
&
net_tx_timeout
;
dev
->
tx_timeout
=
&
net_tx_timeout
;
dev
->
watchdog_timeo
=
MY_TX_TIMEOUT
;
dev
->
watchdog_timeo
=
MY_TX_TIMEOUT
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out2
;
return
0
;
return
0
;
out2:
#ifdef jumpered_dma
free_dma
(
dev
->
dma
);
#endif
out1:
out1:
#ifdef jumpered_interrupts
#ifdef jumpered_interrupts
free_irq
(
dev
->
irq
,
dev
);
free_irq
(
dev
->
irq
,
dev
);
...
@@ -691,11 +694,8 @@ int init_module(void)
...
@@ -691,11 +694,8 @@ int init_module(void)
dev
->
dma
=
dma
;
dev
->
dma
=
dma
;
dev
->
mem_start
=
mem
;
dev
->
mem_start
=
mem
;
if
(
do_netcard_probe
(
dev
)
==
0
)
{
if
(
do_netcard_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
this_device
=
dev
;
this_device
=
dev
;
return
0
;
return
0
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
return
-
ENXIO
;
return
-
ENXIO
;
...
...
drivers/net/lance.c
浏览文件 @
b1fc5505
...
@@ -356,11 +356,8 @@ int init_module(void)
...
@@ -356,11 +356,8 @@ int init_module(void)
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
dma
=
dma
[
this_dev
];
dev
->
dma
=
dma
[
this_dev
];
if
(
do_lance_probe
(
dev
)
==
0
)
{
if
(
do_lance_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_lance
[
found
++
]
=
dev
;
dev_lance
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
break
;
break
;
...
@@ -448,12 +445,7 @@ struct net_device * __init lance_probe(int unit)
...
@@ -448,12 +445,7 @@ struct net_device * __init lance_probe(int unit)
err
=
do_lance_probe
(
dev
);
err
=
do_lance_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -724,6 +716,9 @@ static int __init lance_probe1(struct net_device *dev, int ioaddr, int irq, int
...
@@ -724,6 +716,9 @@ static int __init lance_probe1(struct net_device *dev, int ioaddr, int irq, int
dev
->
tx_timeout
=
lance_tx_timeout
;
dev
->
tx_timeout
=
lance_tx_timeout
;
dev
->
watchdog_timeo
=
TX_TIMEOUT
;
dev
->
watchdog_timeo
=
TX_TIMEOUT
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out_dma
;
return
0
;
return
0
;
out_dma:
out_dma:
if
(
dev
->
dma
!=
4
)
if
(
dev
->
dma
!=
4
)
...
...
drivers/net/lne390.c
浏览文件 @
b1fc5505
...
@@ -167,12 +167,7 @@ struct net_device * __init lne390_probe(int unit)
...
@@ -167,12 +167,7 @@ struct net_device * __init lne390_probe(int unit)
err
=
do_lne390_probe
(
dev
);
err
=
do_lne390_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -296,7 +291,14 @@ static int __init lne390_probe1(struct net_device *dev, int ioaddr)
...
@@ -296,7 +291,14 @@ static int __init lne390_probe1(struct net_device *dev, int ioaddr)
dev
->
poll_controller
=
ei_poll
;
dev
->
poll_controller
=
ei_poll
;
#endif
#endif
NS8390_init
(
dev
,
0
);
NS8390_init
(
dev
,
0
);
ret
=
register_netdev
(
dev
);
if
(
ret
)
goto
unmap
;
return
0
;
return
0
;
unmap:
if
(
ei_status
.
reg0
)
iounmap
((
void
*
)
dev
->
mem_start
);
cleanup:
cleanup:
free_irq
(
dev
->
irq
,
dev
);
free_irq
(
dev
->
irq
,
dev
);
return
ret
;
return
ret
;
...
@@ -426,11 +428,8 @@ int init_module(void)
...
@@ -426,11 +428,8 @@ int init_module(void)
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
mem_start
=
mem
[
this_dev
];
dev
->
mem_start
=
mem
[
this_dev
];
if
(
do_lne390_probe
(
dev
)
==
0
)
{
if
(
do_lne390_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_lne
[
found
++
]
=
dev
;
dev_lne
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
printk
(
KERN_WARNING
"lne390.c: No LNE390 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
printk
(
KERN_WARNING
"lne390.c: No LNE390 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
...
...
drivers/net/ne-h8300.c
浏览文件 @
b1fc5505
...
@@ -180,12 +180,7 @@ struct net_device * __init ne_probe(int unit)
...
@@ -180,12 +180,7 @@ struct net_device * __init ne_probe(int unit)
err
=
do_ne_probe
(
dev
);
err
=
do_ne_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -325,8 +320,13 @@ static int __init ne_probe1(struct net_device *dev, int ioaddr)
...
@@ -325,8 +320,13 @@ static int __init ne_probe1(struct net_device *dev, int ioaddr)
dev
->
poll_controller
=
ei_poll
;
dev
->
poll_controller
=
ei_poll
;
#endif
#endif
NS8390_init
(
dev
,
0
);
NS8390_init
(
dev
,
0
);
return
0
;
ret
=
register_netdev
(
dev
);
if
(
ret
)
goto
out_irq
;
return
0
;
out_irq:
free_irq
(
dev
->
irq
,
dev
);
err_out:
err_out:
release_region
(
ioaddr
,
NE_IO_EXTENT
);
release_region
(
ioaddr
,
NE_IO_EXTENT
);
return
ret
;
return
ret
;
...
@@ -633,11 +633,8 @@ int init_module(void)
...
@@ -633,11 +633,8 @@ int init_module(void)
err
=
init_reg_offset
(
dev
,
dev
->
base_addr
);
err
=
init_reg_offset
(
dev
,
dev
->
base_addr
);
if
(
!
err
)
{
if
(
!
err
)
{
if
(
do_ne_probe
(
dev
)
==
0
)
{
if
(
do_ne_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_ne
[
found
++
]
=
dev
;
dev_ne
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
...
...
drivers/net/ne.c
浏览文件 @
b1fc5505
...
@@ -229,12 +229,7 @@ struct net_device * __init ne_probe(int unit)
...
@@ -229,12 +229,7 @@ struct net_device * __init ne_probe(int unit)
err
=
do_ne_probe
(
dev
);
err
=
do_ne_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -534,8 +529,14 @@ static int __init ne_probe1(struct net_device *dev, int ioaddr)
...
@@ -534,8 +529,14 @@ static int __init ne_probe1(struct net_device *dev, int ioaddr)
dev
->
poll_controller
=
ei_poll
;
dev
->
poll_controller
=
ei_poll
;
#endif
#endif
NS8390_init
(
dev
,
0
);
NS8390_init
(
dev
,
0
);
ret
=
register_netdev
(
dev
);
if
(
ret
)
goto
out_irq
;
return
0
;
return
0
;
out_irq:
free_irq
(
dev
->
irq
,
dev
);
err_out:
err_out:
release_region
(
ioaddr
,
NE_IO_EXTENT
);
release_region
(
ioaddr
,
NE_IO_EXTENT
);
return
ret
;
return
ret
;
...
@@ -826,11 +827,8 @@ int init_module(void)
...
@@ -826,11 +827,8 @@ int init_module(void)
dev
->
mem_end
=
bad
[
this_dev
];
dev
->
mem_end
=
bad
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
if
(
do_ne_probe
(
dev
)
==
0
)
{
if
(
do_ne_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_ne
[
found
++
]
=
dev
;
dev_ne
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
if
(
found
)
if
(
found
)
...
...
drivers/net/ne2.c
浏览文件 @
b1fc5505
...
@@ -301,12 +301,7 @@ struct net_device * __init ne2_probe(int unit)
...
@@ -301,12 +301,7 @@ struct net_device * __init ne2_probe(int unit)
err
=
do_ne2_probe
(
dev
);
err
=
do_ne2_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -517,7 +512,14 @@ static int __init ne2_probe1(struct net_device *dev, int slot)
...
@@ -517,7 +512,14 @@ static int __init ne2_probe1(struct net_device *dev, int slot)
dev
->
poll_controller
=
ei_poll
;
dev
->
poll_controller
=
ei_poll
;
#endif
#endif
NS8390_init
(
dev
,
0
);
NS8390_init
(
dev
,
0
);
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
out1
;
return
0
;
return
0
;
out1:
mca_set_adapter_procfn
(
ei_status
.
priv
,
NULL
,
NULL
);
free_irq
(
dev
->
irq
,
dev
);
out:
out:
release_region
(
base_addr
,
NE_IO_EXTENT
);
release_region
(
base_addr
,
NE_IO_EXTENT
);
return
retval
;
return
retval
;
...
@@ -798,11 +800,8 @@ int init_module(void)
...
@@ -798,11 +800,8 @@ int init_module(void)
dev
->
mem_end
=
bad
[
this_dev
];
dev
->
mem_end
=
bad
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
if
(
do_ne2_probe
(
dev
)
==
0
)
{
if
(
do_ne2_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_ne
[
found
++
]
=
dev
;
dev_ne
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
break
;
break
;
...
...
drivers/net/smc-ultra.c
浏览文件 @
b1fc5505
...
@@ -194,12 +194,7 @@ struct net_device * __init ultra_probe(int unit)
...
@@ -194,12 +194,7 @@ struct net_device * __init ultra_probe(int unit)
err
=
do_ultra_probe
(
dev
);
err
=
do_ultra_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -325,6 +320,9 @@ static int __init ultra_probe1(struct net_device *dev, int ioaddr)
...
@@ -325,6 +320,9 @@ static int __init ultra_probe1(struct net_device *dev, int ioaddr)
#endif
#endif
NS8390_init
(
dev
,
0
);
NS8390_init
(
dev
,
0
);
retval
=
register_netdev
(
dev
);
if
(
retval
)
goto
out
;
return
0
;
return
0
;
out:
out:
release_region
(
ioaddr
,
ULTRA_IO_EXTENT
);
release_region
(
ioaddr
,
ULTRA_IO_EXTENT
);
...
@@ -583,11 +581,8 @@ init_module(void)
...
@@ -583,11 +581,8 @@ init_module(void)
dev
->
irq
=
irq
[
this_dev
];
dev
->
irq
=
irq
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
dev
->
base_addr
=
io
[
this_dev
];
if
(
do_ultra_probe
(
dev
)
==
0
)
{
if
(
do_ultra_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_ultra
[
found
++
]
=
dev
;
dev_ultra
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
printk
(
KERN_WARNING
"smc-ultra.c: No SMC Ultra card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
printk
(
KERN_WARNING
"smc-ultra.c: No SMC Ultra card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
...
...
drivers/net/wd.c
浏览文件 @
b1fc5505
...
@@ -149,12 +149,7 @@ struct net_device * __init wd_probe(int unit)
...
@@ -149,12 +149,7 @@ struct net_device * __init wd_probe(int unit)
err
=
do_wd_probe
(
dev
);
err
=
do_wd_probe
(
dev
);
if
(
err
)
if
(
err
)
goto
out
;
goto
out
;
err
=
register_netdev
(
dev
);
if
(
err
)
goto
out1
;
return
dev
;
return
dev
;
out1:
cleanup_card
(
dev
);
out:
out:
free_netdev
(
dev
);
free_netdev
(
dev
);
return
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
...
@@ -164,6 +159,7 @@ struct net_device * __init wd_probe(int unit)
...
@@ -164,6 +159,7 @@ struct net_device * __init wd_probe(int unit)
static
int
__init
wd_probe1
(
struct
net_device
*
dev
,
int
ioaddr
)
static
int
__init
wd_probe1
(
struct
net_device
*
dev
,
int
ioaddr
)
{
{
int
i
;
int
i
;
int
err
;
int
checksum
=
0
;
int
checksum
=
0
;
int
ancient
=
0
;
/* An old card without config registers. */
int
ancient
=
0
;
/* An old card without config registers. */
int
word16
=
0
;
/* 0 = 8 bit, 1 = 16 bit */
int
word16
=
0
;
/* 0 = 8 bit, 1 = 16 bit */
...
@@ -356,7 +352,10 @@ static int __init wd_probe1(struct net_device *dev, int ioaddr)
...
@@ -356,7 +352,10 @@ static int __init wd_probe1(struct net_device *dev, int ioaddr)
outb
(
inb
(
ioaddr
+
4
)
|
0x80
,
ioaddr
+
4
);
outb
(
inb
(
ioaddr
+
4
)
|
0x80
,
ioaddr
+
4
);
#endif
#endif
return
0
;
err
=
register_netdev
(
dev
);
if
(
err
)
free_irq
(
dev
->
irq
,
dev
);
return
err
;
}
}
static
int
static
int
...
@@ -527,11 +526,8 @@ init_module(void)
...
@@ -527,11 +526,8 @@ init_module(void)
dev
->
mem_start
=
mem
[
this_dev
];
dev
->
mem_start
=
mem
[
this_dev
];
dev
->
mem_end
=
mem_end
[
this_dev
];
dev
->
mem_end
=
mem_end
[
this_dev
];
if
(
do_wd_probe
(
dev
)
==
0
)
{
if
(
do_wd_probe
(
dev
)
==
0
)
{
if
(
register_netdev
(
dev
)
==
0
)
{
dev_wd
[
found
++
]
=
dev
;
dev_wd
[
found
++
]
=
dev
;
continue
;
continue
;
}
cleanup_card
(
dev
);
}
}
free_netdev
(
dev
);
free_netdev
(
dev
);
printk
(
KERN_WARNING
"wd.c: No wd80x3 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
printk
(
KERN_WARNING
"wd.c: No wd80x3 card found (i/o = 0x%x).
\n
"
,
io
[
this_dev
]);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录