* skb configured but can't get data allocated
From: DHAJOGLO @ 2007-09-12 17:31 UTC (permalink / raw)
To: netdev; +Cc: kernelnewbies
Right,
I managed to figure out through looking at the code how to configure and send my skb properly. For those who say the code is well documented.. you're right.. however I fell like a blind man in an "adult book store" and just don't see what I'm missing. Below is my code. The packets are making it back and forth but the data is absent on the return trip. d_out is my little struct with two bytes and a char.
struct sk_buff *send_back(struct sk_buff *oldskb)
{
struct sk_buff *skb;
struct iphdr *iph;
struct net_device *dev = (struct net_device *)oldskb->dev;
struct rtable *rt;
int iplen;
struct ethhdr *mac;
struct exp_packet *d_out;
skb = alloc_skb(sizeof(struct exp_packet) + LL_RESERVED_SPACE(dev), GFP_ATOMIC);
if(skb == NULL)
return NULL;
/* insert the data probably need to allocatd differently */
d_out = (struct exp_packet *)skb->data;
d_out->headbits = 0xAA;
d_out->sequence = 0xBB;
d_out->payload = 0xCCDD;
/* from igmp... configure the rt */
{
struct flowi fl = { .oif = dev->ifindex,
.nl_u = { .ip4_u = {
.daddr = htonl(oldskb->nh.iph->saddr) } },
.proto = IPPROTO_EXP };
if (ip_route_output_key(&rt,&fl)) {
printk("No route?\n");
kfree_skb(skb);
return NULL;
}
}
if (rt->rt_src == 0) {
printk("No source info?\n");
ip_rt_put(rt);
return NULL;
}
skb->dst = &rt->u.dst;
skb->dev = dev;
skb_reserve(skb,LL_RESERVED_SPACE(dev));
/* configure the ipheader */
skb->nh.iph = iph = (struct iphdr *)skb_put(skb,sizeof(struct iphdr)+4);
iph->version = 4;
iph->ihl = (sizeof(struct iphdr)+4)>>2;
iph->protocol = IPPROTO_EXP;
iph->saddr = rt->rt_src;
iph->daddr = htonl(rt->rt_dst);
iph->tos = 0;
iph->ttl = 5;
ip_select_ident(iph,&rt->u.dst,NULL);
iplen = skb->tail - (unsigned char *)skb->nh.iph;
iph->tot_len = htons(iplen);
ip_send_check(iph);
skb->pkt_type = PACKET_OUTGOING;
mac = (struct ethhdr *)oldskb->mac.raw;
/* configure the mac addresses */
if(dev->hard_header && dev->hard_header(skb,dev,ETH_P_IP,mac->h_source,mac->h_dest,skb->len) < 0)
printk("hard header worked?");
return skb;
}
=== the packets look like this and they should be the same save for swapped src/dst:
00:12:3f:56:bf:1c > 00:0c:29:71:67:1e, ethertype IPv4 (0x0800), length 60: (tos 0x0, ttl 20, id 153, offset 0, flags [DF], proto: unknown (253), length: 24) src.src.src.src > dst.dst.dst.dst: ip-proto-253 4
0x0000: 4500 0018 0099 4000 14fd c4ed 8cbe 414d E.....@.......AM
0x0010: 8cbe 4599 001b ddee 0000 0000 0000 0000 ..E.............
0x0020: 0000 0000 0000 0000 0000 0000 0000 ..............
00:0c:29:71:67:1e > 00:12:3f:56:bf:1c, ethertype IPv4 (0x0800), length 38: (tos 0x0, ttl 5, id 0, offset 65528, flags [+, DF, rsvd], proto: unknown (253), length: 24, options ( unknown (243) len 252[|ip] )) src.src.src.src > dst.dst.dst.dst: ip-proto-253
0x0000: 4600 0018 0000 ffff 05fd 1f8a 8cbe 4599 F.............E.
0x0010: 8cbe 414d f3fc 0000 ..AM....
^ permalink raw reply
* Re: 2.6.23-rc6: known regressions with patches
From: Michal Piotrowski @ 2007-09-12 17:24 UTC (permalink / raw)
To: David Woodhouse
Cc: Linus Torvalds, Andrew Morton, LKML, Gabriel C, Satyam Sharma,
Vitaly Bordug, Kay Sievers, Dmitry Torokhov, Greg KH,
Anssi Hannula, Toralf Förster, netdev, Christian Kujau,
jamal, linux-usb-devel, sean, Adrian Bunk
In-Reply-To: <1189616905.3570.59.camel@shinybook.infradead.org>
On 12/09/2007, David Woodhouse <dwmw2@infradead.org> wrote:
> On Wed, 2007-09-12 at 18:59 +0200, Michal Piotrowski wrote:
> > MTD
> >
> > Subject : include/linux/mtd/map.h:128:2: error: #error "No bus width supported. What's the point?"
> > References : http://lkml.org/lkml/2007/9/11/151
> > Last known good : ?
> > Submitter : Toralf Förster <toralf.foerster@gmx.de>
> > Caused-By : ?
> > Handled-By : ?
> > Patch : http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=241651d04d672fb685b2874707016cbbf95931e5
> > Status : patch available
>
> Didn't you already _drop_ this from your list of regressions once?
Yeah :)
removed.
>
> --
> dwmw2
>
>
Regards,
Michal
--
LOG
http://www.stardust.webpages.pl/log/
^ permalink raw reply
* Re: 2.6.23-rc6: known regressions with patches
From: David Woodhouse @ 2007-09-12 17:08 UTC (permalink / raw)
To: Michal Piotrowski
Cc: Linus Torvalds, Andrew Morton, LKML, Gabriel C, Satyam Sharma,
Vitaly Bordug, Kay Sievers, Dmitry Torokhov, Greg KH,
Anssi Hannula, Toralf Förster, netdev, Christian Kujau,
jamal, linux-usb-devel, sean, Adrian Bunk
In-Reply-To: <46E81AE2.8030802@googlemail.com>
On Wed, 2007-09-12 at 18:59 +0200, Michal Piotrowski wrote:
> MTD
>
> Subject : include/linux/mtd/map.h:128:2: error: #error "No bus width supported. What's the point?"
> References : http://lkml.org/lkml/2007/9/11/151
> Last known good : ?
> Submitter : Toralf Förster <toralf.foerster@gmx.de>
> Caused-By : ?
> Handled-By : ?
> Patch : http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=241651d04d672fb685b2874707016cbbf95931e5
> Status : patch available
Didn't you already _drop_ this from your list of regressions once?
--
dwmw2
^ permalink raw reply
* 2.6.23-rc6: known regressions with patches
From: Michal Piotrowski @ 2007-09-12 16:59 UTC (permalink / raw)
To: Linus Torvalds
Cc: Andrew Morton, LKML, Gabriel C, Satyam Sharma, Vitaly Bordug,
Kay Sievers, Dmitry Torokhov, Greg KH, Anssi Hannula,
David Woodhouse, Toralf Förster, netdev, Christian Kujau,
jamal, linux-usb-devel, Greg KH, Toralf Förster, sean,
Adrian Bunk
Hi all,
Here is a list of some known regressions in 2.6.23-rc6
with patches available.
Feel free to add new regressions/remove fixed etc.
http://kernelnewbies.org/known_regressions
List of Aces
Name Regressions fixed since 21-Jun-2007
Adrian Bunk 10
Linus Torvalds 6
Alan Stern 5
Andi Kleen 5
Hugh Dickins 5
Trond Myklebust 5
Andrew Morton 4
Al Viro 3
Alexey Starikovskiy 3
Cornelia Huck 3
David S. Miller 3
Jens Axboe 3
Stephen Hemminger 3
Tejun Heo 3
Unclassified
Subject : Oops while modprobing phy fixed module
References : http://lkml.org/lkml/2007/7/14/63
Last known good : ?
Submitter : Gabriel C <nix.or.die@googlemail.com>
Caused-By : ?
Handled-By : Satyam Sharma <satyam.sharma@gmail.com>
Vitaly Bordug <vitb@kernel.crashing.org>
Patch1 : http://lkml.org/lkml/2007/7/18/506
Status : patch available
Drivercore
Subject : sysfs change of input/event devices in 2.6.23rc breaks udev
References : http://lkml.org/lkml/2007/9/8/86
Last known good : ?
Submitter : Anssi Hannula <anssi.hannula@gmail.com>
Caused-By : ?
Handled-By : Dmitry Torokhov <dmitry.torokhov@gmail.com>
Patch : http://lkml.org/lkml/2007/9/10/3
Status : patch available
MTD
Subject : include/linux/mtd/map.h:128:2: error: #error "No bus width supported. What's the point?"
References : http://lkml.org/lkml/2007/9/11/151
Last known good : ?
Submitter : Toralf Förster <toralf.foerster@gmx.de>
Caused-By : ?
Handled-By : ?
Patch : http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=241651d04d672fb685b2874707016cbbf95931e5
Status : patch available
Networking
Subject : 2.6.23-rc5: possible irq lock inversion dependency detected
References : http://lkml.org/lkml/2007/9/2/97
Last known good : ?
Submitter : Christian Kujau <lists@nerdbynature.de>
Caused-By : ?
Handled-By : jamal <hadi@cyberus.ca>
Patch : http://lkml.org/lkml/2007/9/11/159
Status : patch available
USB
Subject : build #246 failed for 2.6.23-rc6-g0d4cbb5 in linux/drivers/usb/misc/phidgetservo.ko
References : http://lkml.org/lkml/2007/9/11/211
Last known good : ?
Submitter : Toralf Förster <toralf.foerster@gmx.de>
Caused-By : ?
Handled-By : Adrian Bunk <bunk@kernel.org>
Patch : http://lkml.org/lkml/2007/9/11/284
Status : patch available
Regards,
Michal
--
LOG
http://www.stardust.webpages.pl/log/
^ permalink raw reply
* Re: [3/4] 2.6.23-rc6: known regressions
From: Michal Piotrowski @ 2007-09-12 16:59 UTC (permalink / raw)
To: Linus Torvalds
Cc: Andrew Morton, LKML, linux1394-devel, Ben Collins, Stefan Richter,
Pavel Machek, netdev, Shish, Karl Meyer, Francois Romieu,
Daniel Drake, Oliver Neukum, linux-usb-devel, Florian Lohoff,
Toralf Förster
In-Reply-To: <46E8187E.9000006@googlemail.com>
Hi all,
Here is a list of some known regressions in 2.6.23-rc6.
Feel free to add new regressions/remove fixed etc.
http://kernelnewbies.org/known_regressions
List of Aces
Name Regressions fixed since 21-Jun-2007
Adrian Bunk 10
Linus Torvalds 6
Alan Stern 5
Andi Kleen 5
Hugh Dickins 5
Trond Myklebust 5
Andrew Morton 4
Al Viro 3
Alexey Starikovskiy 3
Cornelia Huck 3
David S. Miller 3
Jens Axboe 3
Stephen Hemminger 3
Tejun Heo 3
FireWire
Subject : empty suspend stopped working around 2.6.23-rc4
References : http://lkml.org/lkml/2007/9/11/326
Last known good : ?
Submitter : Pavel Machek <pavel@ucw.cz>
Caused-By : ?
Handled-By : ?
Status : unknown
Networking
Subject : build #301 failed for 2.6.23-rc6-g0d4cbb5 in linux/drivers/net/wireless/libertas/
References : http://lkml.org/lkml/2007/9/11/150
Last known good : ?
Submitter : Toralf Förster <toralf.foerster@gmx.de>
Caused-By : ?
Handled-By : ?
Status : unknown
Subject : zd1211rw regression, device does not enumerate
References : http://marc.info/?l=linux-usb-devel&m=118854967709322&w=2
http://bugzilla.kernel.org/show_bug.cgi?id=8972
Last known good : ?
Submitter : Oliver Neukum <oliver@neukum.org>
Caused-By : Daniel Drake <dsd@gentoo.org>
commit 74553aedd46b3a2cae986f909cf2a3f99369decc
Handled-By : ?
Status : unknown
Subject : NETDEV WATCHDOG: eth0: transmit timed out
References : http://lkml.org/lkml/2007/8/13/737
Last known good : ?
Submitter : Karl Meyer <adhocrocker@gmail.com>
Caused-By : ?
Handled-By : Francois Romieu <romieu@fr.zoreil.com>
Status : problem is being debugged
Subject : Weird network problems with 2.6.23-rc2
References : http://lkml.org/lkml/2007/8/11/40
Last known good : ?
Submitter : Shish <shish@shishnet.org>
Caused-By : ?
Handled-By : ?
Status : unknown
Regards,
Michal
--
LOG
http://www.stardust.webpages.pl/log/
^ permalink raw reply
* Re: [PATCH] Configurable tap interface MTU
From: Ed Swierk @ 2007-09-12 16:54 UTC (permalink / raw)
To: Herbert Xu, netdev, maxk, linux-kernel
In-Reply-To: <E1IVIv8-0003Uc-00@gondolin.me.apana.org.au>
[-- Attachment #1: Type: text/plain, Size: 404 bytes --]
On 9/11/07, Herbert Xu <herbert@gondor.apana.org.au> wrote:
> Please make it 65535 without an Ethernet header and 65521
> with an Ethernet header.
Here is a revised patch that allows MTUs up to 65535 for tap
interfaces and up to 65521 for tun interfaces.
(If I set the MTU to 65521 on a tun interface, ping complains "message
too long" when I send a 65521-byte packet; 65520 works okay, though.)
--Ed
[-- Attachment #2: tap-change-mtu.patch --]
[-- Type: application/octet-stream, Size: 1185 bytes --]
Index: linux-2.6.22.6/drivers/net/tun.c
===================================================================
--- linux-2.6.22.6.orig/drivers/net/tun.c
+++ linux-2.6.22.6/drivers/net/tun.c
@@ -171,6 +171,18 @@ tun_net_mclist(struct net_device *dev)
}
}
+#define MIN_MTU 68
+#define MAX_MTU 65535
+
+static int
+tun_net_change_mtu(struct net_device *dev, int new_mtu)
+{
+ if (new_mtu < MIN_MTU || new_mtu + dev->hard_header_len > MAX_MTU)
+ return -EINVAL;
+ dev->mtu = new_mtu;
+ return 0;
+}
+
static struct net_device_stats *tun_net_stats(struct net_device *dev)
{
struct tun_struct *tun = netdev_priv(dev);
@@ -188,6 +200,7 @@ static void tun_net_init(struct net_devi
dev->hard_header_len = 0;
dev->addr_len = 0;
dev->mtu = 1500;
+ dev->change_mtu = tun_net_change_mtu;
/* Zero header length */
dev->type = ARPHRD_NONE;
@@ -200,6 +213,7 @@ static void tun_net_init(struct net_devi
dev->set_multicast_list = tun_net_mclist;
ether_setup(dev);
+ dev->change_mtu = tun_net_change_mtu;
/* random address already created for us by tun_set_iff, use it */
memcpy(dev->dev_addr, tun->dev_addr, min(sizeof(tun->dev_addr), sizeof(dev->dev_addr)) );
^ permalink raw reply
* [PATCH v3] Make the pr_*() family of macros in kernel.h complete
From: Emil Medve @ 2007-09-12 16:39 UTC (permalink / raw)
To: linux-kernel, netdev, i2c, linux-omap-open-source; +Cc: Emil Medve
Other/Some pr_*() macros are already defined in kernel.h, but pr_err() was defined
multiple times in several other places
Signed-off-by: Emil Medve <Emilian.Medve@Freescale.com>
---
I'm writing a driver and I've been using the pr_*() macros from kernel.h and I
was surprised not to find there pr_err() but defined multiple times (in four
different files). I didn't want to define it yet one more time so I did this
cleanup
As per community request/suggestion, I added the rest of the missing pr_*()
macros to complete the family. The names of the macros are based on the KERN_*
loglevel names and are macthing the naming convention of the dev_*() print
macros from device.h. The macros are defined in the ascending order of the
loglevel
This patch is against Linus' tree (577107e8e4cf9f6f4f5ef8350ac9a8faa6c3796d)
linux-2.6> scripts/checkpatch.pl 0001-Make-the-pr_-family-of-macros-in-kernel.h-complet.patch
Your patch has no obvious style problems and is ready for submission.
drivers/i2c/chips/menelaus.c | 10 ++++------
drivers/net/spider_net.h | 3 ---
drivers/video/omap/lcd_h3.c | 6 ++----
drivers/video/omap/lcd_inn1610.c | 6 ++----
include/linux/kernel.h | 22 +++++++++++++++++-----
5 files changed, 25 insertions(+), 22 deletions(-)
diff --git a/drivers/i2c/chips/menelaus.c b/drivers/i2c/chips/menelaus.c
index d9c92c5..66436ba 100644
--- a/drivers/i2c/chips/menelaus.c
+++ b/drivers/i2c/chips/menelaus.c
@@ -49,8 +49,6 @@
#define DRIVER_NAME "menelaus"
-#define pr_err(fmt, arg...) printk(KERN_ERR DRIVER_NAME ": ", ## arg);
-
#define MENELAUS_I2C_ADDRESS 0x72
#define MENELAUS_REV 0x01
@@ -155,7 +153,7 @@ static int menelaus_write_reg(int reg, u8 value)
int val = i2c_smbus_write_byte_data(the_menelaus->client, reg, value);
if (val < 0) {
- pr_err("write error");
+ pr_err(DRIVER_NAME ": write error");
return val;
}
@@ -167,7 +165,7 @@ static int menelaus_read_reg(int reg)
int val = i2c_smbus_read_byte_data(the_menelaus->client, reg);
if (val < 0)
- pr_err("read error");
+ pr_err(DRIVER_NAME ": read error");
return val;
}
@@ -1177,7 +1175,7 @@ static int menelaus_probe(struct i2c_client *client)
/* If a true probe check the device */
rev = menelaus_read_reg(MENELAUS_REV);
if (rev < 0) {
- pr_err("device not found");
+ pr_err(DRIVER_NAME ": device not found");
err = -ENODEV;
goto fail1;
}
@@ -1258,7 +1256,7 @@ static int __init menelaus_init(void)
res = i2c_add_driver(&menelaus_i2c_driver);
if (res < 0) {
- pr_err("driver registration failed\n");
+ pr_err(DRIVER_NAME ": driver registration failed\n");
return res;
}
diff --git a/drivers/net/spider_net.h b/drivers/net/spider_net.h
index dbbdb8c..c67b11d 100644
--- a/drivers/net/spider_net.h
+++ b/drivers/net/spider_net.h
@@ -493,7 +493,4 @@ struct spider_net_card {
struct spider_net_descr darray[0];
};
-#define pr_err(fmt,arg...) \
- printk(KERN_ERR fmt ,##arg)
-
#endif
diff --git a/drivers/video/omap/lcd_h3.c b/drivers/video/omap/lcd_h3.c
index 51807b4..c604d93 100644
--- a/drivers/video/omap/lcd_h3.c
+++ b/drivers/video/omap/lcd_h3.c
@@ -28,8 +28,6 @@
#define MODULE_NAME "omapfb-lcd_h3"
-#define pr_err(fmt, args...) printk(KERN_ERR MODULE_NAME ": " fmt, ## args)
-
static int h3_panel_init(struct lcd_panel *panel, struct omapfb_device *fbdev)
{
return 0;
@@ -48,7 +46,7 @@ static int h3_panel_enable(struct lcd_panel *panel)
if (!r)
r = tps65010_set_gpio_out_value(GPIO2, HIGH);
if (r)
- pr_err("Unable to turn on LCD panel\n");
+ pr_err(MODULE_NAME ": Unable to turn on LCD panel\n");
return r;
}
@@ -62,7 +60,7 @@ static void h3_panel_disable(struct lcd_panel *panel)
if (!r)
tps65010_set_gpio_out_value(GPIO2, LOW);
if (r)
- pr_err("Unable to turn off LCD panel\n");
+ pr_err(MODULE_NAME ": Unable to turn off LCD panel\n");
}
static unsigned long h3_panel_get_caps(struct lcd_panel *panel)
diff --git a/drivers/video/omap/lcd_inn1610.c b/drivers/video/omap/lcd_inn1610.c
index 95604ca..5ef119c 100644
--- a/drivers/video/omap/lcd_inn1610.c
+++ b/drivers/video/omap/lcd_inn1610.c
@@ -27,20 +27,18 @@
#define MODULE_NAME "omapfb-lcd_h3"
-#define pr_err(fmt, args...) printk(KERN_ERR MODULE_NAME ": " fmt, ## args)
-
static int innovator1610_panel_init(struct lcd_panel *panel,
struct omapfb_device *fbdev)
{
int r = 0;
if (omap_request_gpio(14)) {
- pr_err("can't request GPIO 14\n");
+ pr_err(MODULE_NAME ": can't request GPIO 14\n");
r = -1;
goto exit;
}
if (omap_request_gpio(15)) {
- pr_err("can't request GPIO 15\n");
+ pr_err(MODULE_NAME ": can't request GPIO 15\n");
omap_free_gpio(14);
r = -1;
goto exit;
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 47160fe..166a822 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -230,10 +230,25 @@ extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type,
const void *buf, size_t len);
#define hex_asc(x) "0123456789abcdef"[x]
+#define pr_emerg(fmt, arg...) \
+ printk(KERN_EMERG fmt, ##arg)
+#define pr_alert(fmt, arg...) \
+ printk(KERN_ALERT fmt, ##arg)
+#define pr_crit(fmt, arg...) \
+ printk(KERN_CRIT fmt, ##arg)
+#define pr_err(fmt, arg...) \
+ printk(KERN_ERR fmt, ##arg)
+#define pr_warning(fmt, arg...) \
+ printk(KERN_WARNING fmt, ##arg)
+#define pr_notice(fmt, arg...) \
+ printk(KERN_NOTICE fmt, ##arg)
+#define pr_info(fmt, arg...) \
+ printk(KERN_INFO fmt, ##arg)
+
#ifdef DEBUG
/* If you are writing a driver, please use dev_dbg instead */
-#define pr_debug(fmt,arg...) \
- printk(KERN_DEBUG fmt,##arg)
+#define pr_debug(fmt, arg...) \
+ printk(KERN_DEBUG fmt, ##arg)
#else
static inline int __attribute__ ((format (printf, 1, 2))) pr_debug(const char * fmt, ...)
{
@@ -241,9 +256,6 @@ static inline int __attribute__ ((format (printf, 1, 2))) pr_debug(const char *
}
#endif
-#define pr_info(fmt,arg...) \
- printk(KERN_INFO fmt,##arg)
-
/*
* Display an IP address in readable format.
*/
--
1.5.3.GIT
^ permalink raw reply related
* Re: [RFC PATCH 2/2] SCTP: Convert bind_addr_list locking to RCU
From: Paul E. McKenney @ 2007-09-12 16:50 UTC (permalink / raw)
To: Vlad Yasevich; +Cc: netdev, lksctp-developers
In-Reply-To: <46E6AC89.8010508@hp.com>
On Tue, Sep 11, 2007 at 10:56:09AM -0400, Vlad Yasevich wrote:
> Hi Paul
>
> Thanks for review. I'll leave out the comments about
> the ->valid usage since there are the same as the first patch
> in the series.
Fair enough.
> Other questions/responses below...
>
> Paul E. McKenney wrote:
> >>
> >> diff --git a/net/sctp/bind_addr.c b/net/sctp/bind_addr.c
> >> index 7fc369f..9c7db1f 100644
> >> --- a/net/sctp/bind_addr.c
> >> +++ b/net/sctp/bind_addr.c
> >> @@ -167,7 +167,10 @@ int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,
> >>
> >> INIT_LIST_HEAD(&addr->list);
> >> INIT_RCU_HEAD(&addr->rcu);
> >> - list_add_tail(&addr->list, &bp->address_list);
> >> +
> >> + rcu_read_lock();
> >> + list_add_tail_rcu(&addr->list, &bp->address_list);
> >> + rcu_read_unlock();
> >
> > Given the original code, we presumably hold the update-side lock. If so,
> > the rcu_read_lock() and rcu_read_unlock() are (harmlessly) redundant.
> >
>
> Yes, it this case, the writer would already hold the socket lock.
> However, I was told during private review that even writers need to be
> in rcu critical section. Looking at the different users of RCU, it seems
> there is no consistency, i.e. sometimes writers take the rcu_read_lock()
> and sometimes the don't.
>
> Is there a rule of when writer needs to be in rcu critical section?
And the answer is...
"It depends!!!" ;-)
Normally, the writer does -not- need to be in an RCU read-side critical
section. However, it really doesn't hurt anything, aside from possible
confusion for the people reading the code. Here are some situations
where it makes sense to have RCU protection even though the update-side
lock is held:
1. Read-side code discovers a need to update while in an RCU
read-side critical section. Then it is best to simply acquire the
update-side lock while still in the RCU read-side critical section,
do the update, and release the lock.
2. Common code called both by readers and updaters will often do
rcu_read_lock() -- better to have the updaters take an (often)
unmeasurable increase in overhead than to duplicate the common
code.
3. Sometimes update-side code for one data structure involves
read-side code for some other data structure. In this case,
one must of course hold the update-side lock for the first
data structure -and- do rcu_read_lock() to protect access
to the second data structure.
(Hey, you asked!!!)
> >> SCTP_DBG_OBJCNT_INC(addr);
> >>
> >> return 0;
> >> @@ -178,20 +181,23 @@ int sctp_add_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *new,
> >> */
> >> int sctp_del_bind_addr(struct sctp_bind_addr *bp, union sctp_addr *del_addr)
> >> {
> >> - struct list_head *pos, *temp;
> >> - struct sctp_sockaddr_entry *addr;
> >> + struct sctp_sockaddr_entry *addr, *temp;
> >>
> >> - list_for_each_safe(pos, temp, &bp->address_list) {
> >> - addr = list_entry(pos, struct sctp_sockaddr_entry, list);
> >> + rcu_read_lock_bh();
> >> + list_for_each_entry_safe(addr, temp, &bp->address_list, list) {
> >> if (sctp_cmp_addr_exact(&addr->a, del_addr)) {
> >> /* Found the exact match. */
> >> - list_del(pos);
> >> - kfree(addr);
> >> - SCTP_DBG_OBJCNT_DEC(addr);
> >> -
> >> - return 0;
> >> + addr->valid = 0;
> >> + list_del_rcu(&addr->list);
> >> + break;
> >> }
> >> }
> >> + rcu_read_unlock_bh();
> >
> > Ditto.
> >
> >> +
> >> + if (addr && !addr->valid) {
> >> + call_rcu_bh(&addr->rcu, sctp_local_addr_free);
> >> + SCTP_DBG_OBJCNT_DEC(addr);
> >> + }
> >>
> >> return -EINVAL;
> >> }
>
> >> @@ -325,27 +336,31 @@ union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp,
> >> union sctp_addr *addr;
> >> void *addr_buf;
> >> struct sctp_af *af;
> >> - struct list_head *pos;
> >> int i;
> >>
> >> - list_for_each(pos, &bp->address_list) {
> >> - laddr = list_entry(pos, struct sctp_sockaddr_entry, list);
> >> + rcu_read_lock();
> >> + list_for_each_entry_rcu(laddr, &bp->address_list, list) {
> >> + if (!laddr->valid)
> >> + continue;
> >
> > Ditto...
> >
> >> addr_buf = (union sctp_addr *)addrs;
> >> for (i = 0; i < addrcnt; i++) {
> >> addr = (union sctp_addr *)addr_buf;
> >> af = sctp_get_af_specific(addr->v4.sin_family);
> >> if (!af)
> >> - return NULL;
> >> + break;
> >>
> >> if (opt->pf->cmp_addr(&laddr->a, addr, opt))
> >> break;
> >>
> >> addr_buf += af->sockaddr_len;
> >> }
> >> - if (i == addrcnt)
> >> + if (i == addrcnt) {
> >> + rcu_read_unlock();
> >
> > Since rcu_read_unlock() just happened, some other CPU is free to
> > free up this data structure. In a CONFIG_PREEMPT kernel (as well as a
> > CONFIG_PREEMPT_RT kernel, for that matter), this task might be preempted
> > at this point, and a full grace period might elapse.
> >
> > In which case, the following statement returns a pointer to the freelist,
> > which is not good.
>
> Hm... my saving grace here is that this happens under the protection of the
> socket lock so the rcu_read_lock is again potentially redundant. If it wasn't
> for that socket lock, the original code would also have the same race.
OK, no problem then. Of course, that means that the rcu_read_lock() is
redundant. ;-)
> >> return &laddr->a;
> >> + }
> >> }
> >> + rcu_read_unlock();
> >>
> >> return NULL;
> >> }
>
> >> diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
> >> index 79856c9..caaa29f 100644
> >> --- a/net/sctp/sm_make_chunk.c
> >> +++ b/net/sctp/sm_make_chunk.c
> >> @@ -1531,7 +1531,7 @@ no_hmac:
> >> /* Also, add the destination address. */
> >> if (list_empty(&retval->base.bind_addr.address_list)) {
> >> sctp_add_bind_addr(&retval->base.bind_addr, &chunk->dest, 1,
> >> - GFP_ATOMIC);
> >> + GFP_ATOMIC);
> >> }
> >>
> >> retval->next_tsn = retval->c.initial_tsn;
> >> @@ -2613,22 +2613,17 @@ static int sctp_asconf_param_success(struct sctp_association *asoc,
> >>
> >> switch (asconf_param->param_hdr.type) {
> >> case SCTP_PARAM_ADD_IP:
> >> - sctp_local_bh_disable();
> >> - sctp_write_lock(&asoc->base.addr_lock);
> >> - list_for_each(pos, &bp->address_list) {
> >> - saddr = list_entry(pos, struct sctp_sockaddr_entry, list);
> >> + rcu_read_lock_bh();
> >> + list_for_each_entry_rcu(saddr, &bp->address_list, list) {
> >> + if (!saddr->valid)
> >> + continue;
> >> if (sctp_cmp_addr_exact(&saddr->a, &addr))
> >> saddr->use_as_src = 1;
> >> }
> >> - sctp_write_unlock(&asoc->base.addr_lock);
> >> - sctp_local_bh_enable();
> >> + rcu_read_unlock_bh();
> >
> > If you use rcu_read_lock_bh() and rcu_read_unlock_bh() in one read path
> > for a given data structure, you need to use them in all the other read
> > paths for that data structure. In addition, you must use call_rcu_bh()
> > when deleting the corresponding data elements.
> >
> > The normal and the _bh RCU grace periods are unrelated, so mixing them
> > for a given RCU-protected data structure is a bad idea. (Or are these
> > somehow two independent data structures?)
>
> It's the same data structure, but update some of its contents in the softirq
> context. Thankfully we don't change the list in this case. As you can see,
> the code was calling local_bh_disable() before, so I was trying to preserve
> that condition.
>
> This condition also happens under the synchronization of the socket lock, so
> rcu may be potentially redundant here. It might be sufficient to simply
> call local_bh_disable() for this particular case.
You are free to invoke rcu_read_lock() under local_bh_disable() and vice
versa, if that helps.
> >> break;
> >> case SCTP_PARAM_DEL_IP:
> >> - sctp_local_bh_disable();
> >> - sctp_write_lock(&asoc->base.addr_lock);
> >> retval = sctp_del_bind_addr(bp, &addr);
> >> - sctp_write_unlock(&asoc->base.addr_lock);
> >> - sctp_local_bh_enable();
>
> This one is actually the one I worry more about. If you look close to
> the beginning of this patch at sctp_del_bind_addr(), you'll see that
> it also uses BH conventions for it's RCU calls and uses call_rcu_bh()
> to free up the entry.
>
> However, given what you said about the grace periods being unrelated, I
> am questioning that condition.
>
> I think I'll need 2 version of the del_bind_addr() call, depending on
> which list I am cleaning up.
Another approach is to chain the two callbacks. For example, use
call_rcu() from del_bind_addr(), and have the resulting callback
invoke call_rcu_bh(), and then free up the structure from that
callback. Like this:
...
call_rcu(p, del_bind_addr_rcu_1);
void del_bind_addr_rcu_1(struct rcu_head *head)
{
call_rcu_bh(head, del_bind_addr_rcu_2);
}
Then del_bind_addr_rcu_2() actually frees the referenced struct, as
you already have in your patch. This works as follows:
o Once del_bind_addr_rcu_1() is invoked, all pre-existing RCU
read-side critical sections using rcu_read_lock() have completed.
Of course, RCU read-side critical sections that started -after-
the original call_rcu() in del_bind_addr() might still be in
progress, but those RCU read-side critical sections cannot
possibly gain a reference to the structure being freed.
o Once del_bind_addr_rcu_2() is invoked, all pre-existing RCU
read-side critical sections using rcu_read_lock_bh() have
completed. Since both types of RCU read-side critical sections
have now been taken care of, it is now safe to free up the
structure.
The downside is that everything goes through two grace periods rather
than one. You choice -- always use the same type of RCU read-side
critical section, or make updates go through the grace periods
corresponding to each type of RCU used by the readers.
> There is a list on the 'endpoint' structure, that we add to and remove from
> only in user context.
> There is also a list on the 'association' structure, the we add to in user
> context, but remove from in BH context only. I think this one will
> need be cleaned up using rcu_read_[un]lock_bh() and call_rcu_bh() calls, while
> the first one can use regular rcu calls. Does that sound generally right?
OK, yes, if you have two different data structures, then it is OK to
protect one with rcu_read_lock() and the other with rcu_read_lock_bh().
If you have a common piece of code that cleans a combined linked structure
containing both types of data structures, you will indeeed need to use
the corresponding call_rcu() variant on the data structure in question.
I suppose you could pass a flag to a common cleanup function to indicate
whether that common function should use call_rcu() or call_rcu_bh(),
or even pass in a pointer to the callback-registry function (call_rcu()
or call_rcu_bh()) itself.
> >> list_for_each(pos, &asoc->peer.transport_addr_list) {
> >> transport = list_entry(pos, struct sctp_transport,
> >> transports);
> >> diff --git a/net/sctp/socket.c b/net/sctp/socket.c
> >> index a3acf78..35cc30c 100644
> >> --- a/net/sctp/socket.c
> >> +++ b/net/sctp/socket.c
> >> @@ -367,14 +367,10 @@ SCTP_STATIC int sctp_do_bind(struct sock *sk, union sctp_addr *addr, int len)
> >> if (!bp->port)
> >> bp->port = inet_sk(sk)->num;
> >>
> >> - /* Add the address to the bind address list. */
> >> - sctp_local_bh_disable();
> >> - sctp_write_lock(&ep->base.addr_lock);
> >> -
> >> - /* Use GFP_ATOMIC since BHs are disabled. */
> >> + /* Add the address to the bind address list.
> >> + * Use GFP_ATOMIC since BHs will be disabled.
> >> + */
> >> ret = sctp_add_bind_addr(bp, addr, 1, GFP_ATOMIC);
> >> - sctp_write_unlock(&ep->base.addr_lock);
> >> - sctp_local_bh_enable();
> >>
> >> /* Copy back into socket for getsockname() use. */
> >> if (!ret) {
> >> @@ -497,7 +493,6 @@ static int sctp_send_asconf_add_ip(struct sock *sk,
> >> void *addr_buf;
> >> struct sctp_af *af;
> >> struct list_head *pos;
> >> - struct list_head *p;
> >> int i;
> >> int retval = 0;
> >>
> >> @@ -544,14 +539,15 @@ static int sctp_send_asconf_add_ip(struct sock *sk,
> >> if (i < addrcnt)
> >> continue;
> >>
> >> - /* Use the first address in bind addr list of association as
> >> - * Address Parameter of ASCONF CHUNK.
> >> + /* Use the first valid address in bind addr list of
> >> + * association as Address Parameter of ASCONF CHUNK.
> >> */
> >> - sctp_read_lock(&asoc->base.addr_lock);
> >> bp = &asoc->base.bind_addr;
> >> - p = bp->address_list.next;
> >> - laddr = list_entry(p, struct sctp_sockaddr_entry, list);
> >> - sctp_read_unlock(&asoc->base.addr_lock);
> >> + rcu_read_lock();
> >> + list_for_each_entry_rcu(laddr, &bp->address_list, list)
> >> + if (laddr->valid)
> >> + break;
> >> + rcu_read_unlock();
> >
> > Here you are carrying an RCU-protected data item (*laddr) outside of an
> > rcu_read_lock()/rcu_read_unlock() pair. This is not good -- you need
> > to move the rcu_read_unlock() farther down to cover the full extend to
> > uses of the laddr pointer.
> >
> > Again, RCU is within its rights allowing a grace period to elapse, so
> > that past this point, laddr might well point into the freelist.
> >
>
> This is another area, where we may not even need rcu locking, since we
> are already holding a socket lock that guarantees that the list will not change.
> This was a blind conversion on my part, and I can probably restore the simple
> list_entry() dereference there.
>
> <snip the rest, there were no comments>
Fair enough!
Thanx, Paul
^ permalink raw reply
* Re: [PATCH][MIPS][7/7] AR7: ethernet
From: Ralf Baechle @ 2007-09-12 16:50 UTC (permalink / raw)
To: Matteo Croce
Cc: linux-mips, Eugene Konev, netdev, davem, kuznet, pekkas, jmorris,
yoshfuji, kaber, openwrt-devel, Andrew Morton, Jeff Garzik
In-Reply-To: <200709080223.00613.technoboy85@gmail.com>
On Sat, Sep 08, 2007 at 02:23:00AM +0200, Matteo Croce wrote:
> Driver for the cpmac 100M ethernet driver.
> It works fine disabling napi support, enabling it gives a kernel panic
> when the first IPv6 packet has to be forwarded.
> Other than that works fine.
>
> Signed-off-by: Matteo Croce <technoboy85@gmail.com>
> Signed-off-by: Eugene Konev <ejka@imfi.kspu.ru>
>
> diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
> index d9b7d9c..6f38a84 100644
> --- a/drivers/net/Kconfig
> +++ b/drivers/net/Kconfig
> @@ -1822,6 +1822,15 @@ config SC92031
> To compile this driver as a module, choose M here: the module
> will be called sc92031. This is recommended.
>
> +config CPMAC
> + tristate "TI AR7 CPMAC Ethernet support (EXPERIMENTAL)"
> + depends on NET_ETHERNET && EXPERIMENTAL && AR7
The dependency on NET_ETHERNET is not needed because this config block is
enclosed in a
if NET_ETHERNET
...
endif # NET_ETHERNET
block.
> + select PHYLIB
> + select FIXED_PHY
> + select FIXED_MII_100_FDX
> + help
> + TI AR7 CPMAC Ethernet support
> +
> config NET_POCKET
> bool "Pocket and portable adapters"
> depends on PARPORT
> diff --git a/drivers/net/Makefile b/drivers/net/Makefile
> index 535d2a0..bb22df9 100644
> --- a/drivers/net/Makefile
> +++ b/drivers/net/Makefile
> @@ -156,6 +156,7 @@ obj-$(CONFIG_8139CP) += 8139cp.o
> obj-$(CONFIG_8139TOO) += 8139too.o
> obj-$(CONFIG_ZNET) += znet.o
> obj-$(CONFIG_LAN_SAA9730) += saa9730.o
> +obj-$(CONFIG_CPMAC) += cpmac.o
> obj-$(CONFIG_DEPCA) += depca.o
> obj-$(CONFIG_EWRK3) += ewrk3.o
> obj-$(CONFIG_ATP) += atp.o
> diff --git a/drivers/net/cpmac.c b/drivers/net/cpmac.c
> new file mode 100644
> index 0000000..c10ab08
> --- /dev/null
> +++ b/drivers/net/cpmac.c
> @@ -0,0 +1,1194 @@
> +/*
> + * Copyright (C) 2006, 2007 Eugene Konev
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> + */
> +
> +#include <linux/module.h>
> +#include <linux/init.h>
> +#include <linux/moduleparam.h>
> +
> +#include <linux/sched.h>
> +#include <linux/kernel.h>
> +#include <linux/slab.h>
> +#include <linux/errno.h>
> +#include <linux/types.h>
> +#include <linux/delay.h>
> +#include <linux/version.h>
> +
> +#include <linux/netdevice.h>
> +#include <linux/etherdevice.h>
> +#include <linux/ethtool.h>
> +#include <linux/skbuff.h>
> +#include <linux/mii.h>
> +#include <linux/phy.h>
> +#include <linux/platform_device.h>
> +#include <asm/ar7/ar7.h>
> +#include <gpio.h>
> +
> +MODULE_AUTHOR("Eugene Konev");
> +MODULE_DESCRIPTION("TI AR7 ethernet driver (CPMAC)");
> +MODULE_LICENSE("GPL");
> +
> +static int rx_ring_size = 64;
> +static int disable_napi;
> +module_param(rx_ring_size, int, 64);
> +module_param(disable_napi, int, 0);
> +MODULE_PARM_DESC(rx_ring_size, "Size of rx ring (in skbs)");
> +MODULE_PARM_DESC(disable_napi, "Disable NAPI polling");
> +
> +/* Register definitions */
> +struct cpmac_control_regs {
> + u32 revision;
> + u32 control;
> + u32 teardown;
> + u32 unused;
> +} __attribute__ ((packed));
> +
> +struct cpmac_int_regs {
> + u32 stat_raw;
> + u32 stat_masked;
> + u32 enable;
> + u32 clear;
> +} __attribute__ ((packed));
> +
> +struct cpmac_stats {
> + u32 good;
> + u32 bcast;
> + u32 mcast;
> + u32 pause;
> + u32 crc_error;
> + u32 align_error;
> + u32 oversized;
> + u32 jabber;
> + u32 undersized;
> + u32 fragment;
> + u32 filtered;
> + u32 qos_filtered;
> + u32 octets;
> +} __attribute__ ((packed));
All struct members here are sized such that there is no padding needed, so
the packed attribute doesn't buy you anything - unless of course the
entire structure is missaligned but I don't see how that would be possible
in this driver so the __attribute__ ((packed)) should go - it result in
somwhat larger and slower code.
In any case, the __packed attribute is prefered over __attribute__ ((packed))
for readability sake.
> +
> +struct cpmac_regs {
> + struct cpmac_control_regs tx_ctrl;
> + struct cpmac_control_regs rx_ctrl;
> + u32 unused1[56];
> + u32 mbp;
> +/* MBP bits */
> +#define MBP_RXPASSCRC 0x40000000
> +#define MBP_RXQOS 0x20000000
> +#define MBP_RXNOCHAIN 0x10000000
> +#define MBP_RXCMF 0x01000000
> +#define MBP_RXSHORT 0x00800000
> +#define MBP_RXCEF 0x00400000
> +#define MBP_RXPROMISC 0x00200000
> +#define MBP_PROMISCCHAN(chan) (((chan) & 0x7) << 16)
> +#define MBP_RXBCAST 0x00002000
> +#define MBP_BCASTCHAN(chan) (((chan) & 0x7) << 8)
> +#define MBP_RXMCAST 0x00000020
> +#define MBP_MCASTCHAN(chan) ((chan) & 0x7)
> + u32 unicast_enable;
> + u32 unicast_clear;
> + u32 max_len;
> + u32 buffer_offset;
> + u32 filter_flow_threshold;
> + u32 unused2[2];
> + u32 flow_thre[8];
> + u32 free_buffer[8];
> + u32 mac_control;
> +#define MAC_TXPTYPE 0x00000200
> +#define MAC_TXPACE 0x00000040
> +#define MAC_MII 0x00000020
> +#define MAC_TXFLOW 0x00000010
> +#define MAC_RXFLOW 0x00000008
> +#define MAC_MTEST 0x00000004
> +#define MAC_LOOPBACK 0x00000002
> +#define MAC_FDX 0x00000001
> + u32 mac_status;
> +#define MACST_QOS 0x4
> +#define MACST_RXFLOW 0x2
> +#define MACST_TXFLOW 0x1
> + u32 emc_control;
> + u32 unused3;
> + struct cpmac_int_regs tx_int;
> + u32 mac_int_vector;
> +/* Int Status bits */
> +#define INTST_STATUS 0x80000
> +#define INTST_HOST 0x40000
> +#define INTST_RX 0x20000
> +#define INTST_TX 0x10000
> + u32 mac_eoi_vector;
> + u32 unused4[2];
> + struct cpmac_int_regs rx_int;
> + u32 mac_int_stat_raw;
> + u32 mac_int_stat_masked;
> + u32 mac_int_enable;
> + u32 mac_int_clear;
> + u32 mac_addr_low[8];
> + u32 mac_addr_mid;
> + u32 mac_addr_high;
> + u32 mac_hash_low;
> + u32 mac_hash_high;
> + u32 boff_test;
> + u32 pac_test;
> + u32 rx_pause;
> + u32 tx_pause;
> + u32 unused5[2];
> + struct cpmac_stats rx_stats;
> + struct cpmac_stats tx_stats;
> + u32 unused6[232];
> + u32 tx_ptr[8];
> + u32 rx_ptr[8];
> + u32 tx_ack[8];
> + u32 rx_ack[8];
> +
> +} __attribute__ ((packed));
> +
> +struct cpmac_mdio_regs {
> + u32 version;
> + u32 control;
> +#define MDIOC_IDLE 0x80000000
> +#define MDIOC_ENABLE 0x40000000
> +#define MDIOC_PREAMBLE 0x00100000
> +#define MDIOC_FAULT 0x00080000
> +#define MDIOC_FAULTDETECT 0x00040000
> +#define MDIOC_INTTEST 0x00020000
> +#define MDIOC_CLKDIV(div) ((div) & 0xff)
> + u32 alive;
> + u32 link;
> + struct cpmac_int_regs link_int;
> + struct cpmac_int_regs user_int;
> + u32 unused[20];
> + volatile u32 access;
> +#define MDIO_BUSY 0x80000000
> +#define MDIO_WRITE 0x40000000
> +#define MDIO_REG(reg) (((reg) & 0x1f) << 21)
> +#define MDIO_PHY(phy) (((phy) & 0x1f) << 16)
> +#define MDIO_DATA(data) ((data) & 0xffff)
> + u32 physel;
> +} __attribute__ ((packed));
> +
> +/* Descriptor */
> +struct cpmac_desc {
> + u32 hw_next;
> + u32 hw_data;
> + u16 buflen;
> + u16 bufflags;
> + u16 datalen;
> + u16 dataflags;
> +/* Flags bits */
> +#define CPMAC_SOP 0x8000
> +#define CPMAC_EOP 0x4000
> +#define CPMAC_OWN 0x2000
> +#define CPMAC_EOQ 0x1000
> + struct sk_buff *skb;
> + struct cpmac_desc *next;
> +} __attribute__ ((packed));
> +
> +struct cpmac_priv {
> + struct net_device_stats stats;
> + spinlock_t lock; /* irq{save,restore} */
> + struct sk_buff *skb_pool;
> + int free_skbs;
> + struct cpmac_desc *rx_head;
> + int tx_head, tx_tail;
> + struct cpmac_desc *desc_ring;
> + struct cpmac_regs *regs;
> + struct mii_bus *mii_bus;
> + struct phy_device *phy;
> + char phy_name[BUS_ID_SIZE];
> + struct plat_cpmac_data *config;
> + int oldlink, oldspeed, oldduplex;
> + u32 msg_enable;
> + struct net_device *dev;
> + struct work_struct alloc_work;
> +};
> +
> +static irqreturn_t cpmac_irq(int, void *);
> +static void cpmac_reset(struct net_device *dev);
> +static void cpmac_hw_init(struct net_device *dev);
> +static int cpmac_stop(struct net_device *dev);
> +static int cpmac_open(struct net_device *dev);
> +
> +#undef CPMAC_DEBUG
> +#define CPMAC_LOW_THRESH 32
> +#define CPMAC_ALLOC_SIZE 64
> +#define CPMAC_SKB_SIZE 1518
> +#define CPMAC_TX_RING_SIZE 8
> +
> +#ifdef CPMAC_DEBUG
> +static void cpmac_dump_regs(u32 *base, int count)
> +{
> + int i;
> + for (i = 0; i < (count + 3) / 4; i++) {
> + if (i % 4 == 0) printk(KERN_DEBUG "\nCPMAC[0x%04x]:", i * 4);
> + printk(KERN_DEBUG " 0x%08x", *(base + i));
> + }
> + printk(KERN_DEBUG "\n");
> +}
> +
> +static const char *cpmac_dump_buf(const uint8_t *buf, unsigned size)
> +{
> + static char buffer[3 * 25 + 1];
> + char *p = &buffer[0];
> + if (size > 20)
> + size = 20;
> + while (size-- > 0)
> + p += sprintf(p, " %02x", *buf++);
> + return buffer;
> +}
> +#endif
> +
> +static int cpmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
> +{
> + struct cpmac_mdio_regs *regs = bus->priv;
> + u32 val;
> +
> + while ((val = regs->access) & MDIO_BUSY);
> + regs->access = MDIO_BUSY | MDIO_REG(regnum & 0x1f) |
> + MDIO_PHY(phy_id & 0x1f);
> + while ((val = regs->access) & MDIO_BUSY);
> +
> + return val & 0xffff;
> +}
> +
> +static int cpmac_mdio_write(struct mii_bus *bus, int phy_id,
> + int regnum, u16 val)
> +{
> + struct cpmac_mdio_regs *regs = bus->priv;
> +
> + while (regs->access & MDIO_BUSY);
> + regs->access = MDIO_BUSY | MDIO_WRITE |
> + MDIO_REG(regnum & 0x1f) | MDIO_PHY(phy_id & 0x1f) | val;
> +
> + return 0;
> +}
> +
> +static int cpmac_mdio_reset(struct mii_bus *bus)
> +{
> + ar7_device_reset(AR7_RESET_BIT_MDIO);
> + ((struct cpmac_mdio_regs *)bus->priv)->control = MDIOC_ENABLE |
> + MDIOC_CLKDIV(ar7_cpmac_freq() / 2200000 - 1);
> +
> + return 0;
> +}
> +
> +static int mii_irqs[PHY_MAX_ADDR] = { PHY_POLL, };
> +
> +static struct mii_bus cpmac_mii = {
> + .name = "cpmac-mii",
> + .read = cpmac_mdio_read,
> + .write = cpmac_mdio_write,
> + .reset = cpmac_mdio_reset,
> + .irq = mii_irqs,
> +};
> +
> +static int cpmac_config(struct net_device *dev, struct ifmap *map)
> +{
> + if (dev->flags & IFF_UP)
> + return -EBUSY;
> +
> + /* Don't allow changing the I/O address */
> + if (map->base_addr != dev->base_addr)
> + return -EOPNOTSUPP;
> +
> + /* ignore other fields */
> + return 0;
> +}
> +
> +static int cpmac_set_mac_address(struct net_device *dev, void *addr)
> +{
> + struct sockaddr *sa = addr;
> +
> + if (dev->flags & IFF_UP)
> + return -EBUSY;
> +
> + memcpy(dev->dev_addr, sa->sa_data, dev->addr_len);
> +
> + return 0;
> +}
> +
> +static void cpmac_set_multicast_list(struct net_device *dev)
> +{
> + struct dev_mc_list *iter;
> + int i;
> + int hash, tmp;
> + int hashlo = 0, hashhi = 0;
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + if (dev->flags & IFF_PROMISC) {
> + priv->regs->mbp &= ~MBP_PROMISCCHAN(0); /* promisc channel 0 */
> + priv->regs->mbp |= MBP_RXPROMISC;
> + } else {
> + priv->regs->mbp &= ~MBP_RXPROMISC;
> + if (dev->flags & IFF_ALLMULTI) {
> + /* enable all multicast mode */
> + priv->regs->mac_hash_low = 0xffffffff;
> + priv->regs->mac_hash_high = 0xffffffff;
> + } else {
> + for (i = 0, iter = dev->mc_list; i < dev->mc_count;
> + i++, iter = iter->next) {
> + hash = 0;
> + tmp = iter->dmi_addr[0];
> + hash ^= (tmp >> 2) ^ (tmp << 4);
> + tmp = iter->dmi_addr[1];
> + hash ^= (tmp >> 4) ^ (tmp << 2);
> + tmp = iter->dmi_addr[2];
> + hash ^= (tmp >> 6) ^ tmp;
> + tmp = iter->dmi_addr[4];
> + hash ^= (tmp >> 2) ^ (tmp << 4);
> + tmp = iter->dmi_addr[5];
> + hash ^= (tmp >> 4) ^ (tmp << 2);
> + tmp = iter->dmi_addr[6];
> + hash ^= (tmp >> 6) ^ tmp;
> + hash &= 0x3f;
> + if (hash < 32) {
> + hashlo |= 1<<hash;
> + } else {
> + hashhi |= 1<<(hash - 32);
> + }
> + }
> +
> + priv->regs->mac_hash_low = hashlo;
> + priv->regs->mac_hash_high = hashhi;
> + }
> + }
> +}
> +
> +static struct sk_buff *cpmac_get_skb(struct net_device *dev)
> +{
> + struct sk_buff *skb;
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + skb = priv->skb_pool;
> + if (likely(skb))
> + priv->skb_pool = skb->next;
> + else {
> + skb = dev_alloc_skb(CPMAC_SKB_SIZE + 2);
> + if (skb) {
> + skb->next = NULL;
> + skb_reserve(skb, 2);
> + skb->dev = priv->dev;
> + }
> + }
> +
> + if (likely(priv->free_skbs))
> + priv->free_skbs--;
> +
> + if (priv->free_skbs < CPMAC_LOW_THRESH)
> + schedule_work(&priv->alloc_work);
> +
> + return skb;
> +}
> +
> +static struct sk_buff *cpmac_rx_one(struct net_device *dev,
> + struct cpmac_priv *priv,
> + struct cpmac_desc *desc)
> +{
> + unsigned long flags;
> + char *data;
> + struct sk_buff *skb, *result = NULL;
> +
> + priv->regs->rx_ack[0] = virt_to_phys(desc);
> + if (unlikely(!desc->datalen)) {
> + if (printk_ratelimit())
> + printk(KERN_WARNING "%s: rx: spurious interrupt\n",
> + dev->name);
> + priv->stats.rx_errors++;
> + return NULL;
> + }
> +
> + spin_lock_irqsave(&priv->lock, flags);
> + skb = cpmac_get_skb(dev);
> + if (likely(skb)) {
> + data = (char *)phys_to_virt(desc->hw_data);
> + dma_cache_inv((u32)data, desc->datalen);
> + skb_put(desc->skb, desc->datalen);
> + desc->skb->protocol = eth_type_trans(desc->skb, dev);
> + desc->skb->ip_summed = CHECKSUM_NONE;
> + priv->stats.rx_packets++;
> + priv->stats.rx_bytes += desc->datalen;
> + result = desc->skb;
> + desc->skb = skb;
> + } else {
> +#ifdef CPMAC_DEBUG
> + if (printk_ratelimit())
> + printk(KERN_NOTICE "%s: low on skbs, dropping packet\n",
> + dev->name);
> +#endif
> + priv->stats.rx_dropped++;
> + }
> + spin_unlock_irqrestore(&priv->lock, flags);
> +
> + desc->hw_data = virt_to_phys(desc->skb->data);
> + desc->buflen = CPMAC_SKB_SIZE;
> + desc->dataflags = CPMAC_OWN;
> + dma_cache_wback((u32)desc, 16);
> +
> + return result;
> +}
> +
> +static void cpmac_rx(struct net_device *dev)
> +{
> + struct sk_buff *skb;
> + struct cpmac_desc *desc;
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + spin_lock(&priv->lock);
> + if (unlikely(!priv->rx_head)) {
> + spin_unlock(&priv->lock);
> + return;
> + }
> +
> + desc = priv->rx_head;
> + dma_cache_inv((u32)desc, 16);
> +#ifdef CPMAC_DEBUG
> + printk(KERN_DEBUG "%s: len=%d, %s\n", __func__, pkt->datalen,
> + cpmac_dump_buf(data, pkt->datalen));
> +#endif
> +
> + while ((desc->dataflags & CPMAC_OWN) == 0) {
> + skb = cpmac_rx_one(dev, priv, desc);
> + if (likely(skb))
> + netif_rx(skb);
> + desc = desc->next;
> + dma_cache_inv((u32)desc, 16);
> + }
> +
> + priv->rx_head = desc;
> + priv->regs->rx_ptr[0] = virt_to_phys(desc);
> + spin_unlock(&priv->lock);
> +}
> +
> +static int cpmac_poll(struct net_device *dev, int *budget)
> +{
> + struct sk_buff *skb;
> + struct cpmac_desc *desc;
> + int received = 0, quota = min(dev->quota, *budget);
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + if (unlikely(!priv->rx_head)) {
> + if (printk_ratelimit())
> + printk(KERN_NOTICE "%s: rx: polling, but no queue\n",
> + dev->name);
> + netif_rx_complete(dev);
> + return 0;
> + }
> +
> + desc = priv->rx_head;
> + dma_cache_inv((u32)desc, 16);
> +
> + while ((received < quota) && ((desc->dataflags & CPMAC_OWN) == 0)) {
> + skb = cpmac_rx_one(dev, priv, desc);
> + if (likely(skb)) {
> + netif_receive_skb(skb);
> + received++;
> + }
> + desc = desc->next;
> + priv->rx_head = desc;
> + dma_cache_inv((u32)desc, 16);
> + }
> +
> + *budget -= received;
> + dev->quota -= received;
> +#ifdef CPMAC_DEBUG
> + printk(KERN_DEBUG "%s: processed %d packets\n", dev->name, received);
> +#endif
> + if (desc->dataflags & CPMAC_OWN) {
> + priv->regs->rx_ptr[0] = virt_to_phys(desc);
> + netif_rx_complete(dev);
> + priv->regs->rx_int.enable = 0x1;
> + priv->regs->rx_int.clear = 0xfe;
> + return 0;
> + }
> +
> + return 1;
> +}
> +
> +static void
> +cpmac_alloc_skbs(struct work_struct *work)
> +{
> + struct cpmac_priv *priv = container_of(work, struct cpmac_priv,
> + alloc_work);
> + unsigned long flags;
> + int i, num_skbs = 0;
> + struct sk_buff *skb, *skbs = NULL;
> +
> + for (i = 0; i < CPMAC_ALLOC_SIZE; i++) {
> + skb = alloc_skb(CPMAC_SKB_SIZE + 2, GFP_KERNEL);
> + if (!skb)
> + break;
> + skb->next = skbs;
> + skb_reserve(skb, 2);
> + skb->dev = priv->dev;
> + num_skbs++;
> + skbs = skb;
> + }
> +
> + if (skbs) {
> + spin_lock_irqsave(&priv->lock, flags);
> + for (skb = priv->skb_pool; skb && skb->next; skb = skb->next);
> + if (!skb)
> + priv->skb_pool = skbs;
> + else
> + skb->next = skbs;
> + priv->free_skbs += num_skbs;
> + spin_unlock_irqrestore(&priv->lock, flags);
> +#ifdef CPMAC_DEBUG
> + printk(KERN_DEBUG "%s: allocated %d skbs\n",
> + priv->dev->name, num_skbs);
> +#endif
> + }
> +}
> +
> +static int cpmac_start_xmit(struct sk_buff *skb, struct net_device *dev)
> +{
> + unsigned long flags;
> + int len, chan;
> + struct cpmac_desc *desc;
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + len = skb->len;
> +#ifdef CPMAC_DEBUG
> + printk(KERN_DEBUG "%s: len=%d\n", __func__, len);
> + /* cpmac_dump_buf(const uint8_t * buf, unsigned size) */
> +#endif
> + if (unlikely(len < ETH_ZLEN)) {
> + if (unlikely(skb_padto(skb, ETH_ZLEN))) {
> + if (printk_ratelimit())
> + printk(KERN_NOTICE
> + "%s: padding failed, dropping\n",
> + dev->name);
> + spin_lock_irqsave(&priv->lock, flags);
> + priv->stats.tx_dropped++;
> + spin_unlock_irqrestore(&priv->lock, flags);
> + return -ENOMEM;
> + }
> + len = ETH_ZLEN;
> + }
> + spin_lock_irqsave(&priv->lock, flags);
> + chan = priv->tx_tail++;
> + priv->tx_tail %= 8;
> + if (priv->tx_tail == priv->tx_head)
> + netif_stop_queue(dev);
> +
> + desc = &priv->desc_ring[chan];
> + dma_cache_inv((u32)desc, 16);
> + if (desc->dataflags & CPMAC_OWN) {
> + printk(KERN_NOTICE "%s: tx dma ring full, dropping\n",
> + dev->name);
> + priv->stats.tx_dropped++;
> + spin_unlock_irqrestore(&priv->lock, flags);
> + return -ENOMEM;
> + }
> +
> + dev->trans_start = jiffies;
> + desc->dataflags = CPMAC_SOP | CPMAC_EOP | CPMAC_OWN;
> + desc->skb = skb;
> + desc->hw_data = virt_to_phys(skb->data);
> + dma_cache_wback((u32)skb->data, len);
> + desc->buflen = len;
> + desc->datalen = len;
> + desc->hw_next = 0;
> + dma_cache_wback((u32)desc, 16);
> + priv->regs->tx_ptr[chan] = virt_to_phys(desc);
> + spin_unlock_irqrestore(&priv->lock, flags);
> +
> + return 0;
> +}
> +
> +static void cpmac_end_xmit(struct net_device *dev, int channel)
> +{
> + struct cpmac_desc *desc;
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + spin_lock(&priv->lock);
> + desc = &priv->desc_ring[channel];
> + priv->regs->tx_ack[channel] = virt_to_phys(desc);
> + if (likely(desc->skb)) {
> + priv->stats.tx_packets++;
> + priv->stats.tx_bytes += desc->skb->len;
> + dev_kfree_skb_irq(desc->skb);
> + if (netif_queue_stopped(dev))
> + netif_wake_queue(dev);
> + } else
> + if (printk_ratelimit())
> + printk(KERN_NOTICE "%s: end_xmit: spurious interrupt\n",
> + dev->name);
> + spin_unlock(&priv->lock);
> +}
> +
> +static void cpmac_reset(struct net_device *dev)
> +{
> + int i;
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + ar7_device_reset(priv->config->reset_bit);
> + priv->regs->rx_ctrl.control &= ~1;
> + priv->regs->tx_ctrl.control &= ~1;
> + for (i = 0; i < 8; i++) {
> + priv->regs->tx_ptr[i] = 0;
> + priv->regs->rx_ptr[i] = 0;
> + }
> + priv->regs->mac_control &= ~MAC_MII; /* disable mii */
> +}
> +
> +static inline void cpmac_free_rx_ring(struct net_device *dev)
> +{
> + struct cpmac_desc *desc;
> + int i;
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + if (unlikely(!priv->rx_head))
> + return;
> +
> + desc = priv->rx_head;
> + dma_cache_inv((u32)desc, 16);
> +
> + for (i = 0; i < rx_ring_size; i++) {
> + desc->buflen = CPMAC_SKB_SIZE;
> + if ((desc->dataflags & CPMAC_OWN) == 0) {
> + desc->dataflags = CPMAC_OWN;
> + priv->stats.rx_dropped++;
> + }
> + dma_cache_wback((u32)desc, 16);
> + desc = desc->next;
> + dma_cache_inv((u32)desc, 16);
> + }
> +}
> +
> +static irqreturn_t cpmac_irq(int irq, void *dev_id)
> +{
> + struct net_device *dev = dev_id;
> + struct cpmac_priv *priv = netdev_priv(dev);
> + u32 status;
> +
> + if (!dev)
> + return IRQ_NONE;
> +
> + status = priv->regs->mac_int_vector;
> +
> + if (status & INTST_TX)
> + cpmac_end_xmit(dev, (status & 7));
> +
> + if (status & INTST_RX) {
> + if (disable_napi)
> + cpmac_rx(dev);
> + else {
> + priv->regs->rx_int.enable = 0;
> + priv->regs->rx_int.clear = 0xff;
> + netif_rx_schedule(dev);
> + }
> + }
> +
> + priv->regs->mac_eoi_vector = 0;
> +
> + if (unlikely(status & (INTST_HOST | INTST_STATUS))) {
> + if (printk_ratelimit())
> + printk(KERN_ERR "%s: hw error, resetting...\n",
> + dev->name);
> + spin_lock(&priv->lock);
> + phy_stop(priv->phy);
> + cpmac_reset(dev);
> + cpmac_free_rx_ring(dev);
> + cpmac_hw_init(dev);
> + spin_unlock(&priv->lock);
> + }
> +
> + return IRQ_HANDLED;
> +}
> +
> +static void cpmac_tx_timeout(struct net_device *dev)
> +{
> + struct cpmac_priv *priv = netdev_priv(dev);
> + struct cpmac_desc *desc;
> +
> + priv->stats.tx_errors++;
> + desc = &priv->desc_ring[priv->tx_head++];
> + priv->tx_head %= 8;
> + printk(KERN_NOTICE "%s: transmit timeout\n", dev->name);
> + if (desc->skb)
> + dev_kfree_skb(desc->skb);
> + netif_wake_queue(dev);
> +}
> +
> +static int cpmac_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
> +{
> + struct cpmac_priv *priv = netdev_priv(dev);
> + if (!(netif_running(dev)))
> + return -EINVAL;
> + if (!priv->phy)
> + return -EINVAL;
> + if ((cmd == SIOCGMIIPHY) || (cmd == SIOCGMIIREG) ||
> + (cmd == SIOCSMIIREG))
> + return phy_mii_ioctl(priv->phy, if_mii(ifr), cmd);
> +
> + return -EINVAL;
> +}
> +
> +static int cpmac_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
> +{
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + if (priv->phy)
> + return phy_ethtool_gset(priv->phy, cmd);
> +
> + return -EINVAL;
> +}
> +
> +static int cpmac_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
> +{
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + if (!capable(CAP_NET_ADMIN))
> + return -EPERM;
> +
> + if (priv->phy)
> + return phy_ethtool_sset(priv->phy, cmd);
> +
> + return -EINVAL;
> +}
> +
> +static void cpmac_get_drvinfo(struct net_device *dev,
> + struct ethtool_drvinfo *info)
> +{
> + strcpy(info->driver, "cpmac");
> + strcpy(info->version, "0.0.3");
> + info->fw_version[0] = '\0';
> + sprintf(info->bus_info, "%s", "cpmac");
> + info->regdump_len = 0;
> +}
> +
> +static const struct ethtool_ops cpmac_ethtool_ops = {
> + .get_settings = cpmac_get_settings,
> + .set_settings = cpmac_set_settings,
> + .get_drvinfo = cpmac_get_drvinfo,
> + .get_link = ethtool_op_get_link,
> +};
> +
> +static struct net_device_stats *cpmac_stats(struct net_device *dev)
> +{
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + if (netif_device_present(dev))
> + return &priv->stats;
> +
> + return NULL;
> +}
> +
> +static int cpmac_change_mtu(struct net_device *dev, int mtu)
> +{
> + unsigned long flags;
> + struct cpmac_priv *priv = netdev_priv(dev);
> + spinlock_t *lock = &priv->lock;
> +
> + if ((mtu < 68) || (mtu > 1500))
> + return -EINVAL;
> +
> + spin_lock_irqsave(lock, flags);
> + dev->mtu = mtu;
> + spin_unlock_irqrestore(lock, flags);
> +
> + return 0;
> +}
> +
> +static void cpmac_adjust_link(struct net_device *dev)
> +{
> + struct cpmac_priv *priv = netdev_priv(dev);
> + unsigned long flags;
> + int new_state = 0;
> +
> + spin_lock_irqsave(&priv->lock, flags);
> + if (priv->phy->link) {
> + if (priv->phy->duplex != priv->oldduplex) {
> + new_state = 1;
> + priv->oldduplex = priv->phy->duplex;
> + }
> +
> + if (priv->phy->speed != priv->oldspeed) {
> + new_state = 1;
> + priv->oldspeed = priv->phy->speed;
> + }
> +
> + if (!priv->oldlink) {
> + new_state = 1;
> + priv->oldlink = 1;
> + netif_schedule(dev);
> + }
> + } else if (priv->oldlink) {
> + new_state = 1;
> + priv->oldlink = 0;
> + priv->oldspeed = 0;
> + priv->oldduplex = -1;
> + }
> +
> + if (new_state)
> + phy_print_status(priv->phy);
> +
> + spin_unlock_irqrestore(&priv->lock, flags);
> +}
> +
> +static void cpmac_hw_init(struct net_device *dev)
> +{
> + int i;
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + for (i = 0; i < 8; i++)
> + priv->regs->tx_ptr[i] = 0;
> + priv->regs->rx_ptr[0] = virt_to_phys(priv->rx_head);
> +
> + priv->regs->mbp = MBP_RXSHORT | MBP_RXBCAST | MBP_RXMCAST;
> + priv->regs->unicast_enable = 0x1;
> + priv->regs->unicast_clear = 0xfe;
> + priv->regs->buffer_offset = 0;
> + for (i = 0; i < 8; i++)
> + priv->regs->mac_addr_low[i] = dev->dev_addr[5];
> + priv->regs->mac_addr_mid = dev->dev_addr[4];
> + priv->regs->mac_addr_high = dev->dev_addr[0] | (dev->dev_addr[1] << 8)
> + | (dev->dev_addr[2] << 16) | (dev->dev_addr[3] << 24);
> + priv->regs->max_len = CPMAC_SKB_SIZE;
> + priv->regs->rx_int.enable = 0x1;
> + priv->regs->rx_int.clear = 0xfe;
> + priv->regs->tx_int.enable = 0xff;
> + priv->regs->tx_int.clear = 0;
> + priv->regs->mac_int_enable = 3;
> + priv->regs->mac_int_clear = 0xfc;
> +
> + priv->regs->rx_ctrl.control |= 1;
> + priv->regs->tx_ctrl.control |= 1;
> + priv->regs->mac_control |= MAC_MII | MAC_FDX;
> +
> + priv->phy->state = PHY_CHANGELINK;
> + phy_start(priv->phy);
> +}
> +
> +static int cpmac_open(struct net_device *dev)
> +{
> + int i, size, res;
> + struct cpmac_priv *priv = netdev_priv(dev);
> + struct cpmac_desc *desc;
> + struct sk_buff *skb;
> +
> + priv->phy = phy_connect(dev, priv->phy_name, &cpmac_adjust_link,
> + 0, PHY_INTERFACE_MODE_MII);
> + if (IS_ERR(priv->phy)) {
> + printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name);
> + return PTR_ERR(priv->phy);
> + }
> +
> + if (!request_mem_region(dev->mem_start, dev->mem_end -
> + dev->mem_start, dev->name)) {
> + printk(KERN_ERR "%s: failed to request registers\n",
> + dev->name);
> + res = -ENXIO;
> + goto fail_reserve;
> + }
> +
> + priv->regs = ioremap_nocache(dev->mem_start, dev->mem_end -
> + dev->mem_start);
> + if (!priv->regs) {
> + printk(KERN_ERR "%s: failed to remap registers\n", dev->name);
> + res = -ENXIO;
> + goto fail_remap;
> + }
> +
> + priv->rx_head = NULL;
> + size = sizeof(struct cpmac_desc) * (rx_ring_size +
> + CPMAC_TX_RING_SIZE);
> + priv->desc_ring = (struct cpmac_desc *)kmalloc(size, GFP_KERNEL);
kmalloc returns void * so no cast to another pointer type necessary.
> + if (!priv->desc_ring) {
> + res = -ENOMEM;
> + goto fail_alloc;
> + }
> +
> + memset((char *)priv->desc_ring, 0, size);
Use kzalloc instead of kmalloc. kzalloc is like kmalloc but returns
zero'd memory.
> + priv->skb_pool = NULL;
> + priv->free_skbs = 0;
> + priv->rx_head = &priv->desc_ring[CPMAC_TX_RING_SIZE];
> +
> + INIT_WORK(&priv->alloc_work, cpmac_alloc_skbs);
> + schedule_work(&priv->alloc_work);
> + flush_scheduled_work();
> +
> + for (i = 0; i < rx_ring_size; i++) {
> + desc = &priv->rx_head[i];
> + skb = cpmac_get_skb(dev);
> + if (!skb) {
> + res = -ENOMEM;
> + goto fail_desc;
> + }
> + desc->skb = skb;
> + desc->hw_data = virt_to_phys(skb->data);
> + desc->buflen = CPMAC_SKB_SIZE;
> + desc->dataflags = CPMAC_OWN;
> + desc->next = &priv->rx_head[(i + 1) % rx_ring_size];
> + desc->hw_next = virt_to_phys(desc->next);
> + dma_cache_wback((u32)desc, 16);
> + }
> +
> + if ((res = request_irq(dev->irq, cpmac_irq, SA_INTERRUPT,
> + dev->name, dev))) {
> + printk(KERN_ERR "%s: failed to obtain irq\n", dev->name);
> + goto fail_irq;
> + }
> +
> + cpmac_reset(dev);
> + cpmac_hw_init(dev);
> +
> + netif_start_queue(dev);
> + return 0;
> +
> +fail_irq:
> +fail_desc:
> + for (i = 0; i < rx_ring_size; i++)
> + if (priv->rx_head[i].skb)
> + kfree_skb(priv->rx_head[i].skb);
> +fail_alloc:
> + kfree(priv->desc_ring);
> +
> + for (skb = priv->skb_pool; skb; skb = priv->skb_pool) {
> + priv->skb_pool = skb->next;
> + kfree_skb(skb);
> + }
> +
> + iounmap(priv->regs);
> +
> +fail_remap:
> + release_mem_region(dev->mem_start, dev->mem_end -
> + dev->mem_start);
> +
> +fail_reserve:
> + phy_disconnect(priv->phy);
> +
> + return res;
> +}
> +
> +static int cpmac_stop(struct net_device *dev)
> +{
> + int i;
> + struct sk_buff *skb;
> + struct cpmac_priv *priv = netdev_priv(dev);
> +
> + netif_stop_queue(dev);
> +
> + phy_stop(priv->phy);
> + phy_disconnect(priv->phy);
> + priv->phy = NULL;
> +
> + cpmac_reset(dev);
> +
> + for (i = 0; i < 8; i++) {
> + priv->regs->rx_ptr[i] = 0;
> + priv->regs->tx_ptr[i] = 0;
> + priv->regs->mbp = 0;
> + }
> +
> + free_irq(dev->irq, dev);
> + release_mem_region(dev->mem_start, dev->mem_end -
> + dev->mem_start);
> +
> + cancel_delayed_work(&priv->alloc_work);
> + flush_scheduled_work();
> +
> + priv->rx_head = &priv->desc_ring[CPMAC_TX_RING_SIZE];
> + for (i = 0; i < rx_ring_size; i++)
> + if (priv->rx_head[i].skb)
> + kfree_skb(priv->rx_head[i].skb);
> +
> + kfree(priv->desc_ring);
> +
> + for (skb = priv->skb_pool; skb; skb = priv->skb_pool) {
> + priv->skb_pool = skb->next;
> + kfree_skb(skb);
> + }
> +
> + return 0;
> +}
> +
> +static int external_switch;
> +
> +static int __devinit cpmac_probe(struct platform_device *pdev)
> +{
> + int i, rc, phy_id;
> + struct resource *res;
> + struct cpmac_priv *priv;
> + struct net_device *dev;
> + struct plat_cpmac_data *pdata;
> +
> + pdata = pdev->dev.platform_data;
> +
> + for (phy_id = 0; phy_id < PHY_MAX_ADDR; phy_id++) {
> + if (!(pdata->phy_mask & (1 << phy_id)))
> + continue;
> + if (!cpmac_mii.phy_map[phy_id])
> + continue;
> + break;
> + }
> +
> + if (phy_id == PHY_MAX_ADDR) {
> + if (external_switch)
> + phy_id = 0;
> + else {
> + printk(KERN_ERR "cpmac: no PHY present\n");
> + return -ENODEV;
> + }
> + }
> +
> + dev = alloc_etherdev(sizeof(struct cpmac_priv));
> +
> + if (!dev) {
> + printk(KERN_ERR
> + "cpmac: Unable to allocate net_device structure!\n");
> + return -ENOMEM;
> + }
> +
> + SET_MODULE_OWNER(dev);
Set SET_MODULE_OWNER is a useless nop which only exists in 2.6 for
driver source compatibility with 2.4. So you can remove this call.
I used the opportunity to send out a patch to remove SET_MODULE_OWNER
from the kernel entirely.
> + platform_set_drvdata(pdev, dev);
> + priv = netdev_priv(dev);
> +
> + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs");
> + if (!res) {
> + rc = -ENODEV;
> + goto fail;
> + }
> +
> + dev->mem_start = res->start;
> + dev->mem_end = res->end;
> + dev->irq = platform_get_irq_byname(pdev, "irq");
> +
> + dev->mtu = 1500;
Initializing this field is redundant; alloc_etherdev has already done it,
so remove this line.
> + dev->open = cpmac_open;
> + dev->stop = cpmac_stop;
> + dev->set_config = cpmac_config;
> + dev->hard_start_xmit = cpmac_start_xmit;
> + dev->do_ioctl = cpmac_ioctl;
> + dev->get_stats = cpmac_stats;
> + dev->change_mtu = cpmac_change_mtu;
> + dev->set_mac_address = cpmac_set_mac_address;
> + dev->set_multicast_list = cpmac_set_multicast_list;
> + dev->tx_timeout = cpmac_tx_timeout;
> + dev->ethtool_ops = &cpmac_ethtool_ops;
> + if (!disable_napi) {
> + dev->poll = cpmac_poll;
> + dev->weight = min(rx_ring_size, 64);
> + }
> +
> + memset(priv, 0, sizeof(struct cpmac_priv));
Useless, alloc_etherdev does that already.
> + spin_lock_init(&priv->lock);
> + priv->msg_enable = netif_msg_init(NETIF_MSG_WOL, 0x3fff);
> + priv->config = pdata;
> + priv->dev = dev;
> + memcpy(dev->dev_addr, priv->config->dev_addr, sizeof(dev->dev_addr));
> + if (phy_id == 31)
> + snprintf(priv->phy_name, BUS_ID_SIZE, PHY_ID_FMT,
> + cpmac_mii.id, phy_id);
> + else
> + snprintf(priv->phy_name, BUS_ID_SIZE, "fixed@%d:%d", 100, 1);
> +
> + if ((rc = register_netdev(dev))) {
> + printk(KERN_ERR "cpmac: error %i registering device %s\n",
> + rc, dev->name);
> + goto fail;
> + }
> +
> + printk(KERN_INFO "cpmac: device %s (regs: %p, irq: %d, phy: %s, mac: ",
> + dev->name, (u32 *)dev->mem_start, dev->irq,
> + priv->phy_name);
> + for (i = 0; i < 6; i++)
> + printk("%02x%s", dev->dev_addr[i], i < 5 ? ":" : ")\n");
> +
> + return 0;
> +
> +fail:
> + free_netdev(dev);
> + return rc;
> +}
> +
> +static int __devexit cpmac_remove(struct platform_device *pdev)
> +{
> + struct net_device *dev = platform_get_drvdata(pdev);
> + unregister_netdev(dev);
> + free_netdev(dev);
> + return 0;
> +}
> +
> +static struct platform_driver cpmac_driver = {
> + .driver.name = "cpmac",
> + .probe = cpmac_probe,
> + .remove = cpmac_remove,
This should be:
.remove = __devexit_p(cpmac_remove),
to avoid the final link from blowing up when the driver is built into the
kernel.
> +};
> +
> +int __devinit cpmac_init(void)
Make this function static; no need to export.
> +{
> + u32 mask;
> + int i, res;
> + cpmac_mii.priv =
> + ioremap_nocache(AR7_REGS_MDIO, sizeof(struct cpmac_mdio_regs));
> +
> + if (!cpmac_mii.priv) {
> + printk(KERN_ERR "Can't ioremap mdio registers\n");
> + return -ENXIO;
> + }
> +
> +#warning FIXME: unhardcode gpio&reset bits
Seeing such warnings always gives me a warm fuzzy feeling ;-)
> + ar7_gpio_disable(26);
> + ar7_gpio_disable(27);
> + ar7_device_reset(AR7_RESET_BIT_CPMAC_LO);
> + ar7_device_reset(AR7_RESET_BIT_CPMAC_HI);
> + ar7_device_reset(AR7_RESET_BIT_EPHY);
> +
> + cpmac_mii.reset(&cpmac_mii);
> +
> + for (i = 0; i < 300000; i++) {
> + mask = ((struct cpmac_mdio_regs *)cpmac_mii.priv)->alive;
> + if (mask)
> + break;
> + }
> +
> +/* mask &= 0x7fffffff;
> + if (mask & (mask - 1)) {*/
> + external_switch = 1;
> + mask = 0;
> +/* }*/
> +
> + cpmac_mii.phy_mask = ~(mask | 0x80000000);
> +
> + res = mdiobus_register(&cpmac_mii);
> + if (res)
> + goto fail_mii;
> +
> + res = platform_driver_register(&cpmac_driver);
> + if (res)
> + goto fail_cpmac;
> +
> + return 0;
> +
> +fail_cpmac:
> + mdiobus_unregister(&cpmac_mii);
> +
> +fail_mii:
> + iounmap(cpmac_mii.priv);
> +
> + return res;
> +}
> +
> +void __devexit cpmac_exit(void)
> +{
> + platform_driver_unregister(&cpmac_driver);
> + mdiobus_unregister(&cpmac_mii);
> +}
> +
> +module_init(cpmac_init);
> +module_exit(cpmac_exit);
Time to run ...
Ralf
^ permalink raw reply
* Re: RFC: possible NAPI improvements to reduce interrupt rates for low traffic rates
From: Mandeep Baines @ 2007-09-12 16:47 UTC (permalink / raw)
To: Stephen Hemminger
Cc: James Chapman, hadi, Bill Fink, netdev, davem, jeff, ossthema
In-Reply-To: <20070912160239.70a580e8@oldman>
On 9/12/07, Stephen Hemminger <shemminger@linux-foundation.org> wrote:
> But if you compare this to non-NAPI driver the same softirq
> overhead happens. The problem is that for many older devices disabling IRQ's
> require an expensive non-cached PCI access. Smarter, newer devices
> all use MSI which is pure edge triggered and with proper register
> usage, NAPI should be no worse than non-NAPI.
Why would disabling IRQ's be expensive on non-MSI PCI devices?
Wouldn't it just require a single MMIO write to clear the interrupt
mask of the device. These are write-buffered so the latency should be
minimal. As mentioned in Jamal's UKUUG paper, any MMIO reading could
be avoided by caching the interrupt mask.
^ permalink raw reply
* Re: [PATCH] [-MM, FIX V3] e1000e: incorporate napi_struct changes from net-2.6.24.git
From: Kok, Auke @ 2007-09-12 16:42 UTC (permalink / raw)
To: David Miller; +Cc: Robert.Olsson, akpm, jeff, netdev
In-Reply-To: <20070912.075324.98878193.davem@davemloft.net>
David Miller wrote:
> From: Robert Olsson <Robert.Olsson@data.slu.se>
> Date: Sat, 8 Sep 2007 09:53:49 +0200
>
>> Yes a correct observation. I've spotted this bug too and it caused by the
>> policy change in the NAPI scheduling. Look at tx_cleaned.
>>
>> I suggest we revert this change for now.
>
> The tx_cleaned logic change was not intentional, and
> that's the bug that makes e1000 spin endlessly in NAPI.
>
> The other part, the work_done < budget part, was intentional
> so I'm going to keep it in there for now. I've checked
> in the patch below to deal with this.
>
> I suspect the check "work_done == 0" is some shamans dance
> to get slightly better performance, but it's 1) wrong and
> 2) at best needs to be explained in a comment and fully
> quantified.
it probably gives us one more poll, so it might help, this isn't crucial and I
agree that it might offset the budgetting.
> From e8cbb449155000eecc6e855ea71510fecfc7d5ee Mon Sep 17 00:00:00 2001
> From: David S. Miller <davem@kimchee.(none)>
> Date: Wed, 12 Sep 2007 16:50:32 +0200
> Subject: [PATCH] [E1000]: Fix unintended NAPI breakout logic change.
>
> The inversion of the !tx_cleaned test in e1000_clean()
> was not intentional, we just wanted to change the
> "work_done == 0" to "work_done < budget"
>
> Noticed by Robert Olsson.
>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
> drivers/net/e1000/e1000_main.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
> index 7b0bcdb..58bb758 100644
> --- a/drivers/net/e1000/e1000_main.c
> +++ b/drivers/net/e1000/e1000_main.c
> @@ -3944,7 +3944,7 @@ e1000_clean(struct napi_struct *napi, int budget)
> &work_done, budget);
>
> /* If no Tx and not enough Rx work done, exit the polling mode */
> - if ((tx_cleaned && (work_done < budget)) ||
> + if ((!tx_cleaned && (work_done < budget)) ||
> !netif_running(poll_dev)) {
> quit_polling:
> if (likely(adapter->itr_setting & 3))
Ack, this is exactly what I did to fix e1000e as well.
Auke
^ permalink raw reply
* [NET] Nuke SET_MODULE_OWNER macro
From: Ralf Baechle @ 2007-09-12 16:40 UTC (permalink / raw)
To: netdev, David S. Miller, Jeff Garzik, Andrew Morton
It's been a useless no-op for long enough in 2.6 so I figured it's time to
remove it. The number of people that could object because they're
maintaining unified 2.4 and 2.6 drivers is probably rather small.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
---
drivers/ieee1394/eth1394.c | 1 -
drivers/infiniband/hw/amso1100/c2.c | 1 -
drivers/infiniband/hw/amso1100/c2_provider.c | 1 -
drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 --
drivers/message/fusion/mptlan.c | 2 --
drivers/net/3c501.c | 2 --
drivers/net/3c503.c | 2 --
drivers/net/3c505.c | 2 --
drivers/net/3c507.c | 2 --
drivers/net/3c509.c | 6 ------
drivers/net/3c515.c | 2 --
drivers/net/3c523.c | 1 -
drivers/net/3c527.c | 2 --
drivers/net/3c59x.c | 1 -
drivers/net/8139cp.c | 1 -
drivers/net/8139too.c | 1 -
drivers/net/82596.c | 1 -
drivers/net/a2065.c | 1 -
drivers/net/ac3200.c | 2 --
drivers/net/acenic.c | 1 -
drivers/net/amd8111e.c | 1 -
drivers/net/apne.c | 1 -
drivers/net/appletalk/cops.c | 2 --
drivers/net/appletalk/ipddp.c | 1 -
drivers/net/appletalk/ltpc.c | 2 --
drivers/net/arcnet/com90io.c | 2 --
drivers/net/ariadne.c | 1 -
drivers/net/arm/at91_ether.c | 1 -
drivers/net/arm/ether1.c | 1 -
drivers/net/arm/ether3.c | 1 -
drivers/net/arm/etherh.c | 1 -
drivers/net/at1700.c | 2 --
drivers/net/atarilance.c | 1 -
drivers/net/atl1/atl1_main.c | 1 -
drivers/net/atp.c | 1 -
drivers/net/b44.c | 1 -
drivers/net/bfin_mac.c | 1 -
drivers/net/bmac.c | 1 -
drivers/net/bnx2.c | 1 -
drivers/net/bonding/bond_main.c | 2 --
drivers/net/cassini.c | 1 -
drivers/net/chelsio/cxgb2.c | 1 -
drivers/net/cs89x0.c | 1 -
drivers/net/cxgb3/cxgb3_main.c | 1 -
drivers/net/de600.c | 1 -
drivers/net/de620.c | 2 --
drivers/net/defxx.c | 1 -
drivers/net/dgrs.c | 2 --
drivers/net/dl2k.c | 1 -
drivers/net/dm9000.c | 1 -
drivers/net/dummy.c | 1 -
drivers/net/e100.c | 1 -
drivers/net/e1000/e1000_main.c | 1 -
drivers/net/e2100.c | 2 --
drivers/net/eepro.c | 4 ----
drivers/net/eepro100.c | 1 -
drivers/net/eexpress.c | 2 --
drivers/net/ehea/ehea_main.c | 2 --
drivers/net/epic100.c | 1 -
drivers/net/eql.c | 2 --
drivers/net/es3210.c | 2 --
drivers/net/eth16i.c | 2 --
drivers/net/ewrk3.c | 1 -
drivers/net/fealnx.c | 1 -
drivers/net/fec_8xx/fec_main.c | 1 -
drivers/net/forcedeth.c | 1 -
drivers/net/fs_enet/fs_enet-main.c | 1 -
drivers/net/gianfar.c | 1 -
drivers/net/hamachi.c | 1 -
drivers/net/hamradio/6pack.c | 2 --
drivers/net/hp-plus.c | 2 --
drivers/net/hp.c | 2 --
drivers/net/hp100.c | 5 -----
drivers/net/hydra.c | 1 -
drivers/net/ibm_emac/ibm_emac_core.c | 1 -
drivers/net/ibmlana.c | 2 --
drivers/net/ibmveth.c | 4 ----
drivers/net/ifb.c | 1 -
drivers/net/ioc3-eth.c | 1 -
drivers/net/irda/ali-ircc.c | 4 ----
drivers/net/irda/donauboe.c | 1 -
drivers/net/irda/irda-usb.c | 1 -
drivers/net/irda/irport.c | 2 --
drivers/net/irda/kingsun-sir.c | 1 -
drivers/net/irda/mcs7780.c | 2 --
drivers/net/irda/nsc-ircc.c | 1 -
drivers/net/irda/sir_dev.c | 2 --
drivers/net/irda/smsc-ircc2.c | 2 --
drivers/net/irda/stir4200.c | 1 -
drivers/net/irda/via-ircc.c | 3 ---
drivers/net/irda/vlsi_ir.c | 2 --
drivers/net/irda/w83977af_ir.c | 3 ---
drivers/net/isa-skeleton.c | 2 --
drivers/net/ixgb/ixgb_main.c | 1 -
drivers/net/ixp2000/enp2611.c | 1 -
drivers/net/jazzsonic.c | 1 -
drivers/net/lance.c | 1 -
drivers/net/lguest_net.c | 2 --
drivers/net/lne390.c | 2 --
drivers/net/mac8390.c | 2 --
drivers/net/mac89x0.c | 2 --
drivers/net/macb.c | 1 -
drivers/net/mace.c | 1 -
drivers/net/macmace.c | 1 -
drivers/net/macsonic.c | 1 -
drivers/net/mv643xx_eth.c | 1 -
drivers/net/mvme147.c | 2 --
drivers/net/myri_sbus.c | 1 -
drivers/net/natsemi.c | 1 -
drivers/net/ne-h8300.c | 2 --
drivers/net/ne.c | 2 --
drivers/net/ne2.c | 2 --
drivers/net/ne2k-pci.c | 1 -
drivers/net/ne3210.c | 1 -
drivers/net/netx-eth.c | 1 -
drivers/net/netxen/netxen_nic_main.c | 1 -
drivers/net/ni5010.c | 2 --
drivers/net/ni52.c | 2 --
drivers/net/ni65.c | 1 -
drivers/net/ns83820.c | 1 -
drivers/net/pasemi_mac.c | 1 -
drivers/net/pci-skeleton.c | 1 -
drivers/net/pcmcia/3c589_cs.c | 1 -
drivers/net/pcmcia/axnet_cs.c | 3 ---
drivers/net/pcmcia/fmvj18x_cs.c | 1 -
drivers/net/pcmcia/nmclan_cs.c | 1 -
drivers/net/pcmcia/pcnet_cs.c | 1 -
drivers/net/pcmcia/smc91c92_cs.c | 1 -
drivers/net/pcmcia/xirc2ps_cs.c | 1 -
drivers/net/pcnet32.c | 1 -
drivers/net/plip.c | 1 -
drivers/net/ps3_gelic_net.c | 1 -
drivers/net/qla3xxx.c | 1 -
drivers/net/r8169.c | 1 -
drivers/net/rionet.c | 2 --
drivers/net/rrunner.c | 1 -
drivers/net/s2io.c | 1 -
drivers/net/sb1000.c | 1 -
drivers/net/shaper.c | 2 --
drivers/net/sis190.c | 1 -
drivers/net/sis900.c | 1 -
drivers/net/skfp/skfddi.c | 1 -
drivers/net/skge.c | 1 -
drivers/net/sky2.c | 1 -
drivers/net/slip.c | 2 --
drivers/net/smc-mca.c | 1 -
drivers/net/smc-ultra.c | 2 --
drivers/net/smc-ultra32.c | 2 --
drivers/net/smc911x.c | 1 -
drivers/net/smc9194.c | 2 --
drivers/net/smc91x.c | 1 -
drivers/net/spider_net.c | 1 -
drivers/net/starfire.c | 1 -
drivers/net/stnic.c | 1 -
drivers/net/sun3_82586.c | 1 -
drivers/net/sun3lance.c | 1 -
drivers/net/sunbmac.c | 1 -
drivers/net/sundance.c | 1 -
drivers/net/sungem.c | 1 -
drivers/net/sunhme.c | 2 --
drivers/net/sunlance.c | 1 -
drivers/net/sunqe.c | 1 -
drivers/net/tc35815.c | 1 -
drivers/net/tg3.c | 1 -
drivers/net/tlan.c | 1 -
drivers/net/tokenring/3c359.c | 1 -
drivers/net/tokenring/abyss.c | 2 --
drivers/net/tokenring/lanstreamer.c | 1 -
drivers/net/tokenring/madgemc.c | 1 -
drivers/net/tokenring/olympic.c | 1 -
drivers/net/tokenring/proteon.c | 1 -
drivers/net/tokenring/skisa.c | 1 -
drivers/net/tokenring/smctr.c | 2 --
drivers/net/tokenring/tmspci.c | 1 -
drivers/net/tsi108_eth.c | 1 -
drivers/net/tulip/de2104x.c | 1 -
drivers/net/tulip/de4x5.c | 1 -
drivers/net/tulip/dmfe.c | 1 -
drivers/net/tulip/tulip_core.c | 1 -
drivers/net/tulip/uli526x.c | 1 -
drivers/net/tulip/winbond-840.c | 1 -
drivers/net/tulip/xircom_cb.c | 1 -
drivers/net/tulip/xircom_tulip_cb.c | 1 -
drivers/net/tun.c | 1 -
drivers/net/typhoon.c | 1 -
drivers/net/ucc_geth.c | 1 -
drivers/net/usb/kaweth.c | 2 --
drivers/net/usb/pegasus.c | 1 -
drivers/net/usb/rtl8150.c | 1 -
drivers/net/usb/usbnet.c | 1 -
drivers/net/via-rhine.c | 1 -
drivers/net/via-velocity.c | 1 -
drivers/net/wan/c101.c | 1 -
drivers/net/wan/cycx_x25.c | 1 -
drivers/net/wan/dscc4.c | 1 -
drivers/net/wan/hostess_sv11.c | 2 --
drivers/net/wan/lapbether.c | 1 -
drivers/net/wan/lmc/lmc_main.c | 1 -
drivers/net/wan/n2.c | 1 -
drivers/net/wan/pc300too.c | 1 -
drivers/net/wan/pci200syn.c | 1 -
drivers/net/wan/sbni.c | 2 --
drivers/net/wan/sdla.c | 1 -
drivers/net/wan/wanxl.c | 1 -
drivers/net/wd.c | 2 --
drivers/net/wireless/airo.c | 1 -
drivers/net/wireless/airport.c | 1 -
drivers/net/wireless/arlan-main.c | 2 --
drivers/net/wireless/atmel.c | 1 -
drivers/net/wireless/bcm43xx/bcm43xx_main.c | 1 -
drivers/net/wireless/ipw2100.c | 2 --
drivers/net/wireless/ipw2200.c | 1 -
drivers/net/wireless/libertas/main.c | 4 ----
drivers/net/wireless/netwave_cs.c | 1 -
drivers/net/wireless/orinoco_cs.c | 1 -
drivers/net/wireless/orinoco_nortel.c | 1 -
drivers/net/wireless/orinoco_pci.c | 1 -
drivers/net/wireless/orinoco_plx.c | 1 -
drivers/net/wireless/orinoco_tmd.c | 1 -
drivers/net/wireless/prism54/islpci_dev.c | 1 -
drivers/net/wireless/ray_cs.c | 1 -
drivers/net/wireless/spectrum_cs.c | 1 -
drivers/net/wireless/strip.c | 2 --
drivers/net/wireless/wavelan.c | 1 -
drivers/net/wireless/wavelan_cs.c | 1 -
drivers/net/wireless/wl3501_cs.c | 2 --
drivers/net/wireless/zd1211rw/zd_netdev.c | 1 -
drivers/net/xen-netfront.c | 1 -
drivers/net/yellowfin.c | 1 -
drivers/net/znet.c | 2 --
drivers/net/zorro8390.c | 1 -
drivers/s390/net/claw.c | 1 -
drivers/s390/net/ctcmain.c | 1 -
drivers/s390/net/lcs.c | 1 -
drivers/s390/net/netiucv.c | 1 -
drivers/s390/net/qeth_main.c | 1 -
drivers/usb/gadget/ether.c | 1 -
include/linux/netdevice.h | 1 -
net/8021q/vlan.c | 2 --
net/bridge/br_device.c | 1 -
net/ipv4/ip_gre.c | 1 -
net/ipv4/ipip.c | 2 --
net/ipv6/ip6_tunnel.c | 1 -
net/ipv6/sit.c | 1 -
net/irda/irlan/irlan_eth.c | 2 --
net/sched/sch_teql.c | 1 -
246 files changed, 0 insertions(+), 336 deletions(-)
diff --git a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c
index 3a9d7e2..33b8081 100644
--- a/drivers/ieee1394/eth1394.c
+++ b/drivers/ieee1394/eth1394.c
@@ -598,7 +598,6 @@ static void ether1394_add_host(struct hpsb_host *host)
goto out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &host->device);
priv = netdev_priv(dev);
diff --git a/drivers/infiniband/hw/amso1100/c2.c b/drivers/infiniband/hw/amso1100/c2.c
index 0aecea6..f283a9f 100644
--- a/drivers/infiniband/hw/amso1100/c2.c
+++ b/drivers/infiniband/hw/amso1100/c2.c
@@ -886,7 +886,6 @@ static struct net_device *c2_devinit(struct c2_dev *c2dev,
return NULL;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &c2dev->pcidev->dev);
netdev->open = c2_up;
diff --git a/drivers/infiniband/hw/amso1100/c2_provider.c b/drivers/infiniband/hw/amso1100/c2_provider.c
index 997cf15..7a6cece 100644
--- a/drivers/infiniband/hw/amso1100/c2_provider.c
+++ b/drivers/infiniband/hw/amso1100/c2_provider.c
@@ -715,7 +715,6 @@ static int c2_pseudo_change_mtu(struct net_device *netdev, int new_mtu)
static void setup(struct net_device *netdev)
{
- SET_MODULE_OWNER(netdev);
netdev->open = c2_pseudo_up;
netdev->stop = c2_pseudo_down;
netdev->hard_start_xmit = c2_pseudo_xmit_frame;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 894b1dc..d3bca04 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -973,8 +973,6 @@ static void ipoib_setup(struct net_device *dev)
netif_carrier_off(dev);
- SET_MODULE_OWNER(dev);
-
priv->dev = dev;
spin_lock_init(&priv->lock);
diff --git a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c
index 01fc397..3da4c37 100644
--- a/drivers/message/fusion/mptlan.c
+++ b/drivers/message/fusion/mptlan.c
@@ -1427,8 +1427,6 @@ mpt_register_lan_device (MPT_ADAPTER *mpt_dev, int pnum)
dlprintk((KERN_INFO MYNAM ": Finished registering dev "
"and setting initial values\n"));
- SET_MODULE_OWNER(dev);
-
if (register_netdev(dev) != 0) {
free_netdev(dev);
dev = NULL;
diff --git a/drivers/net/3c501.c b/drivers/net/3c501.c
index 4bee99b..98e0bc4 100644
--- a/drivers/net/3c501.c
+++ b/drivers/net/3c501.c
@@ -174,8 +174,6 @@ struct net_device * __init el1_probe(int unit)
mem_start = dev->mem_start & 7;
}
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) { /* Check a single specified location. */
err = el1_probe1(dev, io);
} else if (io != 0) {
diff --git a/drivers/net/3c503.c b/drivers/net/3c503.c
index bc7e906..f9e7ffb 100644
--- a/drivers/net/3c503.c
+++ b/drivers/net/3c503.c
@@ -95,8 +95,6 @@ static int __init do_el2_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) /* Check a single specified location. */
return el2_probe1(dev, base_addr);
else if (base_addr != 0) /* Don't probe at all. */
diff --git a/drivers/net/3c505.c b/drivers/net/3c505.c
index e985a85..feefbec 100644
--- a/drivers/net/3c505.c
+++ b/drivers/net/3c505.c
@@ -1402,8 +1402,6 @@ static int __init elplus_setup(struct net_device *dev)
unsigned long cookie = 0;
int err = -ENODEV;
- SET_MODULE_OWNER(dev);
-
/*
* setup adapter structure
*/
diff --git a/drivers/net/3c507.c b/drivers/net/3c507.c
index eed4299..fac6edf 100644
--- a/drivers/net/3c507.c
+++ b/drivers/net/3c507.c
@@ -327,8 +327,6 @@ struct net_device * __init el16_probe(int unit)
mem_start = dev->mem_start & 15;
}
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) /* Check a single specified location. */
err = el16_probe1(dev, io);
else if (io != 0)
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c
index 127f608..7466987 100644
--- a/drivers/net/3c509.c
+++ b/drivers/net/3c509.c
@@ -432,7 +432,6 @@ __again:
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &idev->dev);
pnp_cards++;
@@ -524,8 +523,6 @@ no_pnp:
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
-
netdev_boot_setup_check(dev);
/* Set passed-in IRQ or I/O Addr. */
@@ -644,7 +641,6 @@ static int __init el3_mca_probe(struct device *device)
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
netdev_boot_setup_check(dev);
memcpy(dev->dev_addr, phys_addr, sizeof(phys_addr));
@@ -704,8 +700,6 @@ static int __init el3_eisa_probe (struct device *device)
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
-
netdev_boot_setup_check(dev);
memcpy(dev->dev_addr, phys_addr, sizeof(phys_addr));
diff --git a/drivers/net/3c515.c b/drivers/net/3c515.c
index 290166d..38a2ebe 100644
--- a/drivers/net/3c515.c
+++ b/drivers/net/3c515.c
@@ -501,8 +501,6 @@ static struct net_device *corkscrew_scan(int unit)
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
-
#ifdef __ISAPNP__
if(nopnp == 1)
goto no_pnp;
diff --git a/drivers/net/3c523.c b/drivers/net/3c523.c
index ab18343..10852b2 100644
--- a/drivers/net/3c523.c
+++ b/drivers/net/3c523.c
@@ -423,7 +423,6 @@ static int __init do_elmc_probe(struct net_device *dev)
int retval;
struct priv *pr = dev->priv;
- SET_MODULE_OWNER(dev);
if (MCA_bus == 0) {
return -ENODEV;
}
diff --git a/drivers/net/3c527.c b/drivers/net/3c527.c
index c7b571b..5b5f44c 100644
--- a/drivers/net/3c527.c
+++ b/drivers/net/3c527.c
@@ -257,8 +257,6 @@ struct net_device *__init mc32_probe(int unit)
if (unit >= 0)
sprintf(dev->name, "eth%d", unit);
- SET_MODULE_OWNER(dev);
-
/* Do not check any supplied i/o locations.
POS registers usually don't fail :) */
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index a8c0f43..9df0b0b 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -1033,7 +1033,6 @@ static int __devinit vortex_probe1(struct device *gendev,
printk (KERN_ERR PFX "unable to allocate etherdev, aborting\n");
goto out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, gendev);
vp = netdev_priv(dev);
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index a79f28c..c4c2be5 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -1840,7 +1840,6 @@ static int cp_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
dev = alloc_etherdev(sizeof(struct cp_private));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
cp = netdev_priv(dev);
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index f4e4298..aa214cf 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -770,7 +770,6 @@ static int __devinit rtl8139_init_board (struct pci_dev *pdev,
dev_err(&pdev->dev, "Unable to alloc new net device\n");
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
tp = netdev_priv(dev);
diff --git a/drivers/net/82596.c b/drivers/net/82596.c
index d915837..43dffdc 100644
--- a/drivers/net/82596.c
+++ b/drivers/net/82596.c
@@ -1234,7 +1234,6 @@ struct net_device * __init i82596_probe(int unit)
DEB(DEB_PROBE,printk(KERN_INFO "%s", version));
/* The 82596-specific entries in the device structure. */
- SET_MODULE_OWNER(dev);
dev->open = i596_open;
dev->stop = i596_close;
dev->hard_start_xmit = i596_start_xmit;
diff --git a/drivers/net/a2065.c b/drivers/net/a2065.c
index a45de69..fa0c6cb 100644
--- a/drivers/net/a2065.c
+++ b/drivers/net/a2065.c
@@ -746,7 +746,6 @@ static int __devinit a2065_init_one(struct zorro_dev *z,
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
priv = netdev_priv(dev);
r1->name = dev->name;
diff --git a/drivers/net/ac3200.c b/drivers/net/ac3200.c
index 644c408..65b2de5 100644
--- a/drivers/net/ac3200.c
+++ b/drivers/net/ac3200.c
@@ -103,8 +103,6 @@ static int __init do_ac3200_probe(struct net_device *dev)
int irq = dev->irq;
int mem_start = dev->mem_start;
- SET_MODULE_OWNER(dev);
-
if (ioaddr > 0x1ff) /* Check a single specified location. */
return ac_probe1(ioaddr, dev);
else if (ioaddr > 0) /* Don't probe at all. */
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index 62e660a..ca00f41 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -465,7 +465,6 @@ static int __devinit acenic_probe_one(struct pci_dev *pdev,
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
ap = dev->priv;
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index a61b2f8..a2f5687 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -1983,7 +1983,6 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
goto err_free_reg;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
#if AMD8111E_VLAN_TAG_USED
diff --git a/drivers/net/apne.c b/drivers/net/apne.c
index 9541911..b073810 100644
--- a/drivers/net/apne.c
+++ b/drivers/net/apne.c
@@ -148,7 +148,6 @@ struct net_device * __init apne_probe(int unit)
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
/* disable pcmcia irq for readtuple */
pcmcia_disable_irq();
diff --git a/drivers/net/appletalk/cops.c b/drivers/net/appletalk/cops.c
index da6ffa8..c4b560d 100644
--- a/drivers/net/appletalk/cops.c
+++ b/drivers/net/appletalk/cops.c
@@ -235,8 +235,6 @@ struct net_device * __init cops_probe(int unit)
base_addr = dev->base_addr = io;
}
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) { /* Check a single specified location. */
err = cops_probe1(dev, base_addr);
} else if (base_addr != 0) { /* Don't probe at all. */
diff --git a/drivers/net/appletalk/ipddp.c b/drivers/net/appletalk/ipddp.c
index f22e46d..56cb967 100644
--- a/drivers/net/appletalk/ipddp.c
+++ b/drivers/net/appletalk/ipddp.c
@@ -65,7 +65,6 @@ static struct net_device * __init ipddp_init(void)
if (!dev)
return ERR_PTR(-ENOMEM);
- SET_MODULE_OWNER(dev);
strcpy(dev->name, "ipddp%d");
if (version_printed++ == 0)
diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c
index 6a6cbd3..cb4744e 100644
--- a/drivers/net/appletalk/ltpc.c
+++ b/drivers/net/appletalk/ltpc.c
@@ -1046,8 +1046,6 @@ struct net_device * __init ltpc_probe(void)
if (!dev)
goto out;
- SET_MODULE_OWNER(dev);
-
/* probe for the I/O port address */
if (io != 0x240 && request_region(0x220,8,"ltpc")) {
diff --git a/drivers/net/arcnet/com90io.c b/drivers/net/arcnet/com90io.c
index 1f03027..6599f10 100644
--- a/drivers/net/arcnet/com90io.c
+++ b/drivers/net/arcnet/com90io.c
@@ -398,8 +398,6 @@ static int __init com90io_init(void)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
-
dev->base_addr = io;
dev->irq = irq;
if (dev->irq == 2)
diff --git a/drivers/net/ariadne.c b/drivers/net/ariadne.c
index bc5a38a..2c020a3 100644
--- a/drivers/net/ariadne.c
+++ b/drivers/net/ariadne.c
@@ -183,7 +183,6 @@ static int __devinit ariadne_init_one(struct zorro_dev *z,
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
priv = netdev_priv(dev);
r1->name = dev->name;
diff --git a/drivers/net/arm/at91_ether.c b/drivers/net/arm/at91_ether.c
index ef2cc80..619810a 100644
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
@@ -986,7 +986,6 @@ static int __init at91ether_setup(unsigned long phy_type, unsigned short phy_add
dev->base_addr = AT91_VA_BASE_EMAC;
dev->irq = AT91RM9200_ID_EMAC;
- SET_MODULE_OWNER(dev);
/* Install the interrupt handler */
if (request_irq(dev->irq, at91ether_interrupt, 0, dev->name, dev)) {
diff --git a/drivers/net/arm/ether1.c b/drivers/net/arm/ether1.c
index 80f33b6..6ec8a58 100644
--- a/drivers/net/arm/ether1.c
+++ b/drivers/net/arm/ether1.c
@@ -1009,7 +1009,6 @@ ether1_probe(struct expansion_card *ec, const struct ecard_id *id)
goto release;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &ec->dev);
dev->irq = ec->irq;
diff --git a/drivers/net/arm/ether3.c b/drivers/net/arm/ether3.c
index 3805506..4a91474 100644
--- a/drivers/net/arm/ether3.c
+++ b/drivers/net/arm/ether3.c
@@ -789,7 +789,6 @@ ether3_probe(struct expansion_card *ec, const struct ecard_id *id)
goto release;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &ec->dev);
priv(dev)->base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0);
diff --git a/drivers/net/arm/etherh.c b/drivers/net/arm/etherh.c
index 0d37d9d..5d093b3 100644
--- a/drivers/net/arm/etherh.c
+++ b/drivers/net/arm/etherh.c
@@ -661,7 +661,6 @@ etherh_probe(struct expansion_card *ec, const struct ecard_id *id)
goto release;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &ec->dev);
dev->open = etherh_open;
diff --git a/drivers/net/at1700.c b/drivers/net/at1700.c
index bed8e0e..d20148e 100644
--- a/drivers/net/at1700.c
+++ b/drivers/net/at1700.c
@@ -225,8 +225,6 @@ struct net_device * __init at1700_probe(int unit)
dev->irq = irq;
}
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) { /* Check a single specified location. */
err = at1700_probe1(dev, io);
} else if (io != 0) { /* Don't probe at all. */
diff --git a/drivers/net/atarilance.c b/drivers/net/atarilance.c
index dfa8b9b..97cca50 100644
--- a/drivers/net/atarilance.c
+++ b/drivers/net/atarilance.c
@@ -390,7 +390,6 @@ struct net_device * __init atarilance_probe(int unit)
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
for( i = 0; i < N_LANCE_ADDR; ++i ) {
if (lance_probe1( dev, &lance_addr_list[i] )) {
diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
index 3c1984e..cc73ced 100644
--- a/drivers/net/atl1/atl1_main.c
+++ b/drivers/net/atl1/atl1_main.c
@@ -2236,7 +2236,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
err = -ENOMEM;
goto err_alloc_etherdev;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
pci_set_drvdata(pdev, netdev);
diff --git a/drivers/net/atp.c b/drivers/net/atp.c
index 82d78ff..6020d5e 100644
--- a/drivers/net/atp.c
+++ b/drivers/net/atp.c
@@ -299,7 +299,6 @@ static int __init atp_probe1(long ioaddr)
dev = alloc_etherdev(sizeof(struct net_local));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
/* Find the IRQ used by triggering an interrupt. */
write_reg_byte(ioaddr, CMR2, 0x01); /* No accept mode, IRQ out. */
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 0795df2..c33261a 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -2162,7 +2162,6 @@ static int __devinit b44_init_one(struct pci_dev *pdev,
goto err_out_free_res;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev,&pdev->dev);
/* No interesting netdevice features in this card... */
diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c
index 2bb97d4..7f5f4b4 100644
--- a/drivers/net/bfin_mac.c
+++ b/drivers/net/bfin_mac.c
@@ -946,7 +946,6 @@ static int bfin_mac_probe(struct platform_device *pdev)
return -ENOMEM;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
platform_set_drvdata(pdev, ndev);
diff --git a/drivers/net/bmac.c b/drivers/net/bmac.c
index 9b8d7d9..3008d9b 100644
--- a/drivers/net/bmac.c
+++ b/drivers/net/bmac.c
@@ -1279,7 +1279,6 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_device_i
}
bp = netdev_priv(dev);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &mdev->ofdev.dev);
macio_set_drvdata(mdev, dev);
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 854d80c..9787611 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -6476,7 +6476,6 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
u32 reg;
u64 dma_mask, persist_dma_mask;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
bp = netdev_priv(dev);
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 1afda32..80b4ef5 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -4667,8 +4667,6 @@ int bond_create(char *name, struct bond_params *params, struct bonding **newbond
goto out_netdev;
}
- SET_MODULE_OWNER(bond_dev);
-
res = register_netdevice(bond_dev);
if (res < 0) {
goto out_bond;
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index f6e4030..14c8cd9 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -4899,7 +4899,6 @@ static int __devinit cas_init_one(struct pci_dev *pdev,
err = -ENOMEM;
goto err_out_disable_pdev;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
err = pci_request_regions(pdev, dev->name);
diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c
index 231ce43..e3e2b18 100644
--- a/drivers/net/chelsio/cxgb2.c
+++ b/drivers/net/chelsio/cxgb2.c
@@ -1032,7 +1032,6 @@ static int __devinit init_one(struct pci_dev *pdev,
goto out_free_dev;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
if (!adapter) {
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
index 9774bb1..2b4c921 100644
--- a/drivers/net/cs89x0.c
+++ b/drivers/net/cs89x0.c
@@ -517,7 +517,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
int eeprom_buff[CHKSUM_LEN];
int retval;
- SET_MODULE_OWNER(dev);
/* Initialize the device structure. */
if (!modular) {
memset(lp, 0, sizeof(*lp));
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index 5ab319c..0037f70 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -2490,7 +2490,6 @@ static int __devinit init_one(struct pci_dev *pdev,
goto out_free_dev;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
adapter->port[i] = netdev;
diff --git a/drivers/net/de600.c b/drivers/net/de600.c
index dae97b8..5dd0d9c 100644
--- a/drivers/net/de600.c
+++ b/drivers/net/de600.c
@@ -394,7 +394,6 @@ static struct net_device * __init de600_probe(void)
if (!dev)
return ERR_PTR(-ENOMEM);
- SET_MODULE_OWNER(dev);
if (!request_region(DE600_IO, 3, "de600")) {
printk(KERN_WARNING "DE600: port 0x%x busy\n", DE600_IO);
diff --git a/drivers/net/de620.c b/drivers/net/de620.c
index dc48924..a92c207 100644
--- a/drivers/net/de620.c
+++ b/drivers/net/de620.c
@@ -823,8 +823,6 @@ struct net_device * __init de620_probe(int unit)
if (!dev)
goto out;
- SET_MODULE_OWNER(dev);
-
spin_lock_init(&de620_lock);
/*
diff --git a/drivers/net/defxx.c b/drivers/net/defxx.c
index 9c8e3f9..b07613e 100644
--- a/drivers/net/defxx.c
+++ b/drivers/net/defxx.c
@@ -539,7 +539,6 @@ static int __devinit dfx_register(struct device *bdev)
goto err_out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, bdev);
bp = netdev_priv(dev);
diff --git a/drivers/net/dgrs.c b/drivers/net/dgrs.c
index df62c02..ddedb76 100644
--- a/drivers/net/dgrs.c
+++ b/drivers/net/dgrs.c
@@ -1272,7 +1272,6 @@ dgrs_found_device(
priv->chan = 1;
priv->devtbl[0] = dev;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, pdev);
ret = dgrs_probe1(dev);
@@ -1320,7 +1319,6 @@ dgrs_found_device(
if (ret)
goto fail;
- SET_MODULE_OWNER(devN);
SET_NETDEV_DEV(dev, pdev);
ret = register_netdev(devN);
diff --git a/drivers/net/dl2k.c b/drivers/net/dl2k.c
index 04e3710..df65139 100644
--- a/drivers/net/dl2k.c
+++ b/drivers/net/dl2k.c
@@ -116,7 +116,6 @@ rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent)
err = -ENOMEM;
goto err_out_res;
}
- SET_MODULE_OWNER (dev);
SET_NETDEV_DEV(dev, &pdev->dev);
#ifdef MEM_MAPPING
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index 738aa59..857eb36 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -416,7 +416,6 @@ dm9000_probe(struct platform_device *pdev)
return -ENOMEM;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
PRINTK2("dm9000_probe()");
diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
index 756a6bc..84e14f3 100644
--- a/drivers/net/dummy.c
+++ b/drivers/net/dummy.c
@@ -71,7 +71,6 @@ static void dummy_setup(struct net_device *dev)
dev->change_mtu = NULL;
dev->flags |= IFF_NOARP;
dev->flags &= ~IFF_MULTICAST;
- SET_MODULE_OWNER(dev);
random_ether_addr(dev->dev_addr);
}
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 280313b..1f7136e 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -2607,7 +2607,6 @@ static int __devinit e100_probe(struct pci_dev *pdev,
goto err_out_free_res;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
if (use_io)
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 4a22595..01732c9 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -896,7 +896,6 @@ e1000_probe(struct pci_dev *pdev,
if (!netdev)
goto err_alloc_etherdev;
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
pci_set_drvdata(pdev, netdev);
diff --git a/drivers/net/e2100.c b/drivers/net/e2100.c
index b2b0a96..6390f51 100644
--- a/drivers/net/e2100.c
+++ b/drivers/net/e2100.c
@@ -124,8 +124,6 @@ static int __init do_e2100_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) /* Check a single specified location. */
return e21_probe1(dev, base_addr);
else if (base_addr != 0) /* Don't probe at all. */
diff --git a/drivers/net/eepro.c b/drivers/net/eepro.c
index 4768023..6eb84f1 100644
--- a/drivers/net/eepro.c
+++ b/drivers/net/eepro.c
@@ -537,8 +537,6 @@ static int __init do_eepro_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
#ifdef PnPWakeup
/* XXXX for multiple cards should this only be run once? */
@@ -594,8 +592,6 @@ struct net_device * __init eepro_probe(int unit)
if (!dev)
return ERR_PTR(-ENODEV);
- SET_MODULE_OWNER(dev);
-
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
diff --git a/drivers/net/eepro100.c b/drivers/net/eepro100.c
index 3c54014..f8b69ce 100644
--- a/drivers/net/eepro100.c
+++ b/drivers/net/eepro100.c
@@ -635,7 +635,6 @@ static int __devinit speedo_found1(struct pci_dev *pdev,
return -1;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (dev->mem_start > 0)
diff --git a/drivers/net/eexpress.c b/drivers/net/eexpress.c
index 7934ea3..6c91bfa 100644
--- a/drivers/net/eexpress.c
+++ b/drivers/net/eexpress.c
@@ -341,8 +341,6 @@ static int __init do_express_probe(struct net_device *dev)
int dev_irq = dev->irq;
int err;
- SET_MODULE_OWNER(dev);
-
dev->if_port = 0xff; /* not set */
#ifdef CONFIG_MCA_LEGACY
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index db57474..53f9d39 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -2627,8 +2627,6 @@ struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,
SET_NETDEV_DEV(dev, port_dev);
/* initialize net_device structure */
- SET_MODULE_OWNER(dev);
-
memcpy(dev->dev_addr, &port->mac_addr, ETH_ALEN);
dev->open = ehea_open;
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c
index 1197784..5c54a44 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -351,7 +351,6 @@ static int __devinit epic_init_one (struct pci_dev *pdev,
dev_err(&pdev->dev, "no memory for eth device\n");
goto err_out_free_res;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
#ifdef USE_IO_OPS
diff --git a/drivers/net/eql.c b/drivers/net/eql.c
index 102218c..23346b1 100644
--- a/drivers/net/eql.c
+++ b/drivers/net/eql.c
@@ -166,8 +166,6 @@ static void __init eql_setup(struct net_device *dev)
{
equalizer_t *eql = netdev_priv(dev);
- SET_MODULE_OWNER(dev);
-
init_timer(&eql->timer);
eql->timer.data = (unsigned long) eql;
eql->timer.expires = jiffies + EQL_DEFAULT_RESCHED_IVAL;
diff --git a/drivers/net/es3210.c b/drivers/net/es3210.c
index 822e5bf..238fa8a 100644
--- a/drivers/net/es3210.c
+++ b/drivers/net/es3210.c
@@ -130,8 +130,6 @@ static int __init do_es_probe(struct net_device *dev)
int irq = dev->irq;
int mem_start = dev->mem_start;
- SET_MODULE_OWNER(dev);
-
if (ioaddr > 0x1ff) /* Check a single specified location. */
return es_probe1(dev, ioaddr);
else if (ioaddr > 0) /* Don't probe at all. */
diff --git a/drivers/net/eth16i.c b/drivers/net/eth16i.c
index 04abf59..0e3b337 100644
--- a/drivers/net/eth16i.c
+++ b/drivers/net/eth16i.c
@@ -436,8 +436,6 @@ static int __init do_eth16i_probe(struct net_device *dev)
int ioaddr;
int base_addr = dev->base_addr;
- SET_MODULE_OWNER(dev);
-
if(eth16i_debug > 4)
printk(KERN_DEBUG "Probing started for %s\n", cardname);
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c
index cb0792c..6a5d043 100644
--- a/drivers/net/ewrk3.c
+++ b/drivers/net/ewrk3.c
@@ -356,7 +356,6 @@ struct net_device * __init ewrk3_probe(int unit)
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
err = ewrk3_probe1(dev, dev->base_addr, dev->irq);
if (err)
diff --git a/drivers/net/fealnx.c b/drivers/net/fealnx.c
index ff9f177..e935307 100644
--- a/drivers/net/fealnx.c
+++ b/drivers/net/fealnx.c
@@ -527,7 +527,6 @@ static int __devinit fealnx_init_one(struct pci_dev *pdev,
err = -ENOMEM;
goto err_out_unmap;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* read ethernet id */
diff --git a/drivers/net/fec_8xx/fec_main.c b/drivers/net/fec_8xx/fec_main.c
index e5502af..d53fce6 100644
--- a/drivers/net/fec_8xx/fec_main.c
+++ b/drivers/net/fec_8xx/fec_main.c
@@ -1104,7 +1104,6 @@ int fec_8xx_init_one(const struct fec_platform_info *fpi,
err = -ENOMEM;
goto err;
}
- SET_MODULE_OWNER(dev);
fep = netdev_priv(dev);
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 1938d6d..ef53ca0 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -4996,7 +4996,6 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
np = netdev_priv(dev);
np->pci_dev = pci_dev;
spin_lock_init(&np->lock);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pci_dev->dev);
init_timer(&np->oom_kick);
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index a4a2a0e..01594fe 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -961,7 +961,6 @@ static struct net_device *fs_init_instance(struct device *dev,
err = -ENOMEM;
goto err;
}
- SET_MODULE_OWNER(ndev);
fep = netdev_priv(ndev);
memset(fep, 0, privsize); /* clear everything */
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index f926905..3bbe92e 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -253,7 +253,6 @@ static int gfar_probe(struct platform_device *pdev)
/* Set the dev->base_addr to the gfar reg region */
dev->base_addr = (unsigned long) (priv->regs);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* Fill in the dev structure */
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c
index 15254dc..da12b3d 100644
--- a/drivers/net/hamachi.c
+++ b/drivers/net/hamachi.c
@@ -613,7 +613,6 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
if (!dev)
goto err_out_iounmap;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
#ifdef TX_CHECKSUM
diff --git a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c
index 760d04a..0a84732 100644
--- a/drivers/net/hamradio/6pack.c
+++ b/drivers/net/hamradio/6pack.c
@@ -345,8 +345,6 @@ static void sp_setup(struct net_device *dev)
memcpy(dev->broadcast, &ax25_bcast, AX25_ADDR_LEN);
memcpy(dev->dev_addr, &ax25_defaddr, AX25_ADDR_LEN);
- SET_MODULE_OWNER(dev);
-
dev->flags = 0;
}
diff --git a/drivers/net/hp-plus.c b/drivers/net/hp-plus.c
index 99a36cc..8d4f810 100644
--- a/drivers/net/hp-plus.c
+++ b/drivers/net/hp-plus.c
@@ -122,8 +122,6 @@ static int __init do_hpp_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) /* Check a single specified location. */
return hpp_probe1(dev, base_addr);
else if (base_addr != 0) /* Don't probe at all. */
diff --git a/drivers/net/hp.c b/drivers/net/hp.c
index 635b13c..1f11126 100644
--- a/drivers/net/hp.c
+++ b/drivers/net/hp.c
@@ -86,8 +86,6 @@ static int __init do_hp_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) /* Check a single specified location. */
return hp_probe1(dev, base_addr);
else if (base_addr != 0) /* Don't probe at all. */
diff --git a/drivers/net/hp100.c b/drivers/net/hp100.c
index 8caa591..406d652 100644
--- a/drivers/net/hp100.c
+++ b/drivers/net/hp100.c
@@ -404,8 +404,6 @@ struct net_device * __init hp100_probe(int unit)
if (!dev)
return ERR_PTR(-ENODEV);
- SET_MODULE_OWNER(dev);
-
#ifdef HP100_DEBUG_B
hp100_outw(0x4200, TRACE);
printk("hp100: %s: probe\n", dev->name);
@@ -2843,7 +2841,6 @@ static int __init hp100_eisa_probe (struct device *gendev)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &edev->dev);
err = hp100_probe1(dev, edev->base_addr + 0xC38, HP100_BUS_EISA, NULL);
@@ -2896,7 +2893,6 @@ static int __devinit hp100_pci_probe (struct pci_dev *pdev,
goto out0;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
@@ -2993,7 +2989,6 @@ static int __init hp100_isa_init(void)
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
err = hp100_isa_probe(dev, hp100_port[i]);
if (!err)
diff --git a/drivers/net/hydra.c b/drivers/net/hydra.c
index f970bfb..31300a9 100644
--- a/drivers/net/hydra.c
+++ b/drivers/net/hydra.c
@@ -112,7 +112,6 @@ static int __devinit hydra_init(struct zorro_dev *z)
dev = ____alloc_ei_netdev(0);
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
for(j = 0; j < ETHER_ADDR_LEN; j++)
dev->dev_addr[j] = *((u8 *)(board + HYDRA_ADDRPROM + 2*j));
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c
index f752e5f..354616b 100644
--- a/drivers/net/ibm_emac/ibm_emac_core.c
+++ b/drivers/net/ibm_emac/ibm_emac_core.c
@@ -1962,7 +1962,6 @@ static int __init emac_probe(struct ocp_device *ocpdev)
dev->ndev = ndev;
dev->ldev = &ocpdev->dev;
dev->def = ocpdev->def;
- SET_MODULE_OWNER(ndev);
/* Find MAL device we are connected to */
maldev =
diff --git a/drivers/net/ibmlana.c b/drivers/net/ibmlana.c
index fe85d6f..67d82fa 100644
--- a/drivers/net/ibmlana.c
+++ b/drivers/net/ibmlana.c
@@ -907,8 +907,6 @@ static int ibmlana_probe(struct net_device *dev)
ibmlana_priv *priv;
ibmlana_medium medium;
- SET_MODULE_OWNER(dev);
-
/* can't work without an MCA bus ;-) */
if (MCA_bus == 0)
return -ENODEV;
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index acba90f..75b9f57 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -994,8 +994,6 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
if(!netdev)
return -ENOMEM;
- SET_MODULE_OWNER(netdev);
-
adapter = netdev->priv;
dev->dev.driver_data = netdev;
@@ -1094,7 +1092,6 @@ static void ibmveth_proc_register_driver(void)
{
ibmveth_proc_dir = proc_mkdir(IBMVETH_PROC_DIR, NULL);
if (ibmveth_proc_dir) {
- SET_MODULE_OWNER(ibmveth_proc_dir);
}
}
@@ -1195,7 +1192,6 @@ static void ibmveth_proc_register_adapter(struct ibmveth_adapter *adapter)
} else {
entry->data = (void *) adapter;
entry->proc_fops = &ibmveth_proc_fops;
- SET_MODULE_OWNER(entry);
}
}
return;
diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
index f5c3598..e66d657 100644
--- a/drivers/net/ifb.c
+++ b/drivers/net/ifb.c
@@ -151,7 +151,6 @@ static void ifb_setup(struct net_device *dev)
dev->change_mtu = NULL;
dev->flags |= IFF_NOARP;
dev->flags &= ~IFF_MULTICAST;
- SET_MODULE_OWNER(dev);
random_ether_addr(dev->dev_addr);
}
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c
index c030030..05d2bc1 100644
--- a/drivers/net/ioc3-eth.c
+++ b/drivers/net/ioc3-eth.c
@@ -1273,7 +1273,6 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (err)
goto out_free;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
ip = netdev_priv(dev);
diff --git a/drivers/net/irda/ali-ircc.c b/drivers/net/irda/ali-ircc.c
index f9c889c..9f58452 100644
--- a/drivers/net/irda/ali-ircc.c
+++ b/drivers/net/irda/ali-ircc.c
@@ -360,10 +360,6 @@ static int ali_ircc_open(int i, chipio_t *info)
self->tx_fifo.len = self->tx_fifo.ptr = self->tx_fifo.free = 0;
self->tx_fifo.tail = self->tx_buff.head;
-
- /* Keep track of module usage */
- SET_MODULE_OWNER(dev);
-
/* Override the network functions we need to use */
dev->hard_start_xmit = ali_ircc_sir_hard_xmit;
dev->open = ali_ircc_net_open;
diff --git a/drivers/net/irda/donauboe.c b/drivers/net/irda/donauboe.c
index 3ca47bf..3e5eca1 100644
--- a/drivers/net/irda/donauboe.c
+++ b/drivers/net/irda/donauboe.c
@@ -1660,7 +1660,6 @@ toshoboe_open (struct pci_dev *pci_dev, const struct pci_device_id *pdid)
}
#endif
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pci_dev->dev);
dev->hard_start_xmit = toshoboe_hard_xmit;
dev->open = toshoboe_net_open;
diff --git a/drivers/net/irda/irda-usb.c b/drivers/net/irda/irda-usb.c
index 3b0fd83..c6355c0 100644
--- a/drivers/net/irda/irda-usb.c
+++ b/drivers/net/irda/irda-usb.c
@@ -1635,7 +1635,6 @@ static int irda_usb_probe(struct usb_interface *intf,
if (!net)
goto err_out;
- SET_MODULE_OWNER(net);
SET_NETDEV_DEV(net, &intf->dev);
self = net->priv;
self->netdev = net;
diff --git a/drivers/net/irda/irport.c b/drivers/net/irda/irport.c
index 2073245..c79caa5 100644
--- a/drivers/net/irda/irport.c
+++ b/drivers/net/irda/irport.c
@@ -175,8 +175,6 @@ irport_open(int i, unsigned int iobase, unsigned int irq)
self->tx_buff.data = self->tx_buff.head;
self->netdev = dev;
- /* Keep track of module usage */
- SET_MODULE_OWNER(dev);
/* May be overridden by piggyback drivers */
self->interrupt = irport_interrupt;
diff --git a/drivers/net/irda/kingsun-sir.c b/drivers/net/irda/kingsun-sir.c
index 4e5101a..d323f6b 100644
--- a/drivers/net/irda/kingsun-sir.c
+++ b/drivers/net/irda/kingsun-sir.c
@@ -488,7 +488,6 @@ static int kingsun_probe(struct usb_interface *intf,
if(!net)
goto err_out1;
- SET_MODULE_OWNER(net);
SET_NETDEV_DEV(net, &intf->dev);
kingsun = netdev_priv(net);
kingsun->irlap = NULL;
diff --git a/drivers/net/irda/mcs7780.c b/drivers/net/irda/mcs7780.c
index 0de8672..e04718e 100644
--- a/drivers/net/irda/mcs7780.c
+++ b/drivers/net/irda/mcs7780.c
@@ -899,8 +899,6 @@ static int mcs_probe(struct usb_interface *intf,
IRDA_DEBUG(1, "MCS7780 USB-IrDA bridge found at %d.\n", udev->devnum);
- /* what is it realy for? */
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &intf->dev);
ret = usb_reset_configuration(udev);
diff --git a/drivers/net/irda/nsc-ircc.c b/drivers/net/irda/nsc-ircc.c
index d96c897..12b9378 100644
--- a/drivers/net/irda/nsc-ircc.c
+++ b/drivers/net/irda/nsc-ircc.c
@@ -437,7 +437,6 @@ static int __init nsc_ircc_open(chipio_t *info)
self->tx_fifo.tail = self->tx_buff.head;
/* Override the network functions we need to use */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = nsc_ircc_hard_xmit_sir;
dev->open = nsc_ircc_net_open;
dev->stop = nsc_ircc_net_close;
diff --git a/drivers/net/irda/sir_dev.c b/drivers/net/irda/sir_dev.c
index 9d6c8f3..bbe4e09 100644
--- a/drivers/net/irda/sir_dev.c
+++ b/drivers/net/irda/sir_dev.c
@@ -913,8 +913,6 @@ struct sir_dev * sirdev_get_instance(const struct sir_driver *drv, const char *n
dev->drv = drv;
dev->netdev = ndev;
- SET_MODULE_OWNER(ndev);
-
/* Override the network functions we need to use */
ndev->hard_start_xmit = sirdev_hard_xmit;
ndev->open = sirdev_open;
diff --git a/drivers/net/irda/smsc-ircc2.c b/drivers/net/irda/smsc-ircc2.c
index 36ab983..029fdde 100644
--- a/drivers/net/irda/smsc-ircc2.c
+++ b/drivers/net/irda/smsc-ircc2.c
@@ -519,8 +519,6 @@ static int __init smsc_ircc_open(unsigned int fir_base, unsigned int sir_base, u
goto err_out1;
}
- SET_MODULE_OWNER(dev);
-
dev->hard_start_xmit = smsc_ircc_hard_xmit_sir;
#if SMSC_IRCC2_C_NET_TIMEOUT
dev->tx_timeout = smsc_ircc_timeout;
diff --git a/drivers/net/irda/stir4200.c b/drivers/net/irda/stir4200.c
index 755aa44..1afaee0 100644
--- a/drivers/net/irda/stir4200.c
+++ b/drivers/net/irda/stir4200.c
@@ -1034,7 +1034,6 @@ static int stir_probe(struct usb_interface *intf,
if(!net)
goto err_out1;
- SET_MODULE_OWNER(net);
SET_NETDEV_DEV(net, &intf->dev);
stir = netdev_priv(net);
stir->netdev = net;
diff --git a/drivers/net/irda/via-ircc.c b/drivers/net/irda/via-ircc.c
index ff53585..126ec7c 100644
--- a/drivers/net/irda/via-ircc.c
+++ b/drivers/net/irda/via-ircc.c
@@ -429,9 +429,6 @@ static __devinit int via_ircc_open(int i, chipio_t * info, unsigned int id)
self->tx_fifo.len = self->tx_fifo.ptr = self->tx_fifo.free = 0;
self->tx_fifo.tail = self->tx_buff.head;
- /* Keep track of module usage */
- SET_MODULE_OWNER(dev);
-
/* Override the network functions we need to use */
dev->hard_start_xmit = via_ircc_hard_xmit_sir;
dev->open = via_ircc_net_open;
diff --git a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c
index 0538ca9..acd082a 100644
--- a/drivers/net/irda/vlsi_ir.c
+++ b/drivers/net/irda/vlsi_ir.c
@@ -1584,8 +1584,6 @@ static int vlsi_irda_init(struct net_device *ndev)
vlsi_irda_dev_t *idev = ndev->priv;
struct pci_dev *pdev = idev->pdev;
- SET_MODULE_OWNER(ndev);
-
ndev->irq = pdev->irq;
ndev->base_addr = pci_resource_start(pdev,0);
diff --git a/drivers/net/irda/w83977af_ir.c b/drivers/net/irda/w83977af_ir.c
index 5182e80..9fd2451 100644
--- a/drivers/net/irda/w83977af_ir.c
+++ b/drivers/net/irda/w83977af_ir.c
@@ -232,9 +232,6 @@ int w83977af_open(int i, unsigned int iobase, unsigned int irq,
self->rx_buff.data = self->rx_buff.head;
self->netdev = dev;
- /* Keep track of module usage */
- SET_MODULE_OWNER(dev);
-
/* Override the network functions we need to use */
dev->hard_start_xmit = w83977af_hard_xmit;
dev->open = w83977af_net_open;
diff --git a/drivers/net/isa-skeleton.c b/drivers/net/isa-skeleton.c
index 0343f12..5417811 100644
--- a/drivers/net/isa-skeleton.c
+++ b/drivers/net/isa-skeleton.c
@@ -133,8 +133,6 @@ static int __init do_netcard_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) /* Check a single specified location. */
return netcard_probe1(dev, base_addr);
else if (base_addr != 0) /* Don't probe at all. */
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index 991c883..0b63186 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -382,7 +382,6 @@ ixgb_probe(struct pci_dev *pdev,
goto err_alloc_etherdev;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
pci_set_drvdata(pdev, netdev);
diff --git a/drivers/net/ixp2000/enp2611.c b/drivers/net/ixp2000/enp2611.c
index d3f4235..b02a981 100644
--- a/drivers/net/ixp2000/enp2611.c
+++ b/drivers/net/ixp2000/enp2611.c
@@ -210,7 +210,6 @@ static int __init enp2611_init_module(void)
return -ENOMEM;
}
- SET_MODULE_OWNER(nds[i]);
nds[i]->get_stats = enp2611_get_stats;
pm3386_init_port(i);
pm3386_get_mac(i, nds[i]->dev_addr);
diff --git a/drivers/net/jazzsonic.c b/drivers/net/jazzsonic.c
index 75f6f44..2cffb7b 100644
--- a/drivers/net/jazzsonic.c
+++ b/drivers/net/jazzsonic.c
@@ -231,7 +231,6 @@ static int __init jazz_sonic_probe(struct platform_device *pdev)
lp = netdev_priv(dev);
lp->device = &pdev->dev;
SET_NETDEV_DEV(dev, &pdev->dev);
- SET_MODULE_OWNER(dev);
netdev_boot_setup_check(dev);
diff --git a/drivers/net/lance.c b/drivers/net/lance.c
index a4e5fab..7b17212 100644
--- a/drivers/net/lance.c
+++ b/drivers/net/lance.c
@@ -521,7 +521,6 @@ static int __init lance_probe1(struct net_device *dev, int ioaddr, int irq, int
/* We can't allocate dev->priv from alloc_etherdev() because it must
a ISA DMA-able region. */
- SET_MODULE_OWNER(dev);
chipname = chip_table[lance_version].name;
printk("%s: %s at %#3x,", dev->name, chipname, ioaddr);
diff --git a/drivers/net/lguest_net.c b/drivers/net/lguest_net.c
index cab5791..7f34c92 100644
--- a/drivers/net/lguest_net.c
+++ b/drivers/net/lguest_net.c
@@ -460,8 +460,6 @@ static int lguestnet_probe(struct lguest_device *lgdev)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
-
/* Ethernet defaults with some changes */
ether_setup(dev);
dev->set_mac_address = NULL;
diff --git a/drivers/net/lne390.c b/drivers/net/lne390.c
index 0a08d0c..2dd3969 100644
--- a/drivers/net/lne390.c
+++ b/drivers/net/lne390.c
@@ -111,8 +111,6 @@ static int __init do_lne390_probe(struct net_device *dev)
int mem_start = dev->mem_start;
int ret;
- SET_MODULE_OWNER(dev);
-
if (ioaddr > 0x1ff) { /* Check a single specified location. */
if (!request_region(ioaddr, LNE390_IO_EXTENT, DRV_NAME))
return -EBUSY;
diff --git a/drivers/net/mac8390.c b/drivers/net/mac8390.c
index 90b0c3e..9e70074 100644
--- a/drivers/net/mac8390.c
+++ b/drivers/net/mac8390.c
@@ -313,8 +313,6 @@ struct net_device * __init mac8390_probe(int unit)
if (unit >= 0)
sprintf(dev->name, "eth%d", unit);
- SET_MODULE_OWNER(dev);
-
while ((ndev = nubus_find_type(NUBUS_CAT_NETWORK, NUBUS_TYPE_ETHERNET, ndev))) {
/* Have we seen it already? */
if (slots & (1<<ndev->board->slot))
diff --git a/drivers/net/mac89x0.c b/drivers/net/mac89x0.c
index 62c1c62..f6f3fdf 100644
--- a/drivers/net/mac89x0.c
+++ b/drivers/net/mac89x0.c
@@ -191,8 +191,6 @@ struct net_device * __init mac89x0_probe(int unit)
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
-
if (once_is_enough)
goto out;
once_is_enough = 1;
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index a4bb026..3c1b2f9 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -1088,7 +1088,6 @@ static int __devinit macb_probe(struct platform_device *pdev)
goto err_out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* TODO: Actually, we have some interesting features... */
diff --git a/drivers/net/mace.c b/drivers/net/mace.c
index 52b9332..de3b002 100644
--- a/drivers/net/mace.c
+++ b/drivers/net/mace.c
@@ -143,7 +143,6 @@ static int __devinit mace_probe(struct macio_dev *mdev, const struct of_device_i
rc = -ENOMEM;
goto err_release;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &mdev->ofdev.dev);
mp = dev->priv;
diff --git a/drivers/net/macmace.c b/drivers/net/macmace.c
index 9a343b9..5d2daa2 100644
--- a/drivers/net/macmace.c
+++ b/drivers/net/macmace.c
@@ -210,7 +210,6 @@ static int __devinit mace_probe(struct platform_device *pdev)
mp->device = &pdev->dev;
SET_NETDEV_DEV(dev, &pdev->dev);
- SET_MODULE_OWNER(dev);
dev->base_addr = (u32)MACE_BASE;
mp->mace = (volatile struct mace *) MACE_BASE;
diff --git a/drivers/net/macsonic.c b/drivers/net/macsonic.c
index e9ecdbf..a55a839 100644
--- a/drivers/net/macsonic.c
+++ b/drivers/net/macsonic.c
@@ -576,7 +576,6 @@ static int __init mac_sonic_probe(struct platform_device *pdev)
lp = netdev_priv(dev);
lp->device = &pdev->dev;
SET_NETDEV_DEV(dev, &pdev->dev);
- SET_MODULE_OWNER(dev);
/* This will catch fatal stuff like -ENOMEM as well as success */
err = mac_onboard_sonic_probe(dev);
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 1799eee..f5fa185 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -1432,7 +1432,6 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
mv643xx_eth_update_pscr(dev, &cmd);
mv643xx_set_settings(dev, &cmd);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
err = register_netdev(dev);
if (err)
diff --git a/drivers/net/mvme147.c b/drivers/net/mvme147.c
index e246d00..837ad0f 100644
--- a/drivers/net/mvme147.c
+++ b/drivers/net/mvme147.c
@@ -79,8 +79,6 @@ struct net_device * __init mvme147lance_probe(int unit)
if (unit >= 0)
sprintf(dev->name, "eth%d", unit);
- SET_MODULE_OWNER(dev);
-
/* Fill the dev fields */
dev->base_addr = (unsigned long)MVME147_LANCE_BASE;
dev->open = &m147lance_open;
diff --git a/drivers/net/myri_sbus.c b/drivers/net/myri_sbus.c
index 13444da..331b76c 100644
--- a/drivers/net/myri_sbus.c
+++ b/drivers/net/myri_sbus.c
@@ -908,7 +908,6 @@ static int __devinit myri_ether_init(struct sbus_dev *sdev)
if (version_printed++ == 0)
printk(version);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &sdev->ofdev.dev);
mp = (struct myri_eth *) dev->priv;
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index b47a12d..c5e68ed 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -835,7 +835,6 @@ static int __devinit natsemi_probe1 (struct pci_dev *pdev,
dev = alloc_etherdev(sizeof (struct netdev_private));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
i = pci_request_regions(pdev, DRV_NAME);
diff --git a/drivers/net/ne-h8300.c b/drivers/net/ne-h8300.c
index 38fd525..a0f3536 100644
--- a/drivers/net/ne-h8300.c
+++ b/drivers/net/ne-h8300.c
@@ -149,8 +149,6 @@ static int __init do_ne_probe(struct net_device *dev)
{
unsigned int base_addr = dev->base_addr;
- SET_MODULE_OWNER(dev);
-
/* First check any supplied i/o locations. User knows best. <cough> */
if (base_addr > 0x1ff) /* Check a single specified location. */
return ne_probe1(dev, base_addr);
diff --git a/drivers/net/ne.c b/drivers/net/ne.c
index c9f74bf..c81befc 100644
--- a/drivers/net/ne.c
+++ b/drivers/net/ne.c
@@ -191,8 +191,6 @@ static int __init do_ne_probe(struct net_device *dev)
int orig_irq = dev->irq;
#endif
- SET_MODULE_OWNER(dev);
-
/* First check any supplied i/o locations. User knows best. <cough> */
if (base_addr > 0x1ff) /* Check a single specified location. */
return ne_probe1(dev, base_addr);
diff --git a/drivers/net/ne2.c b/drivers/net/ne2.c
index 089b5bb..d1a4b8d 100644
--- a/drivers/net/ne2.c
+++ b/drivers/net/ne2.c
@@ -251,8 +251,6 @@ static int __init do_ne2_probe(struct net_device *dev)
int i;
int adapter_found = 0;
- SET_MODULE_OWNER(dev);
-
/* Do not check any supplied i/o locations.
POS registers usually don't fail :) */
diff --git a/drivers/net/ne2k-pci.c b/drivers/net/ne2k-pci.c
index f81d939..230a0f1 100644
--- a/drivers/net/ne2k-pci.c
+++ b/drivers/net/ne2k-pci.c
@@ -265,7 +265,6 @@ static int __devinit ne2k_pci_init_one (struct pci_dev *pdev,
dev_err(&pdev->dev, "cannot allocate ethernet device\n");
goto err_out_free_res;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* Reset card. Who knows what dain-bramaged state it was left in. */
diff --git a/drivers/net/ne3210.c b/drivers/net/ne3210.c
index 1a6fed7..b1bf833 100644
--- a/drivers/net/ne3210.c
+++ b/drivers/net/ne3210.c
@@ -106,7 +106,6 @@ static int __init ne3210_eisa_probe (struct device *device)
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, device);
device->driver_data = dev;
ioaddr = edev->base_addr;
diff --git a/drivers/net/netx-eth.c b/drivers/net/netx-eth.c
index 2b8da0a..6fee405 100644
--- a/drivers/net/netx-eth.c
+++ b/drivers/net/netx-eth.c
@@ -390,7 +390,6 @@ static int netx_eth_drv_probe(struct platform_device *pdev)
ret = -ENOMEM;
goto exit;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
platform_set_drvdata(pdev, ndev);
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 3122d01..d42b96e 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -326,7 +326,6 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_out_free_res;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
adapter = netdev->priv;
diff --git a/drivers/net/ni5010.c b/drivers/net/ni5010.c
index 22a3b3d..cc1d09a 100644
--- a/drivers/net/ni5010.c
+++ b/drivers/net/ni5010.c
@@ -135,8 +135,6 @@ struct net_device * __init ni5010_probe(int unit)
PRINTK2((KERN_DEBUG "%s: Entering ni5010_probe\n", dev->name));
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) { /* Check a single specified location. */
err = ni5010_probe1(dev, io);
} else if (io != 0) { /* Don't probe at all. */
diff --git a/drivers/net/ni52.c b/drivers/net/ni52.c
index 5e7999d..6b3384a 100644
--- a/drivers/net/ni52.c
+++ b/drivers/net/ni52.c
@@ -382,8 +382,6 @@ struct net_device * __init ni52_probe(int unit)
memend = dev->mem_end;
}
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) { /* Check a single specified location. */
err = ni52_probe1(dev, io);
} else if (io > 0) { /* Don't probe at all. */
diff --git a/drivers/net/ni65.c b/drivers/net/ni65.c
index 4ef5fe3..0976852 100644
--- a/drivers/net/ni65.c
+++ b/drivers/net/ni65.c
@@ -550,7 +550,6 @@ static int __init ni65_probe1(struct net_device *dev,int ioaddr)
}
dev->base_addr = ioaddr;
- SET_MODULE_OWNER(dev);
dev->open = ni65_open;
dev->stop = ni65_close;
dev->hard_start_xmit = ni65_send_packet;
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c
index ea80e6c..055f197 100644
--- a/drivers/net/ns83820.c
+++ b/drivers/net/ns83820.c
@@ -1843,7 +1843,6 @@ static int __devinit ns83820_init_one(struct pci_dev *pci_dev, const struct pci_
spin_lock_init(&dev->misc_lock);
dev->pci_dev = pci_dev;
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pci_dev->dev);
INIT_WORK(&dev->tq_refill, queue_refill);
diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c
index 0b3066a..4d6a7c8 100644
--- a/drivers/net/pasemi_mac.c
+++ b/drivers/net/pasemi_mac.c
@@ -1089,7 +1089,6 @@ pasemi_mac_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto out_disable_device;
}
- SET_MODULE_OWNER(dev);
pci_set_drvdata(pdev, dev);
SET_NETDEV_DEV(dev, &pdev->dev);
diff --git a/drivers/net/pci-skeleton.c b/drivers/net/pci-skeleton.c
index 3cdbe11..a4b1648 100644
--- a/drivers/net/pci-skeleton.c
+++ b/drivers/net/pci-skeleton.c
@@ -604,7 +604,6 @@ static int __devinit netdrv_init_board (struct pci_dev *pdev,
DPRINTK ("EXIT, returning -ENOMEM\n");
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
tp = dev->priv;
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index 503f268..2136c80 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -197,7 +197,6 @@ static int tc589_probe(struct pcmcia_device *link)
link->conf.ConfigIndex = 1;
/* The EL3-specific entries in the device structure. */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &el3_start_xmit;
dev->set_config = &el3_config;
dev->get_stats = &el3_get_stats;
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index 50dff1b..a9db59d 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -1728,9 +1728,6 @@ static void axdev_setup(struct net_device *dev)
if (ei_debug > 1)
printk(version_8390);
- SET_MODULE_OWNER(dev);
-
-
ei_local = (struct ei_device *)netdev_priv(dev);
spin_lock_init(&ei_local->page_lock);
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index 85d5f2c..7f29e95 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -259,7 +259,6 @@ static int fmvj18x_probe(struct pcmcia_device *link)
link->conf.IntType = INT_MEMORY_AND_IO;
/* The FMVJ18x specific entries in the device structure. */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &fjn_start_xmit;
dev->set_config = &fjn_config;
dev->get_stats = &fjn_get_stats;
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index 997c2d0..1bb2ffa 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -474,7 +474,6 @@ static int nmclan_probe(struct pcmcia_device *link)
lp->tx_free_frames=AM2150_MAX_TX_FRAMES;
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &mace_start_xmit;
dev->set_config = &mace_config;
dev->get_stats = &mace_get_stats;
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index 63de89e..49857c1 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -259,7 +259,6 @@ static int pcnet_probe(struct pcmcia_device *link)
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
- SET_MODULE_OWNER(dev);
dev->open = &pcnet_open;
dev->stop = &pcnet_close;
dev->set_config = &set_config;
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index af6728c..b25f198 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -336,7 +336,6 @@ static int smc91c92_probe(struct pcmcia_device *link)
link->conf.IntType = INT_MEMORY_AND_IO;
/* The SMC91c92-specific entries in the device structure. */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &smc_start_xmit;
dev->get_stats = &smc_get_stats;
dev->set_config = &s9k_config;
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index 258d6f3..d5c2d2c 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -580,7 +580,6 @@ xirc2ps_probe(struct pcmcia_device *link)
link->irq.Instance = dev;
/* Fill in card specific entries */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &do_start_xmit;
dev->set_config = &do_config;
dev->get_stats = &do_get_stats;
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index e6a6753..42c3b3d 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -1817,7 +1817,6 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
spin_lock_init(&lp->lock);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
lp->name = chipname;
lp->shared_irq = shared;
diff --git a/drivers/net/plip.c b/drivers/net/plip.c
index 8754cf3..2cfab4b 100644
--- a/drivers/net/plip.c
+++ b/drivers/net/plip.c
@@ -1278,7 +1278,6 @@ static void plip_attach (struct parport *port)
strcpy(dev->name, name);
- SET_MODULE_OWNER(dev);
dev->irq = port->irq;
dev->base_addr = port->base;
if (port->irq == -1) {
diff --git a/drivers/net/ps3_gelic_net.c b/drivers/net/ps3_gelic_net.c
index e565039..f6c1c8d 100644
--- a/drivers/net/ps3_gelic_net.c
+++ b/drivers/net/ps3_gelic_net.c
@@ -1382,7 +1382,6 @@ static int gelic_net_setup_netdev(struct gelic_net_card *card)
int status;
u64 v1, v2;
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &card->dev->core);
spin_lock_init(&card->tx_dma_lock);
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 69da95b..3fb2bcb 100755
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -4009,7 +4009,6 @@ static int __devinit ql3xxx_probe(struct pci_dev *pdev,
goto err_out_free_regions;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
pci_set_drvdata(pdev, ndev);
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index b85ab4a..0170c07 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -1502,7 +1502,6 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
goto out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
tp = netdev_priv(dev);
tp->dev = dev;
diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c
index df6b738..25a9dd8 100644
--- a/drivers/net/rionet.c
+++ b/drivers/net/rionet.c
@@ -471,8 +471,6 @@ static int rionet_setup_netdev(struct rio_mport *mport)
ndev->features = NETIF_F_LLTX;
SET_ETHTOOL_OPS(ndev, &rionet_ethtool_ops);
- SET_MODULE_OWNER(ndev);
-
spin_lock_init(&rnet->lock);
spin_lock_init(&rnet->tx_lock);
diff --git a/drivers/net/rrunner.c b/drivers/net/rrunner.c
index 5c2e41f..41f877d 100644
--- a/drivers/net/rrunner.c
+++ b/drivers/net/rrunner.c
@@ -109,7 +109,6 @@ static int __devinit rr_init_one(struct pci_dev *pdev,
rrpriv = netdev_priv(dev);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_request_regions(pdev, "rrunner")) {
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 24feb00..4e8e401 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -7076,7 +7076,6 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
pci_set_master(pdev);
pci_set_drvdata(pdev, dev);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* Private member variable initialized to s2io NIC structure */
diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c
index 1de3eec..aeaa75f 100644
--- a/drivers/net/sb1000.c
+++ b/drivers/net/sb1000.c
@@ -189,7 +189,6 @@ sb1000_probe_one(struct pnp_dev *pdev, const struct pnp_device_id *id)
*/
dev->flags = IFF_POINTOPOINT|IFF_NOARP;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (sb1000_debug > 0)
diff --git a/drivers/net/shaper.c b/drivers/net/shaper.c
index 4c3d98f..700d39d 100644
--- a/drivers/net/shaper.c
+++ b/drivers/net/shaper.c
@@ -532,8 +532,6 @@ static void __init shaper_setup(struct net_device *dev)
* Set up the shaper.
*/
- SET_MODULE_OWNER(dev);
-
shaper_init_priv(dev);
dev->open = shaper_open;
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index d470b19..452cf93 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -1436,7 +1436,6 @@ static struct net_device * __devinit sis190_init_board(struct pci_dev *pdev)
goto err_out_0;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
tp = netdev_priv(dev);
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index 7c6e480..e1930c3 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -430,7 +430,6 @@ static int __devinit sis900_probe(struct pci_dev *pci_dev,
net_dev = alloc_etherdev(sizeof(struct sis900_private));
if (!net_dev)
return -ENOMEM;
- SET_MODULE_OWNER(net_dev);
SET_NETDEV_DEV(net_dev, &pci_dev->dev);
/* We do a request_region() to register /proc/ioports info. */
diff --git a/drivers/net/skfp/skfddi.c b/drivers/net/skfp/skfddi.c
index a7ef6c8..ca50870 100644
--- a/drivers/net/skfp/skfddi.c
+++ b/drivers/net/skfp/skfddi.c
@@ -262,7 +262,6 @@ static int skfp_init_one(struct pci_dev *pdev,
dev->do_ioctl = &skfp_ioctl;
dev->header_cache_update = NULL; /* not supported */
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* Initialize board structure with bus-specific info */
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index e3d8520..babb1bf 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -3552,7 +3552,6 @@ static struct net_device *skge_devinit(struct skge_hw *hw, int port,
return NULL;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &hw->pdev->dev);
dev->open = skge_up;
dev->stop = skge_down;
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index e6d937e..c557018 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -3756,7 +3756,6 @@ static __devinit struct net_device *sky2_init_netdev(struct sky2_hw *hw,
return NULL;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &hw->pdev->dev);
dev->irq = hw->pdev->irq;
dev->open = sky2_up;
diff --git a/drivers/net/slip.c b/drivers/net/slip.c
index 3fd4735..335b7cc 100644
--- a/drivers/net/slip.c
+++ b/drivers/net/slip.c
@@ -639,8 +639,6 @@ static void sl_setup(struct net_device *dev)
dev->addr_len = 0;
dev->tx_queue_len = 10;
- SET_MODULE_OWNER(dev);
-
/* New-style flags. */
dev->flags = IFF_NOARP|IFF_POINTOPOINT|IFF_MULTICAST;
}
diff --git a/drivers/net/smc-mca.c b/drivers/net/smc-mca.c
index ae1ae34..3b43fa8 100644
--- a/drivers/net/smc-mca.c
+++ b/drivers/net/smc-mca.c
@@ -264,7 +264,6 @@ static int __init ultramca_probe(struct device *gen_dev)
if(!dev)
return -ENODEV;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, gen_dev);
mca_device_set_name(mca_dev, smc_mca_adapter_names[adapter]);
mca_device_set_claim(mca_dev, 1);
diff --git a/drivers/net/smc-ultra.c b/drivers/net/smc-ultra.c
index a52b22d..d02bd7b 100644
--- a/drivers/net/smc-ultra.c
+++ b/drivers/net/smc-ultra.c
@@ -142,8 +142,6 @@ static int __init do_ultra_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
#ifdef CONFIG_NET_POLL_CONTROLLER
dev->poll_controller = &ultra_poll;
#endif
diff --git a/drivers/net/smc-ultra32.c b/drivers/net/smc-ultra32.c
index 88a30e5..043a500 100644
--- a/drivers/net/smc-ultra32.c
+++ b/drivers/net/smc-ultra32.c
@@ -132,8 +132,6 @@ struct net_device * __init ultra32_probe(int unit)
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
-
irq = dev->irq;
/* EISA spec allows for up to 16 slots, but 8 is typical. */
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index db43e42..5f03e44 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -2181,7 +2181,6 @@ static int smc911x_drv_probe(struct platform_device *pdev)
ret = -ENOMEM;
goto release_1;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
ndev->dma = (unsigned char)-1;
diff --git a/drivers/net/smc9194.c b/drivers/net/smc9194.c
index 36c1eba..0a79516 100644
--- a/drivers/net/smc9194.c
+++ b/drivers/net/smc9194.c
@@ -744,8 +744,6 @@ struct net_device * __init smc_init(int unit)
irq = dev->irq;
}
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) { /* Check a single specified location. */
err = smc_probe(dev, io);
} else if (io != 0) { /* Don't probe at all. */
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index 01cc3c7..c5837ab 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -2212,7 +2212,6 @@ static int smc_drv_probe(struct platform_device *pdev)
ret = -ENOMEM;
goto out_release_io;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
ndev->dma = (unsigned char)-1;
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index 590b12c..4557e27 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -2337,7 +2337,6 @@ spider_net_setup_netdev(struct spider_net_card *card)
struct sockaddr addr;
const u8 *mac;
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &card->pdev->dev);
pci_set_drvdata(card->pdev, netdev);
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c
index 8b64786..9c2a2dc 100644
--- a/drivers/net/starfire.c
+++ b/drivers/net/starfire.c
@@ -720,7 +720,6 @@ static int __devinit starfire_init_one(struct pci_dev *pdev,
printk(KERN_ERR DRV_NAME " %d: cannot alloc etherdev, aborting\n", card_idx);
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
irq = pdev->irq;
diff --git a/drivers/net/stnic.c b/drivers/net/stnic.c
index e6f9042..b65be5d 100644
--- a/drivers/net/stnic.c
+++ b/drivers/net/stnic.c
@@ -112,7 +112,6 @@ static int __init stnic_probe(void)
dev = alloc_ei_netdev();
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
#ifdef CONFIG_SH_STANDARD_BIOS
sh_bios_get_node_addr (stnic_eadr);
diff --git a/drivers/net/sun3_82586.c b/drivers/net/sun3_82586.c
index b77ab6e..9b2a7f7 100644
--- a/drivers/net/sun3_82586.c
+++ b/drivers/net/sun3_82586.c
@@ -311,7 +311,6 @@ struct net_device * __init sun3_82586_probe(int unit)
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
dev->irq = IE_IRQ;
dev->base_addr = ioaddr;
diff --git a/drivers/net/sun3lance.c b/drivers/net/sun3lance.c
index f1548c0..c67632d 100644
--- a/drivers/net/sun3lance.c
+++ b/drivers/net/sun3lance.c
@@ -274,7 +274,6 @@ struct net_device * __init sun3lance_probe(int unit)
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
if (!lance_probe(dev))
goto out;
diff --git a/drivers/net/sunbmac.c b/drivers/net/sunbmac.c
index b3e0158..4ba3e48 100644
--- a/drivers/net/sunbmac.c
+++ b/drivers/net/sunbmac.c
@@ -1087,7 +1087,6 @@ static int __init bigmac_ether_init(struct sbus_dev *qec_sdev)
dev = alloc_etherdev(sizeof(struct bigmac));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
if (version_printed++ == 0)
printk(KERN_INFO "%s", version);
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index a8f2af8..3c553dc 100644
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -485,7 +485,6 @@ static int __devinit sundance_probe1 (struct pci_dev *pdev,
dev = alloc_etherdev(sizeof(*np));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_request_regions(pdev, DRV_NAME))
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index 4328038..6839afe 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -3026,7 +3026,6 @@ static int __devinit gem_init_one(struct pci_dev *pdev,
err = -ENOMEM;
goto err_disable_device;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
gp = dev->priv;
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index 8b35f13..170580c 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2680,7 +2680,6 @@ static int __devinit happy_meal_sbus_probe_one(struct sbus_dev *sdev, int is_qfe
dev = alloc_etherdev(sizeof(struct happy_meal));
if (!dev)
goto err_out;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &sdev->ofdev.dev);
if (hme_version_printed++ == 0)
@@ -3022,7 +3021,6 @@ static int __devinit happy_meal_pci_probe(struct pci_dev *pdev,
err = -ENOMEM;
if (!dev)
goto err_out;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (hme_version_printed++ == 0)
diff --git a/drivers/net/sunlance.c b/drivers/net/sunlance.c
index 68e4f66..3a5a57f 100644
--- a/drivers/net/sunlance.c
+++ b/drivers/net/sunlance.c
@@ -1458,7 +1458,6 @@ no_link_test:
lp->dregs = NULL;
lp->dev = dev;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &sdev->ofdev.dev);
dev->open = &lance_open;
dev->stop = &lance_close;
diff --git a/drivers/net/sunqe.c b/drivers/net/sunqe.c
index 1b65ae8..b5c2974 100644
--- a/drivers/net/sunqe.c
+++ b/drivers/net/sunqe.c
@@ -898,7 +898,6 @@ static int __init qec_ether_init(struct sbus_dev *sdev)
/* Stop this QE. */
qe_stop(qe);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &sdev->ofdev.dev);
dev->open = qe_open;
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c
index ec41469..1948ee4 100644
--- a/drivers/net/tc35815.c
+++ b/drivers/net/tc35815.c
@@ -682,7 +682,6 @@ static int __devinit tc35815_init_one (struct pci_dev *pdev,
dev_err(&pdev->dev, "unable to alloc new ethernet\n");
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
lp = dev->priv;
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 9034a05..36080ad 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -11833,7 +11833,6 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
goto err_out_free_res;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
#if TG3_VLAN_TAG_USED
diff --git a/drivers/net/tlan.c b/drivers/net/tlan.c
index 74eb121..c99ce74 100644
--- a/drivers/net/tlan.c
+++ b/drivers/net/tlan.c
@@ -556,7 +556,6 @@ static int __devinit TLan_probe1(struct pci_dev *pdev,
rc = -ENOMEM;
goto err_out_regions;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
priv = netdev_priv(dev);
diff --git a/drivers/net/tokenring/3c359.c b/drivers/net/tokenring/3c359.c
index 9f1b6ab..4306682 100644
--- a/drivers/net/tokenring/3c359.c
+++ b/drivers/net/tokenring/3c359.c
@@ -344,7 +344,6 @@ static int __devinit xl_probe(struct pci_dev *pdev,
dev->set_multicast_list=&xl_set_rx_mode;
dev->get_stats=&xl_get_stats ;
dev->set_mac_address=&xl_set_mac_address ;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
pci_set_drvdata(pdev,dev) ;
diff --git a/drivers/net/tokenring/abyss.c b/drivers/net/tokenring/abyss.c
index 1bdd3be..22fad51 100644
--- a/drivers/net/tokenring/abyss.c
+++ b/drivers/net/tokenring/abyss.c
@@ -116,8 +116,6 @@ static int __devinit abyss_attach(struct pci_dev *pdev, const struct pci_device_
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
-
if (!request_region(pci_ioaddr, ABYSS_IO_EXTENT, dev->name)) {
ret = -EBUSY;
goto err_out_trdev;
diff --git a/drivers/net/tokenring/lanstreamer.c b/drivers/net/tokenring/lanstreamer.c
index 5d849c0..a3476dc 100644
--- a/drivers/net/tokenring/lanstreamer.c
+++ b/drivers/net/tokenring/lanstreamer.c
@@ -244,7 +244,6 @@ static int __devinit streamer_init_one(struct pci_dev *pdev,
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
streamer_priv = dev->priv;
#if STREAMER_NETWORK_MONITOR
diff --git a/drivers/net/tokenring/madgemc.c b/drivers/net/tokenring/madgemc.c
index f8f4d74..b0d2311 100644
--- a/drivers/net/tokenring/madgemc.c
+++ b/drivers/net/tokenring/madgemc.c
@@ -168,7 +168,6 @@ static int __devinit madgemc_probe(struct device *device)
goto getout;
}
- SET_MODULE_OWNER(dev);
dev->dma = 0;
card = kmalloc(sizeof(struct card_info), GFP_KERNEL);
diff --git a/drivers/net/tokenring/olympic.c b/drivers/net/tokenring/olympic.c
index 09b3cfb..426fc25 100644
--- a/drivers/net/tokenring/olympic.c
+++ b/drivers/net/tokenring/olympic.c
@@ -260,7 +260,6 @@ static int __devinit olympic_probe(struct pci_dev *pdev, const struct pci_device
dev->set_multicast_list=&olympic_set_rx_mode;
dev->get_stats=&olympic_get_stats ;
dev->set_mac_address=&olympic_set_mac_address ;
- SET_MODULE_OWNER(dev) ;
SET_NETDEV_DEV(dev, &pdev->dev);
pci_set_drvdata(pdev,dev) ;
diff --git a/drivers/net/tokenring/proteon.c b/drivers/net/tokenring/proteon.c
index cb7dbb6..85d156d 100644
--- a/drivers/net/tokenring/proteon.c
+++ b/drivers/net/tokenring/proteon.c
@@ -126,7 +126,6 @@ static int __init setup_card(struct net_device *dev, struct device *pdev)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
if (dev->base_addr) /* probe specific location */
err = proteon_probe1(dev, dev->base_addr);
else {
diff --git a/drivers/net/tokenring/skisa.c b/drivers/net/tokenring/skisa.c
index 33afea3..ecbddc8 100644
--- a/drivers/net/tokenring/skisa.c
+++ b/drivers/net/tokenring/skisa.c
@@ -143,7 +143,6 @@ static int __init setup_card(struct net_device *dev, struct device *pdev)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
if (dev->base_addr) /* probe specific location */
err = sk_isa_probe1(dev, dev->base_addr);
else {
diff --git a/drivers/net/tokenring/smctr.c b/drivers/net/tokenring/smctr.c
index f83bb5c..93da3a3 100644
--- a/drivers/net/tokenring/smctr.c
+++ b/drivers/net/tokenring/smctr.c
@@ -3583,8 +3583,6 @@ struct net_device __init *smctr_probe(int unit)
if (!dev)
return ERR_PTR(-ENOMEM);
- SET_MODULE_OWNER(dev);
-
if (unit >= 0) {
sprintf(dev->name, "tr%d", unit);
netdev_boot_setup_check(dev);
diff --git a/drivers/net/tokenring/tmspci.c b/drivers/net/tokenring/tmspci.c
index 3b2f00b..69a4c40 100644
--- a/drivers/net/tokenring/tmspci.c
+++ b/drivers/net/tokenring/tmspci.c
@@ -115,7 +115,6 @@ static int __devinit tms_pci_attach(struct pci_dev *pdev, const struct pci_devic
dev = alloc_trdev(sizeof(struct net_local));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
if (!request_region(pci_ioaddr, TMS_PCI_IO_EXTENT, dev->name)) {
ret = -EBUSY;
diff --git a/drivers/net/tsi108_eth.c b/drivers/net/tsi108_eth.c
index 1aabc91..bb5b1eb 100644
--- a/drivers/net/tsi108_eth.c
+++ b/drivers/net/tsi108_eth.c
@@ -1610,7 +1610,6 @@ tsi108_init_one(struct platform_device *pdev)
*/
dev->features = NETIF_F_HIGHDMA;
- SET_MODULE_OWNER(dev);
spin_lock_init(&data->txlock);
spin_lock_init(&data->misclock);
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c
index d380e0b..bd04e93 100644
--- a/drivers/net/tulip/de2104x.c
+++ b/drivers/net/tulip/de2104x.c
@@ -1944,7 +1944,6 @@ static int __devinit de_init_one (struct pci_dev *pdev,
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
dev->open = de_open;
dev->stop = de_close;
diff --git a/drivers/net/tulip/de4x5.c b/drivers/net/tulip/de4x5.c
index 0990289..ba7f47c 100644
--- a/drivers/net/tulip/de4x5.c
+++ b/drivers/net/tulip/de4x5.c
@@ -1261,7 +1261,6 @@ de4x5_hw_init(struct net_device *dev, u_long iobase, struct device *gendev)
}
/* The DE4X5-specific entries in the device structure. */
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, gendev);
dev->open = &de4x5_open;
dev->hard_start_xmit = &de4x5_queue_pkt;
diff --git a/drivers/net/tulip/dmfe.c b/drivers/net/tulip/dmfe.c
index dab74fe..e2596e9 100644
--- a/drivers/net/tulip/dmfe.c
+++ b/drivers/net/tulip/dmfe.c
@@ -372,7 +372,6 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev,
dev = alloc_etherdev(sizeof(*db));
if (dev == NULL)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) {
diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c
index eca984f..6cf6877 100644
--- a/drivers/net/tulip/tulip_core.c
+++ b/drivers/net/tulip/tulip_core.c
@@ -1337,7 +1337,6 @@ static int __devinit tulip_init_one (struct pci_dev *pdev,
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_resource_len (pdev, 0) < tulip_tbl[chip_idx].io_size) {
printk (KERN_ERR PFX "%s: I/O region (0x%llx@0x%llx) too small, "
diff --git a/drivers/net/tulip/uli526x.c b/drivers/net/tulip/uli526x.c
index ca2548e..97809aa 100644
--- a/drivers/net/tulip/uli526x.c
+++ b/drivers/net/tulip/uli526x.c
@@ -268,7 +268,6 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev,
dev = alloc_etherdev(sizeof(*db));
if (dev == NULL)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) {
diff --git a/drivers/net/tulip/winbond-840.c b/drivers/net/tulip/winbond-840.c
index 5824f6a..396f845 100644
--- a/drivers/net/tulip/winbond-840.c
+++ b/drivers/net/tulip/winbond-840.c
@@ -370,7 +370,6 @@ static int __devinit w840_probe1 (struct pci_dev *pdev,
dev = alloc_etherdev(sizeof(*np));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_request_regions(pdev, DRV_NAME))
diff --git a/drivers/net/tulip/xircom_cb.c b/drivers/net/tulip/xircom_cb.c
index 16a54e6..6b8fd05 100644
--- a/drivers/net/tulip/xircom_cb.c
+++ b/drivers/net/tulip/xircom_cb.c
@@ -252,7 +252,6 @@ static int __devinit xircom_probe(struct pci_dev *pdev, const struct pci_device_
goto tx_buf_fail;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
diff --git a/drivers/net/tulip/xircom_tulip_cb.c b/drivers/net/tulip/xircom_tulip_cb.c
index fc439f3..c3f8e30 100644
--- a/drivers/net/tulip/xircom_tulip_cb.c
+++ b/drivers/net/tulip/xircom_tulip_cb.c
@@ -547,7 +547,6 @@ static int __devinit xircom_init_one(struct pci_dev *pdev, const struct pci_devi
printk (KERN_ERR DRV_NAME "%d: cannot alloc etherdev, aborting\n", board_idx);
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
dev->base_addr = ioaddr;
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 62b2b30..6c58d45 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -434,7 +434,6 @@ static void tun_setup(struct net_device *dev)
tun->owner = -1;
tun->group = -1;
- SET_MODULE_OWNER(dev);
dev->open = tun_net_open;
dev->hard_start_xmit = tun_net_xmit;
dev->stop = tun_net_close;
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index 0358720..bfdd6c4 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -2340,7 +2340,6 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
err = -ENOMEM;
goto error_out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
err = pci_enable_device(pdev);
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 12e01b2..37f0d1c 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3954,7 +3954,6 @@ static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *ma
/* Set the dev->base_addr to the gfar reg region */
dev->base_addr = (unsigned long)(ug_info->uf_info.regs);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, device);
/* Fill in the dev structure */
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index 524dc5f..58a53a6 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -1152,8 +1152,6 @@ err_fw:
INIT_DELAYED_WORK(&kaweth->lowmem_work, kaweth_resubmit_tl);
- SET_MODULE_OWNER(netdev);
-
usb_set_intfdata(intf, kaweth);
#if 0
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
index 04cba6b..e9419f6 100644
--- a/drivers/net/usb/pegasus.c
+++ b/drivers/net/usb/pegasus.c
@@ -1322,7 +1322,6 @@ static int pegasus_probe(struct usb_interface *intf,
pegasus->intf = intf;
pegasus->usb = dev;
pegasus->net = net;
- SET_MODULE_OWNER(net);
net->open = pegasus_open;
net->stop = pegasus_close;
net->watchdog_timeo = PEGASUS_TX_TIMEOUT;
diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c
index fa598f0..5d350be 100644
--- a/drivers/net/usb/rtl8150.c
+++ b/drivers/net/usb/rtl8150.c
@@ -918,7 +918,6 @@ static int rtl8150_probe(struct usb_interface *intf,
dev->udev = udev;
dev->netdev = netdev;
- SET_MODULE_OWNER(netdev);
netdev->open = rtl8150_open;
netdev->stop = rtl8150_close;
netdev->do_ioctl = rtl8150_ioctl;
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index 37bf4f2..a702b5f 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1158,7 +1158,6 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
init_timer (&dev->delay);
mutex_init (&dev->phy_mutex);
- SET_MODULE_OWNER (net);
dev->net = net;
strcpy (net->name, "usb%d");
memcpy (net->dev_addr, node_id, sizeof node_id);
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index b56dff2..0a3ac01 100644
--- a/drivers/net/via-rhine.c
+++ b/drivers/net/via-rhine.c
@@ -703,7 +703,6 @@ static int __devinit rhine_init_one(struct pci_dev *pdev,
printk(KERN_ERR "alloc_etherdev failed\n");
goto err_out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
rp = netdev_priv(dev);
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index 93574ad..3b04c3e 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -712,7 +712,6 @@ static int __devinit velocity_found1(struct pci_dev *pdev, const struct pci_devi
/* Chain it all together */
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
vptr = netdev_priv(dev);
diff --git a/drivers/net/wan/c101.c b/drivers/net/wan/c101.c
index 8ead774..c4c8eab 100644
--- a/drivers/net/wan/c101.c
+++ b/drivers/net/wan/c101.c
@@ -363,7 +363,6 @@ static int __init c101_run(unsigned long irq, unsigned long winbase)
hdlc = dev_to_hdlc(dev);
spin_lock_init(&card->lock);
- SET_MODULE_OWNER(dev);
dev->irq = irq;
dev->mem_start = winbase;
dev->mem_end = winbase + C101_MAPPED_RAM_SIZE - 1;
diff --git a/drivers/net/wan/cycx_x25.c b/drivers/net/wan/cycx_x25.c
index a8af28b..46e0531 100644
--- a/drivers/net/wan/cycx_x25.c
+++ b/drivers/net/wan/cycx_x25.c
@@ -508,7 +508,6 @@ static int cycx_netdevice_init(struct net_device *dev)
/* Set transmit buffer queue length */
dev->tx_queue_len = 10;
- SET_MODULE_OWNER(dev);
/* Initialize socket buffers */
cycx_x25_set_chan_state(dev, WAN_DISCONNECTED);
diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c
index 50d2f91..33dc713 100644
--- a/drivers/net/wan/dscc4.c
+++ b/drivers/net/wan/dscc4.c
@@ -925,7 +925,6 @@ static int dscc4_found1(struct pci_dev *pdev, void __iomem *ioaddr)
d->do_ioctl = dscc4_ioctl;
d->tx_timeout = dscc4_tx_timeout;
d->watchdog_timeo = TX_TIMEOUT;
- SET_MODULE_OWNER(d);
SET_NETDEV_DEV(d, &pdev->dev);
dpriv->dev_id = i;
diff --git a/drivers/net/wan/hostess_sv11.c b/drivers/net/wan/hostess_sv11.c
index bf5f8d9..83dbc92 100644
--- a/drivers/net/wan/hostess_sv11.c
+++ b/drivers/net/wan/hostess_sv11.c
@@ -241,8 +241,6 @@ static struct sv11_device *sv11_init(int iobase, int irq)
if(!sv->netdev.dev)
goto fail2;
- SET_MODULE_OWNER(sv->netdev.dev);
-
dev=&sv->sync;
/*
diff --git a/drivers/net/wan/lapbether.c b/drivers/net/wan/lapbether.c
index 6c302e9..519489c 100644
--- a/drivers/net/wan/lapbether.c
+++ b/drivers/net/wan/lapbether.c
@@ -326,7 +326,6 @@ static void lapbeth_setup(struct net_device *dev)
dev->hard_header_len = 3;
dev->mtu = 1000;
dev->addr_len = 0;
- SET_MODULE_OWNER(dev);
}
/*
diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c
index ae132c1..5ea8772 100644
--- a/drivers/net/wan/lmc/lmc_main.c
+++ b/drivers/net/wan/lmc/lmc_main.c
@@ -883,7 +883,6 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
dev->base_addr = pci_resource_start(pdev, 0);
dev->irq = pdev->irq;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/*
diff --git a/drivers/net/wan/n2.c b/drivers/net/wan/n2.c
index cbdf0b7..0a566b0 100644
--- a/drivers/net/wan/n2.c
+++ b/drivers/net/wan/n2.c
@@ -459,7 +459,6 @@ static int __init n2_run(unsigned long io, unsigned long irq,
port->log_node = 1;
spin_lock_init(&port->lock);
- SET_MODULE_OWNER(dev);
dev->irq = irq;
dev->mem_start = winbase;
dev->mem_end = winbase + USE_WINDOWSIZE - 1;
diff --git a/drivers/net/wan/pc300too.c b/drivers/net/wan/pc300too.c
index 6353cb5..bf1b015 100644
--- a/drivers/net/wan/pc300too.c
+++ b/drivers/net/wan/pc300too.c
@@ -468,7 +468,6 @@ static int __devinit pc300_pci_init_one(struct pci_dev *pdev,
port->phy_node = i;
spin_lock_init(&port->lock);
- SET_MODULE_OWNER(dev);
dev->irq = card->irq;
dev->mem_start = ramphys;
dev->mem_end = ramphys + ramsize - 1;
diff --git a/drivers/net/wan/pci200syn.c b/drivers/net/wan/pci200syn.c
index 092e51d..b595b64 100644
--- a/drivers/net/wan/pci200syn.c
+++ b/drivers/net/wan/pci200syn.c
@@ -415,7 +415,6 @@ static int __devinit pci200_pci_init_one(struct pci_dev *pdev,
port->phy_node = i;
spin_lock_init(&port->lock);
- SET_MODULE_OWNER(dev);
dev->irq = card->irq;
dev->mem_start = ramphys;
dev->mem_end = ramphys + ramsize - 1;
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index 1cc18e7..13a17e8 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -215,8 +215,6 @@ static void __init sbni_devsetup(struct net_device *dev)
dev->get_stats = &sbni_get_stats;
dev->set_multicast_list = &set_multicast_list;
dev->do_ioctl = &sbni_ioctl;
-
- SET_MODULE_OWNER( dev );
}
int __init sbni_probe(int unit)
diff --git a/drivers/net/wan/sdla.c b/drivers/net/wan/sdla.c
index 792e588..b39a541 100644
--- a/drivers/net/wan/sdla.c
+++ b/drivers/net/wan/sdla.c
@@ -1603,7 +1603,6 @@ static void setup_sdla(struct net_device *dev)
netdev_boot_setup_check(dev);
- SET_MODULE_OWNER(dev);
dev->flags = 0;
dev->type = 0xFFFF;
dev->hard_header_len = 0;
diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c
index 3c78f98..8e320b7 100644
--- a/drivers/net/wan/wanxl.c
+++ b/drivers/net/wan/wanxl.c
@@ -779,7 +779,6 @@ static int __devinit wanxl_pci_init_one(struct pci_dev *pdev,
port->dev = dev;
hdlc = dev_to_hdlc(dev);
spin_lock_init(&port->lock);
- SET_MODULE_OWNER(dev);
dev->tx_queue_len = 50;
dev->do_ioctl = wanxl_ioctl;
dev->open = wanxl_open;
diff --git a/drivers/net/wd.c b/drivers/net/wd.c
index a032681..cef3658 100644
--- a/drivers/net/wd.c
+++ b/drivers/net/wd.c
@@ -93,8 +93,6 @@ static int __init do_wd_probe(struct net_device *dev)
int mem_start = dev->mem_start;
int mem_end = dev->mem_end;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) { /* Check a user specified location. */
r = request_region(base_addr, WD_IO_EXTENT, "wd-probe");
if ( r == NULL)
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index ee1cc14..1429706 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -2870,7 +2870,6 @@ static struct net_device *_init_airo_card( unsigned short irq, int port,
dev->base_addr = port;
SET_NETDEV_DEV(dev, dmdev);
- SET_MODULE_OWNER(dev);
reset_card (dev, 1);
msleep(400);
diff --git a/drivers/net/wireless/airport.c b/drivers/net/wireless/airport.c
index 7d5b8c2..6f7eb9f 100644
--- a/drivers/net/wireless/airport.c
+++ b/drivers/net/wireless/airport.c
@@ -197,7 +197,6 @@ airport_attach(struct macio_dev *mdev, const struct of_device_id *match)
return -EBUSY;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &mdev->ofdev.dev);
macio_set_drvdata(mdev, dev);
diff --git a/drivers/net/wireless/arlan-main.c b/drivers/net/wireless/arlan-main.c
index 498e848..3eaaab0 100644
--- a/drivers/net/wireless/arlan-main.c
+++ b/drivers/net/wireless/arlan-main.c
@@ -1792,8 +1792,6 @@ struct net_device * __init arlan_probe(int unit)
if (!dev)
return ERR_PTR(-ENOMEM);
- SET_MODULE_OWNER(dev);
-
if (unit >= 0) {
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index 51a7db5..47dbdf9 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -1603,7 +1603,6 @@ struct net_device *init_atmel_card(unsigned short irq, unsigned long port,
dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2],
dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5] );
- SET_MODULE_OWNER(dev);
return dev;
err_out_res:
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
index c5d6753..618d1a2 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
@@ -4080,7 +4080,6 @@ static int __devinit bcm43xx_init_one(struct pci_dev *pdev,
goto out;
}
/* initialize the net_device struct */
- SET_MODULE_OWNER(net_dev);
SET_NETDEV_DEV(net_dev, &pdev->dev);
net_dev->open = bcm43xx_net_open;
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index 8990585..12a6887 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -6239,8 +6239,6 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
IPW_DEBUG_INFO("Attempting to register device...\n");
- SET_MODULE_OWNER(dev);
-
printk(KERN_INFO DRV_NAME
": Detected Intel PRO/Wireless 2100 Network Connection\n");
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index 61497c4..afad8bb 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -11625,7 +11625,6 @@ static int ipw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto out_destroy_workqueue;
}
- SET_MODULE_OWNER(net_dev);
SET_NETDEV_DEV(net_dev, &pdev->dev);
mutex_lock(&priv->mutex);
diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
index 9f36624..74dc4d4 100644
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
@@ -796,8 +796,6 @@ wlan_private *libertas_add_card(void *card, struct device *dmdev)
priv->mesh_open = 0;
priv->infra_open = 0;
- SET_MODULE_OWNER(dev);
-
/* Setup the OS Interface to our functions */
dev->open = wlan_open;
dev->hard_start_xmit = wlan_pre_start_xmit;
@@ -915,8 +913,6 @@ int libertas_add_mesh(wlan_private *priv, struct device *dev)
mesh_dev->priv = priv;
priv->mesh_dev = mesh_dev;
- SET_MODULE_OWNER(mesh_dev);
-
mesh_dev->open = mesh_open;
mesh_dev->hard_start_xmit = mesh_pre_start_xmit;
mesh_dev->stop = mesh_close;
diff --git a/drivers/net/wireless/netwave_cs.c b/drivers/net/wireless/netwave_cs.c
index 45b00e1..389fdd3 100644
--- a/drivers/net/wireless/netwave_cs.c
+++ b/drivers/net/wireless/netwave_cs.c
@@ -412,7 +412,6 @@ static int netwave_probe(struct pcmcia_device *link)
spin_lock_init(&priv->spinlock);
/* Netwave specific entries in the device structure */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &netwave_start_xmit;
dev->get_stats = &netwave_get_stats;
dev->set_multicast_list = &set_multicast_list;
diff --git a/drivers/net/wireless/orinoco_cs.c b/drivers/net/wireless/orinoco_cs.c
index d1e5022..8b7f576 100644
--- a/drivers/net/wireless/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco_cs.c
@@ -313,7 +313,6 @@ orinoco_cs_config(struct pcmcia_device *link)
/* Ok, we have the configuration, prepare to register the netdev */
dev->base_addr = link->io.BasePort1;
dev->irq = link->irq.AssignedIRQ;
- SET_MODULE_OWNER(dev);
card->node.major = card->node.minor = 0;
SET_NETDEV_DEV(dev, &handle_to_dev(link));
diff --git a/drivers/net/wireless/orinoco_nortel.c b/drivers/net/wireless/orinoco_nortel.c
index eaf3d13..35ec5fc 100644
--- a/drivers/net/wireless/orinoco_nortel.c
+++ b/drivers/net/wireless/orinoco_nortel.c
@@ -193,7 +193,6 @@ static int orinoco_nortel_init_one(struct pci_dev *pdev,
card = priv->card;
card->bridge_io = bridge_io;
card->attr_io = attr_io;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
hermes_struct_init(&priv->hw, hermes_io, HERMES_16BIT_REGSPACING);
diff --git a/drivers/net/wireless/orinoco_pci.c b/drivers/net/wireless/orinoco_pci.c
index 97a8b4f..2547d5d 100644
--- a/drivers/net/wireless/orinoco_pci.c
+++ b/drivers/net/wireless/orinoco_pci.c
@@ -148,7 +148,6 @@ static int orinoco_pci_init_one(struct pci_dev *pdev,
priv = netdev_priv(dev);
card = priv->card;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
hermes_struct_init(&priv->hw, hermes_io, HERMES_32BIT_REGSPACING);
diff --git a/drivers/net/wireless/orinoco_plx.c b/drivers/net/wireless/orinoco_plx.c
index 31162ac..98fe165 100644
--- a/drivers/net/wireless/orinoco_plx.c
+++ b/drivers/net/wireless/orinoco_plx.c
@@ -232,7 +232,6 @@ static int orinoco_plx_init_one(struct pci_dev *pdev,
card = priv->card;
card->bridge_io = bridge_io;
card->attr_io = attr_io;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
hermes_struct_init(&priv->hw, hermes_io, HERMES_16BIT_REGSPACING);
diff --git a/drivers/net/wireless/orinoco_tmd.c b/drivers/net/wireless/orinoco_tmd.c
index 7c7b960..db781e8 100644
--- a/drivers/net/wireless/orinoco_tmd.c
+++ b/drivers/net/wireless/orinoco_tmd.c
@@ -134,7 +134,6 @@ static int orinoco_tmd_init_one(struct pci_dev *pdev,
priv = netdev_priv(dev);
card = priv->card;
card->bridge_io = bridge_io;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
hermes_struct_init(&priv->hw, hermes_io, HERMES_16BIT_REGSPACING);
diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c
index 0847953..219dd65 100644
--- a/drivers/net/wireless/prism54/islpci_dev.c
+++ b/drivers/net/wireless/prism54/islpci_dev.c
@@ -808,7 +808,6 @@ islpci_setup(struct pci_dev *pdev)
if (!ndev)
return ndev;
- SET_MODULE_OWNER(ndev);
pci_set_drvdata(pdev, ndev);
#if defined(SET_NETDEV_DEV)
SET_NETDEV_DEV(ndev, &pdev->dev);
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index 3be6242..7bc2ffa 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -356,7 +356,6 @@ static int ray_probe(struct pcmcia_device *p_dev)
dev->set_multicast_list = &set_multicast_list;
DEBUG(2,"ray_cs ray_attach calling ether_setup.)\n");
- SET_MODULE_OWNER(dev);
dev->init = &ray_dev_init;
dev->open = &ray_open;
dev->stop = &ray_dev_close;
diff --git a/drivers/net/wireless/spectrum_cs.c b/drivers/net/wireless/spectrum_cs.c
index af70460..98df9bc 100644
--- a/drivers/net/wireless/spectrum_cs.c
+++ b/drivers/net/wireless/spectrum_cs.c
@@ -782,7 +782,6 @@ spectrum_cs_config(struct pcmcia_device *link)
/* Ok, we have the configuration, prepare to register the netdev */
dev->base_addr = link->io.BasePort1;
dev->irq = link->irq.AssignedIRQ;
- SET_MODULE_OWNER(dev);
card->node.major = card->node.minor = 0;
/* Reset card and download firmware */
diff --git a/drivers/net/wireless/strip.c b/drivers/net/wireless/strip.c
index ef32a5c..7a3bf28 100644
--- a/drivers/net/wireless/strip.c
+++ b/drivers/net/wireless/strip.c
@@ -2507,8 +2507,6 @@ static void strip_dev_setup(struct net_device *dev)
* Finish setting up the DEVICE info.
*/
- SET_MODULE_OWNER(dev);
-
dev->trans_start = 0;
dev->last_rx = 0;
dev->tx_queue_len = 30; /* Drop after 30 frames queued */
diff --git a/drivers/net/wireless/wavelan.c b/drivers/net/wireless/wavelan.c
index 1cf090d..b876bf6 100644
--- a/drivers/net/wireless/wavelan.c
+++ b/drivers/net/wireless/wavelan.c
@@ -4177,7 +4177,6 @@ static int __init wavelan_config(struct net_device *dev, unsigned short ioaddr)
/* Init spinlock */
spin_lock_init(&lp->spinlock);
- SET_MODULE_OWNER(dev);
dev->open = wavelan_open;
dev->stop = wavelan_close;
dev->hard_start_xmit = wavelan_packet_xmit;
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c
index 5740d4d..1cc5180 100644
--- a/drivers/net/wireless/wavelan_cs.c
+++ b/drivers/net/wireless/wavelan_cs.c
@@ -4577,7 +4577,6 @@ wavelan_probe(struct pcmcia_device *p_dev)
lp->dev = dev;
/* wavelan NET3 callbacks */
- SET_MODULE_OWNER(dev);
dev->open = &wavelan_open;
dev->stop = &wavelan_close;
dev->hard_start_xmit = &wavelan_packet_xmit;
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index c8b5c22..b2f5b1b 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -2004,8 +2004,6 @@ static int wl3501_config(struct pcmcia_device *link)
goto failed;
}
- SET_MODULE_OWNER(dev);
-
this = dev->priv;
/*
* At this point, the dev_node_t structure(s) should be initialized and
diff --git a/drivers/net/wireless/zd1211rw/zd_netdev.c b/drivers/net/wireless/zd1211rw/zd_netdev.c
index 8bda48d..047cab3 100644
--- a/drivers/net/wireless/zd1211rw/zd_netdev.c
+++ b/drivers/net/wireless/zd1211rw/zd_netdev.c
@@ -233,7 +233,6 @@ struct net_device *zd_netdev_alloc(struct usb_interface *intf)
return NULL;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &intf->dev);
dev_dbg_f(&intf->dev, "netdev->flags %#06hx\n", netdev->flags);
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 4445810..4c428b4 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -1208,7 +1208,6 @@ static struct net_device * __devinit xennet_create_dev(struct xenbus_device *dev
netdev->features = NETIF_F_IP_CSUM;
SET_ETHTOOL_OPS(netdev, &xennet_ethtool_ops);
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &dev->dev);
np->netdev = netdev;
diff --git a/drivers/net/yellowfin.c b/drivers/net/yellowfin.c
index 870c539..29e9695 100644
--- a/drivers/net/yellowfin.c
+++ b/drivers/net/yellowfin.c
@@ -392,7 +392,6 @@ static int __devinit yellowfin_init_one(struct pci_dev *pdev,
printk (KERN_ERR PFX "cannot allocate ethernet device\n");
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
np = netdev_priv(dev);
diff --git a/drivers/net/znet.c b/drivers/net/znet.c
index 4032e9f..dcd4e1b 100644
--- a/drivers/net/znet.c
+++ b/drivers/net/znet.c
@@ -388,8 +388,6 @@ static int __init znet_probe (void)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER (dev);
-
znet = dev->priv;
netinfo = (struct netidblk *)p;
diff --git a/drivers/net/zorro8390.c b/drivers/net/zorro8390.c
index d85e2ea..a45f995 100644
--- a/drivers/net/zorro8390.c
+++ b/drivers/net/zorro8390.c
@@ -125,7 +125,6 @@ static int __devinit zorro8390_init_one(struct zorro_dev *z,
dev = ____alloc_ei_netdev(0);
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
if (!request_mem_region(ioaddr, NE_IO_EXTENT*2, DRV_NAME)) {
free_netdev(dev);
return -EBUSY;
diff --git a/drivers/s390/net/claw.c b/drivers/s390/net/claw.c
index 023455a..399695f 100644
--- a/drivers/s390/net/claw.c
+++ b/drivers/s390/net/claw.c
@@ -3891,7 +3891,6 @@ claw_init_netdevice(struct net_device * dev)
dev->type = ARPHRD_SLIP;
dev->tx_queue_len = 1300;
dev->flags = IFF_POINTOPOINT | IFF_NOARP;
- SET_MODULE_OWNER(dev);
#ifdef FUNCTRACE
printk(KERN_INFO "%s:%s Exit\n",dev->name,__FUNCTION__);
#endif
diff --git a/drivers/s390/net/ctcmain.c b/drivers/s390/net/ctcmain.c
index 92e8a37..4499372 100644
--- a/drivers/s390/net/ctcmain.c
+++ b/drivers/s390/net/ctcmain.c
@@ -2823,7 +2823,6 @@ ctc_init_netdevice(struct net_device * dev, int alloc_device,
dev->type = ARPHRD_SLIP;
dev->tx_queue_len = 100;
dev->flags = IFF_POINTOPOINT | IFF_NOARP;
- SET_MODULE_OWNER(dev);
return dev;
}
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c
index 08a994f..e4b11af 100644
--- a/drivers/s390/net/lcs.c
+++ b/drivers/s390/net/lcs.c
@@ -2145,7 +2145,6 @@ lcs_new_device(struct ccwgroup_device *ccwgdev)
card->dev->stop = lcs_stop_device;
card->dev->hard_start_xmit = lcs_start_xmit;
card->dev->get_stats = lcs_getstats;
- SET_MODULE_OWNER(dev);
memcpy(card->dev->dev_addr, card->mac, LCS_MAC_LENGTH);
#ifdef CONFIG_IP_MULTICAST
if (!lcs_check_multicast_support(card))
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c
index 2688894..4d18d64 100644
--- a/drivers/s390/net/netiucv.c
+++ b/drivers/s390/net/netiucv.c
@@ -1904,7 +1904,6 @@ static void netiucv_setup_netdevice(struct net_device *dev)
dev->type = ARPHRD_SLIP;
dev->tx_queue_len = NETIUCV_QUEUELEN_DEFAULT;
dev->flags = IFF_POINTOPOINT | IFF_NOARP;
- SET_MODULE_OWNER(dev);
}
/**
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c
index f3e6fbe..8c46978 100644
--- a/drivers/s390/net/qeth_main.c
+++ b/drivers/s390/net/qeth_main.c
@@ -6649,7 +6649,6 @@ qeth_netdev_init(struct net_device *dev)
dev->mtu = card->info.initial_mtu;
if (card->info.type != QETH_CARD_TYPE_OSN)
SET_ETHTOOL_OPS(dev, &qeth_ethtool_ops);
- SET_MODULE_OWNER(dev);
return 0;
}
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index 593e235..f700554 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -2484,7 +2484,6 @@ autoconf_fail:
/* network device setup */
dev->net = net;
- SET_MODULE_OWNER (net);
strcpy (net->name, "usb%d");
dev->cdc = cdc;
dev->zlp = zlp;
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index e679b27..91b39c2 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -587,7 +587,6 @@ static inline void *netdev_priv(const struct net_device *dev)
return dev->priv;
}
-#define SET_MODULE_OWNER(dev) do { } while (0)
/* Set the sysfs physical device reference for the network logical device
* if set prior to registration will cause a symlink during initialization.
*/
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 1583c5e..1e96808 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -349,8 +349,6 @@ static int vlan_dev_init(struct net_device *dev)
void vlan_setup(struct net_device *new_dev)
{
- SET_MODULE_OWNER(new_dev);
-
ether_setup(new_dev);
/* new_dev->ifindex = 0; it will be set when added to
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index 0eded17..293d25b 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -171,7 +171,6 @@ void br_dev_setup(struct net_device *dev)
dev->set_multicast_list = br_dev_set_multicast_list;
dev->change_mtu = br_change_mtu;
dev->destructor = free_netdev;
- SET_MODULE_OWNER(dev);
SET_ETHTOOL_OPS(dev, &br_ethtool_ops);
dev->stop = br_dev_stop;
dev->tx_queue_len = 0;
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 5c14ed6..4f83529 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -1132,7 +1132,6 @@ static int ipgre_close(struct net_device *dev)
static void ipgre_tunnel_setup(struct net_device *dev)
{
- SET_MODULE_OWNER(dev);
dev->uninit = ipgre_tunnel_uninit;
dev->destructor = free_netdev;
dev->hard_start_xmit = ipgre_tunnel_xmit;
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index 3964372..33c8527 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -237,7 +237,6 @@ static struct ip_tunnel * ipip_tunnel_locate(struct ip_tunnel_parm *parms, int c
return NULL;
nt = netdev_priv(dev);
- SET_MODULE_OWNER(dev);
dev->init = ipip_tunnel_init;
nt->parms = *parms;
@@ -775,7 +774,6 @@ static int ipip_tunnel_change_mtu(struct net_device *dev, int new_mtu)
static void ipip_tunnel_setup(struct net_device *dev)
{
- SET_MODULE_OWNER(dev);
dev->uninit = ipip_tunnel_uninit;
dev->hard_start_xmit = ipip_tunnel_xmit;
dev->get_stats = ipip_tunnel_get_stats;
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
index ca774d8..acb24cd 100644
--- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c
@@ -1313,7 +1313,6 @@ ip6_tnl_change_mtu(struct net_device *dev, int new_mtu)
static void ip6_tnl_dev_setup(struct net_device *dev)
{
- SET_MODULE_OWNER(dev);
dev->uninit = ip6_tnl_dev_uninit;
dev->destructor = free_netdev;
dev->hard_start_xmit = ip6_tnl_xmit;
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index eb20bb6..c904c52 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -714,7 +714,6 @@ static int ipip6_tunnel_change_mtu(struct net_device *dev, int new_mtu)
static void ipip6_tunnel_setup(struct net_device *dev)
{
- SET_MODULE_OWNER(dev);
dev->uninit = ipip6_tunnel_uninit;
dev->destructor = free_netdev;
dev->hard_start_xmit = ipip6_tunnel_xmit;
diff --git a/net/irda/irlan/irlan_eth.c b/net/irda/irlan/irlan_eth.c
index c421521..340f04a 100644
--- a/net/irda/irlan/irlan_eth.c
+++ b/net/irda/irlan/irlan_eth.c
@@ -60,8 +60,6 @@ static void irlan_eth_setup(struct net_device *dev)
dev->set_multicast_list = irlan_eth_set_multicast_list;
dev->destructor = free_netdev;
- SET_MODULE_OWNER(dev);
-
ether_setup(dev);
/*
diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c
index 0968184..146f453 100644
--- a/net/sched/sch_teql.c
+++ b/net/sched/sch_teql.c
@@ -432,7 +432,6 @@ static __init void teql_master_setup(struct net_device *dev)
dev->tx_queue_len = 100;
dev->flags = IFF_NOARP;
dev->hard_header_len = LL_MAX_HEADER;
- SET_MODULE_OWNER(dev);
}
static LIST_HEAD(master_dev_list);
^ permalink raw reply related
* Re: RFC: possible NAPI improvements to reduce interrupt rates for low traffic rates
From: James Chapman @ 2007-09-12 16:39 UTC (permalink / raw)
To: David Miller; +Cc: netdev, hadi, jeff, mandeep.baines, ossthema
In-Reply-To: <20070912.081211.13753718.davem@davemloft.net>
David Miller wrote:
> From: James Chapman <jchapman@katalix.com>
> Date: Thu, 6 Sep 2007 15:16:00 +0100
>
>> First, do we need to encourage consistency in NAPI poll drivers? A
>> survey of current NAPI drivers shows different strategies being used
>> in their poll(). Some such as r8169 do the napi_complete() if poll()
>> does less work than their allowed budget. Others such as e100 and
>> tg3 do napi_complete() only if they do no work at all.
>
> Actually, I want to clarify this situation. In reality these
> drivers are more consistent than different.
>
> For some chips the cheapest way to figure out if there is more
> RX work is simply to see if the amount of work processed is
> less than "budget". It's too expensive to recheck the hardware.
>
> On some chips like tg3, it's extremely cheap to see if new work
> arrived between the completion of processing the RX queue and
> the NAPI completion check, so they do it.
The inconsistencies I see are to do with the conditions that the driver
chooses to exit polled mode, i.e. doing no work in the poll() versus
doing less than budget, and whether txdone processing is done in the
poll or in the interrupt handler. I didn't mean to suggest that
rechecking for more work just before doing the napi_complete() was an
example of inconsistency.
The rest of the RFC talks about polling the device while it might be
idle. The overhead of checking for work varies for each system / device
as you say. Where it is expensive, the driver could optimize that case.
--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development
^ permalink raw reply
* Re: [NET] Nuke SET_NETDEV_DEVICE macro
From: Ralf Baechle @ 2007-09-12 16:39 UTC (permalink / raw)
To: netdev, David S. Miller, Jeff Garzik, Andrew Morton
In-Reply-To: <20070912162713.GA15519@linux-mips.org>
On Wed, Sep 12, 2007 at 05:27:13PM +0100, Ralf Baechle wrote:
> It's been a useless no-op for long enough in 2.6 so I figured it's time to
> remove it. The number of people that could object because they're
> maintaining unified 2.4 and 2.6 drivers is probably rather small.
Whops, wrong patch and subject, please ignore.
^ permalink raw reply
* [NET] Nuke SET_NETDEV_DEVICE macro
From: Ralf Baechle @ 2007-09-12 16:27 UTC (permalink / raw)
To: netdev, David S. Miller, Jeff Garzik, Andrew Morton
It's been a useless no-op for long enough in 2.6 so I figured it's time to
remove it. The number of people that could object because they're
maintaining unified 2.4 and 2.6 drivers is probably rather small.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
---
drivers/ieee1394/eth1394.c | 1 -
drivers/infiniband/hw/amso1100/c2.c | 1 -
drivers/infiniband/hw/amso1100/c2_provider.c | 1 -
drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 --
drivers/message/fusion/mptlan.c | 2 --
drivers/net/3c501.c | 2 --
drivers/net/3c503.c | 2 --
drivers/net/3c505.c | 2 --
drivers/net/3c507.c | 2 --
drivers/net/3c509.c | 6 ------
drivers/net/3c515.c | 2 --
drivers/net/3c523.c | 1 -
drivers/net/3c527.c | 2 --
drivers/net/3c59x.c | 1 -
drivers/net/8139cp.c | 1 -
drivers/net/8139too.c | 1 -
drivers/net/82596.c | 1 -
drivers/net/a2065.c | 1 -
drivers/net/ac3200.c | 2 --
drivers/net/acenic.c | 1 -
drivers/net/amd8111e.c | 1 -
drivers/net/apne.c | 1 -
drivers/net/appletalk/cops.c | 2 --
drivers/net/appletalk/ipddp.c | 1 -
drivers/net/appletalk/ltpc.c | 2 --
drivers/net/arcnet/com90io.c | 2 --
drivers/net/ariadne.c | 1 -
drivers/net/arm/at91_ether.c | 1 -
drivers/net/arm/ether1.c | 1 -
drivers/net/arm/ether3.c | 1 -
drivers/net/arm/etherh.c | 1 -
drivers/net/at1700.c | 2 --
drivers/net/atarilance.c | 1 -
drivers/net/atl1/atl1_main.c | 1 -
drivers/net/atp.c | 1 -
drivers/net/b44.c | 1 -
drivers/net/bfin_mac.c | 1 -
drivers/net/bmac.c | 1 -
drivers/net/bnx2.c | 1 -
drivers/net/bonding/bond_main.c | 2 --
drivers/net/cassini.c | 1 -
drivers/net/chelsio/cxgb2.c | 1 -
drivers/net/cs89x0.c | 1 -
drivers/net/cxgb3/cxgb3_main.c | 1 -
drivers/net/de600.c | 1 -
drivers/net/de620.c | 2 --
drivers/net/defxx.c | 1 -
drivers/net/dgrs.c | 2 --
drivers/net/dl2k.c | 1 -
drivers/net/dm9000.c | 1 -
drivers/net/dummy.c | 1 -
drivers/net/e100.c | 1 -
drivers/net/e1000/e1000_main.c | 1 -
drivers/net/e2100.c | 2 --
drivers/net/eepro.c | 4 ----
drivers/net/eepro100.c | 1 -
drivers/net/eexpress.c | 2 --
drivers/net/ehea/ehea_main.c | 2 --
drivers/net/epic100.c | 1 -
drivers/net/eql.c | 2 --
drivers/net/es3210.c | 2 --
drivers/net/eth16i.c | 2 --
drivers/net/ewrk3.c | 1 -
drivers/net/fealnx.c | 1 -
drivers/net/fec_8xx/fec_main.c | 1 -
drivers/net/forcedeth.c | 1 -
drivers/net/fs_enet/fs_enet-main.c | 1 -
drivers/net/gianfar.c | 1 -
drivers/net/hamachi.c | 1 -
drivers/net/hamradio/6pack.c | 2 --
drivers/net/hp-plus.c | 2 --
drivers/net/hp.c | 2 --
drivers/net/hp100.c | 5 -----
drivers/net/hydra.c | 1 -
drivers/net/ibm_emac/ibm_emac_core.c | 1 -
drivers/net/ibmlana.c | 2 --
drivers/net/ibmveth.c | 4 ----
drivers/net/ifb.c | 1 -
drivers/net/ioc3-eth.c | 1 -
drivers/net/irda/ali-ircc.c | 4 ----
drivers/net/irda/donauboe.c | 1 -
drivers/net/irda/irda-usb.c | 1 -
drivers/net/irda/irport.c | 2 --
drivers/net/irda/kingsun-sir.c | 1 -
drivers/net/irda/mcs7780.c | 2 --
drivers/net/irda/nsc-ircc.c | 1 -
drivers/net/irda/sir_dev.c | 2 --
drivers/net/irda/smsc-ircc2.c | 2 --
drivers/net/irda/stir4200.c | 1 -
drivers/net/irda/via-ircc.c | 3 ---
drivers/net/irda/vlsi_ir.c | 2 --
drivers/net/irda/w83977af_ir.c | 3 ---
drivers/net/isa-skeleton.c | 2 --
drivers/net/ixgb/ixgb_main.c | 1 -
drivers/net/ixp2000/enp2611.c | 1 -
drivers/net/jazzsonic.c | 1 -
drivers/net/lance.c | 1 -
drivers/net/lguest_net.c | 2 --
drivers/net/lne390.c | 2 --
drivers/net/mac8390.c | 2 --
drivers/net/mac89x0.c | 2 --
drivers/net/macb.c | 1 -
drivers/net/mace.c | 1 -
drivers/net/macmace.c | 1 -
drivers/net/macsonic.c | 1 -
drivers/net/mv643xx_eth.c | 1 -
drivers/net/mvme147.c | 2 --
drivers/net/myri_sbus.c | 1 -
drivers/net/natsemi.c | 1 -
drivers/net/ne-h8300.c | 2 --
drivers/net/ne.c | 2 --
drivers/net/ne2.c | 2 --
drivers/net/ne2k-pci.c | 1 -
drivers/net/ne3210.c | 1 -
drivers/net/netx-eth.c | 1 -
drivers/net/netxen/netxen_nic_main.c | 1 -
drivers/net/ni5010.c | 2 --
drivers/net/ni52.c | 2 --
drivers/net/ni65.c | 1 -
drivers/net/ns83820.c | 1 -
drivers/net/pasemi_mac.c | 1 -
drivers/net/pci-skeleton.c | 1 -
drivers/net/pcmcia/3c589_cs.c | 1 -
drivers/net/pcmcia/axnet_cs.c | 3 ---
drivers/net/pcmcia/fmvj18x_cs.c | 1 -
drivers/net/pcmcia/nmclan_cs.c | 1 -
drivers/net/pcmcia/pcnet_cs.c | 1 -
drivers/net/pcmcia/smc91c92_cs.c | 1 -
drivers/net/pcmcia/xirc2ps_cs.c | 1 -
drivers/net/pcnet32.c | 1 -
drivers/net/plip.c | 1 -
drivers/net/ps3_gelic_net.c | 1 -
drivers/net/qla3xxx.c | 1 -
drivers/net/r8169.c | 1 -
drivers/net/rionet.c | 2 --
drivers/net/rrunner.c | 1 -
drivers/net/s2io.c | 1 -
drivers/net/sb1000.c | 1 -
drivers/net/shaper.c | 2 --
drivers/net/sis190.c | 1 -
drivers/net/sis900.c | 1 -
drivers/net/skfp/skfddi.c | 1 -
drivers/net/skge.c | 1 -
drivers/net/sky2.c | 1 -
drivers/net/slip.c | 2 --
drivers/net/smc-mca.c | 1 -
drivers/net/smc-ultra.c | 2 --
drivers/net/smc-ultra32.c | 2 --
drivers/net/smc911x.c | 1 -
drivers/net/smc9194.c | 2 --
drivers/net/smc91x.c | 1 -
drivers/net/spider_net.c | 1 -
drivers/net/starfire.c | 1 -
drivers/net/stnic.c | 1 -
drivers/net/sun3_82586.c | 1 -
drivers/net/sun3lance.c | 1 -
drivers/net/sunbmac.c | 1 -
drivers/net/sundance.c | 1 -
drivers/net/sungem.c | 1 -
drivers/net/sunhme.c | 2 --
drivers/net/sunlance.c | 1 -
drivers/net/sunqe.c | 1 -
drivers/net/tc35815.c | 1 -
drivers/net/tg3.c | 1 -
drivers/net/tlan.c | 1 -
drivers/net/tokenring/3c359.c | 1 -
drivers/net/tokenring/abyss.c | 2 --
drivers/net/tokenring/lanstreamer.c | 1 -
drivers/net/tokenring/madgemc.c | 1 -
drivers/net/tokenring/olympic.c | 1 -
drivers/net/tokenring/proteon.c | 1 -
drivers/net/tokenring/skisa.c | 1 -
drivers/net/tokenring/smctr.c | 2 --
drivers/net/tokenring/tmspci.c | 1 -
drivers/net/tsi108_eth.c | 1 -
drivers/net/tulip/de2104x.c | 1 -
drivers/net/tulip/de4x5.c | 1 -
drivers/net/tulip/dmfe.c | 1 -
drivers/net/tulip/tulip_core.c | 1 -
drivers/net/tulip/uli526x.c | 1 -
drivers/net/tulip/winbond-840.c | 1 -
drivers/net/tulip/xircom_cb.c | 1 -
drivers/net/tulip/xircom_tulip_cb.c | 1 -
drivers/net/tun.c | 1 -
drivers/net/typhoon.c | 1 -
drivers/net/ucc_geth.c | 1 -
drivers/net/usb/kaweth.c | 2 --
drivers/net/usb/pegasus.c | 1 -
drivers/net/usb/rtl8150.c | 1 -
drivers/net/usb/usbnet.c | 1 -
drivers/net/via-rhine.c | 1 -
drivers/net/via-velocity.c | 1 -
drivers/net/wan/c101.c | 1 -
drivers/net/wan/cycx_x25.c | 1 -
drivers/net/wan/dscc4.c | 1 -
drivers/net/wan/hostess_sv11.c | 2 --
drivers/net/wan/lapbether.c | 1 -
drivers/net/wan/lmc/lmc_main.c | 1 -
drivers/net/wan/n2.c | 1 -
drivers/net/wan/pc300too.c | 1 -
drivers/net/wan/pci200syn.c | 1 -
drivers/net/wan/sbni.c | 2 --
drivers/net/wan/sdla.c | 1 -
drivers/net/wan/wanxl.c | 1 -
drivers/net/wd.c | 2 --
drivers/net/wireless/airo.c | 1 -
drivers/net/wireless/airport.c | 1 -
drivers/net/wireless/arlan-main.c | 2 --
drivers/net/wireless/atmel.c | 1 -
drivers/net/wireless/bcm43xx/bcm43xx_main.c | 1 -
drivers/net/wireless/ipw2100.c | 2 --
drivers/net/wireless/ipw2200.c | 1 -
drivers/net/wireless/libertas/main.c | 4 ----
drivers/net/wireless/netwave_cs.c | 1 -
drivers/net/wireless/orinoco_cs.c | 1 -
drivers/net/wireless/orinoco_nortel.c | 1 -
drivers/net/wireless/orinoco_pci.c | 1 -
drivers/net/wireless/orinoco_plx.c | 1 -
drivers/net/wireless/orinoco_tmd.c | 1 -
drivers/net/wireless/prism54/islpci_dev.c | 1 -
drivers/net/wireless/ray_cs.c | 1 -
drivers/net/wireless/spectrum_cs.c | 1 -
drivers/net/wireless/strip.c | 2 --
drivers/net/wireless/wavelan.c | 1 -
drivers/net/wireless/wavelan_cs.c | 1 -
drivers/net/wireless/wl3501_cs.c | 2 --
drivers/net/wireless/zd1211rw/zd_netdev.c | 1 -
drivers/net/xen-netfront.c | 1 -
drivers/net/yellowfin.c | 1 -
drivers/net/znet.c | 2 --
drivers/net/zorro8390.c | 1 -
drivers/s390/net/claw.c | 1 -
drivers/s390/net/ctcmain.c | 1 -
drivers/s390/net/lcs.c | 1 -
drivers/s390/net/netiucv.c | 1 -
drivers/s390/net/qeth_main.c | 1 -
drivers/usb/gadget/ether.c | 1 -
include/linux/netdevice.h | 1 -
net/8021q/vlan.c | 2 --
net/bridge/br_device.c | 1 -
net/ipv4/ip_gre.c | 1 -
net/ipv4/ipip.c | 2 --
net/ipv6/ip6_tunnel.c | 1 -
net/ipv6/sit.c | 1 -
net/irda/irlan/irlan_eth.c | 2 --
net/sched/sch_teql.c | 1 -
246 files changed, 336 deletions(-)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 3b807b4..a88dbd7 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -13,7 +13,7 @@ config ZONE_DMA
choice
prompt "System type"
- default SGI_IP22
+ default MIPS_MALTA
config MACH_ALCHEMY
bool "Alchemy processor based machines"
diff --git a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c
index 3a9d7e2..33b8081 100644
--- a/drivers/ieee1394/eth1394.c
+++ b/drivers/ieee1394/eth1394.c
@@ -598,7 +598,6 @@ static void ether1394_add_host(struct hpsb_host *host)
goto out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &host->device);
priv = netdev_priv(dev);
diff --git a/drivers/infiniband/hw/amso1100/c2.c b/drivers/infiniband/hw/amso1100/c2.c
index 0aecea6..f283a9f 100644
--- a/drivers/infiniband/hw/amso1100/c2.c
+++ b/drivers/infiniband/hw/amso1100/c2.c
@@ -886,7 +886,6 @@ static struct net_device *c2_devinit(struct c2_dev *c2dev,
return NULL;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &c2dev->pcidev->dev);
netdev->open = c2_up;
diff --git a/drivers/infiniband/hw/amso1100/c2_provider.c b/drivers/infiniband/hw/amso1100/c2_provider.c
index 997cf15..7a6cece 100644
--- a/drivers/infiniband/hw/amso1100/c2_provider.c
+++ b/drivers/infiniband/hw/amso1100/c2_provider.c
@@ -715,7 +715,6 @@ static int c2_pseudo_change_mtu(struct net_device *netdev, int new_mtu)
static void setup(struct net_device *netdev)
{
- SET_MODULE_OWNER(netdev);
netdev->open = c2_pseudo_up;
netdev->stop = c2_pseudo_down;
netdev->hard_start_xmit = c2_pseudo_xmit_frame;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 894b1dc..d3bca04 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -973,8 +973,6 @@ static void ipoib_setup(struct net_device *dev)
netif_carrier_off(dev);
- SET_MODULE_OWNER(dev);
-
priv->dev = dev;
spin_lock_init(&priv->lock);
diff --git a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c
index 01fc397..3da4c37 100644
--- a/drivers/message/fusion/mptlan.c
+++ b/drivers/message/fusion/mptlan.c
@@ -1427,8 +1427,6 @@ mpt_register_lan_device (MPT_ADAPTER *mpt_dev, int pnum)
dlprintk((KERN_INFO MYNAM ": Finished registering dev "
"and setting initial values\n"));
- SET_MODULE_OWNER(dev);
-
if (register_netdev(dev) != 0) {
free_netdev(dev);
dev = NULL;
diff --git a/drivers/net/3c501.c b/drivers/net/3c501.c
index 4bee99b..98e0bc4 100644
--- a/drivers/net/3c501.c
+++ b/drivers/net/3c501.c
@@ -174,8 +174,6 @@ struct net_device * __init el1_probe(int unit)
mem_start = dev->mem_start & 7;
}
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) { /* Check a single specified location. */
err = el1_probe1(dev, io);
} else if (io != 0) {
diff --git a/drivers/net/3c503.c b/drivers/net/3c503.c
index bc7e906..f9e7ffb 100644
--- a/drivers/net/3c503.c
+++ b/drivers/net/3c503.c
@@ -95,8 +95,6 @@ static int __init do_el2_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) /* Check a single specified location. */
return el2_probe1(dev, base_addr);
else if (base_addr != 0) /* Don't probe at all. */
diff --git a/drivers/net/3c505.c b/drivers/net/3c505.c
index e985a85..feefbec 100644
--- a/drivers/net/3c505.c
+++ b/drivers/net/3c505.c
@@ -1402,8 +1402,6 @@ static int __init elplus_setup(struct net_device *dev)
unsigned long cookie = 0;
int err = -ENODEV;
- SET_MODULE_OWNER(dev);
-
/*
* setup adapter structure
*/
diff --git a/drivers/net/3c507.c b/drivers/net/3c507.c
index eed4299..fac6edf 100644
--- a/drivers/net/3c507.c
+++ b/drivers/net/3c507.c
@@ -327,8 +327,6 @@ struct net_device * __init el16_probe(int unit)
mem_start = dev->mem_start & 15;
}
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) /* Check a single specified location. */
err = el16_probe1(dev, io);
else if (io != 0)
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c
index 127f608..7466987 100644
--- a/drivers/net/3c509.c
+++ b/drivers/net/3c509.c
@@ -432,7 +432,6 @@ __again:
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &idev->dev);
pnp_cards++;
@@ -524,8 +523,6 @@ no_pnp:
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
-
netdev_boot_setup_check(dev);
/* Set passed-in IRQ or I/O Addr. */
@@ -644,7 +641,6 @@ static int __init el3_mca_probe(struct device *device)
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
netdev_boot_setup_check(dev);
memcpy(dev->dev_addr, phys_addr, sizeof(phys_addr));
@@ -704,8 +700,6 @@ static int __init el3_eisa_probe (struct device *device)
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
-
netdev_boot_setup_check(dev);
memcpy(dev->dev_addr, phys_addr, sizeof(phys_addr));
diff --git a/drivers/net/3c515.c b/drivers/net/3c515.c
index 290166d..38a2ebe 100644
--- a/drivers/net/3c515.c
+++ b/drivers/net/3c515.c
@@ -501,8 +501,6 @@ static struct net_device *corkscrew_scan(int unit)
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
-
#ifdef __ISAPNP__
if(nopnp == 1)
goto no_pnp;
diff --git a/drivers/net/3c523.c b/drivers/net/3c523.c
index ab18343..10852b2 100644
--- a/drivers/net/3c523.c
+++ b/drivers/net/3c523.c
@@ -423,7 +423,6 @@ static int __init do_elmc_probe(struct net_device *dev)
int retval;
struct priv *pr = dev->priv;
- SET_MODULE_OWNER(dev);
if (MCA_bus == 0) {
return -ENODEV;
}
diff --git a/drivers/net/3c527.c b/drivers/net/3c527.c
index c7b571b..5b5f44c 100644
--- a/drivers/net/3c527.c
+++ b/drivers/net/3c527.c
@@ -257,8 +257,6 @@ struct net_device *__init mc32_probe(int unit)
if (unit >= 0)
sprintf(dev->name, "eth%d", unit);
- SET_MODULE_OWNER(dev);
-
/* Do not check any supplied i/o locations.
POS registers usually don't fail :) */
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index a8c0f43..9df0b0b 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -1033,7 +1033,6 @@ static int __devinit vortex_probe1(struct device *gendev,
printk (KERN_ERR PFX "unable to allocate etherdev, aborting\n");
goto out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, gendev);
vp = netdev_priv(dev);
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index a79f28c..c4c2be5 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -1840,7 +1840,6 @@ static int cp_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
dev = alloc_etherdev(sizeof(struct cp_private));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
cp = netdev_priv(dev);
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index f4e4298..aa214cf 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -770,7 +770,6 @@ static int __devinit rtl8139_init_board (struct pci_dev *pdev,
dev_err(&pdev->dev, "Unable to alloc new net device\n");
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
tp = netdev_priv(dev);
diff --git a/drivers/net/82596.c b/drivers/net/82596.c
index d915837..43dffdc 100644
--- a/drivers/net/82596.c
+++ b/drivers/net/82596.c
@@ -1234,7 +1234,6 @@ struct net_device * __init i82596_probe(int unit)
DEB(DEB_PROBE,printk(KERN_INFO "%s", version));
/* The 82596-specific entries in the device structure. */
- SET_MODULE_OWNER(dev);
dev->open = i596_open;
dev->stop = i596_close;
dev->hard_start_xmit = i596_start_xmit;
diff --git a/drivers/net/a2065.c b/drivers/net/a2065.c
index a45de69..fa0c6cb 100644
--- a/drivers/net/a2065.c
+++ b/drivers/net/a2065.c
@@ -746,7 +746,6 @@ static int __devinit a2065_init_one(struct zorro_dev *z,
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
priv = netdev_priv(dev);
r1->name = dev->name;
diff --git a/drivers/net/ac3200.c b/drivers/net/ac3200.c
index 644c408..65b2de5 100644
--- a/drivers/net/ac3200.c
+++ b/drivers/net/ac3200.c
@@ -103,8 +103,6 @@ static int __init do_ac3200_probe(struct net_device *dev)
int irq = dev->irq;
int mem_start = dev->mem_start;
- SET_MODULE_OWNER(dev);
-
if (ioaddr > 0x1ff) /* Check a single specified location. */
return ac_probe1(ioaddr, dev);
else if (ioaddr > 0) /* Don't probe at all. */
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index 62e660a..ca00f41 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -465,7 +465,6 @@ static int __devinit acenic_probe_one(struct pci_dev *pdev,
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
ap = dev->priv;
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index a61b2f8..a2f5687 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -1983,7 +1983,6 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
goto err_free_reg;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
#if AMD8111E_VLAN_TAG_USED
diff --git a/drivers/net/apne.c b/drivers/net/apne.c
index 9541911..b073810 100644
--- a/drivers/net/apne.c
+++ b/drivers/net/apne.c
@@ -148,7 +148,6 @@ struct net_device * __init apne_probe(int unit)
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
/* disable pcmcia irq for readtuple */
pcmcia_disable_irq();
diff --git a/drivers/net/appletalk/cops.c b/drivers/net/appletalk/cops.c
index da6ffa8..c4b560d 100644
--- a/drivers/net/appletalk/cops.c
+++ b/drivers/net/appletalk/cops.c
@@ -235,8 +235,6 @@ struct net_device * __init cops_probe(int unit)
base_addr = dev->base_addr = io;
}
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) { /* Check a single specified location. */
err = cops_probe1(dev, base_addr);
} else if (base_addr != 0) { /* Don't probe at all. */
diff --git a/drivers/net/appletalk/ipddp.c b/drivers/net/appletalk/ipddp.c
index f22e46d..56cb967 100644
--- a/drivers/net/appletalk/ipddp.c
+++ b/drivers/net/appletalk/ipddp.c
@@ -65,7 +65,6 @@ static struct net_device * __init ipddp_init(void)
if (!dev)
return ERR_PTR(-ENOMEM);
- SET_MODULE_OWNER(dev);
strcpy(dev->name, "ipddp%d");
if (version_printed++ == 0)
diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c
index 6a6cbd3..cb4744e 100644
--- a/drivers/net/appletalk/ltpc.c
+++ b/drivers/net/appletalk/ltpc.c
@@ -1046,8 +1046,6 @@ struct net_device * __init ltpc_probe(void)
if (!dev)
goto out;
- SET_MODULE_OWNER(dev);
-
/* probe for the I/O port address */
if (io != 0x240 && request_region(0x220,8,"ltpc")) {
diff --git a/drivers/net/arcnet/com90io.c b/drivers/net/arcnet/com90io.c
index 1f03027..6599f10 100644
--- a/drivers/net/arcnet/com90io.c
+++ b/drivers/net/arcnet/com90io.c
@@ -398,8 +398,6 @@ static int __init com90io_init(void)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
-
dev->base_addr = io;
dev->irq = irq;
if (dev->irq == 2)
diff --git a/drivers/net/ariadne.c b/drivers/net/ariadne.c
index bc5a38a..2c020a3 100644
--- a/drivers/net/ariadne.c
+++ b/drivers/net/ariadne.c
@@ -183,7 +183,6 @@ static int __devinit ariadne_init_one(struct zorro_dev *z,
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
priv = netdev_priv(dev);
r1->name = dev->name;
diff --git a/drivers/net/arm/at91_ether.c b/drivers/net/arm/at91_ether.c
index ef2cc80..619810a 100644
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
@@ -986,7 +986,6 @@ static int __init at91ether_setup(unsigned long phy_type, unsigned short phy_add
dev->base_addr = AT91_VA_BASE_EMAC;
dev->irq = AT91RM9200_ID_EMAC;
- SET_MODULE_OWNER(dev);
/* Install the interrupt handler */
if (request_irq(dev->irq, at91ether_interrupt, 0, dev->name, dev)) {
diff --git a/drivers/net/arm/ether1.c b/drivers/net/arm/ether1.c
index 80f33b6..6ec8a58 100644
--- a/drivers/net/arm/ether1.c
+++ b/drivers/net/arm/ether1.c
@@ -1009,7 +1009,6 @@ ether1_probe(struct expansion_card *ec, const struct ecard_id *id)
goto release;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &ec->dev);
dev->irq = ec->irq;
diff --git a/drivers/net/arm/ether3.c b/drivers/net/arm/ether3.c
index 3805506..4a91474 100644
--- a/drivers/net/arm/ether3.c
+++ b/drivers/net/arm/ether3.c
@@ -789,7 +789,6 @@ ether3_probe(struct expansion_card *ec, const struct ecard_id *id)
goto release;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &ec->dev);
priv(dev)->base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0);
diff --git a/drivers/net/arm/etherh.c b/drivers/net/arm/etherh.c
index 0d37d9d..5d093b3 100644
--- a/drivers/net/arm/etherh.c
+++ b/drivers/net/arm/etherh.c
@@ -661,7 +661,6 @@ etherh_probe(struct expansion_card *ec, const struct ecard_id *id)
goto release;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &ec->dev);
dev->open = etherh_open;
diff --git a/drivers/net/at1700.c b/drivers/net/at1700.c
index bed8e0e..d20148e 100644
--- a/drivers/net/at1700.c
+++ b/drivers/net/at1700.c
@@ -225,8 +225,6 @@ struct net_device * __init at1700_probe(int unit)
dev->irq = irq;
}
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) { /* Check a single specified location. */
err = at1700_probe1(dev, io);
} else if (io != 0) { /* Don't probe at all. */
diff --git a/drivers/net/atarilance.c b/drivers/net/atarilance.c
index dfa8b9b..97cca50 100644
--- a/drivers/net/atarilance.c
+++ b/drivers/net/atarilance.c
@@ -390,7 +390,6 @@ struct net_device * __init atarilance_probe(int unit)
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
for( i = 0; i < N_LANCE_ADDR; ++i ) {
if (lance_probe1( dev, &lance_addr_list[i] )) {
diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
index 3c1984e..cc73ced 100644
--- a/drivers/net/atl1/atl1_main.c
+++ b/drivers/net/atl1/atl1_main.c
@@ -2236,7 +2236,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
err = -ENOMEM;
goto err_alloc_etherdev;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
pci_set_drvdata(pdev, netdev);
diff --git a/drivers/net/atp.c b/drivers/net/atp.c
index 82d78ff..6020d5e 100644
--- a/drivers/net/atp.c
+++ b/drivers/net/atp.c
@@ -299,7 +299,6 @@ static int __init atp_probe1(long ioaddr)
dev = alloc_etherdev(sizeof(struct net_local));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
/* Find the IRQ used by triggering an interrupt. */
write_reg_byte(ioaddr, CMR2, 0x01); /* No accept mode, IRQ out. */
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 0795df2..c33261a 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -2162,7 +2162,6 @@ static int __devinit b44_init_one(struct pci_dev *pdev,
goto err_out_free_res;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev,&pdev->dev);
/* No interesting netdevice features in this card... */
diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c
index 2bb97d4..7f5f4b4 100644
--- a/drivers/net/bfin_mac.c
+++ b/drivers/net/bfin_mac.c
@@ -946,7 +946,6 @@ static int bfin_mac_probe(struct platform_device *pdev)
return -ENOMEM;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
platform_set_drvdata(pdev, ndev);
diff --git a/drivers/net/bmac.c b/drivers/net/bmac.c
index 9b8d7d9..3008d9b 100644
--- a/drivers/net/bmac.c
+++ b/drivers/net/bmac.c
@@ -1279,7 +1279,6 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_device_i
}
bp = netdev_priv(dev);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &mdev->ofdev.dev);
macio_set_drvdata(mdev, dev);
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 854d80c..9787611 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -6476,7 +6476,6 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
u32 reg;
u64 dma_mask, persist_dma_mask;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
bp = netdev_priv(dev);
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 1afda32..80b4ef5 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -4667,8 +4667,6 @@ int bond_create(char *name, struct bond_params *params, struct bonding **newbond
goto out_netdev;
}
- SET_MODULE_OWNER(bond_dev);
-
res = register_netdevice(bond_dev);
if (res < 0) {
goto out_bond;
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index f6e4030..14c8cd9 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -4899,7 +4899,6 @@ static int __devinit cas_init_one(struct pci_dev *pdev,
err = -ENOMEM;
goto err_out_disable_pdev;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
err = pci_request_regions(pdev, dev->name);
diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c
index 231ce43..e3e2b18 100644
--- a/drivers/net/chelsio/cxgb2.c
+++ b/drivers/net/chelsio/cxgb2.c
@@ -1032,7 +1032,6 @@ static int __devinit init_one(struct pci_dev *pdev,
goto out_free_dev;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
if (!adapter) {
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
index 9774bb1..2b4c921 100644
--- a/drivers/net/cs89x0.c
+++ b/drivers/net/cs89x0.c
@@ -517,7 +517,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
int eeprom_buff[CHKSUM_LEN];
int retval;
- SET_MODULE_OWNER(dev);
/* Initialize the device structure. */
if (!modular) {
memset(lp, 0, sizeof(*lp));
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index 5ab319c..0037f70 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -2490,7 +2490,6 @@ static int __devinit init_one(struct pci_dev *pdev,
goto out_free_dev;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
adapter->port[i] = netdev;
diff --git a/drivers/net/de600.c b/drivers/net/de600.c
index dae97b8..5dd0d9c 100644
--- a/drivers/net/de600.c
+++ b/drivers/net/de600.c
@@ -394,7 +394,6 @@ static struct net_device * __init de600_probe(void)
if (!dev)
return ERR_PTR(-ENOMEM);
- SET_MODULE_OWNER(dev);
if (!request_region(DE600_IO, 3, "de600")) {
printk(KERN_WARNING "DE600: port 0x%x busy\n", DE600_IO);
diff --git a/drivers/net/de620.c b/drivers/net/de620.c
index dc48924..a92c207 100644
--- a/drivers/net/de620.c
+++ b/drivers/net/de620.c
@@ -823,8 +823,6 @@ struct net_device * __init de620_probe(int unit)
if (!dev)
goto out;
- SET_MODULE_OWNER(dev);
-
spin_lock_init(&de620_lock);
/*
diff --git a/drivers/net/defxx.c b/drivers/net/defxx.c
index 9c8e3f9..b07613e 100644
--- a/drivers/net/defxx.c
+++ b/drivers/net/defxx.c
@@ -539,7 +539,6 @@ static int __devinit dfx_register(struct device *bdev)
goto err_out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, bdev);
bp = netdev_priv(dev);
diff --git a/drivers/net/dgrs.c b/drivers/net/dgrs.c
index df62c02..ddedb76 100644
--- a/drivers/net/dgrs.c
+++ b/drivers/net/dgrs.c
@@ -1272,7 +1272,6 @@ dgrs_found_device(
priv->chan = 1;
priv->devtbl[0] = dev;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, pdev);
ret = dgrs_probe1(dev);
@@ -1320,7 +1319,6 @@ dgrs_found_device(
if (ret)
goto fail;
- SET_MODULE_OWNER(devN);
SET_NETDEV_DEV(dev, pdev);
ret = register_netdev(devN);
diff --git a/drivers/net/dl2k.c b/drivers/net/dl2k.c
index 04e3710..df65139 100644
--- a/drivers/net/dl2k.c
+++ b/drivers/net/dl2k.c
@@ -116,7 +116,6 @@ rio_probe1 (struct pci_dev *pdev, const struct pci_device_id *ent)
err = -ENOMEM;
goto err_out_res;
}
- SET_MODULE_OWNER (dev);
SET_NETDEV_DEV(dev, &pdev->dev);
#ifdef MEM_MAPPING
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index 738aa59..857eb36 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -416,7 +416,6 @@ dm9000_probe(struct platform_device *pdev)
return -ENOMEM;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
PRINTK2("dm9000_probe()");
diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
index 756a6bc..84e14f3 100644
--- a/drivers/net/dummy.c
+++ b/drivers/net/dummy.c
@@ -71,7 +71,6 @@ static void dummy_setup(struct net_device *dev)
dev->change_mtu = NULL;
dev->flags |= IFF_NOARP;
dev->flags &= ~IFF_MULTICAST;
- SET_MODULE_OWNER(dev);
random_ether_addr(dev->dev_addr);
}
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 280313b..1f7136e 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -2607,7 +2607,6 @@ static int __devinit e100_probe(struct pci_dev *pdev,
goto err_out_free_res;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
if (use_io)
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 4a22595..01732c9 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -896,7 +896,6 @@ e1000_probe(struct pci_dev *pdev,
if (!netdev)
goto err_alloc_etherdev;
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
pci_set_drvdata(pdev, netdev);
diff --git a/drivers/net/e2100.c b/drivers/net/e2100.c
index b2b0a96..6390f51 100644
--- a/drivers/net/e2100.c
+++ b/drivers/net/e2100.c
@@ -124,8 +124,6 @@ static int __init do_e2100_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) /* Check a single specified location. */
return e21_probe1(dev, base_addr);
else if (base_addr != 0) /* Don't probe at all. */
diff --git a/drivers/net/eepro.c b/drivers/net/eepro.c
index 4768023..6eb84f1 100644
--- a/drivers/net/eepro.c
+++ b/drivers/net/eepro.c
@@ -537,8 +537,6 @@ static int __init do_eepro_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
#ifdef PnPWakeup
/* XXXX for multiple cards should this only be run once? */
@@ -594,8 +592,6 @@ struct net_device * __init eepro_probe(int unit)
if (!dev)
return ERR_PTR(-ENODEV);
- SET_MODULE_OWNER(dev);
-
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
diff --git a/drivers/net/eepro100.c b/drivers/net/eepro100.c
index 3c54014..f8b69ce 100644
--- a/drivers/net/eepro100.c
+++ b/drivers/net/eepro100.c
@@ -635,7 +635,6 @@ static int __devinit speedo_found1(struct pci_dev *pdev,
return -1;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (dev->mem_start > 0)
diff --git a/drivers/net/eexpress.c b/drivers/net/eexpress.c
index 7934ea3..6c91bfa 100644
--- a/drivers/net/eexpress.c
+++ b/drivers/net/eexpress.c
@@ -341,8 +341,6 @@ static int __init do_express_probe(struct net_device *dev)
int dev_irq = dev->irq;
int err;
- SET_MODULE_OWNER(dev);
-
dev->if_port = 0xff; /* not set */
#ifdef CONFIG_MCA_LEGACY
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index db57474..53f9d39 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -2627,8 +2627,6 @@ struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,
SET_NETDEV_DEV(dev, port_dev);
/* initialize net_device structure */
- SET_MODULE_OWNER(dev);
-
memcpy(dev->dev_addr, &port->mac_addr, ETH_ALEN);
dev->open = ehea_open;
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c
index 1197784..5c54a44 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -351,7 +351,6 @@ static int __devinit epic_init_one (struct pci_dev *pdev,
dev_err(&pdev->dev, "no memory for eth device\n");
goto err_out_free_res;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
#ifdef USE_IO_OPS
diff --git a/drivers/net/eql.c b/drivers/net/eql.c
index 102218c..23346b1 100644
--- a/drivers/net/eql.c
+++ b/drivers/net/eql.c
@@ -166,8 +166,6 @@ static void __init eql_setup(struct net_device *dev)
{
equalizer_t *eql = netdev_priv(dev);
- SET_MODULE_OWNER(dev);
-
init_timer(&eql->timer);
eql->timer.data = (unsigned long) eql;
eql->timer.expires = jiffies + EQL_DEFAULT_RESCHED_IVAL;
diff --git a/drivers/net/es3210.c b/drivers/net/es3210.c
index 822e5bf..238fa8a 100644
--- a/drivers/net/es3210.c
+++ b/drivers/net/es3210.c
@@ -130,8 +130,6 @@ static int __init do_es_probe(struct net_device *dev)
int irq = dev->irq;
int mem_start = dev->mem_start;
- SET_MODULE_OWNER(dev);
-
if (ioaddr > 0x1ff) /* Check a single specified location. */
return es_probe1(dev, ioaddr);
else if (ioaddr > 0) /* Don't probe at all. */
diff --git a/drivers/net/eth16i.c b/drivers/net/eth16i.c
index 04abf59..0e3b337 100644
--- a/drivers/net/eth16i.c
+++ b/drivers/net/eth16i.c
@@ -436,8 +436,6 @@ static int __init do_eth16i_probe(struct net_device *dev)
int ioaddr;
int base_addr = dev->base_addr;
- SET_MODULE_OWNER(dev);
-
if(eth16i_debug > 4)
printk(KERN_DEBUG "Probing started for %s\n", cardname);
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c
index cb0792c..6a5d043 100644
--- a/drivers/net/ewrk3.c
+++ b/drivers/net/ewrk3.c
@@ -356,7 +356,6 @@ struct net_device * __init ewrk3_probe(int unit)
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
err = ewrk3_probe1(dev, dev->base_addr, dev->irq);
if (err)
diff --git a/drivers/net/fealnx.c b/drivers/net/fealnx.c
index ff9f177..e935307 100644
--- a/drivers/net/fealnx.c
+++ b/drivers/net/fealnx.c
@@ -527,7 +527,6 @@ static int __devinit fealnx_init_one(struct pci_dev *pdev,
err = -ENOMEM;
goto err_out_unmap;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* read ethernet id */
diff --git a/drivers/net/fec_8xx/fec_main.c b/drivers/net/fec_8xx/fec_main.c
index e5502af..d53fce6 100644
--- a/drivers/net/fec_8xx/fec_main.c
+++ b/drivers/net/fec_8xx/fec_main.c
@@ -1104,7 +1104,6 @@ int fec_8xx_init_one(const struct fec_platform_info *fpi,
err = -ENOMEM;
goto err;
}
- SET_MODULE_OWNER(dev);
fep = netdev_priv(dev);
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 1938d6d..ef53ca0 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -4996,7 +4996,6 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
np = netdev_priv(dev);
np->pci_dev = pci_dev;
spin_lock_init(&np->lock);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pci_dev->dev);
init_timer(&np->oom_kick);
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index a4a2a0e..01594fe 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -961,7 +961,6 @@ static struct net_device *fs_init_instance(struct device *dev,
err = -ENOMEM;
goto err;
}
- SET_MODULE_OWNER(ndev);
fep = netdev_priv(ndev);
memset(fep, 0, privsize); /* clear everything */
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index f926905..3bbe92e 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -253,7 +253,6 @@ static int gfar_probe(struct platform_device *pdev)
/* Set the dev->base_addr to the gfar reg region */
dev->base_addr = (unsigned long) (priv->regs);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* Fill in the dev structure */
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c
index 15254dc..da12b3d 100644
--- a/drivers/net/hamachi.c
+++ b/drivers/net/hamachi.c
@@ -613,7 +613,6 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
if (!dev)
goto err_out_iounmap;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
#ifdef TX_CHECKSUM
diff --git a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c
index 760d04a..0a84732 100644
--- a/drivers/net/hamradio/6pack.c
+++ b/drivers/net/hamradio/6pack.c
@@ -345,8 +345,6 @@ static void sp_setup(struct net_device *dev)
memcpy(dev->broadcast, &ax25_bcast, AX25_ADDR_LEN);
memcpy(dev->dev_addr, &ax25_defaddr, AX25_ADDR_LEN);
- SET_MODULE_OWNER(dev);
-
dev->flags = 0;
}
diff --git a/drivers/net/hp-plus.c b/drivers/net/hp-plus.c
index 99a36cc..8d4f810 100644
--- a/drivers/net/hp-plus.c
+++ b/drivers/net/hp-plus.c
@@ -122,8 +122,6 @@ static int __init do_hpp_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) /* Check a single specified location. */
return hpp_probe1(dev, base_addr);
else if (base_addr != 0) /* Don't probe at all. */
diff --git a/drivers/net/hp.c b/drivers/net/hp.c
index 635b13c..1f11126 100644
--- a/drivers/net/hp.c
+++ b/drivers/net/hp.c
@@ -86,8 +86,6 @@ static int __init do_hp_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) /* Check a single specified location. */
return hp_probe1(dev, base_addr);
else if (base_addr != 0) /* Don't probe at all. */
diff --git a/drivers/net/hp100.c b/drivers/net/hp100.c
index 8caa591..406d652 100644
--- a/drivers/net/hp100.c
+++ b/drivers/net/hp100.c
@@ -404,8 +404,6 @@ struct net_device * __init hp100_probe(int unit)
if (!dev)
return ERR_PTR(-ENODEV);
- SET_MODULE_OWNER(dev);
-
#ifdef HP100_DEBUG_B
hp100_outw(0x4200, TRACE);
printk("hp100: %s: probe\n", dev->name);
@@ -2843,7 +2841,6 @@ static int __init hp100_eisa_probe (struct device *gendev)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &edev->dev);
err = hp100_probe1(dev, edev->base_addr + 0xC38, HP100_BUS_EISA, NULL);
@@ -2896,7 +2893,6 @@ static int __devinit hp100_pci_probe (struct pci_dev *pdev,
goto out0;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
@@ -2993,7 +2989,6 @@ static int __init hp100_isa_init(void)
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
err = hp100_isa_probe(dev, hp100_port[i]);
if (!err)
diff --git a/drivers/net/hydra.c b/drivers/net/hydra.c
index f970bfb..31300a9 100644
--- a/drivers/net/hydra.c
+++ b/drivers/net/hydra.c
@@ -112,7 +112,6 @@ static int __devinit hydra_init(struct zorro_dev *z)
dev = ____alloc_ei_netdev(0);
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
for(j = 0; j < ETHER_ADDR_LEN; j++)
dev->dev_addr[j] = *((u8 *)(board + HYDRA_ADDRPROM + 2*j));
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c
index f752e5f..354616b 100644
--- a/drivers/net/ibm_emac/ibm_emac_core.c
+++ b/drivers/net/ibm_emac/ibm_emac_core.c
@@ -1962,7 +1962,6 @@ static int __init emac_probe(struct ocp_device *ocpdev)
dev->ndev = ndev;
dev->ldev = &ocpdev->dev;
dev->def = ocpdev->def;
- SET_MODULE_OWNER(ndev);
/* Find MAL device we are connected to */
maldev =
diff --git a/drivers/net/ibmlana.c b/drivers/net/ibmlana.c
index fe85d6f..67d82fa 100644
--- a/drivers/net/ibmlana.c
+++ b/drivers/net/ibmlana.c
@@ -907,8 +907,6 @@ static int ibmlana_probe(struct net_device *dev)
ibmlana_priv *priv;
ibmlana_medium medium;
- SET_MODULE_OWNER(dev);
-
/* can't work without an MCA bus ;-) */
if (MCA_bus == 0)
return -ENODEV;
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index acba90f..75b9f57 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -994,8 +994,6 @@ static int __devinit ibmveth_probe(struct vio_dev *dev, const struct vio_device_
if(!netdev)
return -ENOMEM;
- SET_MODULE_OWNER(netdev);
-
adapter = netdev->priv;
dev->dev.driver_data = netdev;
@@ -1094,7 +1092,6 @@ static void ibmveth_proc_register_driver(void)
{
ibmveth_proc_dir = proc_mkdir(IBMVETH_PROC_DIR, NULL);
if (ibmveth_proc_dir) {
- SET_MODULE_OWNER(ibmveth_proc_dir);
}
}
@@ -1195,7 +1192,6 @@ static void ibmveth_proc_register_adapter(struct ibmveth_adapter *adapter)
} else {
entry->data = (void *) adapter;
entry->proc_fops = &ibmveth_proc_fops;
- SET_MODULE_OWNER(entry);
}
}
return;
diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
index f5c3598..e66d657 100644
--- a/drivers/net/ifb.c
+++ b/drivers/net/ifb.c
@@ -151,7 +151,6 @@ static void ifb_setup(struct net_device *dev)
dev->change_mtu = NULL;
dev->flags |= IFF_NOARP;
dev->flags &= ~IFF_MULTICAST;
- SET_MODULE_OWNER(dev);
random_ether_addr(dev->dev_addr);
}
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c
index c030030..05d2bc1 100644
--- a/drivers/net/ioc3-eth.c
+++ b/drivers/net/ioc3-eth.c
@@ -1273,7 +1273,6 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (err)
goto out_free;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
ip = netdev_priv(dev);
diff --git a/drivers/net/irda/ali-ircc.c b/drivers/net/irda/ali-ircc.c
index f9c889c..9f58452 100644
--- a/drivers/net/irda/ali-ircc.c
+++ b/drivers/net/irda/ali-ircc.c
@@ -360,10 +360,6 @@ static int ali_ircc_open(int i, chipio_t *info)
self->tx_fifo.len = self->tx_fifo.ptr = self->tx_fifo.free = 0;
self->tx_fifo.tail = self->tx_buff.head;
-
- /* Keep track of module usage */
- SET_MODULE_OWNER(dev);
-
/* Override the network functions we need to use */
dev->hard_start_xmit = ali_ircc_sir_hard_xmit;
dev->open = ali_ircc_net_open;
diff --git a/drivers/net/irda/donauboe.c b/drivers/net/irda/donauboe.c
index 3ca47bf..3e5eca1 100644
--- a/drivers/net/irda/donauboe.c
+++ b/drivers/net/irda/donauboe.c
@@ -1660,7 +1660,6 @@ toshoboe_open (struct pci_dev *pci_dev, const struct pci_device_id *pdid)
}
#endif
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pci_dev->dev);
dev->hard_start_xmit = toshoboe_hard_xmit;
dev->open = toshoboe_net_open;
diff --git a/drivers/net/irda/irda-usb.c b/drivers/net/irda/irda-usb.c
index 3b0fd83..c6355c0 100644
--- a/drivers/net/irda/irda-usb.c
+++ b/drivers/net/irda/irda-usb.c
@@ -1635,7 +1635,6 @@ static int irda_usb_probe(struct usb_interface *intf,
if (!net)
goto err_out;
- SET_MODULE_OWNER(net);
SET_NETDEV_DEV(net, &intf->dev);
self = net->priv;
self->netdev = net;
diff --git a/drivers/net/irda/irport.c b/drivers/net/irda/irport.c
index 2073245..c79caa5 100644
--- a/drivers/net/irda/irport.c
+++ b/drivers/net/irda/irport.c
@@ -175,8 +175,6 @@ irport_open(int i, unsigned int iobase, unsigned int irq)
self->tx_buff.data = self->tx_buff.head;
self->netdev = dev;
- /* Keep track of module usage */
- SET_MODULE_OWNER(dev);
/* May be overridden by piggyback drivers */
self->interrupt = irport_interrupt;
diff --git a/drivers/net/irda/kingsun-sir.c b/drivers/net/irda/kingsun-sir.c
index 4e5101a..d323f6b 100644
--- a/drivers/net/irda/kingsun-sir.c
+++ b/drivers/net/irda/kingsun-sir.c
@@ -488,7 +488,6 @@ static int kingsun_probe(struct usb_interface *intf,
if(!net)
goto err_out1;
- SET_MODULE_OWNER(net);
SET_NETDEV_DEV(net, &intf->dev);
kingsun = netdev_priv(net);
kingsun->irlap = NULL;
diff --git a/drivers/net/irda/mcs7780.c b/drivers/net/irda/mcs7780.c
index 0de8672..e04718e 100644
--- a/drivers/net/irda/mcs7780.c
+++ b/drivers/net/irda/mcs7780.c
@@ -899,8 +899,6 @@ static int mcs_probe(struct usb_interface *intf,
IRDA_DEBUG(1, "MCS7780 USB-IrDA bridge found at %d.\n", udev->devnum);
- /* what is it realy for? */
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &intf->dev);
ret = usb_reset_configuration(udev);
diff --git a/drivers/net/irda/nsc-ircc.c b/drivers/net/irda/nsc-ircc.c
index d96c897..12b9378 100644
--- a/drivers/net/irda/nsc-ircc.c
+++ b/drivers/net/irda/nsc-ircc.c
@@ -437,7 +437,6 @@ static int __init nsc_ircc_open(chipio_t *info)
self->tx_fifo.tail = self->tx_buff.head;
/* Override the network functions we need to use */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = nsc_ircc_hard_xmit_sir;
dev->open = nsc_ircc_net_open;
dev->stop = nsc_ircc_net_close;
diff --git a/drivers/net/irda/sir_dev.c b/drivers/net/irda/sir_dev.c
index 9d6c8f3..bbe4e09 100644
--- a/drivers/net/irda/sir_dev.c
+++ b/drivers/net/irda/sir_dev.c
@@ -913,8 +913,6 @@ struct sir_dev * sirdev_get_instance(const struct sir_driver *drv, const char *n
dev->drv = drv;
dev->netdev = ndev;
- SET_MODULE_OWNER(ndev);
-
/* Override the network functions we need to use */
ndev->hard_start_xmit = sirdev_hard_xmit;
ndev->open = sirdev_open;
diff --git a/drivers/net/irda/smsc-ircc2.c b/drivers/net/irda/smsc-ircc2.c
index 36ab983..029fdde 100644
--- a/drivers/net/irda/smsc-ircc2.c
+++ b/drivers/net/irda/smsc-ircc2.c
@@ -519,8 +519,6 @@ static int __init smsc_ircc_open(unsigned int fir_base, unsigned int sir_base, u
goto err_out1;
}
- SET_MODULE_OWNER(dev);
-
dev->hard_start_xmit = smsc_ircc_hard_xmit_sir;
#if SMSC_IRCC2_C_NET_TIMEOUT
dev->tx_timeout = smsc_ircc_timeout;
diff --git a/drivers/net/irda/stir4200.c b/drivers/net/irda/stir4200.c
index 755aa44..1afaee0 100644
--- a/drivers/net/irda/stir4200.c
+++ b/drivers/net/irda/stir4200.c
@@ -1034,7 +1034,6 @@ static int stir_probe(struct usb_interface *intf,
if(!net)
goto err_out1;
- SET_MODULE_OWNER(net);
SET_NETDEV_DEV(net, &intf->dev);
stir = netdev_priv(net);
stir->netdev = net;
diff --git a/drivers/net/irda/via-ircc.c b/drivers/net/irda/via-ircc.c
index ff53585..126ec7c 100644
--- a/drivers/net/irda/via-ircc.c
+++ b/drivers/net/irda/via-ircc.c
@@ -429,9 +429,6 @@ static __devinit int via_ircc_open(int i, chipio_t * info, unsigned int id)
self->tx_fifo.len = self->tx_fifo.ptr = self->tx_fifo.free = 0;
self->tx_fifo.tail = self->tx_buff.head;
- /* Keep track of module usage */
- SET_MODULE_OWNER(dev);
-
/* Override the network functions we need to use */
dev->hard_start_xmit = via_ircc_hard_xmit_sir;
dev->open = via_ircc_net_open;
diff --git a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c
index 0538ca9..acd082a 100644
--- a/drivers/net/irda/vlsi_ir.c
+++ b/drivers/net/irda/vlsi_ir.c
@@ -1584,8 +1584,6 @@ static int vlsi_irda_init(struct net_device *ndev)
vlsi_irda_dev_t *idev = ndev->priv;
struct pci_dev *pdev = idev->pdev;
- SET_MODULE_OWNER(ndev);
-
ndev->irq = pdev->irq;
ndev->base_addr = pci_resource_start(pdev,0);
diff --git a/drivers/net/irda/w83977af_ir.c b/drivers/net/irda/w83977af_ir.c
index 5182e80..9fd2451 100644
--- a/drivers/net/irda/w83977af_ir.c
+++ b/drivers/net/irda/w83977af_ir.c
@@ -232,9 +232,6 @@ int w83977af_open(int i, unsigned int iobase, unsigned int irq,
self->rx_buff.data = self->rx_buff.head;
self->netdev = dev;
- /* Keep track of module usage */
- SET_MODULE_OWNER(dev);
-
/* Override the network functions we need to use */
dev->hard_start_xmit = w83977af_hard_xmit;
dev->open = w83977af_net_open;
diff --git a/drivers/net/isa-skeleton.c b/drivers/net/isa-skeleton.c
index 0343f12..5417811 100644
--- a/drivers/net/isa-skeleton.c
+++ b/drivers/net/isa-skeleton.c
@@ -133,8 +133,6 @@ static int __init do_netcard_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) /* Check a single specified location. */
return netcard_probe1(dev, base_addr);
else if (base_addr != 0) /* Don't probe at all. */
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index 991c883..0b63186 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -382,7 +382,6 @@ ixgb_probe(struct pci_dev *pdev,
goto err_alloc_etherdev;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
pci_set_drvdata(pdev, netdev);
diff --git a/drivers/net/ixp2000/enp2611.c b/drivers/net/ixp2000/enp2611.c
index d3f4235..b02a981 100644
--- a/drivers/net/ixp2000/enp2611.c
+++ b/drivers/net/ixp2000/enp2611.c
@@ -210,7 +210,6 @@ static int __init enp2611_init_module(void)
return -ENOMEM;
}
- SET_MODULE_OWNER(nds[i]);
nds[i]->get_stats = enp2611_get_stats;
pm3386_init_port(i);
pm3386_get_mac(i, nds[i]->dev_addr);
diff --git a/drivers/net/jazzsonic.c b/drivers/net/jazzsonic.c
index 75f6f44..2cffb7b 100644
--- a/drivers/net/jazzsonic.c
+++ b/drivers/net/jazzsonic.c
@@ -231,7 +231,6 @@ static int __init jazz_sonic_probe(struct platform_device *pdev)
lp = netdev_priv(dev);
lp->device = &pdev->dev;
SET_NETDEV_DEV(dev, &pdev->dev);
- SET_MODULE_OWNER(dev);
netdev_boot_setup_check(dev);
diff --git a/drivers/net/lance.c b/drivers/net/lance.c
index a4e5fab..7b17212 100644
--- a/drivers/net/lance.c
+++ b/drivers/net/lance.c
@@ -521,7 +521,6 @@ static int __init lance_probe1(struct net_device *dev, int ioaddr, int irq, int
/* We can't allocate dev->priv from alloc_etherdev() because it must
a ISA DMA-able region. */
- SET_MODULE_OWNER(dev);
chipname = chip_table[lance_version].name;
printk("%s: %s at %#3x,", dev->name, chipname, ioaddr);
diff --git a/drivers/net/lguest_net.c b/drivers/net/lguest_net.c
index cab5791..7f34c92 100644
--- a/drivers/net/lguest_net.c
+++ b/drivers/net/lguest_net.c
@@ -460,8 +460,6 @@ static int lguestnet_probe(struct lguest_device *lgdev)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
-
/* Ethernet defaults with some changes */
ether_setup(dev);
dev->set_mac_address = NULL;
diff --git a/drivers/net/lne390.c b/drivers/net/lne390.c
index 0a08d0c..2dd3969 100644
--- a/drivers/net/lne390.c
+++ b/drivers/net/lne390.c
@@ -111,8 +111,6 @@ static int __init do_lne390_probe(struct net_device *dev)
int mem_start = dev->mem_start;
int ret;
- SET_MODULE_OWNER(dev);
-
if (ioaddr > 0x1ff) { /* Check a single specified location. */
if (!request_region(ioaddr, LNE390_IO_EXTENT, DRV_NAME))
return -EBUSY;
diff --git a/drivers/net/mac8390.c b/drivers/net/mac8390.c
index 90b0c3e..9e70074 100644
--- a/drivers/net/mac8390.c
+++ b/drivers/net/mac8390.c
@@ -313,8 +313,6 @@ struct net_device * __init mac8390_probe(int unit)
if (unit >= 0)
sprintf(dev->name, "eth%d", unit);
- SET_MODULE_OWNER(dev);
-
while ((ndev = nubus_find_type(NUBUS_CAT_NETWORK, NUBUS_TYPE_ETHERNET, ndev))) {
/* Have we seen it already? */
if (slots & (1<<ndev->board->slot))
diff --git a/drivers/net/mac89x0.c b/drivers/net/mac89x0.c
index 62c1c62..f6f3fdf 100644
--- a/drivers/net/mac89x0.c
+++ b/drivers/net/mac89x0.c
@@ -191,8 +191,6 @@ struct net_device * __init mac89x0_probe(int unit)
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
-
if (once_is_enough)
goto out;
once_is_enough = 1;
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index a4bb026..3c1b2f9 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -1088,7 +1088,6 @@ static int __devinit macb_probe(struct platform_device *pdev)
goto err_out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* TODO: Actually, we have some interesting features... */
diff --git a/drivers/net/mace.c b/drivers/net/mace.c
index 52b9332..de3b002 100644
--- a/drivers/net/mace.c
+++ b/drivers/net/mace.c
@@ -143,7 +143,6 @@ static int __devinit mace_probe(struct macio_dev *mdev, const struct of_device_i
rc = -ENOMEM;
goto err_release;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &mdev->ofdev.dev);
mp = dev->priv;
diff --git a/drivers/net/macmace.c b/drivers/net/macmace.c
index 9a343b9..5d2daa2 100644
--- a/drivers/net/macmace.c
+++ b/drivers/net/macmace.c
@@ -210,7 +210,6 @@ static int __devinit mace_probe(struct platform_device *pdev)
mp->device = &pdev->dev;
SET_NETDEV_DEV(dev, &pdev->dev);
- SET_MODULE_OWNER(dev);
dev->base_addr = (u32)MACE_BASE;
mp->mace = (volatile struct mace *) MACE_BASE;
diff --git a/drivers/net/macsonic.c b/drivers/net/macsonic.c
index e9ecdbf..a55a839 100644
--- a/drivers/net/macsonic.c
+++ b/drivers/net/macsonic.c
@@ -576,7 +576,6 @@ static int __init mac_sonic_probe(struct platform_device *pdev)
lp = netdev_priv(dev);
lp->device = &pdev->dev;
SET_NETDEV_DEV(dev, &pdev->dev);
- SET_MODULE_OWNER(dev);
/* This will catch fatal stuff like -ENOMEM as well as success */
err = mac_onboard_sonic_probe(dev);
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 1799eee..f5fa185 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -1432,7 +1432,6 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
mv643xx_eth_update_pscr(dev, &cmd);
mv643xx_set_settings(dev, &cmd);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
err = register_netdev(dev);
if (err)
diff --git a/drivers/net/mvme147.c b/drivers/net/mvme147.c
index e246d00..837ad0f 100644
--- a/drivers/net/mvme147.c
+++ b/drivers/net/mvme147.c
@@ -79,8 +79,6 @@ struct net_device * __init mvme147lance_probe(int unit)
if (unit >= 0)
sprintf(dev->name, "eth%d", unit);
- SET_MODULE_OWNER(dev);
-
/* Fill the dev fields */
dev->base_addr = (unsigned long)MVME147_LANCE_BASE;
dev->open = &m147lance_open;
diff --git a/drivers/net/myri_sbus.c b/drivers/net/myri_sbus.c
index 13444da..331b76c 100644
--- a/drivers/net/myri_sbus.c
+++ b/drivers/net/myri_sbus.c
@@ -908,7 +908,6 @@ static int __devinit myri_ether_init(struct sbus_dev *sdev)
if (version_printed++ == 0)
printk(version);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &sdev->ofdev.dev);
mp = (struct myri_eth *) dev->priv;
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index b47a12d..c5e68ed 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -835,7 +835,6 @@ static int __devinit natsemi_probe1 (struct pci_dev *pdev,
dev = alloc_etherdev(sizeof (struct netdev_private));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
i = pci_request_regions(pdev, DRV_NAME);
diff --git a/drivers/net/ne-h8300.c b/drivers/net/ne-h8300.c
index 38fd525..a0f3536 100644
--- a/drivers/net/ne-h8300.c
+++ b/drivers/net/ne-h8300.c
@@ -149,8 +149,6 @@ static int __init do_ne_probe(struct net_device *dev)
{
unsigned int base_addr = dev->base_addr;
- SET_MODULE_OWNER(dev);
-
/* First check any supplied i/o locations. User knows best. <cough> */
if (base_addr > 0x1ff) /* Check a single specified location. */
return ne_probe1(dev, base_addr);
diff --git a/drivers/net/ne.c b/drivers/net/ne.c
index c9f74bf..c81befc 100644
--- a/drivers/net/ne.c
+++ b/drivers/net/ne.c
@@ -191,8 +191,6 @@ static int __init do_ne_probe(struct net_device *dev)
int orig_irq = dev->irq;
#endif
- SET_MODULE_OWNER(dev);
-
/* First check any supplied i/o locations. User knows best. <cough> */
if (base_addr > 0x1ff) /* Check a single specified location. */
return ne_probe1(dev, base_addr);
diff --git a/drivers/net/ne2.c b/drivers/net/ne2.c
index 089b5bb..d1a4b8d 100644
--- a/drivers/net/ne2.c
+++ b/drivers/net/ne2.c
@@ -251,8 +251,6 @@ static int __init do_ne2_probe(struct net_device *dev)
int i;
int adapter_found = 0;
- SET_MODULE_OWNER(dev);
-
/* Do not check any supplied i/o locations.
POS registers usually don't fail :) */
diff --git a/drivers/net/ne2k-pci.c b/drivers/net/ne2k-pci.c
index f81d939..230a0f1 100644
--- a/drivers/net/ne2k-pci.c
+++ b/drivers/net/ne2k-pci.c
@@ -265,7 +265,6 @@ static int __devinit ne2k_pci_init_one (struct pci_dev *pdev,
dev_err(&pdev->dev, "cannot allocate ethernet device\n");
goto err_out_free_res;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* Reset card. Who knows what dain-bramaged state it was left in. */
diff --git a/drivers/net/ne3210.c b/drivers/net/ne3210.c
index 1a6fed7..b1bf833 100644
--- a/drivers/net/ne3210.c
+++ b/drivers/net/ne3210.c
@@ -106,7 +106,6 @@ static int __init ne3210_eisa_probe (struct device *device)
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, device);
device->driver_data = dev;
ioaddr = edev->base_addr;
diff --git a/drivers/net/netx-eth.c b/drivers/net/netx-eth.c
index 2b8da0a..6fee405 100644
--- a/drivers/net/netx-eth.c
+++ b/drivers/net/netx-eth.c
@@ -390,7 +390,6 @@ static int netx_eth_drv_probe(struct platform_device *pdev)
ret = -ENOMEM;
goto exit;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
platform_set_drvdata(pdev, ndev);
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 3122d01..d42b96e 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -326,7 +326,6 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_out_free_res;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &pdev->dev);
adapter = netdev->priv;
diff --git a/drivers/net/ni5010.c b/drivers/net/ni5010.c
index 22a3b3d..cc1d09a 100644
--- a/drivers/net/ni5010.c
+++ b/drivers/net/ni5010.c
@@ -135,8 +135,6 @@ struct net_device * __init ni5010_probe(int unit)
PRINTK2((KERN_DEBUG "%s: Entering ni5010_probe\n", dev->name));
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) { /* Check a single specified location. */
err = ni5010_probe1(dev, io);
} else if (io != 0) { /* Don't probe at all. */
diff --git a/drivers/net/ni52.c b/drivers/net/ni52.c
index 5e7999d..6b3384a 100644
--- a/drivers/net/ni52.c
+++ b/drivers/net/ni52.c
@@ -382,8 +382,6 @@ struct net_device * __init ni52_probe(int unit)
memend = dev->mem_end;
}
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) { /* Check a single specified location. */
err = ni52_probe1(dev, io);
} else if (io > 0) { /* Don't probe at all. */
diff --git a/drivers/net/ni65.c b/drivers/net/ni65.c
index 4ef5fe3..0976852 100644
--- a/drivers/net/ni65.c
+++ b/drivers/net/ni65.c
@@ -550,7 +550,6 @@ static int __init ni65_probe1(struct net_device *dev,int ioaddr)
}
dev->base_addr = ioaddr;
- SET_MODULE_OWNER(dev);
dev->open = ni65_open;
dev->stop = ni65_close;
dev->hard_start_xmit = ni65_send_packet;
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c
index ea80e6c..055f197 100644
--- a/drivers/net/ns83820.c
+++ b/drivers/net/ns83820.c
@@ -1843,7 +1843,6 @@ static int __devinit ns83820_init_one(struct pci_dev *pci_dev, const struct pci_
spin_lock_init(&dev->misc_lock);
dev->pci_dev = pci_dev;
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pci_dev->dev);
INIT_WORK(&dev->tq_refill, queue_refill);
diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c
index 0b3066a..4d6a7c8 100644
--- a/drivers/net/pasemi_mac.c
+++ b/drivers/net/pasemi_mac.c
@@ -1089,7 +1089,6 @@ pasemi_mac_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto out_disable_device;
}
- SET_MODULE_OWNER(dev);
pci_set_drvdata(pdev, dev);
SET_NETDEV_DEV(dev, &pdev->dev);
diff --git a/drivers/net/pci-skeleton.c b/drivers/net/pci-skeleton.c
index 3cdbe11..a4b1648 100644
--- a/drivers/net/pci-skeleton.c
+++ b/drivers/net/pci-skeleton.c
@@ -604,7 +604,6 @@ static int __devinit netdrv_init_board (struct pci_dev *pdev,
DPRINTK ("EXIT, returning -ENOMEM\n");
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
tp = dev->priv;
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index 503f268..2136c80 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -197,7 +197,6 @@ static int tc589_probe(struct pcmcia_device *link)
link->conf.ConfigIndex = 1;
/* The EL3-specific entries in the device structure. */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &el3_start_xmit;
dev->set_config = &el3_config;
dev->get_stats = &el3_get_stats;
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index 50dff1b..a9db59d 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -1728,9 +1728,6 @@ static void axdev_setup(struct net_device *dev)
if (ei_debug > 1)
printk(version_8390);
- SET_MODULE_OWNER(dev);
-
-
ei_local = (struct ei_device *)netdev_priv(dev);
spin_lock_init(&ei_local->page_lock);
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index 85d5f2c..7f29e95 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -259,7 +259,6 @@ static int fmvj18x_probe(struct pcmcia_device *link)
link->conf.IntType = INT_MEMORY_AND_IO;
/* The FMVJ18x specific entries in the device structure. */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &fjn_start_xmit;
dev->set_config = &fjn_config;
dev->get_stats = &fjn_get_stats;
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index 997c2d0..1bb2ffa 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -474,7 +474,6 @@ static int nmclan_probe(struct pcmcia_device *link)
lp->tx_free_frames=AM2150_MAX_TX_FRAMES;
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &mace_start_xmit;
dev->set_config = &mace_config;
dev->get_stats = &mace_get_stats;
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index 63de89e..49857c1 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -259,7 +259,6 @@ static int pcnet_probe(struct pcmcia_device *link)
link->conf.Attributes = CONF_ENABLE_IRQ;
link->conf.IntType = INT_MEMORY_AND_IO;
- SET_MODULE_OWNER(dev);
dev->open = &pcnet_open;
dev->stop = &pcnet_close;
dev->set_config = &set_config;
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index af6728c..b25f198 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -336,7 +336,6 @@ static int smc91c92_probe(struct pcmcia_device *link)
link->conf.IntType = INT_MEMORY_AND_IO;
/* The SMC91c92-specific entries in the device structure. */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &smc_start_xmit;
dev->get_stats = &smc_get_stats;
dev->set_config = &s9k_config;
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index 258d6f3..d5c2d2c 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -580,7 +580,6 @@ xirc2ps_probe(struct pcmcia_device *link)
link->irq.Instance = dev;
/* Fill in card specific entries */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &do_start_xmit;
dev->set_config = &do_config;
dev->get_stats = &do_get_stats;
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index e6a6753..42c3b3d 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -1817,7 +1817,6 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
spin_lock_init(&lp->lock);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
lp->name = chipname;
lp->shared_irq = shared;
diff --git a/drivers/net/plip.c b/drivers/net/plip.c
index 8754cf3..2cfab4b 100644
--- a/drivers/net/plip.c
+++ b/drivers/net/plip.c
@@ -1278,7 +1278,6 @@ static void plip_attach (struct parport *port)
strcpy(dev->name, name);
- SET_MODULE_OWNER(dev);
dev->irq = port->irq;
dev->base_addr = port->base;
if (port->irq == -1) {
diff --git a/drivers/net/ps3_gelic_net.c b/drivers/net/ps3_gelic_net.c
index e565039..f6c1c8d 100644
--- a/drivers/net/ps3_gelic_net.c
+++ b/drivers/net/ps3_gelic_net.c
@@ -1382,7 +1382,6 @@ static int gelic_net_setup_netdev(struct gelic_net_card *card)
int status;
u64 v1, v2;
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &card->dev->core);
spin_lock_init(&card->tx_dma_lock);
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 69da95b..3fb2bcb 100755
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -4009,7 +4009,6 @@ static int __devinit ql3xxx_probe(struct pci_dev *pdev,
goto err_out_free_regions;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
pci_set_drvdata(pdev, ndev);
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index b85ab4a..0170c07 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -1502,7 +1502,6 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
goto out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
tp = netdev_priv(dev);
tp->dev = dev;
diff --git a/drivers/net/rionet.c b/drivers/net/rionet.c
index df6b738..25a9dd8 100644
--- a/drivers/net/rionet.c
+++ b/drivers/net/rionet.c
@@ -471,8 +471,6 @@ static int rionet_setup_netdev(struct rio_mport *mport)
ndev->features = NETIF_F_LLTX;
SET_ETHTOOL_OPS(ndev, &rionet_ethtool_ops);
- SET_MODULE_OWNER(ndev);
-
spin_lock_init(&rnet->lock);
spin_lock_init(&rnet->tx_lock);
diff --git a/drivers/net/rrunner.c b/drivers/net/rrunner.c
index 5c2e41f..41f877d 100644
--- a/drivers/net/rrunner.c
+++ b/drivers/net/rrunner.c
@@ -109,7 +109,6 @@ static int __devinit rr_init_one(struct pci_dev *pdev,
rrpriv = netdev_priv(dev);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_request_regions(pdev, "rrunner")) {
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 24feb00..4e8e401 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -7076,7 +7076,6 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
pci_set_master(pdev);
pci_set_drvdata(pdev, dev);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* Private member variable initialized to s2io NIC structure */
diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c
index 1de3eec..aeaa75f 100644
--- a/drivers/net/sb1000.c
+++ b/drivers/net/sb1000.c
@@ -189,7 +189,6 @@ sb1000_probe_one(struct pnp_dev *pdev, const struct pnp_device_id *id)
*/
dev->flags = IFF_POINTOPOINT|IFF_NOARP;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (sb1000_debug > 0)
diff --git a/drivers/net/shaper.c b/drivers/net/shaper.c
index 4c3d98f..700d39d 100644
--- a/drivers/net/shaper.c
+++ b/drivers/net/shaper.c
@@ -532,8 +532,6 @@ static void __init shaper_setup(struct net_device *dev)
* Set up the shaper.
*/
- SET_MODULE_OWNER(dev);
-
shaper_init_priv(dev);
dev->open = shaper_open;
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index d470b19..452cf93 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -1436,7 +1436,6 @@ static struct net_device * __devinit sis190_init_board(struct pci_dev *pdev)
goto err_out_0;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
tp = netdev_priv(dev);
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index 7c6e480..e1930c3 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -430,7 +430,6 @@ static int __devinit sis900_probe(struct pci_dev *pci_dev,
net_dev = alloc_etherdev(sizeof(struct sis900_private));
if (!net_dev)
return -ENOMEM;
- SET_MODULE_OWNER(net_dev);
SET_NETDEV_DEV(net_dev, &pci_dev->dev);
/* We do a request_region() to register /proc/ioports info. */
diff --git a/drivers/net/skfp/skfddi.c b/drivers/net/skfp/skfddi.c
index a7ef6c8..ca50870 100644
--- a/drivers/net/skfp/skfddi.c
+++ b/drivers/net/skfp/skfddi.c
@@ -262,7 +262,6 @@ static int skfp_init_one(struct pci_dev *pdev,
dev->do_ioctl = &skfp_ioctl;
dev->header_cache_update = NULL; /* not supported */
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/* Initialize board structure with bus-specific info */
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index e3d8520..babb1bf 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -3552,7 +3552,6 @@ static struct net_device *skge_devinit(struct skge_hw *hw, int port,
return NULL;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &hw->pdev->dev);
dev->open = skge_up;
dev->stop = skge_down;
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index e6d937e..c557018 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -3756,7 +3756,6 @@ static __devinit struct net_device *sky2_init_netdev(struct sky2_hw *hw,
return NULL;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &hw->pdev->dev);
dev->irq = hw->pdev->irq;
dev->open = sky2_up;
diff --git a/drivers/net/slip.c b/drivers/net/slip.c
index 3fd4735..335b7cc 100644
--- a/drivers/net/slip.c
+++ b/drivers/net/slip.c
@@ -639,8 +639,6 @@ static void sl_setup(struct net_device *dev)
dev->addr_len = 0;
dev->tx_queue_len = 10;
- SET_MODULE_OWNER(dev);
-
/* New-style flags. */
dev->flags = IFF_NOARP|IFF_POINTOPOINT|IFF_MULTICAST;
}
diff --git a/drivers/net/smc-mca.c b/drivers/net/smc-mca.c
index ae1ae34..3b43fa8 100644
--- a/drivers/net/smc-mca.c
+++ b/drivers/net/smc-mca.c
@@ -264,7 +264,6 @@ static int __init ultramca_probe(struct device *gen_dev)
if(!dev)
return -ENODEV;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, gen_dev);
mca_device_set_name(mca_dev, smc_mca_adapter_names[adapter]);
mca_device_set_claim(mca_dev, 1);
diff --git a/drivers/net/smc-ultra.c b/drivers/net/smc-ultra.c
index a52b22d..d02bd7b 100644
--- a/drivers/net/smc-ultra.c
+++ b/drivers/net/smc-ultra.c
@@ -142,8 +142,6 @@ static int __init do_ultra_probe(struct net_device *dev)
int base_addr = dev->base_addr;
int irq = dev->irq;
- SET_MODULE_OWNER(dev);
-
#ifdef CONFIG_NET_POLL_CONTROLLER
dev->poll_controller = &ultra_poll;
#endif
diff --git a/drivers/net/smc-ultra32.c b/drivers/net/smc-ultra32.c
index 88a30e5..043a500 100644
--- a/drivers/net/smc-ultra32.c
+++ b/drivers/net/smc-ultra32.c
@@ -132,8 +132,6 @@ struct net_device * __init ultra32_probe(int unit)
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
-
irq = dev->irq;
/* EISA spec allows for up to 16 slots, but 8 is typical. */
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index db43e42..5f03e44 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -2181,7 +2181,6 @@ static int smc911x_drv_probe(struct platform_device *pdev)
ret = -ENOMEM;
goto release_1;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
ndev->dma = (unsigned char)-1;
diff --git a/drivers/net/smc9194.c b/drivers/net/smc9194.c
index 36c1eba..0a79516 100644
--- a/drivers/net/smc9194.c
+++ b/drivers/net/smc9194.c
@@ -744,8 +744,6 @@ struct net_device * __init smc_init(int unit)
irq = dev->irq;
}
- SET_MODULE_OWNER(dev);
-
if (io > 0x1ff) { /* Check a single specified location. */
err = smc_probe(dev, io);
} else if (io != 0) { /* Don't probe at all. */
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index 01cc3c7..c5837ab 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -2212,7 +2212,6 @@ static int smc_drv_probe(struct platform_device *pdev)
ret = -ENOMEM;
goto out_release_io;
}
- SET_MODULE_OWNER(ndev);
SET_NETDEV_DEV(ndev, &pdev->dev);
ndev->dma = (unsigned char)-1;
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index 590b12c..4557e27 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -2337,7 +2337,6 @@ spider_net_setup_netdev(struct spider_net_card *card)
struct sockaddr addr;
const u8 *mac;
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &card->pdev->dev);
pci_set_drvdata(card->pdev, netdev);
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c
index 8b64786..9c2a2dc 100644
--- a/drivers/net/starfire.c
+++ b/drivers/net/starfire.c
@@ -720,7 +720,6 @@ static int __devinit starfire_init_one(struct pci_dev *pdev,
printk(KERN_ERR DRV_NAME " %d: cannot alloc etherdev, aborting\n", card_idx);
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
irq = pdev->irq;
diff --git a/drivers/net/stnic.c b/drivers/net/stnic.c
index e6f9042..b65be5d 100644
--- a/drivers/net/stnic.c
+++ b/drivers/net/stnic.c
@@ -112,7 +112,6 @@ static int __init stnic_probe(void)
dev = alloc_ei_netdev();
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
#ifdef CONFIG_SH_STANDARD_BIOS
sh_bios_get_node_addr (stnic_eadr);
diff --git a/drivers/net/sun3_82586.c b/drivers/net/sun3_82586.c
index b77ab6e..9b2a7f7 100644
--- a/drivers/net/sun3_82586.c
+++ b/drivers/net/sun3_82586.c
@@ -311,7 +311,6 @@ struct net_device * __init sun3_82586_probe(int unit)
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
dev->irq = IE_IRQ;
dev->base_addr = ioaddr;
diff --git a/drivers/net/sun3lance.c b/drivers/net/sun3lance.c
index f1548c0..c67632d 100644
--- a/drivers/net/sun3lance.c
+++ b/drivers/net/sun3lance.c
@@ -274,7 +274,6 @@ struct net_device * __init sun3lance_probe(int unit)
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
}
- SET_MODULE_OWNER(dev);
if (!lance_probe(dev))
goto out;
diff --git a/drivers/net/sunbmac.c b/drivers/net/sunbmac.c
index b3e0158..4ba3e48 100644
--- a/drivers/net/sunbmac.c
+++ b/drivers/net/sunbmac.c
@@ -1087,7 +1087,6 @@ static int __init bigmac_ether_init(struct sbus_dev *qec_sdev)
dev = alloc_etherdev(sizeof(struct bigmac));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
if (version_printed++ == 0)
printk(KERN_INFO "%s", version);
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index a8f2af8..3c553dc 100644
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -485,7 +485,6 @@ static int __devinit sundance_probe1 (struct pci_dev *pdev,
dev = alloc_etherdev(sizeof(*np));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_request_regions(pdev, DRV_NAME))
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index 4328038..6839afe 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -3026,7 +3026,6 @@ static int __devinit gem_init_one(struct pci_dev *pdev,
err = -ENOMEM;
goto err_disable_device;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
gp = dev->priv;
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index 8b35f13..170580c 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2680,7 +2680,6 @@ static int __devinit happy_meal_sbus_probe_one(struct sbus_dev *sdev, int is_qfe
dev = alloc_etherdev(sizeof(struct happy_meal));
if (!dev)
goto err_out;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &sdev->ofdev.dev);
if (hme_version_printed++ == 0)
@@ -3022,7 +3021,6 @@ static int __devinit happy_meal_pci_probe(struct pci_dev *pdev,
err = -ENOMEM;
if (!dev)
goto err_out;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (hme_version_printed++ == 0)
diff --git a/drivers/net/sunlance.c b/drivers/net/sunlance.c
index 68e4f66..3a5a57f 100644
--- a/drivers/net/sunlance.c
+++ b/drivers/net/sunlance.c
@@ -1458,7 +1458,6 @@ no_link_test:
lp->dregs = NULL;
lp->dev = dev;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &sdev->ofdev.dev);
dev->open = &lance_open;
dev->stop = &lance_close;
diff --git a/drivers/net/sunqe.c b/drivers/net/sunqe.c
index 1b65ae8..b5c2974 100644
--- a/drivers/net/sunqe.c
+++ b/drivers/net/sunqe.c
@@ -898,7 +898,6 @@ static int __init qec_ether_init(struct sbus_dev *sdev)
/* Stop this QE. */
qe_stop(qe);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &sdev->ofdev.dev);
dev->open = qe_open;
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c
index ec41469..1948ee4 100644
--- a/drivers/net/tc35815.c
+++ b/drivers/net/tc35815.c
@@ -682,7 +682,6 @@ static int __devinit tc35815_init_one (struct pci_dev *pdev,
dev_err(&pdev->dev, "unable to alloc new ethernet\n");
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
lp = dev->priv;
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 9034a05..36080ad 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -11833,7 +11833,6 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
goto err_out_free_res;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
#if TG3_VLAN_TAG_USED
diff --git a/drivers/net/tlan.c b/drivers/net/tlan.c
index 74eb121..c99ce74 100644
--- a/drivers/net/tlan.c
+++ b/drivers/net/tlan.c
@@ -556,7 +556,6 @@ static int __devinit TLan_probe1(struct pci_dev *pdev,
rc = -ENOMEM;
goto err_out_regions;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
priv = netdev_priv(dev);
diff --git a/drivers/net/tokenring/3c359.c b/drivers/net/tokenring/3c359.c
index 9f1b6ab..4306682 100644
--- a/drivers/net/tokenring/3c359.c
+++ b/drivers/net/tokenring/3c359.c
@@ -344,7 +344,6 @@ static int __devinit xl_probe(struct pci_dev *pdev,
dev->set_multicast_list=&xl_set_rx_mode;
dev->get_stats=&xl_get_stats ;
dev->set_mac_address=&xl_set_mac_address ;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
pci_set_drvdata(pdev,dev) ;
diff --git a/drivers/net/tokenring/abyss.c b/drivers/net/tokenring/abyss.c
index 1bdd3be..22fad51 100644
--- a/drivers/net/tokenring/abyss.c
+++ b/drivers/net/tokenring/abyss.c
@@ -116,8 +116,6 @@ static int __devinit abyss_attach(struct pci_dev *pdev, const struct pci_device_
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
-
if (!request_region(pci_ioaddr, ABYSS_IO_EXTENT, dev->name)) {
ret = -EBUSY;
goto err_out_trdev;
diff --git a/drivers/net/tokenring/lanstreamer.c b/drivers/net/tokenring/lanstreamer.c
index 5d849c0..a3476dc 100644
--- a/drivers/net/tokenring/lanstreamer.c
+++ b/drivers/net/tokenring/lanstreamer.c
@@ -244,7 +244,6 @@ static int __devinit streamer_init_one(struct pci_dev *pdev,
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
streamer_priv = dev->priv;
#if STREAMER_NETWORK_MONITOR
diff --git a/drivers/net/tokenring/madgemc.c b/drivers/net/tokenring/madgemc.c
index f8f4d74..b0d2311 100644
--- a/drivers/net/tokenring/madgemc.c
+++ b/drivers/net/tokenring/madgemc.c
@@ -168,7 +168,6 @@ static int __devinit madgemc_probe(struct device *device)
goto getout;
}
- SET_MODULE_OWNER(dev);
dev->dma = 0;
card = kmalloc(sizeof(struct card_info), GFP_KERNEL);
diff --git a/drivers/net/tokenring/olympic.c b/drivers/net/tokenring/olympic.c
index 09b3cfb..426fc25 100644
--- a/drivers/net/tokenring/olympic.c
+++ b/drivers/net/tokenring/olympic.c
@@ -260,7 +260,6 @@ static int __devinit olympic_probe(struct pci_dev *pdev, const struct pci_device
dev->set_multicast_list=&olympic_set_rx_mode;
dev->get_stats=&olympic_get_stats ;
dev->set_mac_address=&olympic_set_mac_address ;
- SET_MODULE_OWNER(dev) ;
SET_NETDEV_DEV(dev, &pdev->dev);
pci_set_drvdata(pdev,dev) ;
diff --git a/drivers/net/tokenring/proteon.c b/drivers/net/tokenring/proteon.c
index cb7dbb6..85d156d 100644
--- a/drivers/net/tokenring/proteon.c
+++ b/drivers/net/tokenring/proteon.c
@@ -126,7 +126,6 @@ static int __init setup_card(struct net_device *dev, struct device *pdev)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
if (dev->base_addr) /* probe specific location */
err = proteon_probe1(dev, dev->base_addr);
else {
diff --git a/drivers/net/tokenring/skisa.c b/drivers/net/tokenring/skisa.c
index 33afea3..ecbddc8 100644
--- a/drivers/net/tokenring/skisa.c
+++ b/drivers/net/tokenring/skisa.c
@@ -143,7 +143,6 @@ static int __init setup_card(struct net_device *dev, struct device *pdev)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
if (dev->base_addr) /* probe specific location */
err = sk_isa_probe1(dev, dev->base_addr);
else {
diff --git a/drivers/net/tokenring/smctr.c b/drivers/net/tokenring/smctr.c
index f83bb5c..93da3a3 100644
--- a/drivers/net/tokenring/smctr.c
+++ b/drivers/net/tokenring/smctr.c
@@ -3583,8 +3583,6 @@ struct net_device __init *smctr_probe(int unit)
if (!dev)
return ERR_PTR(-ENOMEM);
- SET_MODULE_OWNER(dev);
-
if (unit >= 0) {
sprintf(dev->name, "tr%d", unit);
netdev_boot_setup_check(dev);
diff --git a/drivers/net/tokenring/tmspci.c b/drivers/net/tokenring/tmspci.c
index 3b2f00b..69a4c40 100644
--- a/drivers/net/tokenring/tmspci.c
+++ b/drivers/net/tokenring/tmspci.c
@@ -115,7 +115,6 @@ static int __devinit tms_pci_attach(struct pci_dev *pdev, const struct pci_devic
dev = alloc_trdev(sizeof(struct net_local));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
if (!request_region(pci_ioaddr, TMS_PCI_IO_EXTENT, dev->name)) {
ret = -EBUSY;
diff --git a/drivers/net/tsi108_eth.c b/drivers/net/tsi108_eth.c
index 1aabc91..bb5b1eb 100644
--- a/drivers/net/tsi108_eth.c
+++ b/drivers/net/tsi108_eth.c
@@ -1610,7 +1610,6 @@ tsi108_init_one(struct platform_device *pdev)
*/
dev->features = NETIF_F_HIGHDMA;
- SET_MODULE_OWNER(dev);
spin_lock_init(&data->txlock);
spin_lock_init(&data->misclock);
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c
index d380e0b..bd04e93 100644
--- a/drivers/net/tulip/de2104x.c
+++ b/drivers/net/tulip/de2104x.c
@@ -1944,7 +1944,6 @@ static int __devinit de_init_one (struct pci_dev *pdev,
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
dev->open = de_open;
dev->stop = de_close;
diff --git a/drivers/net/tulip/de4x5.c b/drivers/net/tulip/de4x5.c
index 0990289..ba7f47c 100644
--- a/drivers/net/tulip/de4x5.c
+++ b/drivers/net/tulip/de4x5.c
@@ -1261,7 +1261,6 @@ de4x5_hw_init(struct net_device *dev, u_long iobase, struct device *gendev)
}
/* The DE4X5-specific entries in the device structure. */
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, gendev);
dev->open = &de4x5_open;
dev->hard_start_xmit = &de4x5_queue_pkt;
diff --git a/drivers/net/tulip/dmfe.c b/drivers/net/tulip/dmfe.c
index dab74fe..e2596e9 100644
--- a/drivers/net/tulip/dmfe.c
+++ b/drivers/net/tulip/dmfe.c
@@ -372,7 +372,6 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev,
dev = alloc_etherdev(sizeof(*db));
if (dev == NULL)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) {
diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c
index eca984f..6cf6877 100644
--- a/drivers/net/tulip/tulip_core.c
+++ b/drivers/net/tulip/tulip_core.c
@@ -1337,7 +1337,6 @@ static int __devinit tulip_init_one (struct pci_dev *pdev,
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_resource_len (pdev, 0) < tulip_tbl[chip_idx].io_size) {
printk (KERN_ERR PFX "%s: I/O region (0x%llx@0x%llx) too small, "
diff --git a/drivers/net/tulip/uli526x.c b/drivers/net/tulip/uli526x.c
index ca2548e..97809aa 100644
--- a/drivers/net/tulip/uli526x.c
+++ b/drivers/net/tulip/uli526x.c
@@ -268,7 +268,6 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev,
dev = alloc_etherdev(sizeof(*db));
if (dev == NULL)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) {
diff --git a/drivers/net/tulip/winbond-840.c b/drivers/net/tulip/winbond-840.c
index 5824f6a..396f845 100644
--- a/drivers/net/tulip/winbond-840.c
+++ b/drivers/net/tulip/winbond-840.c
@@ -370,7 +370,6 @@ static int __devinit w840_probe1 (struct pci_dev *pdev,
dev = alloc_etherdev(sizeof(*np));
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
if (pci_request_regions(pdev, DRV_NAME))
diff --git a/drivers/net/tulip/xircom_cb.c b/drivers/net/tulip/xircom_cb.c
index 16a54e6..6b8fd05 100644
--- a/drivers/net/tulip/xircom_cb.c
+++ b/drivers/net/tulip/xircom_cb.c
@@ -252,7 +252,6 @@ static int __devinit xircom_probe(struct pci_dev *pdev, const struct pci_device_
goto tx_buf_fail;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
diff --git a/drivers/net/tulip/xircom_tulip_cb.c b/drivers/net/tulip/xircom_tulip_cb.c
index fc439f3..c3f8e30 100644
--- a/drivers/net/tulip/xircom_tulip_cb.c
+++ b/drivers/net/tulip/xircom_tulip_cb.c
@@ -547,7 +547,6 @@ static int __devinit xircom_init_one(struct pci_dev *pdev, const struct pci_devi
printk (KERN_ERR DRV_NAME "%d: cannot alloc etherdev, aborting\n", board_idx);
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
dev->base_addr = ioaddr;
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 62b2b30..6c58d45 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -434,7 +434,6 @@ static void tun_setup(struct net_device *dev)
tun->owner = -1;
tun->group = -1;
- SET_MODULE_OWNER(dev);
dev->open = tun_net_open;
dev->hard_start_xmit = tun_net_xmit;
dev->stop = tun_net_close;
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index 0358720..bfdd6c4 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -2340,7 +2340,6 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
err = -ENOMEM;
goto error_out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
err = pci_enable_device(pdev);
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 12e01b2..37f0d1c 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3954,7 +3954,6 @@ static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *ma
/* Set the dev->base_addr to the gfar reg region */
dev->base_addr = (unsigned long)(ug_info->uf_info.regs);
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, device);
/* Fill in the dev structure */
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index 524dc5f..58a53a6 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -1152,8 +1152,6 @@ err_fw:
INIT_DELAYED_WORK(&kaweth->lowmem_work, kaweth_resubmit_tl);
- SET_MODULE_OWNER(netdev);
-
usb_set_intfdata(intf, kaweth);
#if 0
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
index 04cba6b..e9419f6 100644
--- a/drivers/net/usb/pegasus.c
+++ b/drivers/net/usb/pegasus.c
@@ -1322,7 +1322,6 @@ static int pegasus_probe(struct usb_interface *intf,
pegasus->intf = intf;
pegasus->usb = dev;
pegasus->net = net;
- SET_MODULE_OWNER(net);
net->open = pegasus_open;
net->stop = pegasus_close;
net->watchdog_timeo = PEGASUS_TX_TIMEOUT;
diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c
index fa598f0..5d350be 100644
--- a/drivers/net/usb/rtl8150.c
+++ b/drivers/net/usb/rtl8150.c
@@ -918,7 +918,6 @@ static int rtl8150_probe(struct usb_interface *intf,
dev->udev = udev;
dev->netdev = netdev;
- SET_MODULE_OWNER(netdev);
netdev->open = rtl8150_open;
netdev->stop = rtl8150_close;
netdev->do_ioctl = rtl8150_ioctl;
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index 37bf4f2..a702b5f 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1158,7 +1158,6 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
init_timer (&dev->delay);
mutex_init (&dev->phy_mutex);
- SET_MODULE_OWNER (net);
dev->net = net;
strcpy (net->name, "usb%d");
memcpy (net->dev_addr, node_id, sizeof node_id);
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index b56dff2..0a3ac01 100644
--- a/drivers/net/via-rhine.c
+++ b/drivers/net/via-rhine.c
@@ -703,7 +703,6 @@ static int __devinit rhine_init_one(struct pci_dev *pdev,
printk(KERN_ERR "alloc_etherdev failed\n");
goto err_out;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
rp = netdev_priv(dev);
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index 93574ad..3b04c3e 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -712,7 +712,6 @@ static int __devinit velocity_found1(struct pci_dev *pdev, const struct pci_devi
/* Chain it all together */
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
vptr = netdev_priv(dev);
diff --git a/drivers/net/wan/c101.c b/drivers/net/wan/c101.c
index 8ead774..c4c8eab 100644
--- a/drivers/net/wan/c101.c
+++ b/drivers/net/wan/c101.c
@@ -363,7 +363,6 @@ static int __init c101_run(unsigned long irq, unsigned long winbase)
hdlc = dev_to_hdlc(dev);
spin_lock_init(&card->lock);
- SET_MODULE_OWNER(dev);
dev->irq = irq;
dev->mem_start = winbase;
dev->mem_end = winbase + C101_MAPPED_RAM_SIZE - 1;
diff --git a/drivers/net/wan/cycx_x25.c b/drivers/net/wan/cycx_x25.c
index a8af28b..46e0531 100644
--- a/drivers/net/wan/cycx_x25.c
+++ b/drivers/net/wan/cycx_x25.c
@@ -508,7 +508,6 @@ static int cycx_netdevice_init(struct net_device *dev)
/* Set transmit buffer queue length */
dev->tx_queue_len = 10;
- SET_MODULE_OWNER(dev);
/* Initialize socket buffers */
cycx_x25_set_chan_state(dev, WAN_DISCONNECTED);
diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c
index 50d2f91..33dc713 100644
--- a/drivers/net/wan/dscc4.c
+++ b/drivers/net/wan/dscc4.c
@@ -925,7 +925,6 @@ static int dscc4_found1(struct pci_dev *pdev, void __iomem *ioaddr)
d->do_ioctl = dscc4_ioctl;
d->tx_timeout = dscc4_tx_timeout;
d->watchdog_timeo = TX_TIMEOUT;
- SET_MODULE_OWNER(d);
SET_NETDEV_DEV(d, &pdev->dev);
dpriv->dev_id = i;
diff --git a/drivers/net/wan/hostess_sv11.c b/drivers/net/wan/hostess_sv11.c
index bf5f8d9..83dbc92 100644
--- a/drivers/net/wan/hostess_sv11.c
+++ b/drivers/net/wan/hostess_sv11.c
@@ -241,8 +241,6 @@ static struct sv11_device *sv11_init(int iobase, int irq)
if(!sv->netdev.dev)
goto fail2;
- SET_MODULE_OWNER(sv->netdev.dev);
-
dev=&sv->sync;
/*
diff --git a/drivers/net/wan/lapbether.c b/drivers/net/wan/lapbether.c
index 6c302e9..519489c 100644
--- a/drivers/net/wan/lapbether.c
+++ b/drivers/net/wan/lapbether.c
@@ -326,7 +326,6 @@ static void lapbeth_setup(struct net_device *dev)
dev->hard_header_len = 3;
dev->mtu = 1000;
dev->addr_len = 0;
- SET_MODULE_OWNER(dev);
}
/*
diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c
index ae132c1..5ea8772 100644
--- a/drivers/net/wan/lmc/lmc_main.c
+++ b/drivers/net/wan/lmc/lmc_main.c
@@ -883,7 +883,6 @@ static int __devinit lmc_init_one(struct pci_dev *pdev,
dev->base_addr = pci_resource_start(pdev, 0);
dev->irq = pdev->irq;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
/*
diff --git a/drivers/net/wan/n2.c b/drivers/net/wan/n2.c
index cbdf0b7..0a566b0 100644
--- a/drivers/net/wan/n2.c
+++ b/drivers/net/wan/n2.c
@@ -459,7 +459,6 @@ static int __init n2_run(unsigned long io, unsigned long irq,
port->log_node = 1;
spin_lock_init(&port->lock);
- SET_MODULE_OWNER(dev);
dev->irq = irq;
dev->mem_start = winbase;
dev->mem_end = winbase + USE_WINDOWSIZE - 1;
diff --git a/drivers/net/wan/pc300too.c b/drivers/net/wan/pc300too.c
index 6353cb5..bf1b015 100644
--- a/drivers/net/wan/pc300too.c
+++ b/drivers/net/wan/pc300too.c
@@ -468,7 +468,6 @@ static int __devinit pc300_pci_init_one(struct pci_dev *pdev,
port->phy_node = i;
spin_lock_init(&port->lock);
- SET_MODULE_OWNER(dev);
dev->irq = card->irq;
dev->mem_start = ramphys;
dev->mem_end = ramphys + ramsize - 1;
diff --git a/drivers/net/wan/pci200syn.c b/drivers/net/wan/pci200syn.c
index 092e51d..b595b64 100644
--- a/drivers/net/wan/pci200syn.c
+++ b/drivers/net/wan/pci200syn.c
@@ -415,7 +415,6 @@ static int __devinit pci200_pci_init_one(struct pci_dev *pdev,
port->phy_node = i;
spin_lock_init(&port->lock);
- SET_MODULE_OWNER(dev);
dev->irq = card->irq;
dev->mem_start = ramphys;
dev->mem_end = ramphys + ramsize - 1;
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index 1cc18e7..13a17e8 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -215,8 +215,6 @@ static void __init sbni_devsetup(struct net_device *dev)
dev->get_stats = &sbni_get_stats;
dev->set_multicast_list = &set_multicast_list;
dev->do_ioctl = &sbni_ioctl;
-
- SET_MODULE_OWNER( dev );
}
int __init sbni_probe(int unit)
diff --git a/drivers/net/wan/sdla.c b/drivers/net/wan/sdla.c
index 792e588..b39a541 100644
--- a/drivers/net/wan/sdla.c
+++ b/drivers/net/wan/sdla.c
@@ -1603,7 +1603,6 @@ static void setup_sdla(struct net_device *dev)
netdev_boot_setup_check(dev);
- SET_MODULE_OWNER(dev);
dev->flags = 0;
dev->type = 0xFFFF;
dev->hard_header_len = 0;
diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c
index 3c78f98..8e320b7 100644
--- a/drivers/net/wan/wanxl.c
+++ b/drivers/net/wan/wanxl.c
@@ -779,7 +779,6 @@ static int __devinit wanxl_pci_init_one(struct pci_dev *pdev,
port->dev = dev;
hdlc = dev_to_hdlc(dev);
spin_lock_init(&port->lock);
- SET_MODULE_OWNER(dev);
dev->tx_queue_len = 50;
dev->do_ioctl = wanxl_ioctl;
dev->open = wanxl_open;
diff --git a/drivers/net/wd.c b/drivers/net/wd.c
index a032681..cef3658 100644
--- a/drivers/net/wd.c
+++ b/drivers/net/wd.c
@@ -93,8 +93,6 @@ static int __init do_wd_probe(struct net_device *dev)
int mem_start = dev->mem_start;
int mem_end = dev->mem_end;
- SET_MODULE_OWNER(dev);
-
if (base_addr > 0x1ff) { /* Check a user specified location. */
r = request_region(base_addr, WD_IO_EXTENT, "wd-probe");
if ( r == NULL)
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index ee1cc14..1429706 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -2870,7 +2870,6 @@ static struct net_device *_init_airo_card( unsigned short irq, int port,
dev->base_addr = port;
SET_NETDEV_DEV(dev, dmdev);
- SET_MODULE_OWNER(dev);
reset_card (dev, 1);
msleep(400);
diff --git a/drivers/net/wireless/airport.c b/drivers/net/wireless/airport.c
index 7d5b8c2..6f7eb9f 100644
--- a/drivers/net/wireless/airport.c
+++ b/drivers/net/wireless/airport.c
@@ -197,7 +197,6 @@ airport_attach(struct macio_dev *mdev, const struct of_device_id *match)
return -EBUSY;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &mdev->ofdev.dev);
macio_set_drvdata(mdev, dev);
diff --git a/drivers/net/wireless/arlan-main.c b/drivers/net/wireless/arlan-main.c
index 498e848..3eaaab0 100644
--- a/drivers/net/wireless/arlan-main.c
+++ b/drivers/net/wireless/arlan-main.c
@@ -1792,8 +1792,6 @@ struct net_device * __init arlan_probe(int unit)
if (!dev)
return ERR_PTR(-ENOMEM);
- SET_MODULE_OWNER(dev);
-
if (unit >= 0) {
sprintf(dev->name, "eth%d", unit);
netdev_boot_setup_check(dev);
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index 51a7db5..47dbdf9 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -1603,7 +1603,6 @@ struct net_device *init_atmel_card(unsigned short irq, unsigned long port,
dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2],
dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5] );
- SET_MODULE_OWNER(dev);
return dev;
err_out_res:
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
index c5d6753..618d1a2 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
@@ -4080,7 +4080,6 @@ static int __devinit bcm43xx_init_one(struct pci_dev *pdev,
goto out;
}
/* initialize the net_device struct */
- SET_MODULE_OWNER(net_dev);
SET_NETDEV_DEV(net_dev, &pdev->dev);
net_dev->open = bcm43xx_net_open;
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index 8990585..12a6887 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -6239,8 +6239,6 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev,
IPW_DEBUG_INFO("Attempting to register device...\n");
- SET_MODULE_OWNER(dev);
-
printk(KERN_INFO DRV_NAME
": Detected Intel PRO/Wireless 2100 Network Connection\n");
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index 61497c4..afad8bb 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -11625,7 +11625,6 @@ static int ipw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto out_destroy_workqueue;
}
- SET_MODULE_OWNER(net_dev);
SET_NETDEV_DEV(net_dev, &pdev->dev);
mutex_lock(&priv->mutex);
diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
index 9f36624..74dc4d4 100644
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
@@ -796,8 +796,6 @@ wlan_private *libertas_add_card(void *card, struct device *dmdev)
priv->mesh_open = 0;
priv->infra_open = 0;
- SET_MODULE_OWNER(dev);
-
/* Setup the OS Interface to our functions */
dev->open = wlan_open;
dev->hard_start_xmit = wlan_pre_start_xmit;
@@ -915,8 +913,6 @@ int libertas_add_mesh(wlan_private *priv, struct device *dev)
mesh_dev->priv = priv;
priv->mesh_dev = mesh_dev;
- SET_MODULE_OWNER(mesh_dev);
-
mesh_dev->open = mesh_open;
mesh_dev->hard_start_xmit = mesh_pre_start_xmit;
mesh_dev->stop = mesh_close;
diff --git a/drivers/net/wireless/netwave_cs.c b/drivers/net/wireless/netwave_cs.c
index 45b00e1..389fdd3 100644
--- a/drivers/net/wireless/netwave_cs.c
+++ b/drivers/net/wireless/netwave_cs.c
@@ -412,7 +412,6 @@ static int netwave_probe(struct pcmcia_device *link)
spin_lock_init(&priv->spinlock);
/* Netwave specific entries in the device structure */
- SET_MODULE_OWNER(dev);
dev->hard_start_xmit = &netwave_start_xmit;
dev->get_stats = &netwave_get_stats;
dev->set_multicast_list = &set_multicast_list;
diff --git a/drivers/net/wireless/orinoco_cs.c b/drivers/net/wireless/orinoco_cs.c
index d1e5022..8b7f576 100644
--- a/drivers/net/wireless/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco_cs.c
@@ -313,7 +313,6 @@ orinoco_cs_config(struct pcmcia_device *link)
/* Ok, we have the configuration, prepare to register the netdev */
dev->base_addr = link->io.BasePort1;
dev->irq = link->irq.AssignedIRQ;
- SET_MODULE_OWNER(dev);
card->node.major = card->node.minor = 0;
SET_NETDEV_DEV(dev, &handle_to_dev(link));
diff --git a/drivers/net/wireless/orinoco_nortel.c b/drivers/net/wireless/orinoco_nortel.c
index eaf3d13..35ec5fc 100644
--- a/drivers/net/wireless/orinoco_nortel.c
+++ b/drivers/net/wireless/orinoco_nortel.c
@@ -193,7 +193,6 @@ static int orinoco_nortel_init_one(struct pci_dev *pdev,
card = priv->card;
card->bridge_io = bridge_io;
card->attr_io = attr_io;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
hermes_struct_init(&priv->hw, hermes_io, HERMES_16BIT_REGSPACING);
diff --git a/drivers/net/wireless/orinoco_pci.c b/drivers/net/wireless/orinoco_pci.c
index 97a8b4f..2547d5d 100644
--- a/drivers/net/wireless/orinoco_pci.c
+++ b/drivers/net/wireless/orinoco_pci.c
@@ -148,7 +148,6 @@ static int orinoco_pci_init_one(struct pci_dev *pdev,
priv = netdev_priv(dev);
card = priv->card;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
hermes_struct_init(&priv->hw, hermes_io, HERMES_32BIT_REGSPACING);
diff --git a/drivers/net/wireless/orinoco_plx.c b/drivers/net/wireless/orinoco_plx.c
index 31162ac..98fe165 100644
--- a/drivers/net/wireless/orinoco_plx.c
+++ b/drivers/net/wireless/orinoco_plx.c
@@ -232,7 +232,6 @@ static int orinoco_plx_init_one(struct pci_dev *pdev,
card = priv->card;
card->bridge_io = bridge_io;
card->attr_io = attr_io;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
hermes_struct_init(&priv->hw, hermes_io, HERMES_16BIT_REGSPACING);
diff --git a/drivers/net/wireless/orinoco_tmd.c b/drivers/net/wireless/orinoco_tmd.c
index 7c7b960..db781e8 100644
--- a/drivers/net/wireless/orinoco_tmd.c
+++ b/drivers/net/wireless/orinoco_tmd.c
@@ -134,7 +134,6 @@ static int orinoco_tmd_init_one(struct pci_dev *pdev,
priv = netdev_priv(dev);
card = priv->card;
card->bridge_io = bridge_io;
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
hermes_struct_init(&priv->hw, hermes_io, HERMES_16BIT_REGSPACING);
diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c
index 0847953..219dd65 100644
--- a/drivers/net/wireless/prism54/islpci_dev.c
+++ b/drivers/net/wireless/prism54/islpci_dev.c
@@ -808,7 +808,6 @@ islpci_setup(struct pci_dev *pdev)
if (!ndev)
return ndev;
- SET_MODULE_OWNER(ndev);
pci_set_drvdata(pdev, ndev);
#if defined(SET_NETDEV_DEV)
SET_NETDEV_DEV(ndev, &pdev->dev);
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index 3be6242..7bc2ffa 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -356,7 +356,6 @@ static int ray_probe(struct pcmcia_device *p_dev)
dev->set_multicast_list = &set_multicast_list;
DEBUG(2,"ray_cs ray_attach calling ether_setup.)\n");
- SET_MODULE_OWNER(dev);
dev->init = &ray_dev_init;
dev->open = &ray_open;
dev->stop = &ray_dev_close;
diff --git a/drivers/net/wireless/spectrum_cs.c b/drivers/net/wireless/spectrum_cs.c
index af70460..98df9bc 100644
--- a/drivers/net/wireless/spectrum_cs.c
+++ b/drivers/net/wireless/spectrum_cs.c
@@ -782,7 +782,6 @@ spectrum_cs_config(struct pcmcia_device *link)
/* Ok, we have the configuration, prepare to register the netdev */
dev->base_addr = link->io.BasePort1;
dev->irq = link->irq.AssignedIRQ;
- SET_MODULE_OWNER(dev);
card->node.major = card->node.minor = 0;
/* Reset card and download firmware */
diff --git a/drivers/net/wireless/strip.c b/drivers/net/wireless/strip.c
index ef32a5c..7a3bf28 100644
--- a/drivers/net/wireless/strip.c
+++ b/drivers/net/wireless/strip.c
@@ -2507,8 +2507,6 @@ static void strip_dev_setup(struct net_device *dev)
* Finish setting up the DEVICE info.
*/
- SET_MODULE_OWNER(dev);
-
dev->trans_start = 0;
dev->last_rx = 0;
dev->tx_queue_len = 30; /* Drop after 30 frames queued */
diff --git a/drivers/net/wireless/wavelan.c b/drivers/net/wireless/wavelan.c
index 1cf090d..b876bf6 100644
--- a/drivers/net/wireless/wavelan.c
+++ b/drivers/net/wireless/wavelan.c
@@ -4177,7 +4177,6 @@ static int __init wavelan_config(struct net_device *dev, unsigned short ioaddr)
/* Init spinlock */
spin_lock_init(&lp->spinlock);
- SET_MODULE_OWNER(dev);
dev->open = wavelan_open;
dev->stop = wavelan_close;
dev->hard_start_xmit = wavelan_packet_xmit;
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c
index 5740d4d..1cc5180 100644
--- a/drivers/net/wireless/wavelan_cs.c
+++ b/drivers/net/wireless/wavelan_cs.c
@@ -4577,7 +4577,6 @@ wavelan_probe(struct pcmcia_device *p_dev)
lp->dev = dev;
/* wavelan NET3 callbacks */
- SET_MODULE_OWNER(dev);
dev->open = &wavelan_open;
dev->stop = &wavelan_close;
dev->hard_start_xmit = &wavelan_packet_xmit;
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index c8b5c22..b2f5b1b 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -2004,8 +2004,6 @@ static int wl3501_config(struct pcmcia_device *link)
goto failed;
}
- SET_MODULE_OWNER(dev);
-
this = dev->priv;
/*
* At this point, the dev_node_t structure(s) should be initialized and
diff --git a/drivers/net/wireless/zd1211rw/zd_netdev.c b/drivers/net/wireless/zd1211rw/zd_netdev.c
index 8bda48d..047cab3 100644
--- a/drivers/net/wireless/zd1211rw/zd_netdev.c
+++ b/drivers/net/wireless/zd1211rw/zd_netdev.c
@@ -233,7 +233,6 @@ struct net_device *zd_netdev_alloc(struct usb_interface *intf)
return NULL;
}
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &intf->dev);
dev_dbg_f(&intf->dev, "netdev->flags %#06hx\n", netdev->flags);
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 4445810..4c428b4 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -1208,7 +1208,6 @@ static struct net_device * __devinit xennet_create_dev(struct xenbus_device *dev
netdev->features = NETIF_F_IP_CSUM;
SET_ETHTOOL_OPS(netdev, &xennet_ethtool_ops);
- SET_MODULE_OWNER(netdev);
SET_NETDEV_DEV(netdev, &dev->dev);
np->netdev = netdev;
diff --git a/drivers/net/yellowfin.c b/drivers/net/yellowfin.c
index 870c539..29e9695 100644
--- a/drivers/net/yellowfin.c
+++ b/drivers/net/yellowfin.c
@@ -392,7 +392,6 @@ static int __devinit yellowfin_init_one(struct pci_dev *pdev,
printk (KERN_ERR PFX "cannot allocate ethernet device\n");
return -ENOMEM;
}
- SET_MODULE_OWNER(dev);
SET_NETDEV_DEV(dev, &pdev->dev);
np = netdev_priv(dev);
diff --git a/drivers/net/znet.c b/drivers/net/znet.c
index 4032e9f..dcd4e1b 100644
--- a/drivers/net/znet.c
+++ b/drivers/net/znet.c
@@ -388,8 +388,6 @@ static int __init znet_probe (void)
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER (dev);
-
znet = dev->priv;
netinfo = (struct netidblk *)p;
diff --git a/drivers/net/zorro8390.c b/drivers/net/zorro8390.c
index d85e2ea..a45f995 100644
--- a/drivers/net/zorro8390.c
+++ b/drivers/net/zorro8390.c
@@ -125,7 +125,6 @@ static int __devinit zorro8390_init_one(struct zorro_dev *z,
dev = ____alloc_ei_netdev(0);
if (!dev)
return -ENOMEM;
- SET_MODULE_OWNER(dev);
if (!request_mem_region(ioaddr, NE_IO_EXTENT*2, DRV_NAME)) {
free_netdev(dev);
return -EBUSY;
diff --git a/drivers/s390/net/claw.c b/drivers/s390/net/claw.c
index 023455a..399695f 100644
--- a/drivers/s390/net/claw.c
+++ b/drivers/s390/net/claw.c
@@ -3891,7 +3891,6 @@ claw_init_netdevice(struct net_device * dev)
dev->type = ARPHRD_SLIP;
dev->tx_queue_len = 1300;
dev->flags = IFF_POINTOPOINT | IFF_NOARP;
- SET_MODULE_OWNER(dev);
#ifdef FUNCTRACE
printk(KERN_INFO "%s:%s Exit\n",dev->name,__FUNCTION__);
#endif
diff --git a/drivers/s390/net/ctcmain.c b/drivers/s390/net/ctcmain.c
index 92e8a37..4499372 100644
--- a/drivers/s390/net/ctcmain.c
+++ b/drivers/s390/net/ctcmain.c
@@ -2823,7 +2823,6 @@ ctc_init_netdevice(struct net_device * dev, int alloc_device,
dev->type = ARPHRD_SLIP;
dev->tx_queue_len = 100;
dev->flags = IFF_POINTOPOINT | IFF_NOARP;
- SET_MODULE_OWNER(dev);
return dev;
}
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c
index 08a994f..e4b11af 100644
--- a/drivers/s390/net/lcs.c
+++ b/drivers/s390/net/lcs.c
@@ -2145,7 +2145,6 @@ lcs_new_device(struct ccwgroup_device *ccwgdev)
card->dev->stop = lcs_stop_device;
card->dev->hard_start_xmit = lcs_start_xmit;
card->dev->get_stats = lcs_getstats;
- SET_MODULE_OWNER(dev);
memcpy(card->dev->dev_addr, card->mac, LCS_MAC_LENGTH);
#ifdef CONFIG_IP_MULTICAST
if (!lcs_check_multicast_support(card))
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c
index 2688894..4d18d64 100644
--- a/drivers/s390/net/netiucv.c
+++ b/drivers/s390/net/netiucv.c
@@ -1904,7 +1904,6 @@ static void netiucv_setup_netdevice(struct net_device *dev)
dev->type = ARPHRD_SLIP;
dev->tx_queue_len = NETIUCV_QUEUELEN_DEFAULT;
dev->flags = IFF_POINTOPOINT | IFF_NOARP;
- SET_MODULE_OWNER(dev);
}
/**
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c
index f3e6fbe..8c46978 100644
--- a/drivers/s390/net/qeth_main.c
+++ b/drivers/s390/net/qeth_main.c
@@ -6649,7 +6649,6 @@ qeth_netdev_init(struct net_device *dev)
dev->mtu = card->info.initial_mtu;
if (card->info.type != QETH_CARD_TYPE_OSN)
SET_ETHTOOL_OPS(dev, &qeth_ethtool_ops);
- SET_MODULE_OWNER(dev);
return 0;
}
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index 593e235..f700554 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -2484,7 +2484,6 @@ autoconf_fail:
/* network device setup */
dev->net = net;
- SET_MODULE_OWNER (net);
strcpy (net->name, "usb%d");
dev->cdc = cdc;
dev->zlp = zlp;
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index e679b27..91b39c2 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -587,7 +587,6 @@ static inline void *netdev_priv(const struct net_device *dev)
return dev->priv;
}
-#define SET_MODULE_OWNER(dev) do { } while (0)
/* Set the sysfs physical device reference for the network logical device
* if set prior to registration will cause a symlink during initialization.
*/
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 1583c5e..1e96808 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -349,8 +349,6 @@ static int vlan_dev_init(struct net_device *dev)
void vlan_setup(struct net_device *new_dev)
{
- SET_MODULE_OWNER(new_dev);
-
ether_setup(new_dev);
/* new_dev->ifindex = 0; it will be set when added to
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index 0eded17..293d25b 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -171,7 +171,6 @@ void br_dev_setup(struct net_device *dev)
dev->set_multicast_list = br_dev_set_multicast_list;
dev->change_mtu = br_change_mtu;
dev->destructor = free_netdev;
- SET_MODULE_OWNER(dev);
SET_ETHTOOL_OPS(dev, &br_ethtool_ops);
dev->stop = br_dev_stop;
dev->tx_queue_len = 0;
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 5c14ed6..4f83529 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -1132,7 +1132,6 @@ static int ipgre_close(struct net_device *dev)
static void ipgre_tunnel_setup(struct net_device *dev)
{
- SET_MODULE_OWNER(dev);
dev->uninit = ipgre_tunnel_uninit;
dev->destructor = free_netdev;
dev->hard_start_xmit = ipgre_tunnel_xmit;
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index 3964372..33c8527 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -237,7 +237,6 @@ static struct ip_tunnel * ipip_tunnel_locate(struct ip_tunnel_parm *parms, int c
return NULL;
nt = netdev_priv(dev);
- SET_MODULE_OWNER(dev);
dev->init = ipip_tunnel_init;
nt->parms = *parms;
@@ -775,7 +774,6 @@ static int ipip_tunnel_change_mtu(struct net_device *dev, int new_mtu)
static void ipip_tunnel_setup(struct net_device *dev)
{
- SET_MODULE_OWNER(dev);
dev->uninit = ipip_tunnel_uninit;
dev->hard_start_xmit = ipip_tunnel_xmit;
dev->get_stats = ipip_tunnel_get_stats;
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
index ca774d8..acb24cd 100644
--- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c
@@ -1313,7 +1313,6 @@ ip6_tnl_change_mtu(struct net_device *dev, int new_mtu)
static void ip6_tnl_dev_setup(struct net_device *dev)
{
- SET_MODULE_OWNER(dev);
dev->uninit = ip6_tnl_dev_uninit;
dev->destructor = free_netdev;
dev->hard_start_xmit = ip6_tnl_xmit;
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index eb20bb6..c904c52 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -714,7 +714,6 @@ static int ipip6_tunnel_change_mtu(struct net_device *dev, int new_mtu)
static void ipip6_tunnel_setup(struct net_device *dev)
{
- SET_MODULE_OWNER(dev);
dev->uninit = ipip6_tunnel_uninit;
dev->destructor = free_netdev;
dev->hard_start_xmit = ipip6_tunnel_xmit;
diff --git a/net/irda/irlan/irlan_eth.c b/net/irda/irlan/irlan_eth.c
index c421521..340f04a 100644
--- a/net/irda/irlan/irlan_eth.c
+++ b/net/irda/irlan/irlan_eth.c
@@ -60,8 +60,6 @@ static void irlan_eth_setup(struct net_device *dev)
dev->set_multicast_list = irlan_eth_set_multicast_list;
dev->destructor = free_netdev;
- SET_MODULE_OWNER(dev);
-
ether_setup(dev);
/*
diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c
index 0968184..146f453 100644
--- a/net/sched/sch_teql.c
+++ b/net/sched/sch_teql.c
@@ -432,7 +432,6 @@ static __init void teql_master_setup(struct net_device *dev)
dev->tx_queue_len = 100;
dev->flags = IFF_NOARP;
dev->hard_header_len = LL_MAX_HEADER;
- SET_MODULE_OWNER(dev);
}
static LIST_HEAD(master_dev_list);
^ permalink raw reply related
* Re: RFC: possible NAPI improvements to reduce interrupt rates for low traffic rates
From: James Chapman @ 2007-09-12 16:26 UTC (permalink / raw)
To: Stephen Hemminger
Cc: hadi, Bill Fink, netdev, davem, jeff, mandeep.baines, ossthema
In-Reply-To: <20070912160239.70a580e8@oldman>
Stephen Hemminger wrote:
> On Wed, 12 Sep 2007 14:50:01 +0100
> James Chapman <jchapman@katalix.com> wrote:
>> By low traffic, I assume you mean a rate at which the NAPI driver
>> doesn't stay in polled mode. The problem is that that rate is getting
>> higher all the time, as interface and CPU speeds increase. This results
>> in too many interrupts and NAPI thrashing in/out of polled mode very
>> quickly.
>
> But if you compare this to non-NAPI driver the same softirq
> overhead happens. The problem is that for many older devices disabling IRQ's
> require an expensive non-cached PCI access. Smarter, newer devices
> all use MSI which is pure edge triggered and with proper register
> usage, NAPI should be no worse than non-NAPI.
While MSI is good, the CPU interrupt overhead (saving/restoring CPU
registers) can hurt bad, especially for RISC CPUs. When packet
processing is interrupt-driven, the kernel's scheduler plays second
fiddle to hardware interrupt and softirq scheduling. Even super-priority
real-time threads don't get a look in.
When traffic rates cause 1 interrupt per tx/rx packet event, NAPI will
use more CPU and have higher latency than non-NAPI because of the extra
work done to enter and leave polled mode. At higher packet rates, NAPI
works very well, unlike non-NAPI which usually needs hardware interrupt
mitigation to avoid interrupt live-lock.
I think NAPI should be a _requirement_ for new net drivers. But I
recognize that it has some issues, hence this thread.
--
James Chapman
Katalix Systems Ltd
http://www.katalix.com
Catalysts for your Embedded Linux software development
^ permalink raw reply
* [PATCH] net: Fix race when opening a proc file while a network namespace is exiting.
From: Eric W. Biederman @ 2007-09-12 16:24 UTC (permalink / raw)
To: David Miller; +Cc: Paul E. McKenney, netdev, Linux Containers
The problem: proc_net files remember which network namespace the are
against but do not remember hold a reference count (as that would pin
the network namespace). So we currently have a small window where
the reference count on a network namespace may be incremented when opening
a /proc file when it has already gone to zero.
To fix this introduce maybe_get_net and get_proc_net.
maybe_get_net increments the network namespace reference count only if it is
greater then zero, ensuring we don't increment a reference count after it
has gone to zero.
get_proc_net handles all of the magic to go from a proc inode to the network
namespace instance and call maybe_get_net on it.
PROC_NET the old accessor is removed so that we don't get confused and use
the wrong helper function.
Then I fix up the callers to use get_proc_net and handle the case case
where get_proc_net returns NULL. In that case I return -ENXIO because
effectively the network namespace has already gone away so the files
we are trying to access don't exist anymore.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
---
fs/proc/proc_net.c | 6 ++++++
include/linux/proc_fs.h | 5 +----
include/net/net_namespace.h | 12 ++++++++++++
net/core/dev.c | 6 +++++-
net/core/dev_mcast.c | 6 +++++-
net/netlink/af_netlink.c | 6 +++++-
net/wireless/wext.c | 6 +++++-
7 files changed, 39 insertions(+), 8 deletions(-)
diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
index 358930a..85cc8e8 100644
--- a/fs/proc/proc_net.c
+++ b/fs/proc/proc_net.c
@@ -51,6 +51,12 @@ void proc_net_remove(struct net *net, const char *name)
}
EXPORT_SYMBOL_GPL(proc_net_remove);
+struct net *get_proc_net(const struct inode *inode)
+{
+ return maybe_get_net(PDE_NET(PDE(inode)));
+}
+EXPORT_SYMBOL_GPL(get_proc_net);
+
static struct proc_dir_entry *proc_net_shadow;
static struct dentry *proc_net_shadow_dentry(struct dentry *parent,
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index 5964670..20741f6 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -270,10 +270,7 @@ static inline struct net *PDE_NET(struct proc_dir_entry *pde)
return pde->parent->data;
}
-static inline struct net *PROC_NET(const struct inode *inode)
-{
- return PDE_NET(PDE(inode));
-}
+struct net *get_proc_net(const struct inode *inode);
struct proc_maps_private {
struct pid *pid;
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
index fac42db..dda03f3 100644
--- a/include/net/net_namespace.h
+++ b/include/net/net_namespace.h
@@ -39,6 +39,18 @@ static inline struct net *get_net(struct net *net)
return net;
}
+static inline struct net *maybe_get_net(struct net *net)
+{
+ /* Used when we know struct net exists but we
+ * aren't guaranteed a previous reference count
+ * exists. If the reference count is zero this
+ * function fails and returns NULL.
+ */
+ if (!atomic_inc_not_zero(&net->count))
+ net = NULL;
+ return net;
+}
+
static inline void put_net(struct net *net)
{
if (atomic_dec_and_test(&net->count))
diff --git a/net/core/dev.c b/net/core/dev.c
index a22a95d..f119dc0 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2446,7 +2446,11 @@ static int dev_seq_open(struct inode *inode, struct file *file)
res = seq_open(file, &dev_seq_ops);
if (!res) {
seq = file->private_data;
- seq->private = get_net(PROC_NET(inode));
+ seq->private = get_proc_net(inode);
+ if (!seq->private) {
+ seq_release(inode, file);
+ res = -ENXIO;
+ }
}
return res;
}
diff --git a/net/core/dev_mcast.c b/net/core/dev_mcast.c
index 1c4f619..896b0ca 100644
--- a/net/core/dev_mcast.c
+++ b/net/core/dev_mcast.c
@@ -246,7 +246,11 @@ static int dev_mc_seq_open(struct inode *inode, struct file *file)
res = seq_open(file, &dev_mc_seq_ops);
if (!res) {
seq = file->private_data;
- seq->private = get_net(PROC_NET(inode));
+ seq->private = get_proc_net(inode);
+ if (!seq->private) {
+ seq_release(inode, file);
+ res = -ENXIO;
+ }
}
return res;
}
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 3029f86..dc9f8c2 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1859,7 +1859,11 @@ static int netlink_seq_open(struct inode *inode, struct file *file)
seq = file->private_data;
seq->private = iter;
- iter->net = get_net(PROC_NET(inode));
+ iter->net = get_proc_net(inode);
+ if (!iter->net) {
+ seq_release_private(inode, file);
+ return -ENXIO;
+ }
return 0;
}
diff --git a/net/wireless/wext.c b/net/wireless/wext.c
index e8b3409..85e5f9d 100644
--- a/net/wireless/wext.c
+++ b/net/wireless/wext.c
@@ -678,7 +678,11 @@ static int wireless_seq_open(struct inode *inode, struct file *file)
res = seq_open(file, &wireless_seq_ops);
if (!res) {
seq = file->private_data;
- seq->private = get_net(PROC_NET(inode));
+ seq->private = get_proc_net(inode);
+ if (!seq->private) {
+ seq_release(inode, file);
+ res = -ENXIO;
+ }
}
return res;
}
--
1.5.3.rc6.17.g1911
^ permalink raw reply related
* Re: [PATCH 4/6] [IPROUTE2]: Overhead calculation is now done in the kernel
From: Andy Furniss @ 2007-09-12 16:07 UTC (permalink / raw)
To: jdb
Cc: netdev@vger.kernel.org, Patrick McHardy, David S. Miller,
Stephen Hemminger
In-Reply-To: <1189592079.26927.25.camel@localhost.localdomain>
Jesper Dangaard Brouer wrote:
> commit 07a74a2613440fc1a68d0faa7235ed7027532d78
> Author: Jesper Dangaard Brouer <hawk@comx.dk>
> Date: Tue Sep 11 16:59:58 2007 +0200
>
> [IPROUTE2]: Overhead calculation is now done in the kernel.
>
> The only current user is HTB. HTB overhead argument is now passed on
> to the kernel (in the struct tc_ratespec). Also correct the data
> types.
Thanks for getting this in.
It would be cool if mpu/overhead could be set per class > 255 and they
would affect the way htb shares bandwidth.
I could be wrong but it doesn't look like this will change current
behavior.Perhaps just allowing mpu/overhead > 255 for now, so that htb
sharing could be fixed up in the future?
The use would be for ingress shaping, you could set a big mpu for an
interactive class and it would cause bulk classes to get way less
bandwidth than otherwise, so you wouldn't permanently have to sacrifice
so much bandwidth on a slow link for latency - just when you needed to.
It could also, with the aid of netfilter connbytes, be used to preempt
the remote buffer filling when new bulk flows start.
One more thing, IIRC Devik acked your/Russels patch to change the
HYSTERESIS define to 0 - any chance of resubmitting?
Thanks
Andy.
^ permalink raw reply
* [net-2.6.24][XFRM][patch 1/1] fix xfrm audit export symbol for allmodconfig
From: dlezcano @ 2007-09-12 15:27 UTC (permalink / raw)
To: davem; +Cc: netdev, Joy Latten
In-Reply-To: <20070912152715.747974665@mai.toulouse-stg.fr.ibm.com>
[-- Attachment #1: net-fix-xfrm-audit-syscall-export-symbol.patch --]
[-- Type: text/plain, Size: 1685 bytes --]
From: Daniel Lezcano <dlezcano@fr.ibm.com>
This patch fixes export symbol for:
xfrm_audit_policy_add
xfrm_audit_policy_delete
xfrm_audit_state_add
xfrm_audit_state_delete
That allows xfrm_user and af_key to be compiled as module
I didn't used EXPORT_SYMBOL_GPL to be consistent with the rest
of the code.
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
---
net/xfrm/xfrm_policy.c | 2 ++
net/xfrm/xfrm_state.c | 3 +++
2 files changed, 5 insertions(+)
Index: net-2.6.24/net/xfrm/xfrm_policy.c
===================================================================
--- net-2.6.24.orig/net/xfrm/xfrm_policy.c
+++ net-2.6.24/net/xfrm/xfrm_policy.c
@@ -2341,6 +2341,7 @@
xfrm_audit_common_policyinfo(xp, audit_buf);
audit_log_end(audit_buf);
}
+EXPORT_SYMBOL(xfrm_audit_policy_add);
void
xfrm_audit_policy_delete(struct xfrm_policy *xp, int result, u32 auid, u32 sid)
@@ -2357,6 +2358,7 @@
xfrm_audit_common_policyinfo(xp, audit_buf);
audit_log_end(audit_buf);
}
+EXPORT_SYMBOL(xfrm_audit_policy_delete);
#endif
#ifdef CONFIG_XFRM_MIGRATE
Index: net-2.6.24/net/xfrm/xfrm_state.c
===================================================================
--- net-2.6.24.orig/net/xfrm/xfrm_state.c
+++ net-2.6.24/net/xfrm/xfrm_state.c
@@ -1865,6 +1865,7 @@
(unsigned long)x->id.spi, (unsigned long)x->id.spi);
audit_log_end(audit_buf);
}
+EXPORT_SYMBOL(xfrm_audit_state_add);
void
xfrm_audit_state_delete(struct xfrm_state *x, int result, u32 auid, u32 sid)
@@ -1883,4 +1884,6 @@
(unsigned long)x->id.spi, (unsigned long)x->id.spi);
audit_log_end(audit_buf);
}
+EXPORT_SYMBOL(xfrm_audit_state_delete);
+
#endif /* CONFIG_AUDITSYSCALL */
--
^ permalink raw reply
* [net-2.6.24][XFRM][patch 0/1] fix allmodconfig
From: dlezcano @ 2007-09-12 15:27 UTC (permalink / raw)
To: davem; +Cc: netdev, Joy Latten
Fixes missing export symbols
--
^ permalink raw reply
* Re: [PATCH] veth: Cleanly handle a missing peer_tb argument on creation.
From: Eric W. Biederman @ 2007-09-12 15:25 UTC (permalink / raw)
To: Pavel Emelyanov; +Cc: David Miller, Patrick McHardy, netdev, Stephen Hemminger
In-Reply-To: <46E7FC64.5030604@openvz.org>
Pavel Emelyanov <xemul@openvz.org> writes:
> Eric W. Biederman wrote:
>> Pavel Emelyanov <xemul@openvz.org> writes:
>>
>>>> + }
>>>>
>>>> - tbp = peer_tb;
>>>> - } else
>>>> - tbp = tb;
>>> The intention of this part was to get the same parameters for
>>> peer as for the first device if no "peer" argument was specified
>>> for ip utility. Does it still work?
>>
>> I know it is problematic because we try to assign the same name
>> to both network devices, if we assign a name to the primary
>> network device. That can't work.
>
> This can - as you can see I reallocate the name lower.
Hmm. I just see:
if (tbp[IFLA_IFNAME])
nla_strlcpy(ifname, tbp[IFLA_IFNAME], IFNAMSIZ);
Then lower I see:
if (tb[IFLA_IFNAME])
nla_strlcpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ);
If (tb == tbp) then dev->name == ifname
Unless I'm completely misreading that code.
>> Beyond that I had some really weird crashes while testing this
>> piece of code, especially when I did not specify a peer parameter.
>
> Can you please give me the exact command that caused an oops.
> I try simple ip link add type veth and everything is just fine.
It might have been 64bit specific.
What I have in my history is:
./ip/ip link add veth23 type veth
I forget exactly how it failed but as I recall it wasn't as
nice as an oops. My memory may be a bit foggy though.
If I haven't provided a bit enough clue I guess I can go back
and remove the patch and try to reproduce the failure again.
>> So it was just easier to avoid the problem with this patch then
>> to completely root cause it.
>
> Let me handle this problem. AFAIR this was one of wishes from
> Patrick that we make two equal devices in case peer is not given,
> not just the default peer.
Ok. I have if we can track down the weird cases I have no problem
if we handle this. I think it still might be simpler if just
copy tb onto peer_tb instead of using tbp.
Eric
^ permalink raw reply
* Re: new NAPI interface broken for POWER architecture?
From: Arnd Bergmann @ 2007-09-12 15:18 UTC (permalink / raw)
To: Christoph Raisch
Cc: David Miller, Jan-Bernd Themann, netdev, ossthema, shemminger,
Paul Mackerras, Michael Ellerman, linuxppc-dev
In-Reply-To: <OF2D6ED296.BDB04FBF-ONC1257354.00473703-C1257354.0048406C@de.ibm.com>
On Wednesday 12 September 2007, Christoph Raisch wrote:
> David Miller <davem@davemloft.net> wrote on 12.09.2007 14:50:04:
>
> > I agree that it should be fixed, but we should also fix the IRQ
> > distribution scheme used on powerpc platforms which is totally
> > broken in these cases.
>
> This is definitely not something we can change in the HEA device driver
> alone.
> It could also affect any other networking cards on POWER (e1000,s2io...).
>
> Paul, Michael, Arndt, what is your opinion here?
The situation on Cell with the existing south bridge chips is that
interrupts _never_ get moved around, but are routed to specific
SMT threads by the firmware, while Linux does not interfere with
this.
We have been thinking about changing this so we can distribute
interrupts over all SMT threads in a given NUMA node, or even
over all logical CPUs in the system by reprogramming the
interrupt controller after each interrupt, but the current Axon bridge
chip will always have all devices routed to the same target CPU,
so it's unclear whether that is even an advantage.
Arnd <><
^ permalink raw reply
* Re: [RFC PATCH 1/2] SCTP: Add RCU synchronization around sctp_localaddr_list
From: Paul E. McKenney @ 2007-09-12 15:20 UTC (permalink / raw)
To: Vlad Yasevich; +Cc: Sridhar Samudrala, netdev, lksctp-developers
In-Reply-To: <46E6A096.9010208@hp.com>
On Tue, Sep 11, 2007 at 10:05:10AM -0400, Vlad Yasevich wrote:
> Sridhar, Paul
>
> Thanks for review. Some answers and questions below...
NP!
> Sridhar Samudrala wrote:
> > Paul E. McKenney wrote:
[ . . . ]
> >>> if ((PF_INET == sk->sk_family) &&
> >>> (AF_INET6 == addr->a.sa.sa_family))
> >>> continue;
> >>> +
> >>> cnt++;
> >>> }
> >>> + rcu_read_unlock();
> >>
> >> We are just counting these things, right? If on the other hand we are
> >> keeping a reference outside of rcu_read_lock() protection, then there
> >> needs to be some explicit mechanism preventing the corresponding entry
> >> from being freed.
>
> In this particular case, we are just counting. There are other cases,
> we make a copy of the address in the list. The goal was to reduce the
> probability that an address that is about to be deleted at the rcu
> quiescent state will not be copied/counted.
>
> My other thought was to use atomics, but with all the yelling about atomic_read(),
> that didn't seem any better then a simple __u8 flag.
If just counting, then no worries either way. As long as you are counting
to a local variable, as in fact you are.
Thanx, Paul
^ permalink raw reply
* Re: [RFC 0/3] rfkill
From: David Miller @ 2007-09-12 15:14 UTC (permalink / raw)
To: dtor-xOqKmqBdiMhF6kxbq+BtvQ
Cc: ivdoorn-Re5JQEeQqe8AvxtiuMwx3w, netdev-u79uwXL29TY76Z2rM5mHXA,
linux-wireless-u79uwXL29TY76Z2rM5mHXA,
inaky-VuQAYsv1563Yd54FQh9/CA
In-Reply-To: <200709100004.56664.dtor-xOqKmqBdiMhF6kxbq+BtvQ@public.gmane.org>
From: Dmitry Torokhov <dtor-xOqKmqBdiMhF6kxbq+BtvQ@public.gmane.org>
Date: Mon, 10 Sep 2007 00:04:55 -0400
> Looks good, feel free to add
>
> Acked-by: Dmitry Torokhov <dtor-JGs/UdohzUI@public.gmane.org>
I've been loosely following these patches, they have
gone through several revisions.
Please resubmit all of these patches if they are ready
to go in right now, thanks.
^ permalink raw reply
* Re: [PATCH 4/4] [IPROUTE2] iproute2: link_veth support bug fixes.
From: Eric W. Biederman @ 2007-09-12 15:13 UTC (permalink / raw)
To: Pavel Emelyanov; +Cc: Stephen Hemminger, netdev, Patrick McHardy
In-Reply-To: <46E7F8B1.5090907@openvz.org>
Pavel Emelyanov <xemul@openvz.org> writes:
> [snip]
>
>> @@ -25,6 +26,3 @@ clean:
>>
>> LDLIBS += -ldl
>> LDFLAGS += -Wl,-export-dynamic
>> -
>> -%.so: %.c
>> - $(CC) $(CFLAGS) -shared $< -o $@
>
> %) How do we get the .so file then?
The code was built into iproute2, so we don't need the .so file.
That rule does not work on arch/x86_64 so I had to do something
and the easiest was to simply compile the code in. Like Patrick
did with his recent VLAN support.
The usefulness of a .so file seems to be distributing the code
outside of /bin/ip. Although I think we currently have some issues with
mixed 32bit and 64bit systems because we have "/usr/lib/ip/link_*.so"
hard coded.
A .so file always seems to override the compiled in version so I don't
think we loose any flexibility on that front.
Eric
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox