Netdev List
 help / color / mirror / Atom feed
* Re: [PATCH 471/493] net: remove use of __devexit
From: Marc Kleine-Budde @ 2012-11-19 18:56 UTC (permalink / raw)
  To: Bill Pemberton
  Cc: gregkh, Wolfgang Grandegger, Francois Romieu, Krzysztof Halasa,
	John W. Linville, netdev, linux-can
In-Reply-To: <1353349642-3677-471-git-send-email-wfp5p@virginia.edu>

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

On 11/19/2012 07: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 

You've missed (mainlined via net-next/master):
> ./grcan.c:1749: .remove = __devexit_p(grcan_remove),

Otherwise...
Acked-by: Marc Kleine-Budde <mkl@pengutronix.de> (for the CAN part)

-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |




[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 261 bytes --]

^ permalink raw reply

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

On Mon, 2012-11-19 at 18:49 +0000, Maciej W. Rozycki wrote:
> On Mon, 19 Nov 2012, Bill Pemberton 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?

Drivers can be unbound by poking in sysfs.

Ben.

>  This change scores my NAK as it stands, until updated accordingly or 
> further justified.

-- 
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: [PATCH 3/3] net: mvneta: adjust multiline comments to net/ style
From: David Miller @ 2012-11-19 19:01 UTC (permalink / raw)
  To: sshtylyov
  Cc: thomas.petazzoni, jason, alior, andrew, netdev, gregory.clement,
	linux-arm-kernel
In-Reply-To: <50AA2AD4.6030007@mvista.com>

From: Sergei Shtylyov <sshtylyov@mvista.com>
Date: Mon, 19 Nov 2012 16:49:24 +0400

>    Why the heck you're doing this? It's the preferred style, see
>    Documentation/CodingStyle, chapter 8.

Not in the networking code, we prefer:

	/* Doing it,
	 * like this.
	 */

there.

^ permalink raw reply

* New ASIX USB3 product
From: Jérôme Poulin @ 2012-11-19 19:02 UTC (permalink / raw)
  To: netdev

I just bought a gigabit ethernet USB3 adapter, it is a StarTech
USB31000S adapter and it does not seem to be un ASIX product database
yet.

I tried binding it with the driver and it returns error -32, what does
this mean?

Here is the dmesg output:
[214792.189316] usb 3-1: new SuperSpeed USB device number 11 using xhci_hcd
[214792.207219] usb 3-1: Parent hub missing LPM exit latency info.
Power management will be impacted.
[214792.211922] usb 3-1: New USB device found, idVendor=0b95, idProduct=1790
[214792.211941] usb 3-1: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[214792.211944] usb 3-1: Product: AX88179
[214792.211948] usb 3-1: Manufacturer: ASIX Elec. Corp.
[214792.211951] usb 3-1: SerialNumber: <12 digits...>
[214792.216865] asix: probe of 3-1:1.0 failed with error -32

Here is lsusb output:
Bus 003 Device 012: ID 0b95:1790 ASIX Electronics Corp.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol         0
  bMaxPacketSize0         9
  idVendor           0x0b95 ASIX Electronics Corp.
  idProduct          0x1790
  bcdDevice            1.00
  iManufacturer           1
  iProduct                2
  iSerial                 3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           57
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              124mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol      0
      iInterface              4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              11
        bMaxBurst               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               3
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15

And
T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 12 Spd=5000 MxCh= 0
D:  Ver= 3.00 Cls=ff(vend.) Sub=ff Prot=00 MxPS= 9 #Cfgs=  1
P:  Vendor=0b95 ProdID=1790 Rev=01.00
S:  Manufacturer=ASIX Elec. Corp.
S:  Product=AX88179
S:  SerialNumber=0000249B0438C8
C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=124mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=00 Driver=(none)

^ permalink raw reply

* Re: [PATCH 200/493] irda: remove use of __devinit
From: David Miller @ 2012-11-19 19:06 UTC (permalink / raw)
  To: wfp5p; +Cc: gregkh, samuel, netdev
In-Reply-To: <1353349642-3677-200-git-send-email-wfp5p@virginia.edu>


It is absolutely not reasonable to post nearly 500 patches all
at the same time.

Do not do this ever again.

Thanks.

^ permalink raw reply

* Re: [PATCH 080/493] fddi: remove use of __devexit_p
From: David Miller @ 2012-11-19 19:08 UTC (permalink / raw)
  To: macro; +Cc: wfp5p, gregkh, netdev
In-Reply-To: <alpine.LFD.2.02.1211191842180.25230@eddie.linux-mips.org>

From: "Maciej W. Rozycki" <macro@linux-mips.org>
Date: Mon, 19 Nov 2012 18:49:00 +0000 (GMT)

> On Mon, 19 Nov 2012, Bill Pemberton wrote:
> 
>  This change scores my NAK as it stands, until updated accordingly or 
> further justified.

I also refuse to apply any of these patches, they are rediculous
and also submitted in an inconsiderate and improper manner.

^ permalink raw reply

* Re: [PATCH 04/10] batman-adv: export compatibility version via debugfs
From: David Miller @ 2012-11-19 19:10 UTC (permalink / raw)
  To: bhutchings; +Cc: ordex, netdev, b.a.t.m.a.n, lindner_marek
In-Reply-To: <1353351150.4156.4.camel@bwh-desktop.uk.solarflarecom.com>

From: Ben Hutchings <bhutchings@solarflare.com>
Date: Mon, 19 Nov 2012 18:52:30 +0000

> 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.

I think this is a huge mess and I don't think I'm going to pull this
series for that reason.

Once we allow you to merge your protocol/facility/whatever into the
main kernel tree, you have to be mindful of compatability in a very
real way.

These kinds of changes show that this isn't actually happening.

So the only weapon I have against you doing more foolishly
incompatable changes is to simply stop taking your submissions until
things are corrected.

^ permalink raw reply

* Re: [PATCH net-next ] net: Allow userns root to control tun and tap devices
From: David Miller @ 2012-11-19 19:16 UTC (permalink / raw)
  To: serge-A9i7LUbDfNHQT0dZR+AlfA
  Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
	containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
	ebiederm-aS9lmoZGLiVWk0Htik3J/w
In-Reply-To: <20121119142331.GA4453-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>

From: "Serge E. Hallyn" <serge-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
Date: Mon, 19 Nov 2012 14:23:31 +0000

> Quoting Eric W. Biederman (ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org):
>> 
>> Allow an unpriviled user who has created a user namespace, and then
>> created a network namespace to effectively use the new network
>> namespace, by reducing capable(CAP_NET_ADMIN) calls to
>> ns_capable(net->user_ns,CAP_NET_ADMIN) calls.
>> 
>> Allow setting of the tun iff flags.
>> Allow creating of tun devices.
>> Allow adding a new queue to a tun device.
>> 
> 
> Acked-by: Serge Hallyn <serge.hallyn-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>

Applied.

^ permalink raw reply

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

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?

  Maciej

^ permalink raw reply

* Re: [GIT PULL] Marvell mvneta Ethernet/MDIO drivers checkpatch fixes
From: David Miller @ 2012-11-19 19:16 UTC (permalink / raw)
  To: thomas.petazzoni
  Cc: jason, andrew, gregory.clement, linux-arm-kernel, alior, netdev
In-Reply-To: <1353322834-16952-1-git-send-email-thomas.petazzoni@free-electrons.com>

From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Mon, 19 Nov 2012 12:00:31 +0100

> Sebastian Hesselbarth noticed that the new mvmdio and mvneta drivers
> produce a number of checkpatch warnings, related to the incluse of
> <asm/delay.h> and to the style of multiline comments. The following
> three patches fix those checkpatch warnings. Feel free to integrate
> them either as follow-up patches of the network driver patches, or to
> squash them into the driver patches as you prefer.
> 
> David, are you OK with those patches and the fact that we carry them
> through the arm-soc tree, as we agreed to do for the mvmdio and mvneta
> drivers? Those patches are really simple/stupid fixes.

No problem, thanks.

^ permalink raw reply

* Re: [PATCH 1/1] vhost: Remove duplicate inclusion of linux/vhost.h
From: David Miller @ 2012-11-19 19:18 UTC (permalink / raw)
  To: sachin.kamat; +Cc: kvm, virtualization, netdev, mst, nab, patches
In-Reply-To: <1353324508-22083-1-git-send-email-sachin.kamat@linaro.org>

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.

^ permalink raw reply

* Re: [patch 0/6] s390: network patches for net-next
From: David Miller @ 2012-11-19 19:19 UTC (permalink / raw)
  To: frank.blaschka; +Cc: netdev, linux-s390
In-Reply-To: <20121119124644.679089322@de.ibm.com>

From: frank.blaschka@de.ibm.com
Date: Mon, 19 Nov 2012 13:46:44 +0100

> here are some s390 related patches for net-next

All applied, thanks.

^ permalink raw reply

* 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


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