Netdev List
 help / color / mirror / Atom feed
* Re: [PATCH] netfilter: Remove the spurious \ in __ip_vs_lblc_init
From: David Miller @ 2012-11-19 19:20 UTC (permalink / raw)
  To: ebiederm; +Cc: netdev
In-Reply-To: <87zk2d7gwp.fsf@xmission.com>

From: ebiederm@xmission.com (Eric W. Biederman)
Date: Mon, 19 Nov 2012 07:26:30 -0800

> 
> In (464dc801c76a net: Don't export sysctls to unprivileged users)
> I typoed and introduced a spurious backslash.  Delete it.
> 
> Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>

Applied.

^ permalink raw reply

* Re: [PATCH 200/493] irda: remove use of __devinit
From: Greg KH @ 2012-11-19 19:21 UTC (permalink / raw)
  To: David Miller; +Cc: wfp5p, samuel, netdev
In-Reply-To: <20121119.140654.780679585475336928.davem@davemloft.net>

On Mon, Nov 19, 2012 at 02:06:54PM -0500, David Miller wrote:
> 
> It is absolutely not reasonable to post nearly 500 patches all
> at the same time.
> 
> Do not do this ever again.

Bill did this with the assumption that I would take them through my
driver-core tree, as I asked that he do this work.  The 000 message said
that, but that wasn't sent out to all of the recipients, so I can
understand how you didn't see this.

Also, I was the only one that got all 500 emails, everyone else should
have only seen a small quantity.

As you object to these, that's fine, I'll not apply anything to my
treethat touches the drivers/net/ or net/ tree at this point in time, is
that ok?

But the end goal is to drop CONFIG_HOTPLUG entirely, and these __dev*
markings, as they don't do anything anymore.

thanks,

greg k-h

^ permalink raw reply

* Re: [PATCH v2] net/macb: move to circ_buf macros and fix initial condition
From: David Miller @ 2012-11-19 19:22 UTC (permalink / raw)
  To: nicolas.ferre; +Cc: netdev, plagnioj, manabian, linux-arm-kernel, linux-kernel
In-Reply-To: <1353340821-12658-1-git-send-email-nicolas.ferre@atmel.com>

From: Nicolas Ferre <nicolas.ferre@atmel.com>
Date: Mon, 19 Nov 2012 17:00:21 +0100

> Move to circular buffers management macro and correct an error
> with circular buffer initial condition.
> 
> Without this patch, the macb_tx_ring_avail() function was
> not reporting the proper ring availability at startup:
> macb macb: eth0: BUG! Tx Ring full when queue awake!
> macb macb: eth0: tx_head = 0, tx_tail = 0
> And hanginig forever...
> 
> I remove the macb_tx_ring_avail() function and use the
> proven macros from circ_buf.h. CIRC_CNT() is used in the
> "consumer" part of the driver: macb_tx_interrupt() to match
> advice from Documentation/circular-buffers.txt.
> 
> Reported-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> Tested-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

Applied, thanks.

> ---
> v2: - added tags from Jean-Christophe PLAGNIOL-VILLARD

Note that under normal circumstances, if the only change is the
tags that people added in replies, you don't need to do this.

Patchwork accumulates all of the signoffs, acks, tested-by,
reviewed-by, etc. tags made in replies to the patch automatically for
me, so when I apply the patch they will be there.

^ permalink raw reply

* Re: [PATCH 200/493] irda: remove use of __devinit
From: David Miller @ 2012-11-19 19:24 UTC (permalink / raw)
  To: gregkh; +Cc: wfp5p, samuel, netdev
In-Reply-To: <20121119192121.GA16694@kroah.com>

From: Greg KH <gregkh@linuxfoundation.org>
Date: Mon, 19 Nov 2012 11:21:21 -0800

> On Mon, Nov 19, 2012 at 02:06:54PM -0500, David Miller wrote:
>> 
>> It is absolutely not reasonable to post nearly 500 patches all
>> at the same time.
>> 
>> Do not do this ever again.
> 
> Bill did this with the assumption that I would take them through my
> driver-core tree, as I asked that he do this work.  The 000 message said
> that, but that wasn't sent out to all of the recipients, so I can
> understand how you didn't see this.
> 
> Also, I was the only one that got all 500 emails, everyone else should
> have only seen a small quantity.

I had to purge nearly 100 out of networking's patchwork.

This is unacceptable.

^ permalink raw reply

* Re: [B.A.T.M.A.N.] [PATCH 04/10] batman-adv: export compatibility version via debugfs
From: Sven Eckelmann @ 2012-11-19 19:29 UTC (permalink / raw)
  To: b.a.t.m.a.n
  Cc: Ben Hutchings, Antonio Quartulli, netdev, Marek Lindner, davem
In-Reply-To: <1353351150.4156.4.camel@bwh-desktop.uk.solarflarecom.com>

[-- Attachment #1: Type: text/plain, Size: 969 bytes --]

On Monday 19 November 2012 18:52:30 Ben Hutchings wrote:
> On Mon, 2012-11-19 at 09:24 +0100, Antonio Quartulli wrote:
> > Different versions of the batman-adv module may use the same compatibility
> > version, but this is not understandable at runtime (the only way is to
> > parse the kernel log and fetch the batman-adv advertisement message on
> > loading). The user may want to know whether two nodes using different
> > versions can communicate or not. For this purpose the module has to
> > export this value through debugfs.
> [...]
> 
> I do hope that you're not planning to use unstable debugfs interfaces
> indefinitely.

Why are you refering to the adding of an file as "incompatible" debugfs 
interface? I would call it additional information. And the rest of the commit 
message is talking about *possible* protocol incompatibilies of the network 
protocol (which caused this uncontrolled erruption of anger in a network 
maintainer).

Kind regards,
	Sven

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply

* Re: [PATCH 080/493] fddi: remove use of __devexit_p
From: Greg KH @ 2012-11-19 19:29 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: Bill Pemberton, netdev
In-Reply-To: <alpine.LFD.2.02.1211191912040.25230@eddie.linux-mips.org>

On Mon, Nov 19, 2012 at 07:16:44PM +0000, Maciej W. Rozycki wrote:
> On Mon, 19 Nov 2012, Maciej W. Rozycki wrote:
> 
> > > CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
> > > needed.
> > 
> >  Shouldn't this be switching to __exit_p() instead?  Likewise all the 
> > other changes concerned (i.e. s/__dev\(init\|exit\)/__\1/), for the sake 
> > of drivers built into the kernel proper (yes, there are people out there 
> > still doing that).  Am I missing something?
> > 
> >  This change scores my NAK as it stands, until updated accordingly or 
> > further justified.
> 
>  I have unconfused myself now, so please replace the above with the 
> following question: what about configurations (e.g. buses) that not 
> support hotplug at all?  For example apart from PCI the defxx driver 
> concerned here supports the TURBOchannel bus that by design does not have 
> the concept of live option card removal (no such circuitry).  So should 
> now the precious memory be wasted on systems that will never ever handle 
> hotplug?

CONFIG_HOTPLUG is always enabled now, so that's not an option anymore.
And again, a user can "hot unbind" a driver from a device from
userspace, no matter if the bus physically supports it or not.

thanks,

greg k-h

^ permalink raw reply

* Re: [PATCH 200/493] irda: remove use of __devinit
From: Greg KH @ 2012-11-19 19:30 UTC (permalink / raw)
  To: David Miller; +Cc: wfp5p, samuel, netdev
In-Reply-To: <20121119.142446.1954365383179623684.davem@davemloft.net>

On Mon, Nov 19, 2012 at 02:24:46PM -0500, David Miller wrote:
> From: Greg KH <gregkh@linuxfoundation.org>
> Date: Mon, 19 Nov 2012 11:21:21 -0800
> 
> > On Mon, Nov 19, 2012 at 02:06:54PM -0500, David Miller wrote:
> >> 
> >> It is absolutely not reasonable to post nearly 500 patches all
> >> at the same time.
> >> 
> >> Do not do this ever again.
> > 
> > Bill did this with the assumption that I would take them through my
> > driver-core tree, as I asked that he do this work.  The 000 message said
> > that, but that wasn't sent out to all of the recipients, so I can
> > understand how you didn't see this.
> > 
> > Also, I was the only one that got all 500 emails, everyone else should
> > have only seen a small quantity.
> 
> I had to purge nearly 100 out of networking's patchwork.
> 
> This is unacceptable.

Ok, fair enough, sorry about that.

greg k-h

^ permalink raw reply

* Re: [PATCH 04/10] batman-adv: export compatibility version via debugfs
From: Ben Hutchings @ 2012-11-19 19:40 UTC (permalink / raw)
  To: Sven Eckelmann
  Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
	b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r, Marek Lindner,
	davem-fT/PcQaiUtIeIZ0/mPfg9Q
In-Reply-To: <5268262.CIrZ93ERtB@bentobox>

On Mon, 2012-11-19 at 20:29 +0100, Sven Eckelmann wrote:
> On Monday 19 November 2012 18:52:30 Ben Hutchings wrote:
> > On Mon, 2012-11-19 at 09:24 +0100, Antonio Quartulli wrote:
> > > Different versions of the batman-adv module may use the same compatibility
> > > version, but this is not understandable at runtime (the only way is to
> > > parse the kernel log and fetch the batman-adv advertisement message on
> > > loading). The user may want to know whether two nodes using different
> > > versions can communicate or not. For this purpose the module has to
> > > export this value through debugfs.
> > [...]
> > 
> > I do hope that you're not planning to use unstable debugfs interfaces
> > indefinitely.
> 
> Why are you refering to the adding of an file as "incompatible" debugfs 
> interface? I would call it additional information. And the rest of the commit 
> message is talking about *possible* protocol incompatibilies of the network 
> protocol (which caused this uncontrolled erruption of anger in a network 
> maintainer).

I didn't say that.  But debugfs tends to be exempted from expectations
of interface stability or cleanliness (as it's for development, not
production... right?).  It's also an optional feature that might not be
enabled at compile time or run-time.  If BATMAN is ever going to be
ready for general use it will need stable interfaces that are updated in
a backward-compatible way and don't depend on debugfs.

Ben.

-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

^ permalink raw reply

* Re: unable to handle paging request, arm, at aio/tcp code, only 3.6
From: Eric Dumazet @ 2012-11-19 19:41 UTC (permalink / raw)
  To: Lluís Batlle i Rossell; +Cc: netdev
In-Reply-To: <20121119183222.GI2068@vicerveza.homeunix.net>

On Mon, 2012-11-19 at 19:32 +0100, Lluís Batlle i Rossell wrote:
> (crosspost from lkml)
> Hello,
> 
> in a Sheevaplug (armv5tel), if I run the kernels 3.6.3 or 3.6.6, they crash in
> less than 48h. Kernel 3.5.3 runs perfect, as most previous kernels I've been
> running until 2.6.36.
> 
> Can anyone suggest what change can be the cause of that?
> Or how could I debug this to fix it?
> 
> Here is the panic:
> unable to handle kernel paging request at virtual address ffffffab
> pgd = d864c000
> [ffffffab] *pgd=1fffe831, *pte=00000000, *ppte=00000000
> Internal error: Oops: 1 [#1] PREEMPT ARM
> Modules linked in: netconsole cbc sg cryptodev(O) fuse ipv6 ums_cypress dm_mod btrfs ext4 jb
> d2 reiserfs [last unloaded: netconsole]
> CPU: 0    Tainted: G           O  (3.6.6 #1)
> PC is at tcp_v6_mtu_reduced+0x40/0x80 [ipv6]
> LR is at ip6_dst_lookup_tail+0xd8/0xfc [ipv6]
> pc : [<bf2b02f8>]    lr : [<bf28a67c>]    psr: a0000013
> sp : d8649c78  ip : d8649b90  fp : d8649c94
> r10: 00000b50  r9 : fffffff5  r8 : 00000000
> r7 : d2c4a100  r6 : 000032e8  r5 : ffffff9b  r4 : d2c4a100
> r3 : 00000000  r2 : a0000093  r1 : c0c5f460  r0 : ffffff9b
> Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
> Control: 0005397f  Table: 1864c000  DAC: 00000015
> Process httpd (pid: 1923, stack limit = 0xd8648270)
> Stack: (0xd8649c78 to 0xd864a000)
> 9c60:                                                       bf2b02b8 00000020
> 9c80: d2c4a100 000032e8 d8649cac d8649c98 c0439f18 bf2b02c8 d8648000 000032e8
> 9ca0: d8649cdc d8649cb0 c03e3dfc c0439e28 00000000 00000040 000032e8 000032e8
> 9cc0: d2c4a100 00000000 fffffff5 00000b50 d8649d74 d8649ce0 c042b7ac c03e3d0c
> 9ce0: 00000000 c035fac0 00010000 00000000 00000000 d863bd10 d8649d14 00000000
> 9d00: 00000000 00000630 00000000 00000001 d8649ee4 d8648000 00000001 00000000
> 9d20: d2c4a190 000005a8 00000a28 000032e8 00490cb0 00000040 dfa5a220 00000b50
> 9d40: 00000000 00000001 00000000 d2c4a100 d8649e18 d8649e18 00000003 d8649db8
> 9d60: 00005000 dafc59a0 d8649d94 d8649d78 c044f37c c042b6d8 c03e2474 c0037ee4
> 9d80: 00005000 d8649d98 d8649e04 d8649d98 c03de7e8 c044f338 d2e6001c c0044d14
> 9da0: 00000015 00005000 dafc59a0 ccb9e9f4 00000000 d8649db8 00000000 00000000
> 9dc0: d8649ed4 00000003 00000000 00000000 00000040 d8649e18 50a95c6c 00000000
> 9de0: 00000000 fffffdee d8649ed4 00000003 00005000 c03de6e4 d8649ec4 d8649e08
> 9e00: c00db170 c03de6f4 00000000 00000000 d868c480 dfa5a220 00000000 00000000
> 9e20: 00000000 00000001 ffffffff d868c480 00000000 00000000 00000000 00000000
> 9e40: dfa5a220 00000000 00000000 00000000 00000000 00000000 d8649d98 00000000
> 9e60: 00005000 00000000 00005000 00000000 00000000 00000000 00000000 00000000
> 9e80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 d868c480
> 9ea0: 00005000 d8649ed4 00000001 00000003 d8649f70 00005000 d8649f44 d8649ec8
> 9ec0: c00db41c c00db0cc d8649f70 c03de6e4 d8649ef0 004878e8 00001f40 0048f908
> 9ee0: 00001f40 0047d8c0 00001180 c050a478 d8649ef0 d8649ef0 d8648000 c012184c
> 9f00: 00000000 d8648000 cbac00dc 00000002 d8649fa4 d8649ed4 c012184c 00000003
> 9f20: beeeb1a0 d8649f70 00000092 00000000 00000000 00000000 d8649f6c d8649f48
> 9f40: c00db580 c00db36c d8649f70 c00db6c0 00000003 d868c480 beeeb1a0 00000003
> 9f60: d8649fa4 d8649f70 c00db6e4 c00db528 00000000 00000000 d8649fa4 00000000
> 9f80: 0001117e 00000003 0000000b beeeb1a0 c0009484 d8648000 00000000 d8649fa8
> 9fa0: c0009260 c00db6a8 00000003 0000000b 0000000b beeeb1a0 00000003 b6c99000
> 9fc0: 00000003 0000000b beeeb1a0 00000092 beeeb134 00000003 00000000 beeeb1a0
> 9fe0: 00000000 beeeb0f8 b6d39ef4 b6c2d768 60000010 0000000b 6c644a76 64703347
> [<bf2b02f8>] (tcp_v6_mtu_reduced+0x40/0x80 [ipv6]) from [<c0439f18>] (tcp_release_cb+0x100/0x120)
> [<c0439f18>] (tcp_release_cb+0x100/0x120) from [<c03e3dfc>] (release_sock+0x100/0x17c)
> [<c03e3dfc>] (release_sock+0x100/0x17c) from [<c042b7ac>] (tcp_sendmsg+0xe4/0xe8c)
> [<c042b7ac>] (tcp_sendmsg+0xe4/0xe8c) from [<c044f37c>] (inet_sendmsg+0x54/0x88)
> [<c044f37c>] (inet_sendmsg+0x54/0x88) from [<c03de7e8>] (sock_aio_write+0x104/0x114)
> [<c03de7e8>] (sock_aio_write+0x104/0x114) from [<c00db170>] (do_sync_readv_writev+0xb4/0xe8)
> [<c00db170>] (do_sync_readv_writev+0xb4/0xe8) from [<c00db41c>] (do_readv_writev+0xc0/0x1bc)
> [<c00db41c>] (do_readv_writev+0xc0/0x1bc) from [<c00db580>] (vfs_writev+0x68/0x84)
> [<c00db580>] (vfs_writev+0x68/0x84) from [<c00db6e4>] (sys_writev+0x4c/0x78)
> [<c00db6e4>] (sys_writev+0x4c/0x78) from [<c0009260>] (ret_fast_syscall+0x0/0x2c)
> Code: e59014d0 eb001678 e2505000 0afffffa (e5953010)
> ---[ end trace 8b4363f5e83db74f ]---
> Kernel panic - not syncing: Fatal exception in interrupt
> --

Thanks for the report.

I believe this is a regression of commit
35ad9b9cf7d8a2e6259a0d24022e910adb6f3489
(ipv6: Add helper inet6_csk_update_pmtu().)

I'll prepare a patch to fix this.

^ permalink raw reply

* Re: [PATCH 04/10] batman-adv: export compatibility version via debugfs
From: David Miller @ 2012-11-19 19:47 UTC (permalink / raw)
  To: sven-KaDOiPu9UxWEi8DpZVb4nw
  Cc: bhutchings-s/n/eUQHGBpZroRs9YW3xA, netdev-u79uwXL29TY76Z2rM5mHXA,
	b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r,
	lindner_marek-LWAfsSFWpa4
In-Reply-To: <5268262.CIrZ93ERtB@bentobox>

From: Sven Eckelmann <sven-KaDOiPu9UxWEi8DpZVb4nw@public.gmane.org>
Date: Mon, 19 Nov 2012 20:29:07 +0100

> On Monday 19 November 2012 18:52:30 Ben Hutchings wrote:
>> On Mon, 2012-11-19 at 09:24 +0100, Antonio Quartulli wrote:
>> > Different versions of the batman-adv module may use the same compatibility
>> > version, but this is not understandable at runtime (the only way is to
>> > parse the kernel log and fetch the batman-adv advertisement message on
>> > loading). The user may want to know whether two nodes using different
>> > versions can communicate or not. For this purpose the module has to
>> > export this value through debugfs.
>> [...]
>> 
>> I do hope that you're not planning to use unstable debugfs interfaces
>> indefinitely.
> 
> Why are you refering to the adding of an file as "incompatible" debugfs 
> interface? I would call it additional information. And the rest of the commit 
> message is talking about *possible* protocol incompatibilies of the network 
> protocol (which caused this uncontrolled erruption of anger in a network 
> maintainer).

Debugfs files aren't where you store information that userspace actually
uses in normal situations.

It's for developer debug, to expose internals that otherwise have no
business being part of the user visible interfaces.

^ permalink raw reply

* Re: [PATCH 1/1] vhost: Remove duplicate inclusion of linux/vhost.h
From: Michael S. Tsirkin @ 2012-11-19 19:49 UTC (permalink / raw)
  To: David Miller; +Cc: kvm, patches, sachin.kamat, netdev, virtualization
In-Reply-To: <20121119.141813.2249570877638146916.davem@davemloft.net>

On Mon, Nov 19, 2012 at 02:18:13PM -0500, David Miller wrote:
> From: Sachin Kamat <sachin.kamat@linaro.org>
> Date: Mon, 19 Nov 2012 16:58:28 +0530
> 
> > linux/vhost.h was included twice.
> > 
> > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> 
> Michael, are you gonna take this?
> 
> Thanks.

Pls pick it up.

Acked-by: Michael S. Tsirkin <mst@redhat.com>

^ permalink raw reply

* Re: [PATCH 1/1] vhost: Remove duplicate inclusion of linux/vhost.h
From: David Miller @ 2012-11-19 19:51 UTC (permalink / raw)
  To: mst; +Cc: kvm, patches, sachin.kamat, netdev, virtualization
In-Reply-To: <20121119194954.GA12283@redhat.com>

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: Mon, 19 Nov 2012 21:49:55 +0200

> On Mon, Nov 19, 2012 at 02:18:13PM -0500, David Miller wrote:
>> From: Sachin Kamat <sachin.kamat@linaro.org>
>> Date: Mon, 19 Nov 2012 16:58:28 +0530
>> 
>> > linux/vhost.h was included twice.
>> > 
>> > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
>> 
>> Michael, are you gonna take this?
>> 
>> Thanks.
> 
> Pls pick it up.
> 
> Acked-by: Michael S. Tsirkin <mst@redhat.com>

Applied to net-next, thanks.

^ permalink raw reply

* Re: [PATCH 471/493] net: remove use of __devexit
From: Larry Finger @ 2012-11-19 20:01 UTC (permalink / raw)
  To: Bill Pemberton
  Cc: Jiri Slaby, Michael S. Tsirkin, VMware, Inc., virtualization,
	Maciej W. Rozycki, Christian Lamparter, Hin-Tak Leung,
	Luciano Coelho, Stefano Brivio, libertas-dev, Dan Williams,
	ath5k-devel, Luis R. Rodriguez, linux-hippi, Nick Kossifidis,
	Francois Romieu, Herton Ronaldo Krzesinski, Stanislav Yakovlev,
	b43-dev, Samuel Ortiz, John W. Linville, linux-can, xen-devel,
	Marc 
In-Reply-To: <1353349642-3677-471-git-send-email-wfp5p@virginia.edu>

On 11/19/2012 12:27 PM, Bill Pemberton wrote:
> CONFIG_HOTPLUG is going away as an option so __devexit is no
> longer needed.
>
> Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
> Cc: Wolfgang Grandegger <wg@grandegger.com>
> Cc: Marc Kleine-Budde <mkl@pengutronix.de>
> Cc: "Maciej W. Rozycki" <macro@linux-mips.org>
> Cc: Jes Sorensen <jes@trained-monkey.org>
> Cc: Samuel Ortiz <samuel@sortiz.org>
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> Cc: "Michael S. Tsirkin" <mst@redhat.com>
> Cc: Shreyas Bhatewara <sbhatewara@vmware.com>
> Cc: "VMware, Inc." <pv-drivers@vmware.com>
> Cc: Francois Romieu <romieu@fr.zoreil.com>
> Cc: Krzysztof Halasa <khc@pm.waw.pl>
> Cc: "John W. Linville" <linville@tuxdriver.com>
> Cc: Jiri Slaby <jirislaby@gmail.com>
> Cc: Nick Kossifidis <mickflemm@gmail.com>
> Cc: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
> Cc: Simon Kelley <simon@thekelleys.org.uk>
> Cc: Stefano Brivio <stefano.brivio@polimi.it>
> Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
> Cc: Dan Williams <dcbw@redhat.com>
> Cc: Christian Lamparter <chunkeey@googlemail.com>
> Cc: Herton Ronaldo Krzesinski <herton@canonical.com>
> Cc: Hin-Tak Leung <htl10@users.sourceforge.net>
> Cc: Larry Finger <Larry.Finger@lwfinger.net>
> Cc: Luciano Coelho <coelho@ti.com>
> Cc: netdev@vger.kernel.org
> Cc: linux-can@vger.kernel.org
> Cc: linux-hippi@sunsite.dk
> Cc: virtualization@lists.linux-foundation.org
> Cc: linux-wireless@vger.kernel.org
> Cc: ath5k-devel@lists.ath5k.org
> Cc: b43-dev@lists.infradead.org
> Cc: libertas-dev@lists.infradead.org
> Cc: xen-devel@lists.xensource.com

ACKed-by: Larry Finger <Larry.Finger.net> for the rtl8187 part.

> ---
>   drivers/net/arcnet/com20020-pci.c             |  2 +-
>   drivers/net/can/at91_can.c                    |  2 +-
>   drivers/net/can/bfin_can.c                    |  2 +-
>   drivers/net/can/c_can/c_can_pci.c             |  2 +-
>   drivers/net/can/c_can/c_can_platform.c        |  2 +-
>   drivers/net/can/cc770/cc770_isa.c             |  2 +-
>   drivers/net/can/cc770/cc770_platform.c        |  2 +-
>   drivers/net/can/flexcan.c                     |  4 ++--
>   drivers/net/can/janz-ican3.c                  |  6 +++---
>   drivers/net/can/mcp251x.c                     |  2 +-
>   drivers/net/can/mscan/mpc5xxx_can.c           |  2 +-
>   drivers/net/can/pch_can.c                     |  2 +-
>   drivers/net/can/sja1000/kvaser_pci.c          |  2 +-
>   drivers/net/can/sja1000/peak_pci.c            |  2 +-
>   drivers/net/can/sja1000/sja1000_isa.c         |  2 +-
>   drivers/net/can/sja1000/sja1000_of_platform.c |  2 +-
>   drivers/net/can/sja1000/tscan1.c              |  2 +-
>   drivers/net/can/softing/softing_cs.c          |  2 +-
>   drivers/net/can/softing/softing_main.c        |  2 +-
>   drivers/net/can/ti_hecc.c                     |  2 +-
>   drivers/net/fddi/defxx.c                      | 14 +++++++-------
>   drivers/net/fddi/skfp/skfddi.c                |  2 +-
>   drivers/net/hippi/rrunner.c                   |  2 +-
>   drivers/net/ieee802154/at86rf230.c            |  2 +-
>   drivers/net/ieee802154/fakehard.c             |  2 +-
>   drivers/net/ieee802154/fakelb.c               |  2 +-
>   drivers/net/ieee802154/mrf24j40.c             |  2 +-
>   drivers/net/irda/au1k_ir.c                    |  2 +-
>   drivers/net/irda/bfin_sir.c                   |  2 +-
>   drivers/net/irda/sh_irda.c                    |  2 +-
>   drivers/net/irda/sh_sir.c                     |  2 +-
>   drivers/net/irda/via-ircc.c                   |  4 ++--
>   drivers/net/irda/vlsi_ir.c                    |  2 +-
>   drivers/net/phy/mdio-gpio.c                   |  4 ++--
>   drivers/net/phy/mdio-mux-gpio.c               |  2 +-
>   drivers/net/phy/mdio-mux-mmioreg.c            |  2 +-
>   drivers/net/phy/mdio-octeon.c                 |  2 +-
>   drivers/net/phy/spi_ks8995.c                  |  2 +-
>   drivers/net/virtio_net.c                      |  2 +-
>   drivers/net/vmxnet3/vmxnet3_drv.c             |  2 +-
>   drivers/net/wan/dscc4.c                       |  2 +-
>   drivers/net/wan/farsync.c                     |  2 +-
>   drivers/net/wan/ixp4xx_hss.c                  |  2 +-
>   drivers/net/wan/lmc/lmc_main.c                |  2 +-
>   drivers/net/wireless/adm8211.c                |  2 +-
>   drivers/net/wireless/airo.c                   |  2 +-
>   drivers/net/wireless/ath/ath5k/pci.c          |  2 +-
>   drivers/net/wireless/atmel_pci.c              |  2 +-
>   drivers/net/wireless/b43/pcmcia.c             |  2 +-
>   drivers/net/wireless/b43/sdio.c               |  2 +-
>   drivers/net/wireless/ipw2x00/ipw2100.c        |  2 +-
>   drivers/net/wireless/ipw2x00/ipw2200.c        |  2 +-
>   drivers/net/wireless/iwlegacy/3945-mac.c      |  2 +-
>   drivers/net/wireless/iwlegacy/4965-mac.c      |  2 +-
>   drivers/net/wireless/iwlwifi/pcie/drv.c       |  2 +-
>   drivers/net/wireless/libertas/if_spi.c        |  2 +-
>   drivers/net/wireless/mwl8k.c                  |  4 ++--
>   drivers/net/wireless/orinoco/orinoco_nortel.c |  2 +-
>   drivers/net/wireless/orinoco/orinoco_pci.c    |  2 +-
>   drivers/net/wireless/orinoco/orinoco_plx.c    |  2 +-
>   drivers/net/wireless/orinoco/orinoco_tmd.c    |  2 +-
>   drivers/net/wireless/p54/p54pci.c             |  2 +-
>   drivers/net/wireless/p54/p54spi.c             |  2 +-
>   drivers/net/wireless/p54/p54usb.c             |  2 +-
>   drivers/net/wireless/rtl818x/rtl8180/dev.c    |  2 +-
>   drivers/net/wireless/rtl818x/rtl8187/dev.c    |  2 +-
>   drivers/net/wireless/ti/wl1251/sdio.c         |  2 +-
>   drivers/net/wireless/ti/wl1251/spi.c          |  2 +-
>   drivers/net/wireless/ti/wlcore/main.c         |  2 +-
>   drivers/net/wireless/ti/wlcore/sdio.c         |  2 +-
>   drivers/net/wireless/ti/wlcore/spi.c          |  2 +-
>   drivers/net/wireless/ti/wlcore/wlcore.h       |  2 +-
>   drivers/net/xen-netfront.c                    |  2 +-
>   73 files changed, 85 insertions(+), 85 deletions(-)
>
> diff --git a/drivers/net/arcnet/com20020-pci.c b/drivers/net/arcnet/com20020-pci.c
> index e80f04b..cbc44f5 100644
> --- a/drivers/net/arcnet/com20020-pci.c
> +++ b/drivers/net/arcnet/com20020-pci.c
> @@ -135,7 +135,7 @@ out_dev:
>   	return err;
>   }
>
> -static void __devexit com20020pci_remove(struct pci_dev *pdev)
> +static void com20020pci_remove(struct pci_dev *pdev)
>   {
>   	struct net_device *dev = pci_get_drvdata(pdev);
>   	unregister_netdev(dev);
> diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c
> index da807f3..e3c4c22 100644
> --- a/drivers/net/can/at91_can.c
> +++ b/drivers/net/can/at91_can.c
> @@ -1338,7 +1338,7 @@ static int at91_can_probe(struct platform_device *pdev)
>   	return err;
>   }
>
> -static int __devexit at91_can_remove(struct platform_device *pdev)
> +static int at91_can_remove(struct platform_device *pdev)
>   {
>   	struct net_device *dev = platform_get_drvdata(pdev);
>   	struct at91_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/bfin_can.c b/drivers/net/can/bfin_can.c
> index 16515e3..6918334 100644
> --- a/drivers/net/can/bfin_can.c
> +++ b/drivers/net/can/bfin_can.c
> @@ -611,7 +611,7 @@ exit:
>   	return err;
>   }
>
> -static int __devexit bfin_can_remove(struct platform_device *pdev)
> +static int bfin_can_remove(struct platform_device *pdev)
>   {
>   	struct net_device *dev = dev_get_drvdata(&pdev->dev);
>   	struct bfin_can_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/c_can/c_can_pci.c b/drivers/net/can/c_can/c_can_pci.c
> index 27db0f2..a1f2631 100644
> --- a/drivers/net/can/c_can/c_can_pci.c
> +++ b/drivers/net/can/c_can/c_can_pci.c
> @@ -174,7 +174,7 @@ out:
>   	return ret;
>   }
>
> -static void __devexit c_can_pci_remove(struct pci_dev *pdev)
> +static void c_can_pci_remove(struct pci_dev *pdev)
>   {
>   	struct net_device *dev = pci_get_drvdata(pdev);
>   	struct c_can_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/c_can/c_can_platform.c b/drivers/net/can/c_can/c_can_platform.c
> index 91e7d2b..f133951 100644
> --- a/drivers/net/can/c_can/c_can_platform.c
> +++ b/drivers/net/can/c_can/c_can_platform.c
> @@ -220,7 +220,7 @@ exit:
>   	return ret;
>   }
>
> -static int __devexit c_can_plat_remove(struct platform_device *pdev)
> +static int c_can_plat_remove(struct platform_device *pdev)
>   {
>   	struct net_device *dev = platform_get_drvdata(pdev);
>   	struct c_can_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/cc770/cc770_isa.c b/drivers/net/can/cc770/cc770_isa.c
> index bed9d19..8eaaac8 100644
> --- a/drivers/net/can/cc770/cc770_isa.c
> +++ b/drivers/net/can/cc770/cc770_isa.c
> @@ -291,7 +291,7 @@ static int cc770_isa_probe(struct platform_device *pdev)
>   	return err;
>   }
>
> -static int __devexit cc770_isa_remove(struct platform_device *pdev)
> +static int cc770_isa_remove(struct platform_device *pdev)
>   {
>   	struct net_device *dev = dev_get_drvdata(&pdev->dev);
>   	struct cc770_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/cc770/cc770_platform.c b/drivers/net/can/cc770/cc770_platform.c
> index caf4d70..4af9f4e 100644
> --- a/drivers/net/can/cc770/cc770_platform.c
> +++ b/drivers/net/can/cc770/cc770_platform.c
> @@ -237,7 +237,7 @@ exit_release_mem:
>   	return err;
>   }
>
> -static int __devexit cc770_platform_remove(struct platform_device *pdev)
> +static int cc770_platform_remove(struct platform_device *pdev)
>   {
>   	struct net_device *dev = dev_get_drvdata(&pdev->dev);
>   	struct cc770_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
> index dd3c933..dc31c78 100644
> --- a/drivers/net/can/flexcan.c
> +++ b/drivers/net/can/flexcan.c
> @@ -968,7 +968,7 @@ static int register_flexcandev(struct net_device *dev)
>   	return err;
>   }
>
> -static void __devexit unregister_flexcandev(struct net_device *dev)
> +static void unregister_flexcandev(struct net_device *dev)
>   {
>   	unregister_candev(dev);
>   }
> @@ -1107,7 +1107,7 @@ static int flexcan_probe(struct platform_device *pdev)
>   	return err;
>   }
>
> -static int __devexit flexcan_remove(struct platform_device *pdev)
> +static int flexcan_remove(struct platform_device *pdev)
>   {
>   	struct net_device *dev = platform_get_drvdata(pdev);
>   	struct flexcan_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c
> index 6eb1916..e7d69a4 100644
> --- a/drivers/net/can/janz-ican3.c
> +++ b/drivers/net/can/janz-ican3.c
> @@ -642,7 +642,7 @@ static int ican3_msg_connect(struct ican3_dev *mod)
>   	return ican3_send_msg(mod, &msg);
>   }
>
> -static int __devexit ican3_msg_disconnect(struct ican3_dev *mod)
> +static int ican3_msg_disconnect(struct ican3_dev *mod)
>   {
>   	struct ican3_msg msg;
>
> @@ -1421,7 +1421,7 @@ static int ican3_reset_module(struct ican3_dev *mod)
>   	return -ETIMEDOUT;
>   }
>
> -static void __devexit ican3_shutdown_module(struct ican3_dev *mod)
> +static void ican3_shutdown_module(struct ican3_dev *mod)
>   {
>   	ican3_msg_disconnect(mod);
>   	ican3_reset_module(mod);
> @@ -1898,7 +1898,7 @@ out_return:
>   	return ret;
>   }
>
> -static int __devexit ican3_remove(struct platform_device *pdev)
> +static int ican3_remove(struct platform_device *pdev)
>   {
>   	struct net_device *ndev = platform_get_drvdata(pdev);
>   	struct ican3_dev *mod = netdev_priv(ndev);
> diff --git a/drivers/net/can/mcp251x.c b/drivers/net/can/mcp251x.c
> index 767fdbd..5eaf47b 100644
> --- a/drivers/net/can/mcp251x.c
> +++ b/drivers/net/can/mcp251x.c
> @@ -1100,7 +1100,7 @@ error_out:
>   	return ret;
>   }
>
> -static int __devexit mcp251x_can_remove(struct spi_device *spi)
> +static int mcp251x_can_remove(struct spi_device *spi)
>   {
>   	struct mcp251x_platform_data *pdata = spi->dev.platform_data;
>   	struct mcp251x_priv *priv = dev_get_drvdata(&spi->dev);
> diff --git a/drivers/net/can/mscan/mpc5xxx_can.c b/drivers/net/can/mscan/mpc5xxx_can.c
> index 508cbad..12e130a 100644
> --- a/drivers/net/can/mscan/mpc5xxx_can.c
> +++ b/drivers/net/can/mscan/mpc5xxx_can.c
> @@ -323,7 +323,7 @@ exit_unmap_mem:
>   	return err;
>   }
>
> -static int __devexit mpc5xxx_can_remove(struct platform_device *ofdev)
> +static int mpc5xxx_can_remove(struct platform_device *ofdev)
>   {
>   	struct net_device *dev = dev_get_drvdata(&ofdev->dev);
>   	struct mscan_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/pch_can.c b/drivers/net/can/pch_can.c
> index fad4625..7d17485 100644
> --- a/drivers/net/can/pch_can.c
> +++ b/drivers/net/can/pch_can.c
> @@ -954,7 +954,7 @@ static const struct net_device_ops pch_can_netdev_ops = {
>   	.ndo_start_xmit		= pch_xmit,
>   };
>
> -static void __devexit pch_can_remove(struct pci_dev *pdev)
> +static void pch_can_remove(struct pci_dev *pdev)
>   {
>   	struct net_device *ndev = pci_get_drvdata(pdev);
>   	struct pch_can_priv *priv = netdev_priv(ndev);
> diff --git a/drivers/net/can/sja1000/kvaser_pci.c b/drivers/net/can/sja1000/kvaser_pci.c
> index a6191ac..4efdaf2 100644
> --- a/drivers/net/can/sja1000/kvaser_pci.c
> +++ b/drivers/net/can/sja1000/kvaser_pci.c
> @@ -379,7 +379,7 @@ failure:
>
>   }
>
> -static void __devexit kvaser_pci_remove_one(struct pci_dev *pdev)
> +static void kvaser_pci_remove_one(struct pci_dev *pdev)
>   {
>   	struct net_device *dev = pci_get_drvdata(pdev);
>
> diff --git a/drivers/net/can/sja1000/peak_pci.c b/drivers/net/can/sja1000/peak_pci.c
> index fbf61cf..3faeb3d 100644
> --- a/drivers/net/can/sja1000/peak_pci.c
> +++ b/drivers/net/can/sja1000/peak_pci.c
> @@ -717,7 +717,7 @@ failure_disable_pci:
>   	return err;
>   }
>
> -static void __devexit peak_pci_remove(struct pci_dev *pdev)
> +static void peak_pci_remove(struct pci_dev *pdev)
>   {
>   	struct net_device *dev = pci_get_drvdata(pdev); /* Last device */
>   	struct sja1000_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/sja1000/sja1000_isa.c b/drivers/net/can/sja1000/sja1000_isa.c
> index a872f24..5c8da46 100644
> --- a/drivers/net/can/sja1000/sja1000_isa.c
> +++ b/drivers/net/can/sja1000/sja1000_isa.c
> @@ -223,7 +223,7 @@ static int sja1000_isa_probe(struct platform_device *pdev)
>   	return err;
>   }
>
> -static int __devexit sja1000_isa_remove(struct platform_device *pdev)
> +static int sja1000_isa_remove(struct platform_device *pdev)
>   {
>   	struct net_device *dev = dev_get_drvdata(&pdev->dev);
>   	struct sja1000_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/sja1000/sja1000_of_platform.c b/drivers/net/can/sja1000/sja1000_of_platform.c
> index 1ca0ee1..a7b0152 100644
> --- a/drivers/net/can/sja1000/sja1000_of_platform.c
> +++ b/drivers/net/can/sja1000/sja1000_of_platform.c
> @@ -68,7 +68,7 @@ static void sja1000_ofp_write_reg(const struct sja1000_priv *priv,
>   	out_8(priv->reg_base + reg, val);
>   }
>
> -static int __devexit sja1000_ofp_remove(struct platform_device *ofdev)
> +static int sja1000_ofp_remove(struct platform_device *ofdev)
>   {
>   	struct net_device *dev = dev_get_drvdata(&ofdev->dev);
>   	struct sja1000_priv *priv = netdev_priv(dev);
> diff --git a/drivers/net/can/sja1000/tscan1.c b/drivers/net/can/sja1000/tscan1.c
> index 6a6db7e..76513dd 100644
> --- a/drivers/net/can/sja1000/tscan1.c
> +++ b/drivers/net/can/sja1000/tscan1.c
> @@ -171,7 +171,7 @@ static int tscan1_probe(struct device *dev, unsigned id)
>   	return -ENXIO;
>   }
>
> -static int __devexit tscan1_remove(struct device *dev, unsigned id /*unused*/)
> +static int tscan1_remove(struct device *dev, unsigned id /*unused*/)
>   {
>   	struct net_device *netdev;
>   	struct sja1000_priv *priv;
> diff --git a/drivers/net/can/softing/softing_cs.c b/drivers/net/can/softing/softing_cs.c
> index 04e1539..ce18ba5 100644
> --- a/drivers/net/can/softing/softing_cs.c
> +++ b/drivers/net/can/softing/softing_cs.c
> @@ -215,7 +215,7 @@ static int softingcs_probe_config(struct pcmcia_device *pcmcia,
>   	return pcmcia_request_window(pcmcia, pres, memspeed);
>   }
>
> -static __devexit void softingcs_remove(struct pcmcia_device *pcmcia)
> +static void softingcs_remove(struct pcmcia_device *pcmcia)
>   {
>   	struct platform_device *pdev = pcmcia->priv;
>
> diff --git a/drivers/net/can/softing/softing_main.c b/drivers/net/can/softing/softing_main.c
> index aefd297..50b1e0f 100644
> --- a/drivers/net/can/softing/softing_main.c
> +++ b/drivers/net/can/softing/softing_main.c
> @@ -745,7 +745,7 @@ static const struct attribute_group softing_pdev_group = {
>   /*
>    * platform driver
>    */
> -static __devexit int softing_pdev_remove(struct platform_device *pdev)
> +static int softing_pdev_remove(struct platform_device *pdev)
>   {
>   	struct softing *card = platform_get_drvdata(pdev);
>   	int j;
> diff --git a/drivers/net/can/ti_hecc.c b/drivers/net/can/ti_hecc.c
> index 80ee814..b5e1683 100644
> --- a/drivers/net/can/ti_hecc.c
> +++ b/drivers/net/can/ti_hecc.c
> @@ -978,7 +978,7 @@ probe_exit:
>   	return err;
>   }
>
> -static int __devexit ti_hecc_remove(struct platform_device *pdev)
> +static int ti_hecc_remove(struct platform_device *pdev)
>   {
>   	struct resource *res;
>   	struct net_device *ndev = platform_get_drvdata(pdev);
> diff --git a/drivers/net/fddi/defxx.c b/drivers/net/fddi/defxx.c
> index fd58f0b..3c8aab7 100644
> --- a/drivers/net/fddi/defxx.c
> +++ b/drivers/net/fddi/defxx.c
> @@ -809,7 +809,7 @@ static void dfx_bus_init(struct net_device *dev)
>    *   Interrupts are disabled at the adapter bus-specific logic.
>    */
>
> -static void __devexit dfx_bus_uninit(struct net_device *dev)
> +static void dfx_bus_uninit(struct net_device *dev)
>   {
>   	DFX_board_t *bp = netdev_priv(dev);
>   	struct device *bdev = bp->bus_dev;
> @@ -3579,7 +3579,7 @@ static void dfx_xmt_flush( DFX_board_t *bp )
>    *   Device structures for FDDI adapters (fddi0, fddi1, etc) are
>    *   freed.
>    */
> -static void __devexit dfx_unregister(struct device *bdev)
> +static void dfx_unregister(struct device *bdev)
>   {
>   	struct net_device *dev = dev_get_drvdata(bdev);
>   	DFX_board_t *bp = netdev_priv(dev);
> @@ -3620,12 +3620,12 @@ static void __devexit dfx_unregister(struct device *bdev)
>
>
>   static int __maybe_unused dfx_dev_register(struct device *);
> -static int __devexit __maybe_unused dfx_dev_unregister(struct device *);
> +static int __maybe_unused dfx_dev_unregister(struct device *);
>
>   #ifdef CONFIG_PCI
>   static int dfx_pci_register(struct pci_dev *,
>   				      const struct pci_device_id *);
> -static void __devexit dfx_pci_unregister(struct pci_dev *);
> +static void dfx_pci_unregister(struct pci_dev *);
>
>   static DEFINE_PCI_DEVICE_TABLE(dfx_pci_table) = {
>   	{ PCI_DEVICE(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_FDDI) },
> @@ -3646,7 +3646,7 @@ static int dfx_pci_register(struct pci_dev *pdev,
>   	return dfx_register(&pdev->dev);
>   }
>
> -static void __devexit dfx_pci_unregister(struct pci_dev *pdev)
> +static void dfx_pci_unregister(struct pci_dev *pdev)
>   {
>   	dfx_unregister(&pdev->dev);
>   }
> @@ -3704,7 +3704,7 @@ static int __maybe_unused dfx_dev_register(struct device *dev)
>   	return status;
>   }
>
> -static int __devexit __maybe_unused dfx_dev_unregister(struct device *dev)
> +static int __maybe_unused dfx_dev_unregister(struct device *dev)
>   {
>   	put_device(dev);
>   	dfx_unregister(dev);
> @@ -3724,7 +3724,7 @@ static int dfx_init(void)
>   	return status;
>   }
>
> -static void __devexit dfx_cleanup(void)
> +static void dfx_cleanup(void)
>   {
>   	tc_unregister_driver(&dfx_tc_driver);
>   	eisa_driver_unregister(&dfx_eisa_driver);
> diff --git a/drivers/net/fddi/skfp/skfddi.c b/drivers/net/fddi/skfp/skfddi.c
> index cbabb74..d5bd563 100644
> --- a/drivers/net/fddi/skfp/skfddi.c
> +++ b/drivers/net/fddi/skfp/skfddi.c
> @@ -321,7 +321,7 @@ err_out1:
>   /*
>    * Called for each adapter board from pci_unregister_driver
>    */
> -static void __devexit skfp_remove_one(struct pci_dev *pdev)
> +static void skfp_remove_one(struct pci_dev *pdev)
>   {
>   	struct net_device *p = pci_get_drvdata(pdev);
>   	struct s_smc *lp = netdev_priv(p);
> diff --git a/drivers/net/hippi/rrunner.c b/drivers/net/hippi/rrunner.c
> index 12b7ff9..6be95ed 100644
> --- a/drivers/net/hippi/rrunner.c
> +++ b/drivers/net/hippi/rrunner.c
> @@ -221,7 +221,7 @@ static int rr_init_one(struct pci_dev *pdev,
>   	return ret;
>   }
>
> -static void __devexit rr_remove_one (struct pci_dev *pdev)
> +static void rr_remove_one (struct pci_dev *pdev)
>   {
>   	struct net_device *dev = pci_get_drvdata(pdev);
>   	struct rr_private *rr = netdev_priv(dev);
> diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c
> index 1198c6b..a4a62e1 100644
> --- a/drivers/net/ieee802154/at86rf230.c
> +++ b/drivers/net/ieee802154/at86rf230.c
> @@ -920,7 +920,7 @@ err_fill:
>   	return rc;
>   }
>
> -static int __devexit at86rf230_remove(struct spi_device *spi)
> +static int at86rf230_remove(struct spi_device *spi)
>   {
>   	struct at86rf230_local *lp = spi_get_drvdata(spi);
>
> diff --git a/drivers/net/ieee802154/fakehard.c b/drivers/net/ieee802154/fakehard.c
> index fd0438c..1e9cb0b 100644
> --- a/drivers/net/ieee802154/fakehard.c
> +++ b/drivers/net/ieee802154/fakehard.c
> @@ -412,7 +412,7 @@ out:
>   	return err;
>   }
>
> -static int __devexit ieee802154fake_remove(struct platform_device *pdev)
> +static int ieee802154fake_remove(struct platform_device *pdev)
>   {
>   	struct net_device *dev = platform_get_drvdata(pdev);
>   	unregister_netdev(dev);
> diff --git a/drivers/net/ieee802154/fakelb.c b/drivers/net/ieee802154/fakelb.c
> index e4b0e38..b8d2217 100644
> --- a/drivers/net/ieee802154/fakelb.c
> +++ b/drivers/net/ieee802154/fakelb.c
> @@ -253,7 +253,7 @@ err_alloc:
>   	return err;
>   }
>
> -static int __devexit fakelb_remove(struct platform_device *pdev)
> +static int fakelb_remove(struct platform_device *pdev)
>   {
>   	struct fakelb_priv *priv = platform_get_drvdata(pdev);
>   	struct fakelb_dev_priv *dp, *temp;
> diff --git a/drivers/net/ieee802154/mrf24j40.c b/drivers/net/ieee802154/mrf24j40.c
> index ef41051..3f2c7aa 100644
> --- a/drivers/net/ieee802154/mrf24j40.c
> +++ b/drivers/net/ieee802154/mrf24j40.c
> @@ -711,7 +711,7 @@ err_devrec:
>   	return ret;
>   }
>
> -static int __devexit mrf24j40_remove(struct spi_device *spi)
> +static int mrf24j40_remove(struct spi_device *spi)
>   {
>   	struct mrf24j40 *devrec = dev_get_drvdata(&spi->dev);
>
> diff --git a/drivers/net/irda/au1k_ir.c b/drivers/net/irda/au1k_ir.c
> index 7843f50..b5151e4 100644
> --- a/drivers/net/irda/au1k_ir.c
> +++ b/drivers/net/irda/au1k_ir.c
> @@ -921,7 +921,7 @@ out:
>   	return err;
>   }
>
> -static int __devexit au1k_irda_remove(struct platform_device *pdev)
> +static int au1k_irda_remove(struct platform_device *pdev)
>   {
>   	struct net_device *dev = platform_get_drvdata(pdev);
>   	struct au1k_private *aup = netdev_priv(dev);
> diff --git a/drivers/net/irda/bfin_sir.c b/drivers/net/irda/bfin_sir.c
> index 98c903f..fed4a05 100644
> --- a/drivers/net/irda/bfin_sir.c
> +++ b/drivers/net/irda/bfin_sir.c
> @@ -775,7 +775,7 @@ err_mem_0:
>   	return err;
>   }
>
> -static int __devexit bfin_sir_remove(struct platform_device *pdev)
> +static int bfin_sir_remove(struct platform_device *pdev)
>   {
>   	struct bfin_sir_port *sir_port;
>   	struct net_device *dev = NULL;
> diff --git a/drivers/net/irda/sh_irda.c b/drivers/net/irda/sh_irda.c
> index 2d3f3e6..9448587 100644
> --- a/drivers/net/irda/sh_irda.c
> +++ b/drivers/net/irda/sh_irda.c
> @@ -825,7 +825,7 @@ exit:
>   	return err;
>   }
>
> -static int __devexit sh_irda_remove(struct platform_device *pdev)
> +static int sh_irda_remove(struct platform_device *pdev)
>   {
>   	struct net_device *ndev = platform_get_drvdata(pdev);
>   	struct sh_irda_self *self = netdev_priv(ndev);
> diff --git a/drivers/net/irda/sh_sir.c b/drivers/net/irda/sh_sir.c
> index 150b56c..24aefcd 100644
> --- a/drivers/net/irda/sh_sir.c
> +++ b/drivers/net/irda/sh_sir.c
> @@ -783,7 +783,7 @@ exit:
>   	return err;
>   }
>
> -static int __devexit sh_sir_remove(struct platform_device *pdev)
> +static int sh_sir_remove(struct platform_device *pdev)
>   {
>   	struct net_device *ndev = platform_get_drvdata(pdev);
>   	struct sh_sir_self *self = netdev_priv(ndev);
> diff --git a/drivers/net/irda/via-ircc.c b/drivers/net/irda/via-ircc.c
> index d678f52..5488247 100644
> --- a/drivers/net/irda/via-ircc.c
> +++ b/drivers/net/irda/via-ircc.c
> @@ -103,7 +103,7 @@ static void hwreset(struct via_ircc_cb *self);
>   static int via_ircc_dma_xmit(struct via_ircc_cb *self, u16 iobase);
>   static int upload_rxdata(struct via_ircc_cb *self, int iobase);
>   static int via_init_one (struct pci_dev *pcidev, const struct pci_device_id *id);
> -static void __devexit via_remove_one (struct pci_dev *pdev);
> +static void via_remove_one (struct pci_dev *pdev);
>
>   /* FIXME : Should use udelay() instead, even if we are x86 only - Jean II */
>   static void iodelay(int udelay)
> @@ -424,7 +424,7 @@ static int via_ircc_open(struct pci_dev *pdev, chipio_t * info,
>    *    Close driver instance
>    *
>    */
> -static void __devexit via_remove_one(struct pci_dev *pdev)
> +static void via_remove_one(struct pci_dev *pdev)
>   {
>   	struct via_ircc_cb *self = pci_get_drvdata(pdev);
>   	int iobase;
> diff --git a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c
> index e255b65..2f99f88 100644
> --- a/drivers/net/irda/vlsi_ir.c
> +++ b/drivers/net/irda/vlsi_ir.c
> @@ -1699,7 +1699,7 @@ out:
>   	return -ENODEV;
>   }
>
> -static void __devexit vlsi_irda_remove(struct pci_dev *pdev)
> +static void vlsi_irda_remove(struct pci_dev *pdev)
>   {
>   	struct net_device *ndev = pci_get_drvdata(pdev);
>   	vlsi_irda_dev_t *idev;
> diff --git a/drivers/net/phy/mdio-gpio.c b/drivers/net/phy/mdio-gpio.c
> index bf30b1d..6b2fdb8 100644
> --- a/drivers/net/phy/mdio-gpio.c
> +++ b/drivers/net/phy/mdio-gpio.c
> @@ -173,7 +173,7 @@ static void mdio_gpio_bus_deinit(struct device *dev)
>   	kfree(bitbang);
>   }
>
> -static void __devexit mdio_gpio_bus_destroy(struct device *dev)
> +static void mdio_gpio_bus_destroy(struct device *dev)
>   {
>   	struct mii_bus *bus = dev_get_drvdata(dev);
>
> @@ -210,7 +210,7 @@ static int mdio_gpio_probe(struct platform_device *pdev)
>   	return ret;
>   }
>
> -static int __devexit mdio_gpio_remove(struct platform_device *pdev)
> +static int mdio_gpio_remove(struct platform_device *pdev)
>   {
>   	mdio_gpio_bus_destroy(&pdev->dev);
>
> diff --git a/drivers/net/phy/mdio-mux-gpio.c b/drivers/net/phy/mdio-mux-gpio.c
> index 23ee064..0c9accb 100644
> --- a/drivers/net/phy/mdio-mux-gpio.c
> +++ b/drivers/net/phy/mdio-mux-gpio.c
> @@ -104,7 +104,7 @@ err:
>   	return r;
>   }
>
> -static int __devexit mdio_mux_gpio_remove(struct platform_device *pdev)
> +static int mdio_mux_gpio_remove(struct platform_device *pdev)
>   {
>   	struct mdio_mux_gpio_state *s = pdev->dev.platform_data;
>   	mdio_mux_uninit(s->mux_handle);
> diff --git a/drivers/net/phy/mdio-mux-mmioreg.c b/drivers/net/phy/mdio-mux-mmioreg.c
> index a38951f..9733bd2 100644
> --- a/drivers/net/phy/mdio-mux-mmioreg.c
> +++ b/drivers/net/phy/mdio-mux-mmioreg.c
> @@ -137,7 +137,7 @@ static int mdio_mux_mmioreg_probe(struct platform_device *pdev)
>   	return 0;
>   }
>
> -static int __devexit mdio_mux_mmioreg_remove(struct platform_device *pdev)
> +static int mdio_mux_mmioreg_remove(struct platform_device *pdev)
>   {
>   	struct mdio_mux_mmioreg_state *s = dev_get_platdata(&pdev->dev);
>
> diff --git a/drivers/net/phy/mdio-octeon.c b/drivers/net/phy/mdio-octeon.c
> index 7a07985..09297fe 100644
> --- a/drivers/net/phy/mdio-octeon.c
> +++ b/drivers/net/phy/mdio-octeon.c
> @@ -159,7 +159,7 @@ fail:
>   	return err;
>   }
>
> -static int __devexit octeon_mdiobus_remove(struct platform_device *pdev)
> +static int octeon_mdiobus_remove(struct platform_device *pdev)
>   {
>   	struct octeon_mdiobus *bus;
>   	union cvmx_smix_en smi_en;
> diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c
> index 1321c99..41eb8ff 100644
> --- a/drivers/net/phy/spi_ks8995.c
> +++ b/drivers/net/phy/spi_ks8995.c
> @@ -332,7 +332,7 @@ err_drvdata:
>   	return err;
>   }
>
> -static int __devexit ks8995_remove(struct spi_device *spi)
> +static int ks8995_remove(struct spi_device *spi)
>   {
>   	struct ks8995_data      *ks8995;
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index b0c1630..c5f0ed2 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -1195,7 +1195,7 @@ static void remove_vq_common(struct virtnet_info *vi)
>   		__free_pages(get_a_page(vi, GFP_KERNEL), 0);
>   }
>
> -static void __devexit virtnet_remove(struct virtio_device *vdev)
> +static void virtnet_remove(struct virtio_device *vdev)
>   {
>   	struct virtnet_info *vi = vdev->priv;
>
> diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
> index ac322e5..71b762f 100644
> --- a/drivers/net/vmxnet3/vmxnet3_drv.c
> +++ b/drivers/net/vmxnet3/vmxnet3_drv.c
> @@ -3096,7 +3096,7 @@ err_alloc_shared:
>   }
>
>
> -static void __devexit
> +static void
>   vmxnet3_remove_device(struct pci_dev *pdev)
>   {
>   	struct net_device *netdev = pci_get_drvdata(pdev);
> diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c
> index 863df17..d502230 100644
> --- a/drivers/net/wan/dscc4.c
> +++ b/drivers/net/wan/dscc4.c
> @@ -1968,7 +1968,7 @@ err_out:
>   	return -ENOMEM;
>   }
>
> -static void __devexit dscc4_remove_one(struct pci_dev *pdev)
> +static void dscc4_remove_one(struct pci_dev *pdev)
>   {
>   	struct dscc4_pci_priv *ppriv;
>   	struct dscc4_dev_priv *root;
> diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c
> index dbbe06e..d7adba4 100644
> --- a/drivers/net/wan/farsync.c
> +++ b/drivers/net/wan/farsync.c
> @@ -2615,7 +2615,7 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)
>   /*
>    *      Cleanup and close down a card
>    */
> -static void __devexit
> +static void
>   fst_remove_one(struct pci_dev *pdev)
>   {
>   	struct fst_card_info *card;
> diff --git a/drivers/net/wan/ixp4xx_hss.c b/drivers/net/wan/ixp4xx_hss.c
> index beecbe8..b056691 100644
> --- a/drivers/net/wan/ixp4xx_hss.c
> +++ b/drivers/net/wan/ixp4xx_hss.c
> @@ -1375,7 +1375,7 @@ err_free:
>   	return err;
>   }
>
> -static int __devexit hss_remove_one(struct platform_device *pdev)
> +static int hss_remove_one(struct platform_device *pdev)
>   {
>   	struct port *port = platform_get_drvdata(pdev);
>
> diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c
> index 41a401a..0e443fd 100644
> --- a/drivers/net/wan/lmc/lmc_main.c
> +++ b/drivers/net/wan/lmc/lmc_main.c
> @@ -986,7 +986,7 @@ err_req_io:
>   /*
>    * Called from pci when removing module.
>    */
> -static void __devexit lmc_remove_one(struct pci_dev *pdev)
> +static void lmc_remove_one(struct pci_dev *pdev)
>   {
>   	struct net_device *dev = pci_get_drvdata(pdev);
>
> diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c
> index bd89a29..3d339e0 100644
> --- a/drivers/net/wireless/adm8211.c
> +++ b/drivers/net/wireless/adm8211.c
> @@ -1935,7 +1935,7 @@ static int adm8211_probe(struct pci_dev *pdev,
>   }
>
>
> -static void __devexit adm8211_remove(struct pci_dev *pdev)
> +static void adm8211_remove(struct pci_dev *pdev)
>   {
>   	struct ieee80211_hw *dev = pci_get_drvdata(pdev);
>   	struct adm8211_priv *priv;
> diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
> index b010f41..5329541 100644
> --- a/drivers/net/wireless/airo.c
> +++ b/drivers/net/wireless/airo.c
> @@ -5606,7 +5606,7 @@ static int airo_pci_probe(struct pci_dev *pdev,
>   	return 0;
>   }
>
> -static void __devexit airo_pci_remove(struct pci_dev *pdev)
> +static void airo_pci_remove(struct pci_dev *pdev)
>   {
>   	struct net_device *dev = pci_get_drvdata(pdev);
>
> diff --git a/drivers/net/wireless/ath/ath5k/pci.c b/drivers/net/wireless/ath/ath5k/pci.c
> index 1a78ba3..859db7c 100644
> --- a/drivers/net/wireless/ath/ath5k/pci.c
> +++ b/drivers/net/wireless/ath/ath5k/pci.c
> @@ -285,7 +285,7 @@ err:
>   	return ret;
>   }
>
> -static void __devexit
> +static void
>   ath5k_pci_remove(struct pci_dev *pdev)
>   {
>   	struct ieee80211_hw *hw = pci_get_drvdata(pdev);
> diff --git a/drivers/net/wireless/atmel_pci.c b/drivers/net/wireless/atmel_pci.c
> index 1c12fec..c1b159e 100644
> --- a/drivers/net/wireless/atmel_pci.c
> +++ b/drivers/net/wireless/atmel_pci.c
> @@ -69,7 +69,7 @@ static int atmel_pci_probe(struct pci_dev *pdev,
>   	return 0;
>   }
>
> -static void __devexit atmel_pci_remove(struct pci_dev *pdev)
> +static void atmel_pci_remove(struct pci_dev *pdev)
>   {
>   	stop_atmel_card(pci_get_drvdata(pdev));
>   }
> diff --git a/drivers/net/wireless/b43/pcmcia.c b/drivers/net/wireless/b43/pcmcia.c
> index 3506cca..f2ea2ce 100644
> --- a/drivers/net/wireless/b43/pcmcia.c
> +++ b/drivers/net/wireless/b43/pcmcia.c
> @@ -110,7 +110,7 @@ out_error:
>   	return err;
>   }
>
> -static void __devexit b43_pcmcia_remove(struct pcmcia_device *dev)
> +static void b43_pcmcia_remove(struct pcmcia_device *dev)
>   {
>   	struct ssb_bus *ssb = dev->priv;
>
> diff --git a/drivers/net/wireless/b43/sdio.c b/drivers/net/wireless/b43/sdio.c
> index d2b1f98..59a5218 100644
> --- a/drivers/net/wireless/b43/sdio.c
> +++ b/drivers/net/wireless/b43/sdio.c
> @@ -171,7 +171,7 @@ out:
>   	return error;
>   }
>
> -static void __devexit b43_sdio_remove(struct sdio_func *func)
> +static void b43_sdio_remove(struct sdio_func *func)
>   {
>   	struct b43_sdio *sdio = sdio_get_drvdata(func);
>
> diff --git a/drivers/net/wireless/ipw2x00/ipw2100.c b/drivers/net/wireless/ipw2x00/ipw2100.c
> index b96c615..7588484 100644
> --- a/drivers/net/wireless/ipw2x00/ipw2100.c
> +++ b/drivers/net/wireless/ipw2x00/ipw2100.c
> @@ -6413,7 +6413,7 @@ out:
>   	goto out;
>   }
>
> -static void __devexit ipw2100_pci_remove_one(struct pci_dev *pci_dev)
> +static void ipw2100_pci_remove_one(struct pci_dev *pci_dev)
>   {
>   	struct ipw2100_priv *priv = pci_get_drvdata(pci_dev);
>   	struct net_device *dev = priv->net_dev;
> diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
> index 3f099a6..941c6b5 100644
> --- a/drivers/net/wireless/ipw2x00/ipw2200.c
> +++ b/drivers/net/wireless/ipw2x00/ipw2200.c
> @@ -11895,7 +11895,7 @@ static int ipw_pci_probe(struct pci_dev *pdev,
>   	return err;
>   }
>
> -static void __devexit ipw_pci_remove(struct pci_dev *pdev)
> +static void ipw_pci_remove(struct pci_dev *pdev)
>   {
>   	struct ipw_priv *priv = pci_get_drvdata(pdev);
>   	struct list_head *p, *q;
> diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
> index 88fdd39..d604b40 100644
> --- a/drivers/net/wireless/iwlegacy/3945-mac.c
> +++ b/drivers/net/wireless/iwlegacy/3945-mac.c
> @@ -3794,7 +3794,7 @@ out:
>   	return err;
>   }
>
> -static void __devexit
> +static void
>   il3945_pci_remove(struct pci_dev *pdev)
>   {
>   	struct il_priv *il = pci_get_drvdata(pdev);
> diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
> index 14e0a94..569e1ae5 100644
> --- a/drivers/net/wireless/iwlegacy/4965-mac.c
> +++ b/drivers/net/wireless/iwlegacy/4965-mac.c
> @@ -6664,7 +6664,7 @@ out:
>   	return err;
>   }
>
> -static void __devexit
> +static void
>   il4965_pci_remove(struct pci_dev *pdev)
>   {
>   	struct il_priv *il = pci_get_drvdata(pdev);
> diff --git a/drivers/net/wireless/iwlwifi/pcie/drv.c b/drivers/net/wireless/iwlwifi/pcie/drv.c
> index 7cb27af..1f21d60 100644
> --- a/drivers/net/wireless/iwlwifi/pcie/drv.c
> +++ b/drivers/net/wireless/iwlwifi/pcie/drv.c
> @@ -294,7 +294,7 @@ out_free_trans:
>   	return -EFAULT;
>   }
>
> -static void __devexit iwl_pci_remove(struct pci_dev *pdev)
> +static void iwl_pci_remove(struct pci_dev *pdev)
>   {
>   	struct iwl_trans *trans = pci_get_drvdata(pdev);
>   	struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
> diff --git a/drivers/net/wireless/libertas/if_spi.c b/drivers/net/wireless/libertas/if_spi.c
> index abc32e3..4bb6574 100644
> --- a/drivers/net/wireless/libertas/if_spi.c
> +++ b/drivers/net/wireless/libertas/if_spi.c
> @@ -1226,7 +1226,7 @@ out:
>   	return err;
>   }
>
> -static int __devexit libertas_spi_remove(struct spi_device *spi)
> +static int libertas_spi_remove(struct spi_device *spi)
>   {
>   	struct if_spi_card *card = spi_get_drvdata(spi);
>   	struct lbs_private *priv = card->priv;
> diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
> index b9f71fd..19cad01 100644
> --- a/drivers/net/wireless/mwl8k.c
> +++ b/drivers/net/wireless/mwl8k.c
> @@ -5872,12 +5872,12 @@ err_disable_device:
>   	return rc;
>   }
>
> -static void __devexit mwl8k_shutdown(struct pci_dev *pdev)
> +static void mwl8k_shutdown(struct pci_dev *pdev)
>   {
>   	printk(KERN_ERR "===>%s(%u)\n", __func__, __LINE__);
>   }
>
> -static void __devexit mwl8k_remove(struct pci_dev *pdev)
> +static void mwl8k_remove(struct pci_dev *pdev)
>   {
>   	struct ieee80211_hw *hw = pci_get_drvdata(pdev);
>   	struct mwl8k_priv *priv;
> diff --git a/drivers/net/wireless/orinoco/orinoco_nortel.c b/drivers/net/wireless/orinoco/orinoco_nortel.c
> index f286540..d73fdf6 100644
> --- a/drivers/net/wireless/orinoco/orinoco_nortel.c
> +++ b/drivers/net/wireless/orinoco/orinoco_nortel.c
> @@ -255,7 +255,7 @@ static int orinoco_nortel_init_one(struct pci_dev *pdev,
>   	return err;
>   }
>
> -static void __devexit orinoco_nortel_remove_one(struct pci_dev *pdev)
> +static void orinoco_nortel_remove_one(struct pci_dev *pdev)
>   {
>   	struct orinoco_private *priv = pci_get_drvdata(pdev);
>   	struct orinoco_pci_card *card = priv->card;
> diff --git a/drivers/net/wireless/orinoco/orinoco_pci.c b/drivers/net/wireless/orinoco/orinoco_pci.c
> index bf6d436..677bf14 100644
> --- a/drivers/net/wireless/orinoco/orinoco_pci.c
> +++ b/drivers/net/wireless/orinoco/orinoco_pci.c
> @@ -199,7 +199,7 @@ static int orinoco_pci_init_one(struct pci_dev *pdev,
>   	return err;
>   }
>
> -static void __devexit orinoco_pci_remove_one(struct pci_dev *pdev)
> +static void orinoco_pci_remove_one(struct pci_dev *pdev)
>   {
>   	struct orinoco_private *priv = pci_get_drvdata(pdev);
>
> diff --git a/drivers/net/wireless/orinoco/orinoco_plx.c b/drivers/net/wireless/orinoco/orinoco_plx.c
> index 63a614f..2559dbd 100644
> --- a/drivers/net/wireless/orinoco/orinoco_plx.c
> +++ b/drivers/net/wireless/orinoco/orinoco_plx.c
> @@ -294,7 +294,7 @@ static int orinoco_plx_init_one(struct pci_dev *pdev,
>   	return err;
>   }
>
> -static void __devexit orinoco_plx_remove_one(struct pci_dev *pdev)
> +static void orinoco_plx_remove_one(struct pci_dev *pdev)
>   {
>   	struct orinoco_private *priv = pci_get_drvdata(pdev);
>   	struct orinoco_pci_card *card = priv->card;
> diff --git a/drivers/net/wireless/orinoco/orinoco_tmd.c b/drivers/net/wireless/orinoco/orinoco_tmd.c
> index f67f43e..42afeee 100644
> --- a/drivers/net/wireless/orinoco/orinoco_tmd.c
> +++ b/drivers/net/wireless/orinoco/orinoco_tmd.c
> @@ -188,7 +188,7 @@ static int orinoco_tmd_init_one(struct pci_dev *pdev,
>   	return err;
>   }
>
> -static void __devexit orinoco_tmd_remove_one(struct pci_dev *pdev)
> +static void orinoco_tmd_remove_one(struct pci_dev *pdev)
>   {
>   	struct orinoco_private *priv = pci_get_drvdata(pdev);
>   	struct orinoco_pci_card *card = priv->card;
> diff --git a/drivers/net/wireless/p54/p54pci.c b/drivers/net/wireless/p54/p54pci.c
> index e5b29e9..04eb0ed 100644
> --- a/drivers/net/wireless/p54/p54pci.c
> +++ b/drivers/net/wireless/p54/p54pci.c
> @@ -639,7 +639,7 @@ static int p54p_probe(struct pci_dev *pdev,
>   	return err;
>   }
>
> -static void __devexit p54p_remove(struct pci_dev *pdev)
> +static void p54p_remove(struct pci_dev *pdev)
>   {
>   	struct ieee80211_hw *dev = pci_get_drvdata(pdev);
>   	struct p54p_priv *priv;
> diff --git a/drivers/net/wireless/p54/p54spi.c b/drivers/net/wireless/p54/p54spi.c
> index d75ab3e..4fd49a0 100644
> --- a/drivers/net/wireless/p54/p54spi.c
> +++ b/drivers/net/wireless/p54/p54spi.c
> @@ -683,7 +683,7 @@ err_free:
>   	return ret;
>   }
>
> -static int __devexit p54spi_remove(struct spi_device *spi)
> +static int p54spi_remove(struct spi_device *spi)
>   {
>   	struct p54s_priv *priv = dev_get_drvdata(&spi->dev);
>
> diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
> index 000f7ba..e71c702 100644
> --- a/drivers/net/wireless/p54/p54usb.c
> +++ b/drivers/net/wireless/p54/p54usb.c
> @@ -1057,7 +1057,7 @@ static int p54u_probe(struct usb_interface *intf,
>   	return err;
>   }
>
> -static void __devexit p54u_disconnect(struct usb_interface *intf)
> +static void p54u_disconnect(struct usb_interface *intf)
>   {
>   	struct ieee80211_hw *dev = usb_get_intfdata(intf);
>   	struct p54u_priv *priv;
> diff --git a/drivers/net/wireless/rtl818x/rtl8180/dev.c b/drivers/net/wireless/rtl818x/rtl8180/dev.c
> index 6a5c0b8..4af3f91 100644
> --- a/drivers/net/wireless/rtl818x/rtl8180/dev.c
> +++ b/drivers/net/wireless/rtl818x/rtl8180/dev.c
> @@ -1131,7 +1131,7 @@ static int rtl8180_probe(struct pci_dev *pdev,
>   	return err;
>   }
>
> -static void __devexit rtl8180_remove(struct pci_dev *pdev)
> +static void rtl8180_remove(struct pci_dev *pdev)
>   {
>   	struct ieee80211_hw *dev = pci_get_drvdata(pdev);
>   	struct rtl8180_priv *priv;
> diff --git a/drivers/net/wireless/rtl818x/rtl8187/dev.c b/drivers/net/wireless/rtl818x/rtl8187/dev.c
> index f879bc3..be36935 100644
> --- a/drivers/net/wireless/rtl818x/rtl8187/dev.c
> +++ b/drivers/net/wireless/rtl818x/rtl8187/dev.c
> @@ -1639,7 +1639,7 @@ static int rtl8187_probe(struct usb_interface *intf,
>   	return err;
>   }
>
> -static void __devexit rtl8187_disconnect(struct usb_interface *intf)
> +static void rtl8187_disconnect(struct usb_interface *intf)
>   {
>   	struct ieee80211_hw *dev = usb_get_intfdata(intf);
>   	struct rtl8187_priv *priv;
> diff --git a/drivers/net/wireless/ti/wl1251/sdio.c b/drivers/net/wireless/ti/wl1251/sdio.c
> index e3f287f..e57ee48 100644
> --- a/drivers/net/wireless/ti/wl1251/sdio.c
> +++ b/drivers/net/wireless/ti/wl1251/sdio.c
> @@ -305,7 +305,7 @@ out_free_hw:
>   	return ret;
>   }
>
> -static void __devexit wl1251_sdio_remove(struct sdio_func *func)
> +static void wl1251_sdio_remove(struct sdio_func *func)
>   {
>   	struct wl1251 *wl = sdio_get_drvdata(func);
>   	struct wl1251_sdio *wl_sdio = wl->if_priv;
> diff --git a/drivers/net/wireless/ti/wl1251/spi.c b/drivers/net/wireless/ti/wl1251/spi.c
> index 640a3d5..3b266d3 100644
> --- a/drivers/net/wireless/ti/wl1251/spi.c
> +++ b/drivers/net/wireless/ti/wl1251/spi.c
> @@ -309,7 +309,7 @@ static int wl1251_spi_probe(struct spi_device *spi)
>   	return ret;
>   }
>
> -static int __devexit wl1251_spi_remove(struct spi_device *spi)
> +static int wl1251_spi_remove(struct spi_device *spi)
>   {
>   	struct wl1251 *wl = dev_get_drvdata(&spi->dev);
>
> diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
> index 2dd4ada..dd38f61 100644
> --- a/drivers/net/wireless/ti/wlcore/main.c
> +++ b/drivers/net/wireless/ti/wlcore/main.c
> @@ -5682,7 +5682,7 @@ int wlcore_probe(struct wl1271 *wl, struct platform_device *pdev)
>   }
>   EXPORT_SYMBOL_GPL(wlcore_probe);
>
> -int __devexit wlcore_remove(struct platform_device *pdev)
> +int wlcore_remove(struct platform_device *pdev)
>   {
>   	struct wl1271 *wl = platform_get_drvdata(pdev);
>
> diff --git a/drivers/net/wireless/ti/wlcore/sdio.c b/drivers/net/wireless/ti/wlcore/sdio.c
> index 7bf612c..646f703 100644
> --- a/drivers/net/wireless/ti/wlcore/sdio.c
> +++ b/drivers/net/wireless/ti/wlcore/sdio.c
> @@ -319,7 +319,7 @@ out:
>   	return ret;
>   }
>
> -static void __devexit wl1271_remove(struct sdio_func *func)
> +static void wl1271_remove(struct sdio_func *func)
>   {
>   	struct wl12xx_sdio_glue *glue = sdio_get_drvdata(func);
>
> diff --git a/drivers/net/wireless/ti/wlcore/spi.c b/drivers/net/wireless/ti/wlcore/spi.c
> index ee39484..f06f477 100644
> --- a/drivers/net/wireless/ti/wlcore/spi.c
> +++ b/drivers/net/wireless/ti/wlcore/spi.c
> @@ -403,7 +403,7 @@ out:
>   	return ret;
>   }
>
> -static int __devexit wl1271_remove(struct spi_device *spi)
> +static int wl1271_remove(struct spi_device *spi)
>   {
>   	struct wl12xx_spi_glue *glue = spi_get_drvdata(spi);
>
> diff --git a/drivers/net/wireless/ti/wlcore/wlcore.h b/drivers/net/wireless/ti/wlcore/wlcore.h
> index adc6152..c388493 100644
> --- a/drivers/net/wireless/ti/wlcore/wlcore.h
> +++ b/drivers/net/wireless/ti/wlcore/wlcore.h
> @@ -415,7 +415,7 @@ struct wl1271 {
>   };
>
>   int wlcore_probe(struct wl1271 *wl, struct platform_device *pdev);
> -int __devexit wlcore_remove(struct platform_device *pdev);
> +int wlcore_remove(struct platform_device *pdev);
>   struct ieee80211_hw *wlcore_alloc_hw(size_t priv_size, u32 aggr_buf_size);
>   int wlcore_free_hw(struct wl1271 *wl);
>   int wlcore_set_key(struct wl1271 *wl, enum set_key_cmd cmd,
> diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
> index 6f695fc..b31198c 100644
> --- a/drivers/net/xen-netfront.c
> +++ b/drivers/net/xen-netfront.c
> @@ -1911,7 +1911,7 @@ static const struct xenbus_device_id netfront_ids[] = {
>   };
>
>
> -static int __devexit xennet_remove(struct xenbus_device *dev)
> +static int xennet_remove(struct xenbus_device *dev)
>   {
>   	struct netfront_info *info = dev_get_drvdata(&dev->dev);
>
>

^ permalink raw reply

* Re: [PATCH 333/493] net: remove use of __devinitdata
From: Larry Finger @ 2012-11-19 20:02 UTC (permalink / raw)
  To: Bill Pemberton
  Cc: gregkh, Wolfgang Grandegger, Marc Kleine-Budde, Maciej W. Rozycki,
	Jes Sorensen, John W. Linville, Chaoming Li, linux-can, netdev,
	linux-hippi, linux-wireless
In-Reply-To: <1353349642-3677-333-git-send-email-wfp5p@virginia.edu>

On 11/19/2012 12:24 PM, Bill Pemberton wrote:
> CONFIG_HOTPLUG is going away as an option so __devinitdata is no
> longer needed.
>
> Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
> Cc: Wolfgang Grandegger <wg@grandegger.com>
> Cc: Marc Kleine-Budde <mkl@pengutronix.de>
> Cc: "Maciej W. Rozycki" <macro@linux-mips.org>
> Cc: Jes Sorensen <jes@trained-monkey.org>
> Cc: "John W. Linville" <linville@tuxdriver.com>
> Cc: Larry Finger <Larry.Finger@lwfinger.net>
> Cc: Chaoming Li <chaoming_li@realsil.com.cn>
> Cc: linux-can@vger.kernel.org
> Cc: netdev@vger.kernel.org
> Cc: linux-hippi@sunsite.dk
> Cc: linux-wireless@vger.kernel.org
> ---
>   drivers/net/can/cc770/cc770_isa.c             | 12 ++++++------
>   drivers/net/can/cc770/cc770_platform.c        |  2 +-
>   drivers/net/can/mscan/mpc5xxx_can.c           |  4 ++--
>   drivers/net/can/sja1000/plx_pci.c             | 16 ++++++++--------
>   drivers/net/can/sja1000/sja1000_isa.c         | 10 +++++-----
>   drivers/net/can/sja1000/sja1000_of_platform.c |  2 +-
>   drivers/net/fddi/defxx.c                      |  2 +-
>   drivers/net/hippi/rrunner.c                   |  2 +-
>   drivers/net/wan/farsync.c                     |  2 +-
>   drivers/net/wireless/mwl8k.c                  |  2 +-
>   drivers/net/wireless/rtlwifi/rtl8192de/sw.c   |  2 +-
>   drivers/net/wireless/rtlwifi/rtl8192se/sw.c   |  2 +-
>   drivers/net/wireless/rtlwifi/rtl8723ae/sw.c   |  2 +-
>   13 files changed, 30 insertions(+), 30 deletions(-)

ACKed-by: Larry Finger <Larry.Finger.net> for the rtl8192de, rtl8192se, and 
rtl8192ae parts.

>
> diff --git a/drivers/net/can/cc770/cc770_isa.c b/drivers/net/can/cc770/cc770_isa.c
> index 9ca0461..bed9d19 100644
> --- a/drivers/net/can/cc770/cc770_isa.c
> +++ b/drivers/net/can/cc770/cc770_isa.c
> @@ -75,12 +75,12 @@ MODULE_LICENSE("GPL v2");
>
>   static unsigned long port[MAXDEV];
>   static unsigned long mem[MAXDEV];
> -static int __devinitdata irq[MAXDEV];
> -static int __devinitdata clk[MAXDEV];
> -static u8 __devinitdata cir[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff};
> -static u8 __devinitdata cor[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff};
> -static u8 __devinitdata bcr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff};
> -static int __devinitdata indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1};
> +static int irq[MAXDEV];
> +static int clk[MAXDEV];
> +static u8 cir[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff};
> +static u8 cor[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff};
> +static u8 bcr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff};
> +static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1};
>
>   module_param_array(port, ulong, NULL, S_IRUGO);
>   MODULE_PARM_DESC(port, "I/O port number");
> diff --git a/drivers/net/can/cc770/cc770_platform.c b/drivers/net/can/cc770/cc770_platform.c
> index fef046f..caf4d70 100644
> --- a/drivers/net/can/cc770/cc770_platform.c
> +++ b/drivers/net/can/cc770/cc770_platform.c
> @@ -253,7 +253,7 @@ static int __devexit cc770_platform_remove(struct platform_device *pdev)
>   	return 0;
>   }
>
> -static struct of_device_id __devinitdata cc770_platform_table[] = {
> +static struct of_device_id cc770_platform_table[] = {
>   	{.compatible = "bosch,cc770"}, /* CC770 from Bosch */
>   	{.compatible = "intc,82527"},  /* AN82527 from Intel CP */
>   	{},
> diff --git a/drivers/net/can/mscan/mpc5xxx_can.c b/drivers/net/can/mscan/mpc5xxx_can.c
> index 752bfed..254c168 100644
> --- a/drivers/net/can/mscan/mpc5xxx_can.c
> +++ b/drivers/net/can/mscan/mpc5xxx_can.c
> @@ -43,7 +43,7 @@ struct mpc5xxx_can_data {
>   };
>
>   #ifdef CONFIG_PPC_MPC52xx
> -static struct of_device_id __devinitdata mpc52xx_cdm_ids[] = {
> +static struct of_device_id mpc52xx_cdm_ids[] = {
>   	{ .compatible = "fsl,mpc5200-cdm", },
>   	{}
>   };
> @@ -124,7 +124,7 @@ struct mpc512x_clockctl {
>   	u32 mccr[4];		/* MSCAN Clk Ctrl Reg 1-3 */
>   };
>
> -static struct of_device_id __devinitdata mpc512x_clock_ids[] = {
> +static struct of_device_id mpc512x_clock_ids[] = {
>   	{ .compatible = "fsl,mpc5121-clock", },
>   	{}
>   };
> diff --git a/drivers/net/can/sja1000/plx_pci.c b/drivers/net/can/sja1000/plx_pci.c
> index 619b96c..f1c7a50 100644
> --- a/drivers/net/can/sja1000/plx_pci.c
> +++ b/drivers/net/can/sja1000/plx_pci.c
> @@ -158,7 +158,7 @@ struct plx_pci_card_info {
>   	void (*reset_func)(struct pci_dev *pdev);
>   };
>
> -static struct plx_pci_card_info plx_pci_card_info_adlink __devinitdata = {
> +static struct plx_pci_card_info plx_pci_card_info_adlink = {
>   	"Adlink PCI-7841/cPCI-7841", 2,
>   	PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
>   	{1, 0x00, 0x00}, { {2, 0x00, 0x80}, {2, 0x80, 0x80} },
> @@ -166,7 +166,7 @@ static struct plx_pci_card_info plx_pci_card_info_adlink __devinitdata = {
>   	/* based on PLX9052 */
>   };
>
> -static struct plx_pci_card_info plx_pci_card_info_adlink_se __devinitdata = {
> +static struct plx_pci_card_info plx_pci_card_info_adlink_se = {
>   	"Adlink PCI-7841/cPCI-7841 SE", 2,
>   	PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
>   	{0, 0x00, 0x00}, { {2, 0x00, 0x80}, {2, 0x80, 0x80} },
> @@ -174,7 +174,7 @@ static struct plx_pci_card_info plx_pci_card_info_adlink_se __devinitdata = {
>   	/* based on PLX9052 */
>   };
>
> -static struct plx_pci_card_info plx_pci_card_info_esd200 __devinitdata = {
> +static struct plx_pci_card_info plx_pci_card_info_esd200 = {
>   	"esd CAN-PCI/CPCI/PCI104/200", 2,
>   	PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
>   	{0, 0x00, 0x00}, { {2, 0x00, 0x80}, {2, 0x100, 0x80} },
> @@ -182,7 +182,7 @@ static struct plx_pci_card_info plx_pci_card_info_esd200 __devinitdata = {
>   	/* based on PLX9030/9050 */
>   };
>
> -static struct plx_pci_card_info plx_pci_card_info_esd266 __devinitdata = {
> +static struct plx_pci_card_info plx_pci_card_info_esd266 = {
>   	"esd CAN-PCI/PMC/266", 2,
>   	PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
>   	{0, 0x00, 0x00}, { {2, 0x00, 0x80}, {2, 0x100, 0x80} },
> @@ -190,7 +190,7 @@ static struct plx_pci_card_info plx_pci_card_info_esd266 __devinitdata = {
>   	/* based on PLX9056 */
>   };
>
> -static struct plx_pci_card_info plx_pci_card_info_esd2000 __devinitdata = {
> +static struct plx_pci_card_info plx_pci_card_info_esd2000 = {
>   	"esd CAN-PCIe/2000", 2,
>   	PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
>   	{0, 0x00, 0x00}, { {2, 0x00, 0x80}, {2, 0x100, 0x80} },
> @@ -198,7 +198,7 @@ static struct plx_pci_card_info plx_pci_card_info_esd2000 __devinitdata = {
>   	/* based on PEX8311 */
>   };
>
> -static struct plx_pci_card_info plx_pci_card_info_ixxat __devinitdata = {
> +static struct plx_pci_card_info plx_pci_card_info_ixxat = {
>   	"IXXAT PC-I 04/PCI", 2,
>   	PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
>   	{0, 0x00, 0x00}, { {2, 0x00, 0x80}, {2, 0x200, 0x80} },
> @@ -206,7 +206,7 @@ static struct plx_pci_card_info plx_pci_card_info_ixxat __devinitdata = {
>   	/* based on PLX9050 */
>   };
>
> -static struct plx_pci_card_info plx_pci_card_info_marathon __devinitdata = {
> +static struct plx_pci_card_info plx_pci_card_info_marathon = {
>   	"Marathon CAN-bus-PCI", 2,
>   	PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
>   	{0, 0x00, 0x00}, { {2, 0x00, 0x00}, {4, 0x00, 0x00} },
> @@ -214,7 +214,7 @@ static struct plx_pci_card_info plx_pci_card_info_marathon __devinitdata = {
>   	/* based on PLX9052 */
>   };
>
> -static struct plx_pci_card_info plx_pci_card_info_tews __devinitdata = {
> +static struct plx_pci_card_info plx_pci_card_info_tews = {
>   	"TEWS TECHNOLOGIES TPMC810", 2,
>   	PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
>   	{0, 0x00, 0x00}, { {2, 0x000, 0x80}, {2, 0x100, 0x80} },
> diff --git a/drivers/net/can/sja1000/sja1000_isa.c b/drivers/net/can/sja1000/sja1000_isa.c
> index 3f12e85..a872f24 100644
> --- a/drivers/net/can/sja1000/sja1000_isa.c
> +++ b/drivers/net/can/sja1000/sja1000_isa.c
> @@ -42,11 +42,11 @@ MODULE_LICENSE("GPL v2");
>
>   static unsigned long port[MAXDEV];
>   static unsigned long mem[MAXDEV];
> -static int __devinitdata irq[MAXDEV];
> -static int __devinitdata clk[MAXDEV];
> -static unsigned char __devinitdata cdr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff};
> -static unsigned char __devinitdata ocr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff};
> -static int __devinitdata indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1};
> +static int irq[MAXDEV];
> +static int clk[MAXDEV];
> +static unsigned char cdr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff};
> +static unsigned char ocr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff};
> +static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1};
>
>   module_param_array(port, ulong, NULL, S_IRUGO);
>   MODULE_PARM_DESC(port, "I/O port number");
> diff --git a/drivers/net/can/sja1000/sja1000_of_platform.c b/drivers/net/can/sja1000/sja1000_of_platform.c
> index 259d5a1d..1ca0ee1 100644
> --- a/drivers/net/can/sja1000/sja1000_of_platform.c
> +++ b/drivers/net/can/sja1000/sja1000_of_platform.c
> @@ -204,7 +204,7 @@ exit_release_mem:
>   	return err;
>   }
>
> -static struct of_device_id __devinitdata sja1000_ofp_table[] = {
> +static struct of_device_id sja1000_ofp_table[] = {
>   	{.compatible = "nxp,sja1000"},
>   	{},
>   };
> diff --git a/drivers/net/fddi/defxx.c b/drivers/net/fddi/defxx.c
> index 13f42cc..fd58f0b 100644
> --- a/drivers/net/fddi/defxx.c
> +++ b/drivers/net/fddi/defxx.c
> @@ -228,7 +228,7 @@
>   #define DRV_VERSION "v1.10"
>   #define DRV_RELDATE "2006/12/14"
>
> -static char version[] __devinitdata =
> +static char version[] =
>   	DRV_NAME ": " DRV_VERSION " " DRV_RELDATE
>   	"  Lawrence V. Stefani and others\n";
>
> diff --git a/drivers/net/hippi/rrunner.c b/drivers/net/hippi/rrunner.c
> index 164d845..12b7ff9 100644
> --- a/drivers/net/hippi/rrunner.c
> +++ b/drivers/net/hippi/rrunner.c
> @@ -61,7 +61,7 @@ MODULE_AUTHOR("Jes Sorensen <jes@wildopensource.com>");
>   MODULE_DESCRIPTION("Essential RoadRunner HIPPI driver");
>   MODULE_LICENSE("GPL");
>
> -static char version[] __devinitdata = "rrunner.c: v0.50 11/11/2002  Jes Sorensen (jes@wildopensource.com)\n";
> +static char version[] = "rrunner.c: v0.50 11/11/2002  Jes Sorensen (jes@wildopensource.com)\n";
>
>
>   static const struct net_device_ops rr_netdev_ops = {
> diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c
> index dc529aa..dbbe06e 100644
> --- a/drivers/net/wan/farsync.c
> +++ b/drivers/net/wan/farsync.c
> @@ -2361,7 +2361,7 @@ fst_start_xmit(struct sk_buff *skb, struct net_device *dev)
>    *      via a printk and leave the corresponding interface and all that follow
>    *      disabled.
>    */
> -static char *type_strings[] __devinitdata = {
> +static char *type_strings[] = {
>   	"no hardware",		/* Should never be seen */
>   	"FarSync T2P",
>   	"FarSync T4P",
> diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
> index 1bbdc63..b9f71fd 100644
> --- a/drivers/net/wireless/mwl8k.c
> +++ b/drivers/net/wireless/mwl8k.c
> @@ -5257,7 +5257,7 @@ enum {
>   #define _MWL8K_8366_AP_FW(api) "mwl8k/fmimage_8366_ap-" #api ".fw"
>   #define MWL8K_8366_AP_FW(api) _MWL8K_8366_AP_FW(api)
>
> -static struct mwl8k_device_info mwl8k_info_tbl[] __devinitdata = {
> +static struct mwl8k_device_info mwl8k_info_tbl[] = {
>   	[MWL8363] = {
>   		.part_name	= "88w8363",
>   		.helper_image	= "mwl8k/helper_8363.fw",
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/sw.c b/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
> index 480862c..93d792a 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8192de/sw.c
> @@ -352,7 +352,7 @@ static struct rtl_hal_cfg rtl92de_hal_cfg = {
>   	.maps[RTL_RC_HT_RATEMCS15] = DESC92_RATEMCS15,
>   };
>
> -static struct pci_device_id rtl92de_pci_ids[] __devinitdata = {
> +static struct pci_device_id rtl92de_pci_ids[] = {
>   	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8193, rtl92de_hal_cfg)},
>   	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x002B, rtl92de_hal_cfg)},
>   	{},
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
> index ad4b480..ca80fa8 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c
> @@ -403,7 +403,7 @@ static struct rtl_hal_cfg rtl92se_hal_cfg = {
>   	.maps[RTL_RC_HT_RATEMCS15] = DESC92_RATEMCS15,
>   };
>
> -static struct pci_device_id rtl92se_pci_ids[] __devinitdata = {
> +static struct pci_device_id rtl92se_pci_ids[] = {
>   	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8192, rtl92se_hal_cfg)},
>   	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8171, rtl92se_hal_cfg)},
>   	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8172, rtl92se_hal_cfg)},
> diff --git a/drivers/net/wireless/rtlwifi/rtl8723ae/sw.c b/drivers/net/wireless/rtlwifi/rtl8723ae/sw.c
> index 0afdc24..b1c3626 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8723ae/sw.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8723ae/sw.c
> @@ -341,7 +341,7 @@ static struct rtl_hal_cfg rtl8723ae_hal_cfg = {
>   	.maps[RTL_RC_HT_RATEMCS15] = DESC92_RATEMCS15,
>   };
>
> -static struct pci_device_id rtl8723ae_pci_ids[] __devinitdata = {
> +static struct pci_device_id rtl8723ae_pci_ids[] = {
>   	{RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8723, rtl8723ae_hal_cfg)},
>   	{},
>   };
>

^ permalink raw reply

* Re: [PATCH 196/493] net/wireless: remove use of __devinit
From: Larry Finger @ 2012-11-19 20:03 UTC (permalink / raw)
  To: Bill Pemberton
  Cc: gregkh, John W. Linville, Jiri Slaby, Nick Kossifidis,
	Luis R. Rodriguez, Simon Kelley, Stefano Brivio,
	Stanislav Yakovlev, Dan Williams, Christian Lamparter,
	Herton Ronaldo Krzesinski, Hin-Tak Leung, Chaoming Li,
	Luciano Coelho, linux-wireless, netdev, ath5k-devel, b43-dev,
	brcm80211-dev-list, libertas-dev
In-Reply-To: <1353349642-3677-196-git-send-email-wfp5p@virginia.edu>

On 11/19/2012 12:22 PM, Bill Pemberton wrote:
> CONFIG_HOTPLUG is going away as an option so __devinit is no longer
> needed.
>
> Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
> Cc: "John W. Linville" <linville@tuxdriver.com>
> Cc: Jiri Slaby <jirislaby@gmail.com>
> Cc: Nick Kossifidis <mickflemm@gmail.com>
> Cc: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
> Cc: Simon Kelley <simon@thekelleys.org.uk>
> Cc: Stefano Brivio <stefano.brivio@polimi.it>
> Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
> Cc: Dan Williams <dcbw@redhat.com>
> Cc: Christian Lamparter <chunkeey@googlemail.com>
> Cc: Herton Ronaldo Krzesinski <herton@canonical.com>
> Cc: Hin-Tak Leung <htl10@users.sourceforge.net>
> Cc: Larry Finger <Larry.Finger@lwfinger.net>
> Cc: Chaoming Li <chaoming_li@realsil.com.cn>
> Cc: Luciano Coelho <coelho@ti.com>
> Cc: linux-wireless@vger.kernel.org
> Cc: netdev@vger.kernel.org
> Cc: ath5k-devel@lists.ath5k.org
> Cc: b43-dev@lists.infradead.org
> Cc: brcm80211-dev-list@broadcom.com
> Cc: libertas-dev@lists.infradead.org
> ---
>   drivers/net/wireless/adm8211.c                        | 2 +-
>   drivers/net/wireless/airo.c                           | 2 +-
>   drivers/net/wireless/ath/ath5k/base.c                 | 4 ++--
>   drivers/net/wireless/ath/ath5k/led.c                  | 2 +-
>   drivers/net/wireless/ath/ath5k/pci.c                  | 2 +-
>   drivers/net/wireless/atmel_pci.c                      | 2 +-
>   drivers/net/wireless/b43/pcmcia.c                     | 2 +-
>   drivers/net/wireless/b43/sdio.c                       | 2 +-
>   drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c | 2 +-
>   drivers/net/wireless/ipw2x00/ipw2200.c                | 4 ++--
>   drivers/net/wireless/libertas/if_spi.c                | 2 +-
>   drivers/net/wireless/mwl8k.c                          | 2 +-
>   drivers/net/wireless/p54/p54pci.c                     | 2 +-
>   drivers/net/wireless/p54/p54spi.c                     | 2 +-
>   drivers/net/wireless/p54/p54usb.c                     | 2 +-
>   drivers/net/wireless/rtl818x/rtl8180/dev.c            | 2 +-
>   drivers/net/wireless/rtl818x/rtl8187/dev.c            | 2 +-
>   drivers/net/wireless/rtlwifi/pci.c                    | 2 +-
>   drivers/net/wireless/rtlwifi/pci.h                    | 2 +-
>   drivers/net/wireless/rtlwifi/usb.c                    | 2 +-
>   drivers/net/wireless/rtlwifi/usb.h                    | 2 +-
>   drivers/net/wireless/ti/wl1251/spi.c                  | 2 +-
>   drivers/net/wireless/ti/wl12xx/main.c                 | 2 +-
>   drivers/net/wireless/ti/wl18xx/main.c                 | 2 +-
>   drivers/net/wireless/ti/wlcore/main.c                 | 2 +-
>   drivers/net/wireless/ti/wlcore/sdio.c                 | 2 +-
>   drivers/net/wireless/ti/wlcore/spi.c                  | 2 +-
>   drivers/net/wireless/ti/wlcore/wlcore.h               | 2 +-
>   28 files changed, 30 insertions(+), 30 deletions(-)

ACKed-by: Larry Finger <Larry.Finger.net> for the rtl8187 and rtlwifi parts.

>
> diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c
> index a05bac2..bd89a29 100644
> --- a/drivers/net/wireless/adm8211.c
> +++ b/drivers/net/wireless/adm8211.c
> @@ -1761,7 +1761,7 @@ static const struct ieee80211_ops adm8211_ops = {
>   	.get_tsf		= adm8211_get_tsft
>   };
>
> -static int __devinit adm8211_probe(struct pci_dev *pdev,
> +static int adm8211_probe(struct pci_dev *pdev,
>   				   const struct pci_device_id *id)
>   {
>   	struct ieee80211_hw *dev;
> diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
> index af1096b..b010f41 100644
> --- a/drivers/net/wireless/airo.c
> +++ b/drivers/net/wireless/airo.c
> @@ -5584,7 +5584,7 @@ static void timer_func( struct net_device *dev ) {
>   }
>
>   #ifdef CONFIG_PCI
> -static int __devinit airo_pci_probe(struct pci_dev *pdev,
> +static int airo_pci_probe(struct pci_dev *pdev,
>   				    const struct pci_device_id *pent)
>   {
>   	struct net_device *dev;
> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
> index 9f31cfa..026ae8a 100644
> --- a/drivers/net/wireless/ath/ath5k/base.c
> +++ b/drivers/net/wireless/ath/ath5k/base.c
> @@ -2434,7 +2434,7 @@ static const struct ieee80211_iface_combination if_comb = {
>   	.num_different_channels = 1,
>   };
>
> -int __devinit
> +int
>   ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops)
>   {
>   	struct ieee80211_hw *hw = ah->hw;
> @@ -2860,7 +2860,7 @@ static void ath5k_reset_work(struct work_struct *work)
>   	mutex_unlock(&ah->lock);
>   }
>
> -static int __devinit
> +static int
>   ath5k_init(struct ieee80211_hw *hw)
>   {
>
> diff --git a/drivers/net/wireless/ath/ath5k/led.c b/drivers/net/wireless/ath/ath5k/led.c
> index b9f708a..f77ef36 100644
> --- a/drivers/net/wireless/ath/ath5k/led.c
> +++ b/drivers/net/wireless/ath/ath5k/led.c
> @@ -158,7 +158,7 @@ void ath5k_unregister_leds(struct ath5k_hw *ah)
>   	ath5k_unregister_led(&ah->tx_led);
>   }
>
> -int __devinit ath5k_init_leds(struct ath5k_hw *ah)
> +int ath5k_init_leds(struct ath5k_hw *ah)
>   {
>   	int ret = 0;
>   	struct ieee80211_hw *hw = ah->hw;
> diff --git a/drivers/net/wireless/ath/ath5k/pci.c b/drivers/net/wireless/ath/ath5k/pci.c
> index c3ba483..1a78ba3 100644
> --- a/drivers/net/wireless/ath/ath5k/pci.c
> +++ b/drivers/net/wireless/ath/ath5k/pci.c
> @@ -155,7 +155,7 @@ static const struct ath_bus_ops ath_pci_bus_ops = {
>   * PCI Initialization *
>   \********************/
>
> -static int __devinit
> +static int
>   ath5k_pci_probe(struct pci_dev *pdev,
>   		const struct pci_device_id *id)
>   {
> diff --git a/drivers/net/wireless/atmel_pci.c b/drivers/net/wireless/atmel_pci.c
> index fbe6580..1c12fec 100644
> --- a/drivers/net/wireless/atmel_pci.c
> +++ b/drivers/net/wireless/atmel_pci.c
> @@ -49,7 +49,7 @@ static struct pci_driver atmel_driver = {
>   };
>
>
> -static int __devinit atmel_pci_probe(struct pci_dev *pdev,
> +static int atmel_pci_probe(struct pci_dev *pdev,
>   				     const struct pci_device_id *pent)
>   {
>   	struct net_device *dev;
> diff --git a/drivers/net/wireless/b43/pcmcia.c b/drivers/net/wireless/b43/pcmcia.c
> index 3477213..3506cca 100644
> --- a/drivers/net/wireless/b43/pcmcia.c
> +++ b/drivers/net/wireless/b43/pcmcia.c
> @@ -60,7 +60,7 @@ static int b43_pcmcia_resume(struct pcmcia_device *dev)
>   # define b43_pcmcia_resume		NULL
>   #endif /* CONFIG_PM */
>
> -static int __devinit b43_pcmcia_probe(struct pcmcia_device *dev)
> +static int b43_pcmcia_probe(struct pcmcia_device *dev)
>   {
>   	struct ssb_bus *ssb;
>   	int err = -ENOMEM;
> diff --git a/drivers/net/wireless/b43/sdio.c b/drivers/net/wireless/b43/sdio.c
> index 80b0755..d2b1f98 100644
> --- a/drivers/net/wireless/b43/sdio.c
> +++ b/drivers/net/wireless/b43/sdio.c
> @@ -93,7 +93,7 @@ void b43_sdio_free_irq(struct b43_wldev *dev)
>   	sdio->irq_handler = NULL;
>   }
>
> -static int __devinit b43_sdio_probe(struct sdio_func *func,
> +static int b43_sdio_probe(struct sdio_func *func,
>   				    const struct sdio_device_id *id)
>   {
>   	struct b43_sdio *sdio;
> diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
> index cdd5aa2..7e65f9a 100644
> --- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
> +++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
> @@ -1093,7 +1093,7 @@ fail:
>    *
>    * Perimeter lock is initialized in the course of this function.
>    */
> -static int __devinit brcms_bcma_probe(struct bcma_device *pdev)
> +static int brcms_bcma_probe(struct bcma_device *pdev)
>   {
>   	struct brcms_info *wl;
>   	struct ieee80211_hw *hw;
> diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
> index b809b99..3f099a6 100644
> --- a/drivers/net/wireless/ipw2x00/ipw2200.c
> +++ b/drivers/net/wireless/ipw2x00/ipw2200.c
> @@ -10774,7 +10774,7 @@ static void ipw_bg_link_down(struct work_struct *work)
>   	mutex_unlock(&priv->mutex);
>   }
>
> -static int __devinit ipw_setup_deferred_work(struct ipw_priv *priv)
> +static int ipw_setup_deferred_work(struct ipw_priv *priv)
>   {
>   	int ret = 0;
>
> @@ -11722,7 +11722,7 @@ static const struct net_device_ops ipw_netdev_ops = {
>   	.ndo_validate_addr	= eth_validate_addr,
>   };
>
> -static int __devinit ipw_pci_probe(struct pci_dev *pdev,
> +static int ipw_pci_probe(struct pci_dev *pdev,
>   				   const struct pci_device_id *ent)
>   {
>   	int err = 0;
> diff --git a/drivers/net/wireless/libertas/if_spi.c b/drivers/net/wireless/libertas/if_spi.c
> index 98cccc7..abc32e3 100644
> --- a/drivers/net/wireless/libertas/if_spi.c
> +++ b/drivers/net/wireless/libertas/if_spi.c
> @@ -1124,7 +1124,7 @@ static void if_spi_resume_worker(struct work_struct *work)
>   	}
>   }
>
> -static int __devinit if_spi_probe(struct spi_device *spi)
> +static int if_spi_probe(struct spi_device *spi)
>   {
>   	struct if_spi_card *card;
>   	struct lbs_private *priv = NULL;
> diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
> index c26cfaa..1bbdc63 100644
> --- a/drivers/net/wireless/mwl8k.c
> +++ b/drivers/net/wireless/mwl8k.c
> @@ -5755,7 +5755,7 @@ err_free_cookie:
>
>   	return rc;
>   }
> -static int __devinit mwl8k_probe(struct pci_dev *pdev,
> +static int mwl8k_probe(struct pci_dev *pdev,
>   				 const struct pci_device_id *id)
>   {
>   	static int printed_version;
> diff --git a/drivers/net/wireless/p54/p54pci.c b/drivers/net/wireless/p54/p54pci.c
> index b382469..e5b29e9 100644
> --- a/drivers/net/wireless/p54/p54pci.c
> +++ b/drivers/net/wireless/p54/p54pci.c
> @@ -540,7 +540,7 @@ out:
>   	pci_dev_put(pdev);
>   }
>
> -static int __devinit p54p_probe(struct pci_dev *pdev,
> +static int p54p_probe(struct pci_dev *pdev,
>   				const struct pci_device_id *id)
>   {
>   	struct p54p_priv *priv;
> diff --git a/drivers/net/wireless/p54/p54spi.c b/drivers/net/wireless/p54/p54spi.c
> index 51129f4..d75ab3e 100644
> --- a/drivers/net/wireless/p54/p54spi.c
> +++ b/drivers/net/wireless/p54/p54spi.c
> @@ -595,7 +595,7 @@ static void p54spi_op_stop(struct ieee80211_hw *dev)
>   	cancel_work_sync(&priv->work);
>   }
>
> -static int __devinit p54spi_probe(struct spi_device *spi)
> +static int p54spi_probe(struct spi_device *spi)
>   {
>   	struct p54s_priv *priv = NULL;
>   	struct ieee80211_hw *hw;
> diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
> index 0463ac2..000f7ba 100644
> --- a/drivers/net/wireless/p54/p54usb.c
> +++ b/drivers/net/wireless/p54/p54usb.c
> @@ -986,7 +986,7 @@ static int p54u_load_firmware(struct ieee80211_hw *dev,
>   	return err;
>   }
>
> -static int __devinit p54u_probe(struct usb_interface *intf,
> +static int p54u_probe(struct usb_interface *intf,
>   				const struct usb_device_id *id)
>   {
>   	struct usb_device *udev = interface_to_usbdev(intf);
> diff --git a/drivers/net/wireless/rtl818x/rtl8180/dev.c b/drivers/net/wireless/rtl818x/rtl8180/dev.c
> index b117541..6a5c0b8 100644
> --- a/drivers/net/wireless/rtl818x/rtl8180/dev.c
> +++ b/drivers/net/wireless/rtl818x/rtl8180/dev.c
> @@ -901,7 +901,7 @@ static void rtl8180_eeprom_register_write(struct eeprom_93cx6 *eeprom)
>   	udelay(10);
>   }
>
> -static int __devinit rtl8180_probe(struct pci_dev *pdev,
> +static int rtl8180_probe(struct pci_dev *pdev,
>   				   const struct pci_device_id *id)
>   {
>   	struct ieee80211_hw *dev;
> diff --git a/drivers/net/wireless/rtl818x/rtl8187/dev.c b/drivers/net/wireless/rtl818x/rtl8187/dev.c
> index 9892310..f879bc3 100644
> --- a/drivers/net/wireless/rtl818x/rtl8187/dev.c
> +++ b/drivers/net/wireless/rtl818x/rtl8187/dev.c
> @@ -1411,7 +1411,7 @@ static void rtl8187_eeprom_register_write(struct eeprom_93cx6 *eeprom)
>   	udelay(10);
>   }
>
> -static int __devinit rtl8187_probe(struct usb_interface *intf,
> +static int rtl8187_probe(struct usb_interface *intf,
>   				   const struct usb_device_id *id)
>   {
>   	struct usb_device *udev = interface_to_usbdev(intf);
> diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
> index f38e30a..f2bd68e 100644
> --- a/drivers/net/wireless/rtlwifi/pci.c
> +++ b/drivers/net/wireless/rtlwifi/pci.c
> @@ -1756,7 +1756,7 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev,
>   	return true;
>   }
>
> -int __devinit rtl_pci_probe(struct pci_dev *pdev,
> +int rtl_pci_probe(struct pci_dev *pdev,
>   			    const struct pci_device_id *id)
>   {
>   	struct ieee80211_hw *hw = NULL;
> diff --git a/drivers/net/wireless/rtlwifi/pci.h b/drivers/net/wireless/rtlwifi/pci.h
> index f71b12a..5eee0fa 100644
> --- a/drivers/net/wireless/rtlwifi/pci.h
> +++ b/drivers/net/wireless/rtlwifi/pci.h
> @@ -236,7 +236,7 @@ int rtl_pci_reset_trx_ring(struct ieee80211_hw *hw);
>
>   extern struct rtl_intf_ops rtl_pci_ops;
>
> -int __devinit rtl_pci_probe(struct pci_dev *pdev,
> +int rtl_pci_probe(struct pci_dev *pdev,
>   			    const struct pci_device_id *id);
>   void rtl_pci_disconnect(struct pci_dev *pdev);
>   int rtl_pci_suspend(struct device *dev);
> diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c
> index e3ea4b3..29f0969 100644
> --- a/drivers/net/wireless/rtlwifi/usb.c
> +++ b/drivers/net/wireless/rtlwifi/usb.c
> @@ -940,7 +940,7 @@ static struct rtl_intf_ops rtl_usb_ops = {
>   	.waitq_insert = rtl_usb_tx_chk_waitq_insert,
>   };
>
> -int __devinit rtl_usb_probe(struct usb_interface *intf,
> +int rtl_usb_probe(struct usb_interface *intf,
>   			const struct usb_device_id *id)
>   {
>   	int err;
> diff --git a/drivers/net/wireless/rtlwifi/usb.h b/drivers/net/wireless/rtlwifi/usb.h
> index 43846b3..5235136 100644
> --- a/drivers/net/wireless/rtlwifi/usb.h
> +++ b/drivers/net/wireless/rtlwifi/usb.h
> @@ -156,7 +156,7 @@ struct rtl_usb_priv {
>
>
>
> -int __devinit rtl_usb_probe(struct usb_interface *intf,
> +int rtl_usb_probe(struct usb_interface *intf,
>   			    const struct usb_device_id *id);
>   void rtl_usb_disconnect(struct usb_interface *intf);
>   int rtl_usb_suspend(struct usb_interface *pusb_intf, pm_message_t message);
> diff --git a/drivers/net/wireless/ti/wl1251/spi.c b/drivers/net/wireless/ti/wl1251/spi.c
> index 3ec61b9..640a3d5 100644
> --- a/drivers/net/wireless/ti/wl1251/spi.c
> +++ b/drivers/net/wireless/ti/wl1251/spi.c
> @@ -237,7 +237,7 @@ static const struct wl1251_if_operations wl1251_spi_ops = {
>   	.power = wl1251_spi_set_power,
>   };
>
> -static int __devinit wl1251_spi_probe(struct spi_device *spi)
> +static int wl1251_spi_probe(struct spi_device *spi)
>   {
>   	struct wl12xx_platform_data *pdata;
>   	struct ieee80211_hw *hw;
> diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c
> index bc522b6..c10e691 100644
> --- a/drivers/net/wireless/ti/wl12xx/main.c
> +++ b/drivers/net/wireless/ti/wl12xx/main.c
> @@ -1696,7 +1696,7 @@ static int wl12xx_setup(struct wl1271 *wl)
>   	return 0;
>   }
>
> -static int __devinit wl12xx_probe(struct platform_device *pdev)
> +static int wl12xx_probe(struct platform_device *pdev)
>   {
>   	struct wl1271 *wl;
>   	struct ieee80211_hw *hw;
> diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c
> index 2d037d5..7171c93 100644
> --- a/drivers/net/wireless/ti/wl18xx/main.c
> +++ b/drivers/net/wireless/ti/wl18xx/main.c
> @@ -1499,7 +1499,7 @@ static int wl18xx_setup(struct wl1271 *wl)
>   	return 0;
>   }
>
> -static int __devinit wl18xx_probe(struct platform_device *pdev)
> +static int wl18xx_probe(struct platform_device *pdev)
>   {
>   	struct wl1271 *wl;
>   	struct ieee80211_hw *hw;
> diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
> index 25530c8..2dd4ada 100644
> --- a/drivers/net/wireless/ti/wlcore/main.c
> +++ b/drivers/net/wireless/ti/wlcore/main.c
> @@ -5659,7 +5659,7 @@ out:
>   	complete_all(&wl->nvs_loading_complete);
>   }
>
> -int __devinit wlcore_probe(struct wl1271 *wl, struct platform_device *pdev)
> +int wlcore_probe(struct wl1271 *wl, struct platform_device *pdev)
>   {
>   	int ret;
>
> diff --git a/drivers/net/wireless/ti/wlcore/sdio.c b/drivers/net/wireless/ti/wlcore/sdio.c
> index 830bf0d..6fa2a01 100644
> --- a/drivers/net/wireless/ti/wlcore/sdio.c
> +++ b/drivers/net/wireless/ti/wlcore/sdio.c
> @@ -214,7 +214,7 @@ static struct wl1271_if_operations sdio_ops = {
>   	.set_block_size = wl1271_sdio_set_block_size,
>   };
>
> -static int __devinit wl1271_probe(struct sdio_func *func,
> +static int wl1271_probe(struct sdio_func *func,
>   				  const struct sdio_device_id *id)
>   {
>   	struct wl12xx_platform_data *wlan_data;
> diff --git a/drivers/net/wireless/ti/wlcore/spi.c b/drivers/net/wireless/ti/wlcore/spi.c
> index b183001..ee39484 100644
> --- a/drivers/net/wireless/ti/wlcore/spi.c
> +++ b/drivers/net/wireless/ti/wlcore/spi.c
> @@ -324,7 +324,7 @@ static struct wl1271_if_operations spi_ops = {
>   	.set_block_size = NULL,
>   };
>
> -static int __devinit wl1271_probe(struct spi_device *spi)
> +static int wl1271_probe(struct spi_device *spi)
>   {
>   	struct wl12xx_spi_glue *glue;
>   	struct wl12xx_platform_data *pdata;
> diff --git a/drivers/net/wireless/ti/wlcore/wlcore.h b/drivers/net/wireless/ti/wlcore/wlcore.h
> index 68584aa..adc6152 100644
> --- a/drivers/net/wireless/ti/wlcore/wlcore.h
> +++ b/drivers/net/wireless/ti/wlcore/wlcore.h
> @@ -414,7 +414,7 @@ struct wl1271 {
>   	struct completion nvs_loading_complete;
>   };
>
> -int __devinit wlcore_probe(struct wl1271 *wl, struct platform_device *pdev);
> +int wlcore_probe(struct wl1271 *wl, struct platform_device *pdev);
>   int __devexit wlcore_remove(struct platform_device *pdev);
>   struct ieee80211_hw *wlcore_alloc_hw(size_t priv_size, u32 aggr_buf_size);
>   int wlcore_free_hw(struct wl1271 *wl);
>

^ permalink raw reply

* [PATCH] net, batman: don't crash on zero length strings in routing_algo
From: Sasha Levin @ 2012-11-19 20:08 UTC (permalink / raw)
  To: lindner_marek-LWAfsSFWpa4, siwu-MaAgPAbsBIVS8oHt8HbXEIQuADTiUCJX,
	ordex-GaUfNO9RBHfsrOwW+9ziJQ
  Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
	b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r,
	davem-fT/PcQaiUtIeIZ0/mPfg9Q, Sasha Levin,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

The code that works with routing_algo assumes that the string passed is non
empty, this assumption is wrong:

sh-4.2# echo -ne '\0' > /sys/module/batman_adv/parameters/routing_algo
[   34.531340] BUG: unable to handle kernel paging request at ffff880015142fff
[   34.539191] IP: [<ffffffff8390ac7a>] batadv_param_set_ra+0x3a/0x90
[   34.541128] PGD 5027063 PUD 502b063 PMD 1bfc6067 PTE 15142160
[   34.541128] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
[   34.541128] CPU 0
[   34.541128] Pid: 6612, comm: sh Tainted: G        W    3.7.0-rc6-sasha-00024-g33da443-dirty #157
[   34.541128] RIP: 0010:[<ffffffff8390ac7a>]  [<ffffffff8390ac7a>] batadv_param_set_ra+0x3a/0x90
[   34.541128] RSP: 0018:ffff880014f81e48  EFLAGS: 00010292
[   34.541128] RAX: 000000000000003b RBX: ffff880015143000 RCX: 0000000000000006
[   34.550025] RDX: 0000000000000006 RSI: ffff8800151cb960 RDI: 0000000000000282
[   34.550025] RBP: ffff880014f81e68 R08: 0000000000000003 R09: 0000000000000000
[   34.550025] R10: 0000000000000000 R11: 0000000000000001 R12: ffff880015142fff
[   34.550025] R13: ffffffff84e6b390 R14: ffff880014f86a00 R15: ffffffff83c35170
[   34.550025] FS:  00007f9ebc796700(0000) GS:ffff88001a600000(0000) knlGS:0000000000000000
[   34.550025] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   34.550025] CR2: ffff880015142fff CR3: 000000001522f000 CR4: 00000000000406f0
[   34.550025] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   34.550025] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[   34.550025] Process sh (pid: 6612, threadinfo ffff880014f80000, task ffff8800151cb000)
[   34.550025] Stack:
[   34.550025]  ffff880014f81e68 ffff8800198ee020 0000000000000001 ffff880015143000
[   34.550025]  ffff880014f81e98 ffffffff81133776 ffff880014f81ea8 ffff880014f86a20
[   34.550025]  ffff880014f81f50 ffff880019d86d20 ffff880014f81ea8 ffffffff811335f8
[   34.550025] Call Trace:
[   34.550025]  [<ffffffff81133776>] param_attr_store+0x46/0x80
[   34.550025]  [<ffffffff811335f8>] module_attr_store+0x18/0x40
[   34.550025]  [<ffffffff812ed751>] sysfs_write_file+0x101/0x170
[   34.550025]  [<ffffffff8126fcb8>] vfs_write+0xb8/0x180
[   34.550025]  [<ffffffff8126fe70>] sys_write+0x50/0xa0
[   34.550025]  [<ffffffff83b30018>] tracesys+0xe1/0xe6
[   34.550025] Code: 4c 89 65 f0 4c 89 6d f8 49 89 f5 e8 71 c5 0b fe 48 c7 c7 38 2e df 84 4c 8d 60 ff 48 89 c6 31 c0 4c 89 e2 49 01 dc e8 a6 d8 15 00 <41> 80 3c 24 0a 75 05 41 c6 04 24 00 48 89 df e8 62 ff ff ff 48
[   34.550025] RIP  [<ffffffff8390ac7a>] batadv_param_set_ra+0x3a/0x90
[   34.550025]  RSP <ffff880014f81e48>
[   34.550025] CR2: ffff880015142fff
[   34.550025] ---[ end trace 6c53b662c574774b ]---

Signed-off-by: Sasha Levin <sasha.levin-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
---
 net/batman-adv/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index dc33a0c..3b8e368 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -426,7 +426,7 @@ static int batadv_param_set_ra(const char *val, const struct kernel_param *kp)
 	char *algo_name = (char *)val;
 	size_t name_len = strlen(algo_name);
 
-	if (algo_name[name_len - 1] == '\n')
+	if (name_len > 0 && algo_name[name_len - 1] == '\n')
 		algo_name[name_len - 1] = '\0';
 
 	bat_algo_ops = batadv_algo_get(algo_name);
-- 
1.8.0

^ permalink raw reply related

* Re: [PATCH V5 7/7] arm/dts: am33xx: Add CPSW and MDIO module nodes for AM33XX
From: Peter Korsgaard @ 2012-11-19 20:24 UTC (permalink / raw)
  To: Mugunthan V N
  Cc: netdev, davem, devicetree-discuss, linux-arm-kernel, linux-omap,
	b-cousson, paul, Vaibhav Hiremath
In-Reply-To: <1352920080-6179-8-git-send-email-mugunthanvnm@ti.com>

>>>>> "M" == Mugunthan V N <mugunthanvnm@ti.com> writes:

 M> Add CPSW and MDIO related device tree data for AM33XX.
 M> Also enable them into board/evm dts files by providing
 M> respective phy-id.

 M> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
 M> Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
 M> Cc: Benoit Cousson <b-cousson@ti.com>
 M> Acked-by: Peter Korsgaard <jacmet@sunsite.dk>
 M> Acked-by: Richard Cochran <richardcochran@gmail.com>

 M> +++ b/arch/arm/boot/dts/am335x-bone.dts
 M> @@ -78,3 +78,11 @@
 M>  		};
 M>  	};
 M>  };
 M> +
 M> +&cpsw_emac0 {
 M> +	phy_id = <&davinci_mdio>, <0>;
 M> +};
 M> +
 M> +&cpsw_emac1 {
 M> +	phy_id = <&davinci_mdio>, <1>;
 M> +};

I already acked this and the problem isn't caused by this patch itself,
but it isn't really nice that you have to add a dummy emac1 even though
only the first port is used on the bone.

It would imho be nicer to get rid of the 'slaves' property in cpsw (just
let the driver count available slave children), mark both slaves in
am33xx.dtsi with status = 'disabled' and only loop over the available
slaves in cpsw_probe_dt(), similar to E.G. how the uarts/i2c are handled.

Then am335x-bone.dts would just need to add:

&cpsw_emac0 {
    status = 'ok';
    phy_id = <&davinci_mdio>, <0>;
};

I'll send a patch shortly to implement this.


 M> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
 M> index bb31bff..a4615b4 100644
 M> --- a/arch/arm/boot/dts/am33xx.dtsi
 M> +++ b/arch/arm/boot/dts/am33xx.dtsi
 M> @@ -210,5 +210,53 @@
 M>  			interrupt-parent = <&intc>;
 M>  			interrupts = <91>;
 M>  		};
 M> +
 M> +		mac: ethernet@4a100000 {
 M> +			compatible = "ti,cpsw";
 M> +			ti,hwmods = "cpgmac0";
 M> +			cpdma_channels = <8>;
 M> +			ale_entries = <1024>;
 M> +			bd_ram_size = <0x2000>;
 M> +			no_bd_ram = <0>;
 M> +			rx_descs = <64>;
 M> +			mac_control = <0x20>;
 M> +			slaves = <2>;
 M> +			cpts_active_slave = <0>;
 M> +			cpts_clock_mult = <0x80000000>;
 M> +			cpts_clock_shift = <29>;
 M> +			reg = <0x4a100000 0x800
 M> +			       0x4a101200 0x100>;
 M> +			#address-cells = <1>;
 M> +			#size-cells = <1>;
 M> +			interrupt-parent = <&intc>;
 M> +			/*
 M> +			 * c0_rx_thresh_pend
 M> +			 * c0_rx_pend
 M> +			 * c0_tx_pend
 M> +			 * c0_misc_pend
 M> +			 */
 M> +			interrupts = <40 41 42 43>;
 M> +			ranges;
 M> +
 M> +			davinci_mdio: mdio@4a101000 {
 M> +				compatible = "ti,davinci_mdio";
 M> +				#address-cells = <1>;
 M> +				#size-cells = <0>;
 M> +				ti,hwmods = "davinci_mdio";
 M> +				bus_freq = <1000000>;
 M> +				reg = <0x4a101000 0x100>;
 M> +			};
 M> +
 M> +			cpsw_emac0: slave@4a100200 {
 M> +				/* Filled in by U-Boot */
 M> +				mac-address = [ 00 00 00 00 00 00 ];
 M> +			};
 M> +
 M> +			cpsw_emac1: slave@4a100300 {
 M> +				/* Filled in by U-Boot */
 M> +				mac-address = [ 00 00 00 00 00 00 ];
 M> +			};
 M> +
 M> +		};

-- 
Bye, Peter Korsgaard

^ permalink raw reply

* Re: Re: [B.A.T.M.A.N.] [PATCH 04/10] batman-adv: export compatibility version via debugfs
From: Sven Eckelmann @ 2012-11-19 20:25 UTC (permalink / raw)
  To: Ben Hutchings
  Cc: b.a.t.m.a.n, Antonio Quartulli, netdev, Marek Lindner, davem
In-Reply-To: <1353354018.4156.13.camel@bwh-desktop.uk.solarflarecom.com>

[-- Attachment #1: Type: text/plain, Size: 1197 bytes --]

On Monday 19 November 2012 19:40:18 Ben Hutchings wrote:
[...]
> > > I do hope that you're not planning to use unstable debugfs interfaces
> > > indefinitely.
> > 
> > Why are you refering to the adding of an file as "incompatible" debugfs
> > interface? I would call it additional information. And the rest of the
> > commit message is talking about *possible* protocol incompatibilies of
> > the network protocol (which caused this uncontrolled erruption of anger
> > in a network maintainer).
> 
> I didn't say that.  But debugfs tends to be exempted from expectations
> of interface stability or cleanliness (as it's for development, not
> production... right?).  It's also an optional feature that might not be
> enabled at compile time or run-time.  If BATMAN is ever going to be
> ready for general use it will need stable interfaces that are updated in
> a backward-compatible way and don't depend on debugfs.

Ok, I thought this file was meant for an optional developer information (the 
interface to work with batman-adv is in /sys) and concluded too fast that you 
are questioning this change because it makes something "unstable" (sry, for 
using the wrong term before).

Thanks,
	Sven

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply

* Re: [PATCH 200/493] irda: remove use of __devinit
From: Stephen Hemminger @ 2012-11-19 20:25 UTC (permalink / raw)
  To: Greg KH; +Cc: David Miller, wfp5p, samuel, netdev
In-Reply-To: <20121119192121.GA16694@kroah.com>

On Mon, 19 Nov 2012 11:21:21 -0800
Greg KH <gregkh@linuxfoundation.org> wrote:

> On Mon, Nov 19, 2012 at 02:06:54PM -0500, David Miller wrote:
> > 
> > It is absolutely not reasonable to post nearly 500 patches all
> > at the same time.
> > 
> > Do not do this ever again.
> 
> Bill did this with the assumption that I would take them through my
> driver-core tree, as I asked that he do this work.  The 000 message said
> that, but that wasn't sent out to all of the recipients, so I can
> understand how you didn't see this.
> 
> Also, I was the only one that got all 500 emails, everyone else should
> have only seen a small quantity.
> 
> As you object to these, that's fine, I'll not apply anything to my
> treethat touches the drivers/net/ or net/ tree at this point in time, is
> that ok?
> 
> But the end goal is to drop CONFIG_HOTPLUG entirely, and these __dev*
> markings, as they don't do anything anymore.
> 
> thanks,
> 
> greg k-h
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

This seems like a case where a pull-request should have been used,
rather spamming everyone and every mailing list.

^ permalink raw reply

* Re: [PATCH 085/493] net/wireless: remove use of __devexit_p
From: Arend van Spriel @ 2012-11-19 20:56 UTC (permalink / raw)
  To: Bill Pemberton
  Cc: gregkh, John W. Linville, Jiri Slaby, Nick Kossifidis,
	Luis R. Rodriguez, Simon Kelley, Stefano Brivio,
	Stanislav Yakovlev, Dan Williams, Christian Lamparter,
	Ivo van Doorn, Gertjan van Wingerde, Helmut Schaa,
	Herton Ronaldo Krzesinski, Hin-Tak Leung, Larry Finger,
	Luciano Coelho, linux-wireless, netdev, ath5k-devel, b43-dev,
	brcm80211-dev-list, libertas-
In-Reply-To: <1353349642-3677-85-git-send-email-wfp5p@virginia.edu>

On 11/19/2012 07:20 PM, Bill Pemberton wrote:
> CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
> needed.

Acked-by: Arend van Spriel <arend@broadcom.com>
> Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
> Cc: brcm80211-dev-list@broadcom.com
 >
>   drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c | 2 +-

For this part of the patch obviously.

Gr. AvS

^ permalink raw reply

* Re: [PATCH 196/493] net/wireless: remove use of __devinit
From: Arend van Spriel @ 2012-11-19 20:57 UTC (permalink / raw)
  To: Bill Pemberton
  Cc: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, John W. Linville,
	Jiri Slaby, Nick Kossifidis, Luis R. Rodriguez, Simon Kelley,
	Stefano Brivio, Stanislav Yakovlev, Dan Williams,
	Christian Lamparter, Herton Ronaldo Krzesinski, Hin-Tak Leung,
	Larry Finger, Chaoming Li, Luciano Coelho,
	linux-wireless-u79uwXL29TY76Z2rM5mHXA,
	netdev-u79uwXL29TY76Z2rM5mHXA, ath5k-devel-xDcbHBWguxEUs3QNXV6qNA,
	b43-dev-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	brcm80211-dev-list-dY08KVG/lbpWk0Htik3J/w,
	libertas-dev-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
In-Reply-To: <1353349642-3677-196-git-send-email-wfp5p-4Ng6DfrEGID2fBVCVOL8/A@public.gmane.org>

On 11/19/2012 07:22 PM, Bill Pemberton wrote:
> CONFIG_HOTPLUG is going away as an option so __devinit is no longer
> needed.

Acked-by: Arend van Spriel <arend-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
> Signed-off-by: Bill Pemberton <wfp5p-4Ng6DfrEGID2fBVCVOL8/A@public.gmane.org>
> Cc: brcm80211-dev-list-dY08KVG/lbpWk0Htik3J/w@public.gmane.org
> ---
>   drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c | 2 +-

For brcm80211 driver change.

Gr. AvS

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH 04/10] batman-adv: export compatibility version via debugfs
From: Antonio Quartulli @ 2012-11-19 21:09 UTC (permalink / raw)
  To: David Miller
  Cc: bhutchings-s/n/eUQHGBpZroRs9YW3xA, netdev-u79uwXL29TY76Z2rM5mHXA,
	b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r,
	lindner_marek-LWAfsSFWpa4
In-Reply-To: <20121119.144745.1093556126398582629.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2378 bytes --]

On Mon, Nov 19, 2012 at 02:47:45PM -0500, David Miller wrote:
> From: Sven Eckelmann <sven-KaDOiPu9UxWEi8DpZVb4nw@public.gmane.org>
> Date: Mon, 19 Nov 2012 20:29:07 +0100
> 
> > On Monday 19 November 2012 18:52:30 Ben Hutchings wrote:
> >> On Mon, 2012-11-19 at 09:24 +0100, Antonio Quartulli wrote:
> >> > Different versions of the batman-adv module may use the same compatibility
> >> > version, but this is not understandable at runtime (the only way is to
> >> > parse the kernel log and fetch the batman-adv advertisement message on
> >> > loading). The user may want to know whether two nodes using different
> >> > versions can communicate or not. For this purpose the module has to
> >> > export this value through debugfs.
> >> [...]
> >> 
> >> I do hope that you're not planning to use unstable debugfs interfaces
> >> indefinitely.
> > 
> > Why are you refering to the adding of an file as "incompatible" debugfs 
> > interface? I would call it additional information. And the rest of the commit 
> > message is talking about *possible* protocol incompatibilies of the network 
> > protocol (which caused this uncontrolled erruption of anger in a network 
> > maintainer).
> 
> Debugfs files aren't where you store information that userspace actually
> uses in normal situations.
> 
> It's for developer debug, to expose internals that otherwise have no
> business being part of the user visible interfaces.

Ok, you are right. As you already stated, I do see two problems here:
1) debugfs not used properly (this information is not really for "devs")
2) this compatibility version export is like the claim: "compatibility is broken
   everyday". But actually this is not what we really wanted.

This patch simply came from a feature request raised by a user of ours. As Sven
pointed out, we have seen it just as "more information available for network
debugging" and we (in particular me) didn't think about the fact that having
such a patch was against the "stabilisation" process that we are following (we
discussed about this process during the last pull request, so you already know
that we are already going towards this direction).

David, Ben, if you agree I would remove this patch and repost the pull request.


Regards,

-- 
Antonio Quartulli

..each of us alone is worth nothing..
Ernesto "Che" Guevara

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply

* Re: unable to handle paging request, arm, at aio/tcp code, only 3.6
From: Lluís Batlle i Rossell @ 2012-11-19 21:10 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: netdev
In-Reply-To: <1353354095.10798.76.camel@edumazet-glaptop>

On Mon, Nov 19, 2012 at 11:41:35AM -0800, Eric Dumazet wrote:
> On Mon, 2012-11-19 at 19:32 +0100, Lluís Batlle i Rossell wrote:
> > (crosspost from lkml)
> > Hello,
> > 
> > in a Sheevaplug (armv5tel), if I run the kernels 3.6.3 or 3.6.6, they crash in
> > less than 48h. Kernel 3.5.3 runs perfect, as most previous kernels I've been
> > running until 2.6.36.
> > 
> > Can anyone suggest what change can be the cause of that?
> > Or how could I debug this to fix it?
> > 
> > Here is the panic:
> > unable to handle kernel paging request at virtual address ffffffab
> > pgd = d864c000
> > [ffffffab] *pgd=1fffe831, *pte=00000000, *ppte=00000000
> > Internal error: Oops: 1 [#1] PREEMPT ARM
> > Modules linked in: netconsole cbc sg cryptodev(O) fuse ipv6 ums_cypress dm_mod btrfs ext4 jb
> > d2 reiserfs [last unloaded: netconsole]
> > CPU: 0    Tainted: G           O  (3.6.6 #1)
> > PC is at tcp_v6_mtu_reduced+0x40/0x80 [ipv6]
> > LR is at ip6_dst_lookup_tail+0xd8/0xfc [ipv6]
> > pc : [<bf2b02f8>]    lr : [<bf28a67c>]    psr: a0000013
> > ...
> Thanks for the report.
> 
> I believe this is a regression of commit
> 35ad9b9cf7d8a2e6259a0d24022e910adb6f3489
> (ipv6: Add helper inet6_csk_update_pmtu().)
> 
> I'll prepare a patch to fix this.

If it can help, I keep the vmlinux kernel with debug info.

Regards,
Lluís.

^ permalink raw reply

* Re: [PATCH 080/493] fddi: remove use of __devexit_p
From: Jan Engelhardt @ 2012-11-19 21:22 UTC (permalink / raw)
  To: Greg KH; +Cc: Maciej W. Rozycki, Bill Pemberton, netdev
In-Reply-To: <20121119192949.GA16976@kroah.com>

On Monday 2012-11-19 20:29, Greg KH wrote:
>
>CONFIG_HOTPLUG is always enabled now, so that's not an option anymore.
>And again, a user can "hot unbind" a driver from a device from
>userspace, no matter if the bus physically supports it or not.

Which mailing list was this originally posted on? (I only have 
subscribed to netdev, and google has not indexed 000/493--001/493 yet.)

^ permalink raw reply

* Re: [PATCH 080/493] fddi: remove use of __devexit_p
From: Bill Pemberton @ 2012-11-19 21:30 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Greg KH, Maciej W. Rozycki, netdev
In-Reply-To: <alpine.LNX.2.01.1211192222160.12904@nerf07.vanv.qr>

Jan Engelhardt writes:
> 
> On Monday 2012-11-19 20:29, Greg KH wrote:
> >
> >CONFIG_HOTPLUG is always enabled now, so that's not an option anymore.
> >And again, a user can "hot unbind" a driver from a device from
> >userspace, no matter if the bus physically supports it or not.
> 
> Which mailing list was this originally posted on? (I only have 
> subscribed to netdev, and google has not indexed 000/493--001/493 yet.)
> 

The announcement for this patchset was sent to lkml on Friday.  I
originally didn't have the patches themselves Cc'd to the various
subsystems, so no one other than Greg got the patches themselves on
Friday.  I resent them with Cc's today.

-- 
Bill

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox