Re: [PATCH] vhost-blk: Add vhost-blk support v5
On 11/20/2012 04:26 AM, Michael S. Tsirkin wrote: > On Mon, Nov 19, 2012 at 04:53:42PM +0800, Asias He wrote: >> vhost-blk is an in-kernel virito-blk device accelerator. >> >> Due to lack of proper in-kernel AIO interface, this version converts >> guest's I/O request to bio and use submit_bio() to submit I/O directly. >> So this version any supports raw block device as guest's disk image, >> e.g. /dev/sda, /dev/ram0. We can add file based image support to >> vhost-blk once we have in-kernel AIO interface. There are some work in >> progress for in-kernel AIO interface from Dave Kleikamp and Zach Brown: >> >>http://marc.info/?l=linux-fsdevel&m=133312234313122 >> >> Performance evaluation: >> - >> 1) LKVM >> Fio with libaio ioengine on Fusion IO device using kvm tool >> IOPS(k)Before After Improvement >> seq-read 107 121 +13.0% >> seq-write 130 179 +37.6% >> rnd-read 102 122 +19.6% >> rnd-write 125 159 +27.0% >> >> 2) QEMU >> Fio with libaio ioengine on Fusion IO device using QEMU >> IOPS(k)Before After Improvement >> seq-read 76 123 +61.8% >> seq-write 139 173 +24.4% >> rnd-read 73 120 +64.3% >> rnd-write 75 156 +108.0% > > Could you compare with dataplane qemu as well please? Well, I will try to collect it. > >> >> Userspace bits: >> - >> 1) LKVM >> The latest vhost-blk userspace bits for kvm tool can be found here: >> g...@github.com:asias/linux-kvm.git blk.vhost-blk >> >> 2) QEMU >> The latest vhost-blk userspace prototype for QEMU can be found here: >> g...@github.com:asias/qemu.git blk.vhost-blk >> >> Changes in v5: >> - Do not assume the buffer layout >> - Fix wakeup race >> >> Changes in v4: >> - Mark req->status as userspace pointer >> - Use __copy_to_user() instead of copy_to_user() in vhost_blk_set_status() >> - Add if (need_resched()) schedule() in blk thread >> - Kill vhost_blk_stop_vq() and move it into vhost_blk_stop() >> - Use vq_err() instead of pr_warn() >> - Fail un Unsupported request >> - Add flush in vhost_blk_set_features() >> >> Changes in v3: >> - Sending REQ_FLUSH bio instead of vfs_fsync, thanks Christoph! >> - Check file passed by user is a raw block device file >> >> Signed-off-by: Asias He > > Since there are files shared by this and vhost net > it's easiest for me to merge this all through the > vhost tree. > > Jens, could you ack this and the bio usage in this driver > please? > >> --- >> drivers/vhost/Kconfig | 1 + >> drivers/vhost/Kconfig.blk | 10 + >> drivers/vhost/Makefile| 2 + >> drivers/vhost/blk.c | 697 >> ++ >> drivers/vhost/blk.h | 8 + >> 5 files changed, 718 insertions(+) >> create mode 100644 drivers/vhost/Kconfig.blk >> create mode 100644 drivers/vhost/blk.c >> create mode 100644 drivers/vhost/blk.h >> >> diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig >> index 202bba6..acd8038 100644 >> --- a/drivers/vhost/Kconfig >> +++ b/drivers/vhost/Kconfig >> @@ -11,4 +11,5 @@ config VHOST_NET >> >> if STAGING >> source "drivers/vhost/Kconfig.tcm" >> +source "drivers/vhost/Kconfig.blk" >> endif >> diff --git a/drivers/vhost/Kconfig.blk b/drivers/vhost/Kconfig.blk >> new file mode 100644 >> index 000..ff8ab76 >> --- /dev/null >> +++ b/drivers/vhost/Kconfig.blk >> @@ -0,0 +1,10 @@ >> +config VHOST_BLK >> +tristate "Host kernel accelerator for virtio blk (EXPERIMENTAL)" >> +depends on BLOCK && EXPERIMENTAL && m >> +---help--- >> + This kernel module can be loaded in host kernel to accelerate >> + guest block with virtio_blk. Not to be confused with virtio_blk >> + module itself which needs to be loaded in guest kernel. >> + >> + To compile this driver as a module, choose M here: the module will >> + be called vhost_blk. >> diff --git a/drivers/vhost/Makefile b/drivers/vhost/Makefile >> index a27b053..1a8a4a5 100644 >> --- a/drivers/vhost/Makefile >> +++ b/drivers/vhost/Makefile >> @@ -2,3 +2,5 @@ obj-$(CONFIG_VHOST_NET) += vhost_net.o >> vhost_net-y := vhost.o net.o >> >> obj-$(CONFIG_TCM_VHOST) += tcm_vhost.o >> +obj-$(CONFIG_VHOST_BLK) += vhost_blk.o >> +vhost_blk-y := blk.o >> diff --git a/drivers/vhost/blk.c b/drivers/vhost/blk.c >> new file mode 100644 >> index 000..f0f118a >> --- /dev/null >> +++ b/drivers/vhost/blk.c >> @@ -0,0 +1,697 @@ >> +/* >> + * Copyright (C) 2011 Taobao, Inc. >> + * Author: Liu Yuan >> + * >> + * Copyright (C) 2012 Red Hat, Inc. >> + * Author: Asias He >> + * >> + * This work is licensed under the terms of the GNU GPL, version 2. >> + * >> + * virtio-blk server in host kernel. >> + */ >> + >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> +#include >> + >> +#include "vhost.c" >> +#include "vhost.h" >> +#include "blk.h" >> + >> +st
Re: [PATCH 158/493] video: remove use of __devinit
On Tuesday, November 20, 2012 3:22 AM, Bill Pemberton wrote > > CONFIG_HOTPLUG is going away as an option so __devinit is no longer > needed. > > Signed-off-by: Bill Pemberton > Cc: Florian Tobias Schandinat > Cc: Jaya Kumar > Cc: Paul Mackerras > Cc: Benjamin Herrenschmidt > Cc: Russell King > Cc: Jingoo Han > Cc: Ferenc Bakonyi > Cc: Antonino Daplas > Cc: Maik Broemme > Cc: David Brown > Cc: Daniel Walker > Cc: Bryan Huntsman > Cc: Wan ZongShun > Cc: Tomi Valkeinen > Cc: Geoff Levand > Cc: Kristoffer Ericson > Cc: Ben Dooks > Cc: Kukjin Kim > Cc: Thomas Winischhofer > Cc: Michal Januszewski > Cc: Tony Prisk > Cc: linux-fb...@vger.kernel.org > Cc: linux-arm-ker...@lists.infradead.org > Cc: linux-ge...@lists.infradead.org > Cc: linux-nvi...@lists.surfsouth.com > Cc: linux-arm-...@vger.kernel.org > Cc: linux-o...@vger.kernel.org > Cc: linuxppc-...@lists.ozlabs.org > Cc: cbe-oss-...@lists.ozlabs.org > Cc: linux-samsung-...@vger.kernel.org > Cc: xen-de...@lists.xensource.com > Cc: virtualization@lists.linux-foundation.org > --- > drivers/video/acornfb.c| 14 ++-- > drivers/video/arcfb.c | 2 +- > drivers/video/arkfb.c | 2 +- > drivers/video/asiliantfb.c | 6 +- > drivers/video/aty/aty128fb.c | 22 +++--- > drivers/video/aty/atyfb_base.c | 22 +++--- > drivers/video/aty/mach64_ct.c | 4 +- > drivers/video/aty/mach64_cursor.c | 2 +- > drivers/video/aty/radeon_base.c| 14 ++-- > drivers/video/aty/radeon_monitor.c | 16 ++--- > drivers/video/au1100fb.c | 2 +- > drivers/video/au1200fb.c | 2 +- > drivers/video/auo_k1900fb.c| 2 +- > drivers/video/auo_k1901fb.c| 2 +- > drivers/video/auo_k190x.c | 2 +- > drivers/video/bf537-lq035.c| 6 +- > drivers/video/bf54x-lq043fb.c | 2 +- > drivers/video/bfin-lq035q1-fb.c| 6 +- > drivers/video/bfin-t350mcqb-fb.c | 2 +- > drivers/video/bfin_adv7393fb.c | 2 +- > drivers/video/broadsheetfb.c | 8 +-- > drivers/video/bw2.c| 6 +- > drivers/video/carminefb.c | 4 +- > drivers/video/cg14.c | 4 +- > drivers/video/cg3.c| 8 +-- > drivers/video/cg6.c| 8 +-- > drivers/video/chipsfb.c| 4 +- > drivers/video/cirrusfb.c | 10 +-- > drivers/video/cobalt_lcdfb.c | 2 +- > drivers/video/console/sticore.c| 47 ++--- > drivers/video/cyber2000fb.c| 12 ++-- > drivers/video/da8xx-fb.c | 2 +- > drivers/video/dnfb.c | 2 +- > drivers/video/ep93xx-fb.c | 4 +- > drivers/video/exynos/exynos_dp_core.c | 2 +- > drivers/video/ffb.c| 2 +- > drivers/video/fm2fb.c | 4 +- > drivers/video/fsl-diu-fb.c | 4 +- > drivers/video/gbefb.c | 4 +- > drivers/video/geode/gx1fb_core.c | 6 +- > drivers/video/geode/gxfb_core.c| 10 +-- > drivers/video/geode/lxfb_core.c| 10 +-- > drivers/video/grvga.c | 4 +- > drivers/video/gxt4500.c| 4 +- > drivers/video/hecubafb.c | 2 +- > drivers/video/hgafb.c | 4 +- > drivers/video/hitfb.c | 2 +- > drivers/video/hpfb.c | 4 +- > drivers/video/i740fb.c | 4 +- > drivers/video/i810/i810_main.c | 26 +++ > drivers/video/i810/i810_main.h | 2 +- > drivers/video/imsttfb.c| 4 +- > drivers/video/intelfb/intelfbdrv.c | 16 ++--- > drivers/video/jz4740_fb.c | 2 +- > drivers/video/kyro/fbdev.c | 2 +- > drivers/video/leo.c| 2 +- > drivers/video/mb862xx/mb862xxfbdrv.c | 6 +- > drivers/video/mbx/mbxdebugfs.c | 2 +- > drivers/video/mbx/mbxfb.c | 10 +-- > drivers/video/metronomefb.c| 12 ++-- > drivers/video/msm/mddi.c | 6 +- > drivers/video/mxsfb.c | 6 +- > drivers/video/neofb.c
Re: [PATCH] vhost-blk: Add vhost-blk support v5
On Mon, Nov 19, 2012 at 04:53:42PM +0800, Asias He wrote: > vhost-blk is an in-kernel virito-blk device accelerator. > > Due to lack of proper in-kernel AIO interface, this version converts > guest's I/O request to bio and use submit_bio() to submit I/O directly. > So this version any supports raw block device as guest's disk image, > e.g. /dev/sda, /dev/ram0. We can add file based image support to > vhost-blk once we have in-kernel AIO interface. There are some work in > progress for in-kernel AIO interface from Dave Kleikamp and Zach Brown: > >http://marc.info/?l=linux-fsdevel&m=133312234313122 > > Performance evaluation: > - > 1) LKVM > Fio with libaio ioengine on Fusion IO device using kvm tool > IOPS(k)Before After Improvement > seq-read 107 121 +13.0% > seq-write 130 179 +37.6% > rnd-read 102 122 +19.6% > rnd-write 125 159 +27.0% > > 2) QEMU > Fio with libaio ioengine on Fusion IO device using QEMU > IOPS(k)Before After Improvement > seq-read 76 123 +61.8% > seq-write 139 173 +24.4% > rnd-read 73 120 +64.3% > rnd-write 75 156 +108.0% Could you compare with dataplane qemu as well please? > > Userspace bits: > - > 1) LKVM > The latest vhost-blk userspace bits for kvm tool can be found here: > g...@github.com:asias/linux-kvm.git blk.vhost-blk > > 2) QEMU > The latest vhost-blk userspace prototype for QEMU can be found here: > g...@github.com:asias/qemu.git blk.vhost-blk > > Changes in v5: > - Do not assume the buffer layout > - Fix wakeup race > > Changes in v4: > - Mark req->status as userspace pointer > - Use __copy_to_user() instead of copy_to_user() in vhost_blk_set_status() > - Add if (need_resched()) schedule() in blk thread > - Kill vhost_blk_stop_vq() and move it into vhost_blk_stop() > - Use vq_err() instead of pr_warn() > - Fail un Unsupported request > - Add flush in vhost_blk_set_features() > > Changes in v3: > - Sending REQ_FLUSH bio instead of vfs_fsync, thanks Christoph! > - Check file passed by user is a raw block device file > > Signed-off-by: Asias He Since there are files shared by this and vhost net it's easiest for me to merge this all through the vhost tree. Jens, could you ack this and the bio usage in this driver please? > --- > drivers/vhost/Kconfig | 1 + > drivers/vhost/Kconfig.blk | 10 + > drivers/vhost/Makefile| 2 + > drivers/vhost/blk.c | 697 > ++ > drivers/vhost/blk.h | 8 + > 5 files changed, 718 insertions(+) > create mode 100644 drivers/vhost/Kconfig.blk > create mode 100644 drivers/vhost/blk.c > create mode 100644 drivers/vhost/blk.h > > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig > index 202bba6..acd8038 100644 > --- a/drivers/vhost/Kconfig > +++ b/drivers/vhost/Kconfig > @@ -11,4 +11,5 @@ config VHOST_NET > > if STAGING > source "drivers/vhost/Kconfig.tcm" > +source "drivers/vhost/Kconfig.blk" > endif > diff --git a/drivers/vhost/Kconfig.blk b/drivers/vhost/Kconfig.blk > new file mode 100644 > index 000..ff8ab76 > --- /dev/null > +++ b/drivers/vhost/Kconfig.blk > @@ -0,0 +1,10 @@ > +config VHOST_BLK > + tristate "Host kernel accelerator for virtio blk (EXPERIMENTAL)" > + depends on BLOCK && EXPERIMENTAL && m > + ---help--- > + This kernel module can be loaded in host kernel to accelerate > + guest block with virtio_blk. Not to be confused with virtio_blk > + module itself which needs to be loaded in guest kernel. > + > + To compile this driver as a module, choose M here: the module will > + be called vhost_blk. > diff --git a/drivers/vhost/Makefile b/drivers/vhost/Makefile > index a27b053..1a8a4a5 100644 > --- a/drivers/vhost/Makefile > +++ b/drivers/vhost/Makefile > @@ -2,3 +2,5 @@ obj-$(CONFIG_VHOST_NET) += vhost_net.o > vhost_net-y := vhost.o net.o > > obj-$(CONFIG_TCM_VHOST) += tcm_vhost.o > +obj-$(CONFIG_VHOST_BLK) += vhost_blk.o > +vhost_blk-y := blk.o > diff --git a/drivers/vhost/blk.c b/drivers/vhost/blk.c > new file mode 100644 > index 000..f0f118a > --- /dev/null > +++ b/drivers/vhost/blk.c > @@ -0,0 +1,697 @@ > +/* > + * Copyright (C) 2011 Taobao, Inc. > + * Author: Liu Yuan > + * > + * Copyright (C) 2012 Red Hat, Inc. > + * Author: Asias He > + * > + * This work is licensed under the terms of the GNU GPL, version 2. > + * > + * virtio-blk server in host kernel. > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include "vhost.c" > +#include "vhost.h" > +#include "blk.h" > + > +static DEFINE_IDA(vhost_blk_index_ida); > + > +enum { > + VHOST_BLK_VQ_REQ = 0, > + VHOST_BLK_VQ_MAX = 1, > +}; > + > +struct req_page_list { > + struct page **pages; > + int pages_nr; > +}; > + > +struct vhost_blk
Re: [PATCH 471/493] net: remove use of __devexit
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 Cc: Wolfgang Grandegger Cc: Marc Kleine-Budde Cc: "Maciej W. Rozycki" Cc: Jes Sorensen Cc: Samuel Ortiz Cc: Rusty Russell Cc: "Michael S. Tsirkin" Cc: Shreyas Bhatewara Cc: "VMware, Inc." Cc: Francois Romieu Cc: Krzysztof Halasa Cc: "John W. Linville" Cc: Jiri Slaby Cc: Nick Kossifidis Cc: "Luis R. Rodriguez" Cc: Simon Kelley Cc: Stefano Brivio Cc: Stanislav Yakovlev Cc: Dan Williams Cc: Christian Lamparter Cc: Herton Ronaldo Krzesinski Cc: Hin-Tak Leung Cc: Larry Finger Cc: Luciano Coelho Cc: net...@vger.kernel.org Cc: linux-...@vger.kernel.org Cc: linux-hi...@sunsite.dk Cc: virtualization@lists.linux-foundation.org Cc: linux-wirel...@vger.kernel.org Cc: ath5k-de...@lists.ath5k.org Cc: b43-...@lists.infradead.org Cc: libertas-...@lists.infradead.org Cc: xen-de...@lists.xensource.com ACKed-by: Larry Finger 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/
Re: [PATCH 1/1] vhost: Remove duplicate inclusion of linux/vhost.h
From: "Michael S. Tsirkin" 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 >> Date: Mon, 19 Nov 2012 16:58:28 +0530 >> >> > linux/vhost.h was included twice. >> > >> > Signed-off-by: Sachin Kamat >> >> Michael, are you gonna take this? >> >> Thanks. > > Pls pick it up. > > Acked-by: Michael S. Tsirkin Applied to net-next, thanks. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH 1/1] vhost: Remove duplicate inclusion of linux/vhost.h
On Mon, Nov 19, 2012 at 02:18:13PM -0500, David Miller wrote: > From: Sachin Kamat > Date: Mon, 19 Nov 2012 16:58:28 +0530 > > > linux/vhost.h was included twice. > > > > Signed-off-by: Sachin Kamat > > Michael, are you gonna take this? > > Thanks. Pls pick it up. Acked-by: Michael S. Tsirkin ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH 1/1] vhost: Remove duplicate inclusion of linux/vhost.h
From: Sachin Kamat Date: Mon, 19 Nov 2012 16:58:28 +0530 > linux/vhost.h was included twice. > > Signed-off-by: Sachin Kamat Michael, are you gonna take this? Thanks. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [rfc net-next v6 2/3] virtio_net: multiqueue support
On Sun, 2012-11-18 at 11:13 +0200, Michael S. Tsirkin wrote: > On Sat, Nov 17, 2012 at 12:35:29AM +, Ben Hutchings wrote: > > On Tue, 2012-11-13 at 08:40 +0200, Michael S. Tsirkin wrote: > > > On Mon, Nov 05, 2012 at 11:38:39AM +1030, Rusty Russell wrote: > > > > > @@ -924,11 +1032,10 @@ static void virtnet_get_ringparam(struct > > > > > net_device *dev, > > > > > { > > > > > struct virtnet_info *vi = netdev_priv(dev); > > > > > > > > > > - ring->rx_max_pending = virtqueue_get_vring_size(vi->rvq); > > > > > - ring->tx_max_pending = virtqueue_get_vring_size(vi->svq); > > > > > + ring->rx_max_pending = virtqueue_get_vring_size(vi->rq[0].vq); > > > > > + ring->tx_max_pending = virtqueue_get_vring_size(vi->sq[0].vq); > > > > > ring->rx_pending = ring->rx_max_pending; > > > > > ring->tx_pending = ring->tx_max_pending; > > > > > - > > > > > } > > > > > > > > This assumes all vqs are the same size. I think this should probably > > > > check: for mq mode, use the first vq, otherewise use the 0th. > > > > > > For rx_pending/tx_pending I think what is required here is the > > > actual number of outstanding buffers. > > > Dave, Eric - right? > > > > > > So this should be the total over all rings and to be useful, > > > rx_max_pending/tx_max_pending should be the total too. > > > > So far as I know, all current implementations use the number of > > descriptors per ring here. virtio_net should be consistent with this. > > > > Ben. > > Problem is, it could in theory be different between rings. I guess we > could use the maximum. > > What's the right thing to do for rx_pending - I am guessing > we want the current outstanding packets right? The 'max_pending' fields are for the maximum ring sizes supported; the 'pending' fields are for the current ring sizes. The current number of descriptors pending is not included (would be a bit pointless). 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. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH 471/493] net: remove use of __devexit
CONFIG_HOTPLUG is going away as an option so __devexit is no longer needed. Signed-off-by: Bill Pemberton Cc: Wolfgang Grandegger Cc: Marc Kleine-Budde Cc: "Maciej W. Rozycki" Cc: Jes Sorensen Cc: Samuel Ortiz Cc: Rusty Russell Cc: "Michael S. Tsirkin" Cc: Shreyas Bhatewara Cc: "VMware, Inc." Cc: Francois Romieu Cc: Krzysztof Halasa Cc: "John W. Linville" Cc: Jiri Slaby Cc: Nick Kossifidis Cc: "Luis R. Rodriguez" Cc: Simon Kelley Cc: Stefano Brivio Cc: Stanislav Yakovlev Cc: Dan Williams Cc: Christian Lamparter Cc: Herton Ronaldo Krzesinski Cc: Hin-Tak Leung Cc: Larry Finger Cc: Luciano Coelho Cc: net...@vger.kernel.org Cc: linux-...@vger.kernel.org Cc: linux-hi...@sunsite.dk Cc: virtualization@lists.linux-foundation.org Cc: linux-wirel...@vger.kernel.org Cc: ath5k-de...@lists.ath5k.org Cc: b43-...@lists.infradead.org Cc: libertas-...@lists.infradead.org Cc: xen-de...@lists.xensource.com --- 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
[PATCH 242/493] pci: remove use of __devinit
CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by: Bill Pemberton Cc: linux-...@vger.kernel.org Cc: xen-de...@lists.xensource.com Cc: virtualization@lists.linux-foundation.org --- drivers/pci/ioapic.c | 2 +- drivers/pci/pci.c | 2 +- drivers/pci/pcie/aer/aerdrv.c | 4 +- drivers/pci/pcie/portdrv_pci.c | 2 +- drivers/pci/probe.c| 18 +++--- drivers/pci/quirks.c | 134 - drivers/pci/xen-pcifront.c | 10 +-- include/linux/pci.h| 2 +- 8 files changed, 87 insertions(+), 87 deletions(-) diff --git a/drivers/pci/ioapic.c b/drivers/pci/ioapic.c index 2b24fb4..4fdc61e 100644 --- a/drivers/pci/ioapic.c +++ b/drivers/pci/ioapic.c @@ -27,7 +27,7 @@ struct ioapic { u32 gsi_base; }; -static int __devinit ioapic_probe(struct pci_dev *dev, const struct pci_device_id *ent) +static int ioapic_probe(struct pci_dev *dev, const struct pci_device_id *ent) { acpi_handle handle; acpi_status status; diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index adffc6f..133ffd1 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -3867,7 +3867,7 @@ static int __init pci_resource_alignment_sysfs_init(void) late_initcall(pci_resource_alignment_sysfs_init); -static void __devinit pci_no_domains(void) +static void pci_no_domains(void) { #ifdef CONFIG_PCI_DOMAINS pci_domains_supported = 0; diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c index 030cf12..76ef634 100644 --- a/drivers/pci/pcie/aer/aerdrv.c +++ b/drivers/pci/pcie/aer/aerdrv.c @@ -41,7 +41,7 @@ MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_DESCRIPTION(DRIVER_DESC); MODULE_LICENSE("GPL"); -static int __devinit aer_probe(struct pcie_device *dev); +static int aer_probe(struct pcie_device *dev); static void aer_remove(struct pcie_device *dev); static pci_ers_result_t aer_error_detected(struct pci_dev *dev, enum pci_channel_state error); @@ -300,7 +300,7 @@ static void aer_remove(struct pcie_device *dev) * * Invoked when PCI Express bus loads AER service driver. */ -static int __devinit aer_probe(struct pcie_device *dev) +static int aer_probe(struct pcie_device *dev) { int status; struct aer_rpc *rpc; diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c index 0761d90..d4824cb 100644 --- a/drivers/pci/pcie/portdrv_pci.c +++ b/drivers/pci/pcie/portdrv_pci.c @@ -182,7 +182,7 @@ static const struct pci_device_id port_runtime_pm_black_list[] = { * this port device. * */ -static int __devinit pcie_portdrv_probe(struct pci_dev *dev, +static int pcie_portdrv_probe(struct pci_dev *dev, const struct pci_device_id *id) { int status; diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 3d17641..edc3d12 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -305,7 +305,7 @@ static void pci_read_bases(struct pci_dev *dev, unsigned int howmany, int rom) } } -static void __devinit pci_read_bridge_io(struct pci_bus *child) +static void pci_read_bridge_io(struct pci_bus *child) { struct pci_dev *dev = child->self; u8 io_base_lo, io_limit_lo; @@ -345,7 +345,7 @@ static void __devinit pci_read_bridge_io(struct pci_bus *child) } } -static void __devinit pci_read_bridge_mmio(struct pci_bus *child) +static void pci_read_bridge_mmio(struct pci_bus *child) { struct pci_dev *dev = child->self; u16 mem_base_lo, mem_limit_lo; @@ -367,7 +367,7 @@ static void __devinit pci_read_bridge_mmio(struct pci_bus *child) } } -static void __devinit pci_read_bridge_mmio_pref(struct pci_bus *child) +static void pci_read_bridge_mmio_pref(struct pci_bus *child) { struct pci_dev *dev = child->self; u16 mem_base_lo, mem_limit_lo; @@ -417,7 +417,7 @@ static void __devinit pci_read_bridge_mmio_pref(struct pci_bus *child) } } -void __devinit pci_read_bridge_bases(struct pci_bus *child) +void pci_read_bridge_bases(struct pci_bus *child) { struct pci_dev *dev = child->self; struct resource *res; @@ -705,7 +705,7 @@ static void pci_fixup_parent_subordinate_busnr(struct pci_bus *child, int max) * them, we proceed to assigning numbers to the remaining buses in * order to avoid overlaps between old and new bus numbers. */ -int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, int pass) +int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, int pass) { struct pci_bus *child; int is_cardbus = (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS); @@ -1587,7 +1587,7 @@ void pcie_bus_configure_settings(struct pci_bus *bus, u8 mpss) } EXPORT_SYMBOL_GPL(pcie_bus_configure_settings); -unsigned int __devinit pci_scan_child_bus(struct pci_bus *bus) +unsigned int pci_scan_child_bus(struct pci_bus *bus) {
[PATCH 203/493] net: remove use of __devinit
CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by: Bill Pemberton Cc: "Maciej W. Rozycki" Cc: Jes Sorensen Cc: Shreyas Bhatewara Cc: "VMware, Inc." Cc: Francois Romieu Cc: Krzysztof Halasa Cc: net...@vger.kernel.org Cc: linux-hi...@sunsite.dk Cc: xen-de...@lists.xensource.com Cc: virtualization@lists.linux-foundation.org --- drivers/net/arcnet/com20020-pci.c | 2 +- drivers/net/fddi/defxx.c | 18 +- drivers/net/hippi/rrunner.c| 4 ++-- 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/vmxnet3/vmxnet3_drv.c | 2 +- drivers/net/wan/dscc4.c| 2 +- drivers/net/wan/farsync.c | 4 ++-- drivers/net/wan/hd64570.c | 4 ++-- drivers/net/wan/hd64572.c | 4 ++-- drivers/net/wan/ixp4xx_hss.c | 2 +- drivers/net/wan/lmc/lmc_main.c | 2 +- drivers/net/wan/pc300too.c | 2 +- drivers/net/wan/pci200syn.c| 2 +- drivers/net/wan/wanxl.c| 2 +- drivers/net/xen-netfront.c | 4 ++-- 18 files changed, 31 insertions(+), 31 deletions(-) diff --git a/drivers/net/arcnet/com20020-pci.c b/drivers/net/arcnet/com20020-pci.c index dcedba8..e80f04b 100644 --- a/drivers/net/arcnet/com20020-pci.c +++ b/drivers/net/arcnet/com20020-pci.c @@ -61,7 +61,7 @@ module_param(clockp, int, 0); module_param(clockm, int, 0); MODULE_LICENSE("GPL"); -static int __devinit com20020pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) +static int com20020pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { struct net_device *dev; struct arcnet_local *lp; diff --git a/drivers/net/fddi/defxx.c b/drivers/net/fddi/defxx.c index 538f8bb..13f42cc 100644 --- a/drivers/net/fddi/defxx.c +++ b/drivers/net/fddi/defxx.c @@ -515,7 +515,7 @@ static const struct net_device_ops dfx_netdev_ops = { * initialized and the board resources are read and stored in * the device structure. */ -static int __devinit dfx_register(struct device *bdev) +static int dfx_register(struct device *bdev) { static int version_disp; int dfx_bus_pci = DFX_BUS_PCI(bdev); @@ -663,7 +663,7 @@ err_out: * enabled yet. */ -static void __devinit dfx_bus_init(struct net_device *dev) +static void dfx_bus_init(struct net_device *dev) { DFX_board_t *bp = netdev_priv(dev); struct device *bdev = bp->bus_dev; @@ -866,7 +866,7 @@ static void __devexit dfx_bus_uninit(struct net_device *dev) * None */ -static void __devinit dfx_bus_config_check(DFX_board_t *bp) +static void dfx_bus_config_check(DFX_board_t *bp) { struct device __maybe_unused *bdev = bp->bus_dev; int dfx_bus_eisa = DFX_BUS_EISA(bdev); @@ -962,7 +962,7 @@ static void __devinit dfx_bus_config_check(DFX_board_t *bp) * returning from this routine. */ -static int __devinit dfx_driver_init(struct net_device *dev, +static int dfx_driver_init(struct net_device *dev, const char *print_name, resource_size_t bar_start) { @@ -3619,11 +3619,11 @@ static void __devexit dfx_unregister(struct device *bdev) } -static int __devinit __maybe_unused dfx_dev_register(struct device *); +static int __maybe_unused dfx_dev_register(struct device *); static int __devexit __maybe_unused dfx_dev_unregister(struct device *); #ifdef CONFIG_PCI -static int __devinit dfx_pci_register(struct pci_dev *, +static int dfx_pci_register(struct pci_dev *, const struct pci_device_id *); static void __devexit dfx_pci_unregister(struct pci_dev *); @@ -3640,7 +3640,7 @@ static struct pci_driver dfx_pci_driver = { .remove = dfx_pci_unregister, }; -static __devinit int dfx_pci_register(struct pci_dev *pdev, +static int dfx_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) { return dfx_register(&pdev->dev); @@ -3694,7 +3694,7 @@ static struct tc_driver dfx_tc_driver = { }; #endif /* CONFIG_TC */ -static int __devinit __maybe_unused dfx_dev_register(struct device *dev) +static int __maybe_unused dfx_dev_register(struct device *dev) { int status; @@ -3712,7 +3712,7 @@ static int __devexit __maybe_unused dfx_dev_unregister(struct device *dev) } -static int __devinit dfx_init(void) +static int dfx_init(void) { int status; diff --git a/drivers/net/hippi/rrunner.c b/drivers/net/hippi/rrunner.c index 4802b46..164d845 100644 --- a/drivers/net/hippi/rrunner.c +++ b/drivers/net/hippi/rrunner.c @@ -88,7 +88,7 @@ static const struct net_device_ops rr_netdev_ops = { * stack will need to know about I/O vectors or something similar. */ -static int __devinit rr_init_one(struct pci_dev *pdev, +static int rr_init_one
[PATCH 222/493] char: remove use of __devinit
CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by: Bill Pemberton Cc: Geoff Levand Cc: Mattia Dongili Cc: Amit Shah Cc: openipmi-develo...@lists.sourceforge.net Cc: linuxppc-...@lists.ozlabs.org Cc: cbe-oss-...@lists.ozlabs.org Cc: platform-driver-...@vger.kernel.org Cc: virtualization@lists.linux-foundation.org --- drivers/char/ipmi/ipmi_si_intf.c | 24 drivers/char/ps3flash.c| 2 +- drivers/char/sonypi.c | 10 +- drivers/char/tb0219.c | 2 +- drivers/char/virtio_console.c | 2 +- drivers/char/xilinx_hwicap/xilinx_hwicap.c | 6 +++--- 6 files changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index b1e0356..29b6bad 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c @@ -1836,7 +1836,7 @@ static int hotmod_handler(const char *val, struct kernel_param *kp) return rv; } -static int __devinit hardcode_find_bmc(void) +static int hardcode_find_bmc(void) { int ret = -ENODEV; int i; @@ -2023,7 +2023,7 @@ struct SPMITable { s8 spmi_id[1]; /* A '\0' terminated array starts here. */ }; -static int __devinit try_init_spmi(struct SPMITable *spmi) +static int try_init_spmi(struct SPMITable *spmi) { struct smi_info *info; @@ -2106,7 +2106,7 @@ static int __devinit try_init_spmi(struct SPMITable *spmi) return 0; } -static void __devinit spmi_find_bmc(void) +static void spmi_find_bmc(void) { acpi_status status; struct SPMITable *spmi; @@ -2128,7 +2128,7 @@ static void __devinit spmi_find_bmc(void) } } -static int __devinit ipmi_pnp_probe(struct pnp_dev *dev, +static int ipmi_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id) { struct acpi_device *acpi_dev; @@ -2258,7 +2258,7 @@ struct dmi_ipmi_data { u8 slave_addr; }; -static int __devinit decode_dmi(const struct dmi_header *dm, +static int decode_dmi(const struct dmi_header *dm, struct dmi_ipmi_data *dmi) { const u8*data = (const u8 *)dm; @@ -2320,7 +2320,7 @@ static int __devinit decode_dmi(const struct dmi_header *dm, return 0; } -static void __devinit try_init_dmi(struct dmi_ipmi_data *ipmi_data) +static void try_init_dmi(struct dmi_ipmi_data *ipmi_data) { struct smi_info *info; @@ -2388,7 +2388,7 @@ static void __devinit try_init_dmi(struct dmi_ipmi_data *ipmi_data) kfree(info); } -static void __devinit dmi_find_bmc(void) +static void dmi_find_bmc(void) { const struct dmi_device *dev = NULL; struct dmi_ipmi_data data; @@ -2424,7 +2424,7 @@ static void ipmi_pci_cleanup(struct smi_info *info) pci_disable_device(pdev); } -static int __devinit ipmi_pci_probe_regspacing(struct smi_info *info) +static int ipmi_pci_probe_regspacing(struct smi_info *info) { if (info->si_type == SI_KCS) { unsigned char status; @@ -2456,7 +2456,7 @@ static int __devinit ipmi_pci_probe_regspacing(struct smi_info *info) return DEFAULT_REGSPACING; } -static int __devinit ipmi_pci_probe(struct pci_dev *pdev, +static int ipmi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { int rv; @@ -2551,7 +2551,7 @@ static struct pci_driver ipmi_pci_driver = { #endif /* CONFIG_PCI */ static struct of_device_id ipmi_match[]; -static int __devinit ipmi_probe(struct platform_device *dev) +static int ipmi_probe(struct platform_device *dev) { #ifdef CONFIG_OF const struct of_device_id *match; @@ -3059,7 +3059,7 @@ static __devinitdata struct ipmi_default_vals { .port = 0 } }; -static void __devinit default_find_bmc(void) +static void default_find_bmc(void) { struct smi_info *info; int i; @@ -3359,7 +3359,7 @@ static int try_smi_init(struct smi_info *new_smi) return rv; } -static int __devinit init_ipmi_si(void) +static int init_ipmi_si(void) { int i; char *str; diff --git a/drivers/char/ps3flash.c b/drivers/char/ps3flash.c index 6abdde4..588063ac 100644 --- a/drivers/char/ps3flash.c +++ b/drivers/char/ps3flash.c @@ -363,7 +363,7 @@ static struct miscdevice ps3flash_misc = { .fops = &ps3flash_fops, }; -static int __devinit ps3flash_probe(struct ps3_system_bus_device *_dev) +static int ps3flash_probe(struct ps3_system_bus_device *_dev) { struct ps3_storage_device *dev = to_ps3_storage_device(&_dev->core); struct ps3flash_private *priv; diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c index 34f0db3..861efa4 100644 --- a/drivers/char/sonypi.c +++ b/drivers/char/sonypi.c @@ -1164,7 +1164,7 @@ static struct acpi
[PATCH 086/493] net: remove use of __devexit_p
CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer needed. Signed-off-by: Bill Pemberton Cc: Rusty Russell Cc: "Michael S. Tsirkin" Cc: Shreyas Bhatewara Cc: "VMware, Inc." Cc: Francois Romieu Cc: virtualization@lists.linux-foundation.org Cc: net...@vger.kernel.org Cc: xen-de...@lists.xensource.com --- 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/lmc/lmc_main.c| 2 +- drivers/net/xen-netfront.c| 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 97f4ff8..b0c1630 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1285,7 +1285,7 @@ static struct virtio_driver virtio_net_driver = { .driver.owner = THIS_MODULE, .id_table = id_table, .probe =virtnet_probe, - .remove = __devexit_p(virtnet_remove), + .remove = virtnet_remove, .config_changed = virtnet_config_changed, #ifdef CONFIG_PM .freeze = virtnet_freeze, diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 7e9622f..aa1bde8 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c @@ -3302,7 +3302,7 @@ static struct pci_driver vmxnet3_driver = { .name = vmxnet3_driver_name, .id_table = vmxnet3_pciid_table, .probe = vmxnet3_probe_device, - .remove = __devexit_p(vmxnet3_remove_device), + .remove = vmxnet3_remove_device, #ifdef CONFIG_PM .driver.pm = &vmxnet3_pm_ops, #endif diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c index ef36caf..2eddbbf 100644 --- a/drivers/net/wan/dscc4.c +++ b/drivers/net/wan/dscc4.c @@ -2053,7 +2053,7 @@ static struct pci_driver dscc4_driver = { .name = DRV_NAME, .id_table = dscc4_pci_tbl, .probe = dscc4_init_one, - .remove = __devexit_p(dscc4_remove_one), + .remove = dscc4_remove_one, }; module_pci_driver(dscc4_driver); diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c index b627132..0397544 100644 --- a/drivers/net/wan/farsync.c +++ b/drivers/net/wan/farsync.c @@ -2652,7 +2652,7 @@ static struct pci_driver fst_driver = { .name = FST_NAME, .id_table = fst_pci_dev_id, .probe = fst_add_one, -.remove= __devexit_p(fst_remove_one), + .remove = fst_remove_one, .suspend = NULL, .resume= NULL, }; diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c index f5d533a..358e25f 100644 --- a/drivers/net/wan/lmc/lmc_main.c +++ b/drivers/net/wan/lmc/lmc_main.c @@ -1733,7 +1733,7 @@ static struct pci_driver lmc_driver = { .name = "lmc", .id_table = lmc_pci_tbl, .probe = lmc_init_one, - .remove = __devexit_p(lmc_remove_one), + .remove = lmc_remove_one, }; module_pci_driver(lmc_driver); diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index caa0110..3c3b93e 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -1934,7 +1934,7 @@ static int __devexit xennet_remove(struct xenbus_device *dev) static DEFINE_XENBUS_DRIVER(netfront, , .probe = netfront_probe, - .remove = __devexit_p(xennet_remove), + .remove = xennet_remove, .resume = netfront_resume, .otherend_changed = netback_changed, ); -- 1.8.0 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH 247/493] drivers/block: remove use of __devinit
CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by: Bill Pemberton Cc: Chirag Kantharia Cc: Geoff Levand Cc: Jim Paris Cc: Rusty Russell Cc: "Michael S. Tsirkin" Cc: Grant Likely Cc: iss_storage...@hp.com Cc: linuxppc-...@lists.ozlabs.org Cc: cbe-oss-...@lists.ozlabs.org Cc: virtualization@lists.linux-foundation.org --- drivers/block/cciss.c | 62 +++--- drivers/block/cpqarray.c | 6 ++--- drivers/block/nvme.c | 10 drivers/block/ps3disk.c| 2 +- drivers/block/ps3vram.c| 4 +-- drivers/block/sunvdc.c | 6 ++--- drivers/block/swim.c | 6 ++--- drivers/block/swim3.c | 2 +- drivers/block/umem.c | 2 +- drivers/block/virtio_blk.c | 4 +-- drivers/block/xsysace.c| 6 ++--- 11 files changed, 55 insertions(+), 55 deletions(-) diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index b40068f..3096c79 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -181,8 +181,8 @@ static void cciss_geometry_inquiry(ctlr_info_t *h, int logvol, sector_t total_size, unsigned int block_size, InquiryData_struct *inq_buff, drive_info_struct *drv); -static void __devinit cciss_interrupt_mode(ctlr_info_t *); -static int __devinit cciss_enter_simple_mode(struct ctlr_info *h); +static void cciss_interrupt_mode(ctlr_info_t *); +static int cciss_enter_simple_mode(struct ctlr_info *h); static void start_io(ctlr_info_t *h); static int sendcmd_withirq(ctlr_info_t *h, __u8 cmd, void *buff, size_t size, __u8 page_code, unsigned char scsi3addr[], @@ -199,13 +199,13 @@ static void cciss_device_release(struct device *dev); static void cciss_free_gendisk(ctlr_info_t *h, int drv_index); static void cciss_free_drive_info(ctlr_info_t *h, int drv_index); static inline u32 next_command(ctlr_info_t *h); -static int __devinit cciss_find_cfg_addrs(struct pci_dev *pdev, +static int cciss_find_cfg_addrs(struct pci_dev *pdev, void __iomem *vaddr, u32 *cfg_base_addr, u64 *cfg_base_addr_index, u64 *cfg_offset); -static int __devinit cciss_pci_find_memory_BAR(struct pci_dev *pdev, +static int cciss_pci_find_memory_BAR(struct pci_dev *pdev, unsigned long *memory_bar); static inline u32 cciss_tag_discard_error_bits(ctlr_info_t *h, u32 tag); -static __devinit int write_driver_ver_to_cfgtable( +static int write_driver_ver_to_cfgtable( CfgTable_struct __iomem *cfgtable); /* performant mode helper functions */ @@ -550,7 +550,7 @@ static const struct file_operations cciss_proc_fops = { .write = cciss_proc_write, }; -static void __devinit cciss_procinit(ctlr_info_t *h) +static void cciss_procinit(ctlr_info_t *h) { struct proc_dir_entry *pde; @@ -2663,7 +2663,7 @@ static int fill_cmd(ctlr_info_t *h, CommandList_struct *c, __u8 cmd, void *buff, return status; } -static int __devinit cciss_send_reset(ctlr_info_t *h, unsigned char *scsi3addr, +static int cciss_send_reset(ctlr_info_t *h, unsigned char *scsi3addr, u8 reset_type) { CommandList_struct *c; @@ -3919,7 +3919,7 @@ static void calc_bucket_map(int bucket[], int num_buckets, } } -static void __devinit cciss_wait_for_mode_change_ack(ctlr_info_t *h) +static void cciss_wait_for_mode_change_ack(ctlr_info_t *h) { int i; @@ -3933,7 +3933,7 @@ static void __devinit cciss_wait_for_mode_change_ack(ctlr_info_t *h) } } -static __devinit void cciss_enter_performant_mode(ctlr_info_t *h, +static void cciss_enter_performant_mode(ctlr_info_t *h, u32 use_short_tags) { /* This is a bit complicated. There are 8 registers on @@ -4000,7 +4000,7 @@ static __devinit void cciss_enter_performant_mode(ctlr_info_t *h, " performant mode\n"); } -static void __devinit cciss_put_controller_into_performant_mode(ctlr_info_t *h) +static void cciss_put_controller_into_performant_mode(ctlr_info_t *h) { __u32 trans_support; @@ -4062,7 +4062,7 @@ clean_up: * controllers that are capable. If not, we use IO-APIC mode. */ -static void __devinit cciss_interrupt_mode(ctlr_info_t *h) +static void cciss_interrupt_mode(ctlr_info_t *h) { #ifdef CONFIG_PCI_MSI int err; @@ -4108,7 +4108,7 @@ default_int_mode: return; } -static int __devinit cciss_lookup_board_id(struct pci_dev *pdev, u32 *board_id) +static int cciss_lookup_board_id(struct pci_dev *pdev, u32 *board_id) { int i; u32 subsystem_vendor_id, subsystem_device_id; @@ -4134,7 +4134,7 @@ static inline bool cciss_board_disabled(ctlr_info_t *h) return ((command & PCI_COMMAND_MEMORY) == 0); } -static int __devinit cciss_pci_find_memory_BAR(struct pci_dev *pdev, +static int cciss_pci_find_memory_BAR(struct pci_dev *pdev, unsigned long *memory_bar) { int i;
[PATCH 392/493] block: remove use of __devexit
CONFIG_HOTPLUG is going away as an option so __devexit is no longer needed. Signed-off-by: Bill Pemberton Cc: Chirag Kantharia Cc: Rusty Russell Cc: "Michael S. Tsirkin" Cc: Grant Likely Cc: iss_storage...@hp.com Cc: virtualization@lists.linux-foundation.org --- drivers/block/cciss.c | 2 +- drivers/block/cpqarray.c | 6 +++--- drivers/block/nvme.c | 2 +- drivers/block/swim.c | 2 +- drivers/block/virtio_blk.c | 4 ++-- drivers/block/xsysace.c| 6 +++--- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 3096c79..d5b415c97 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -5229,7 +5229,7 @@ static int cciss_enter_simple_mode(struct ctlr_info *h) } -static void __devexit cciss_remove_one(struct pci_dev *pdev) +static void cciss_remove_one(struct pci_dev *pdev) { ctlr_info_t *h; int i, j; diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c index 34973bc..6c2aa76 100644 --- a/drivers/block/cpqarray.c +++ b/drivers/block/cpqarray.c @@ -320,7 +320,7 @@ static void release_io_mem(ctlr_info_t *c) c->io_mem_length = 0; } -static void __devexit cpqarray_remove_one(int i) +static void cpqarray_remove_one(int i) { int j; char buff[4]; @@ -352,7 +352,7 @@ static void __devexit cpqarray_remove_one(int i) free_hba(i); } -static void __devexit cpqarray_remove_one_pci (struct pci_dev *pdev) +static void cpqarray_remove_one_pci (struct pci_dev *pdev) { int i; ctlr_info_t *tmp_ptr; @@ -377,7 +377,7 @@ static void __devexit cpqarray_remove_one_pci (struct pci_dev *pdev) /* removing an instance that was not removed automatically.. * must be an eisa card. */ -static void __devexit cpqarray_remove_one_eisa (int i) +static void cpqarray_remove_one_eisa (int i) { if (hba[i] == NULL) { printk(KERN_ERR "cpqarray: controller %d appears to have" diff --git a/drivers/block/nvme.c b/drivers/block/nvme.c index 8a7dc4c..7f40623 100644 --- a/drivers/block/nvme.c +++ b/drivers/block/nvme.c @@ -1702,7 +1702,7 @@ static int nvme_probe(struct pci_dev *pdev, return result; } -static void __devexit nvme_remove(struct pci_dev *pdev) +static void nvme_remove(struct pci_dev *pdev) { struct nvme_dev *dev = pci_get_drvdata(pdev); nvme_dev_remove(dev); diff --git a/drivers/block/swim.c b/drivers/block/swim.c index 989f5bd..a8e09b8 100644 --- a/drivers/block/swim.c +++ b/drivers/block/swim.c @@ -936,7 +936,7 @@ out: return ret; } -static int __devexit swim_remove(struct platform_device *dev) +static int swim_remove(struct platform_device *dev) { struct swim_priv *swd = platform_get_drvdata(dev); int drive; diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c index 9f64e5cb..6c6df0c 100644 --- a/drivers/block/virtio_blk.c +++ b/drivers/block/virtio_blk.c @@ -885,7 +885,7 @@ out: return err; } -static void __devexit virtblk_remove(struct virtio_device *vdev) +static void virtblk_remove(struct virtio_device *vdev) { struct virtio_blk *vblk = vdev->priv; int index = vblk->index; @@ -963,7 +963,7 @@ static unsigned int features[] = { /* * virtio_blk causes spurious section mismatch warning by - * simultaneously referring to a and a __devexit function. + * simultaneously referring to a and a function. * Use __refdata to avoid this warning. */ static struct virtio_driver __refdata virtio_blk = { diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c index 1700b20..a784b176 100644 --- a/drivers/block/xsysace.c +++ b/drivers/block/xsysace.c @@ -1074,7 +1074,7 @@ err_ioremap: return -ENOMEM; } -static void __devexit ace_teardown(struct ace_device *ace) +static void ace_teardown(struct ace_device *ace) { if (ace->gd) { del_gendisk(ace->gd); @@ -1135,7 +1135,7 @@ err_noreg: return rc; } -static void __devexit ace_free(struct device *dev) +static void ace_free(struct device *dev) { struct ace_device *ace = dev_get_drvdata(dev); dev_dbg(dev, "ace_free(%p)\n", dev); @@ -1182,7 +1182,7 @@ static int ace_probe(struct platform_device *dev) /* * Platform bus remove() method */ -static int __devexit ace_remove(struct platform_device *dev) +static int ace_remove(struct platform_device *dev) { ace_free(&dev->dev); return 0; -- 1.8.0 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH 297/493] xen: remove use of __devinitdata
CONFIG_HOTPLUG is going away as an option so __devinitdata is no longer needed. Signed-off-by: Bill Pemberton Cc: xen-de...@lists.xensource.com Cc: virtualization@lists.linux-foundation.org --- drivers/xen/platform-pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/xen/platform-pci.c b/drivers/xen/platform-pci.c index 017f66d..361aae3 100644 --- a/drivers/xen/platform-pci.c +++ b/drivers/xen/platform-pci.c @@ -170,7 +170,7 @@ pci_out: return ret; } -static struct pci_device_id platform_pci_tbl[] __devinitdata = { +static struct pci_device_id platform_pci_tbl[] = { {PCI_VENDOR_ID_XEN, PCI_DEVICE_ID_XEN_PLATFORM, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, {0,} -- 1.8.0 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH 432/493] virtio: remove use of __devexit
CONFIG_HOTPLUG is going away as an option so __devexit is no longer needed. Signed-off-by: Bill Pemberton Cc: Rusty Russell Cc: "Michael S. Tsirkin" Cc: virtualization@lists.linux-foundation.org --- drivers/virtio/virtio_balloon.c | 2 +- drivers/virtio/virtio_mmio.c| 2 +- drivers/virtio/virtio_pci.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index c61cce9..ec1e690 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -493,7 +493,7 @@ static void remove_common(struct virtio_balloon *vb) vb->vdev->config->del_vqs(vb->vdev); } -static void __devexit virtballoon_remove(struct virtio_device *vdev) +static void virtballoon_remove(struct virtio_device *vdev) { struct virtio_balloon *vb = vdev->priv; diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index 6e0047b..6bcafdd 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -493,7 +493,7 @@ static int virtio_mmio_probe(struct platform_device *pdev) return register_virtio_device(&vm_dev->vdev); } -static int __devexit virtio_mmio_remove(struct platform_device *pdev) +static int virtio_mmio_remove(struct platform_device *pdev) { struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev); diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c index 325e847..941028e 100644 --- a/drivers/virtio/virtio_pci.c +++ b/drivers/virtio/virtio_pci.c @@ -751,7 +751,7 @@ out: return err; } -static void __devexit virtio_pci_remove(struct pci_dev *pci_dev) +static void virtio_pci_remove(struct pci_dev *pci_dev) { struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); -- 1.8.0 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH 122/493] virtio: remove use of __devexit_p
CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer needed. Signed-off-by: Bill Pemberton Cc: Rusty Russell Cc: "Michael S. Tsirkin" Cc: virtualization@lists.linux-foundation.org --- drivers/virtio/virtio_balloon.c | 2 +- drivers/virtio/virtio_mmio.c| 2 +- drivers/virtio/virtio_pci.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 2a4f1e3..c61cce9 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -545,7 +545,7 @@ static struct virtio_driver virtio_balloon_driver = { .driver.owner = THIS_MODULE, .id_table = id_table, .probe =virtballoon_probe, - .remove = __devexit_p(virtballoon_remove), + .remove = virtballoon_remove, .config_changed = virtballoon_changed, #ifdef CONFIG_PM .freeze = virtballoon_freeze, diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index 5a0e1d3..5584f48 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -630,7 +630,7 @@ MODULE_DEVICE_TABLE(of, virtio_mmio_match); static struct platform_driver virtio_mmio_driver = { .probe = virtio_mmio_probe, - .remove = __devexit_p(virtio_mmio_remove), + .remove = virtio_mmio_remove, .driver = { .name = "virtio-mmio", .owner = THIS_MODULE, diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c index e3ecc94..9bd7fb2 100644 --- a/drivers/virtio/virtio_pci.c +++ b/drivers/virtio/virtio_pci.c @@ -822,7 +822,7 @@ static struct pci_driver virtio_pci_driver = { .name = "virtio-pci", .id_table = virtio_pci_id_table, .probe = virtio_pci_probe, - .remove = __devexit_p(virtio_pci_remove), + .remove = virtio_pci_remove, #ifdef CONFIG_PM .driver.pm = &virtio_pci_pm_ops, #endif -- 1.8.0 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH 042/493] drivers/block: remove use of __devexit_p
CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer needed. Signed-off-by: Bill Pemberton Cc: Chirag Kantharia Cc: Rusty Russell Cc: "Michael S. Tsirkin" Cc: Grant Likely Cc: iss_storage...@hp.com Cc: virtualization@lists.linux-foundation.org --- drivers/block/cciss.c | 2 +- drivers/block/cpqarray.c | 2 +- drivers/block/nvme.c | 2 +- drivers/block/swim.c | 2 +- drivers/block/virtio_blk.c | 2 +- drivers/block/xsysace.c| 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 6526157..b40068f 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -5308,7 +5308,7 @@ static void __devexit cciss_remove_one(struct pci_dev *pdev) static struct pci_driver cciss_pci_driver = { .name = "cciss", .probe = cciss_init_one, - .remove = __devexit_p(cciss_remove_one), + .remove = cciss_remove_one, .id_table = cciss_pci_device_id,/* id_table */ .shutdown = cciss_shutdown, }; diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c index 9125bbe..389e314 100644 --- a/drivers/block/cpqarray.c +++ b/drivers/block/cpqarray.c @@ -536,7 +536,7 @@ static int __devinit cpqarray_init_one( struct pci_dev *pdev, static struct pci_driver cpqarray_pci_driver = { .name = "cpqarray", .probe = cpqarray_init_one, - .remove = __devexit_p(cpqarray_remove_one_pci), + .remove = cpqarray_remove_one_pci, .id_table = cpqarray_pci_device_id, }; diff --git a/drivers/block/nvme.c b/drivers/block/nvme.c index 931769e..1f7acff 100644 --- a/drivers/block/nvme.c +++ b/drivers/block/nvme.c @@ -1747,7 +1747,7 @@ static struct pci_driver nvme_driver = { .name = "nvme", .id_table = nvme_id_table, .probe = nvme_probe, - .remove = __devexit_p(nvme_remove), + .remove = nvme_remove, .suspend= nvme_suspend, .resume = nvme_resume, .err_handler= &nvme_err_handler, diff --git a/drivers/block/swim.c b/drivers/block/swim.c index 6d5a914..314f0b4 100644 --- a/drivers/block/swim.c +++ b/drivers/block/swim.c @@ -972,7 +972,7 @@ static int __devexit swim_remove(struct platform_device *dev) static struct platform_driver swim_driver = { .probe = swim_probe, - .remove = __devexit_p(swim_remove), + .remove = swim_remove, .driver = { .name = CARDNAME, .owner = THIS_MODULE, diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c index 0bdde8f..dbba5cf 100644 --- a/drivers/block/virtio_blk.c +++ b/drivers/block/virtio_blk.c @@ -973,7 +973,7 @@ static struct virtio_driver __refdata virtio_blk = { .driver.owner = THIS_MODULE, .id_table = id_table, .probe = virtblk_probe, - .remove = __devexit_p(virtblk_remove), + .remove = virtblk_remove, .config_changed = virtblk_config_changed, #ifdef CONFIG_PM .freeze = virtblk_freeze, diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c index 1a17e33..d925121 100644 --- a/drivers/block/xsysace.c +++ b/drivers/block/xsysace.c @@ -1204,7 +1204,7 @@ MODULE_DEVICE_TABLE(of, ace_of_match); static struct platform_driver ace_platform_driver = { .probe = ace_probe, - .remove = __devexit_p(ace_remove), + .remove = ace_remove, .driver = { .owner = THIS_MODULE, .name = "xsysace", -- 1.8.0 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH 153/493] xen: remove use of __devinit
CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by: Bill Pemberton Cc: xen-de...@lists.xensource.com Cc: virtualization@lists.linux-foundation.org --- drivers/xen/grant-table.c | 2 +- drivers/xen/platform-pci.c | 2 +- drivers/xen/xen-pciback/pci_stub.c | 10 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c index 043bf07..a4982a3 100644 --- a/drivers/xen/grant-table.c +++ b/drivers/xen/grant-table.c @@ -1205,7 +1205,7 @@ int gnttab_init(void) } EXPORT_SYMBOL_GPL(gnttab_init); -static int __devinit __gnttab_init(void) +static int __gnttab_init(void) { /* Delay grant-table initialization in the PV on HVM case */ if (xen_hvm_domain()) diff --git a/drivers/xen/platform-pci.c b/drivers/xen/platform-pci.c index 97ca359..017f66d 100644 --- a/drivers/xen/platform-pci.c +++ b/drivers/xen/platform-pci.c @@ -101,7 +101,7 @@ static int platform_pci_resume(struct pci_dev *pdev) return 0; } -static int __devinit platform_pci_init(struct pci_dev *pdev, +static int platform_pci_init(struct pci_dev *pdev, const struct pci_device_id *ent) { int i, ret; diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c index 961d664..4ac9da7 100644 --- a/drivers/xen/xen-pciback/pci_stub.c +++ b/drivers/xen/xen-pciback/pci_stub.c @@ -270,7 +270,7 @@ void pcistub_put_pci_dev(struct pci_dev *dev) up_write(&pcistub_sem); } -static int __devinit pcistub_match_one(struct pci_dev *dev, +static int pcistub_match_one(struct pci_dev *dev, struct pcistub_device_id *pdev_id) { /* Match the specified device by domain, bus, slot, func and also if @@ -290,7 +290,7 @@ static int __devinit pcistub_match_one(struct pci_dev *dev, return 0; } -static int __devinit pcistub_match(struct pci_dev *dev) +static int pcistub_match(struct pci_dev *dev) { struct pcistub_device_id *pdev_id; unsigned long flags; @@ -308,7 +308,7 @@ static int __devinit pcistub_match(struct pci_dev *dev) return found; } -static int __devinit pcistub_init_device(struct pci_dev *dev) +static int pcistub_init_device(struct pci_dev *dev) { struct xen_pcibk_dev_data *dev_data; int err = 0; @@ -426,7 +426,7 @@ static int __init pcistub_init_devices_late(void) return 0; } -static int __devinit pcistub_seize(struct pci_dev *dev) +static int pcistub_seize(struct pci_dev *dev) { struct pcistub_device *psdev; unsigned long flags; @@ -461,7 +461,7 @@ static int __devinit pcistub_seize(struct pci_dev *dev) return err; } -static int __devinit pcistub_probe(struct pci_dev *dev, +static int pcistub_probe(struct pci_dev *dev, const struct pci_device_id *id) { int err = 0; -- 1.8.0 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH 156/493] virtio: remove use of __devinit
CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by: Bill Pemberton Cc: Rusty Russell Cc: "Michael S. Tsirkin" Cc: virtualization@lists.linux-foundation.org --- drivers/virtio/virtio_mmio.c | 2 +- drivers/virtio/virtio_pci.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index 5584f48..6e0047b 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -440,7 +440,7 @@ static struct virtio_config_ops virtio_mmio_config_ops = { /* Platform device */ -static int __devinit virtio_mmio_probe(struct platform_device *pdev) +static int virtio_mmio_probe(struct platform_device *pdev) { struct virtio_mmio_device *vm_dev; struct resource *mem; diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c index 9bd7fb2..325e847 100644 --- a/drivers/virtio/virtio_pci.c +++ b/drivers/virtio/virtio_pci.c @@ -676,7 +676,7 @@ static void virtio_pci_release_dev(struct device *_d) } /* the PCI probing function */ -static int __devinit virtio_pci_probe(struct pci_dev *pci_dev, +static int virtio_pci_probe(struct pci_dev *pci_dev, const struct pci_device_id *id) { struct virtio_pci_device *vp_dev; -- 1.8.0 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH 1/1] vhost: Remove duplicate inclusion of linux/vhost.h
linux/vhost.h was included twice. Signed-off-by: Sachin Kamat --- drivers/vhost/tcm_vhost.c |1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/drivers/vhost/tcm_vhost.c b/drivers/vhost/tcm_vhost.c index 73bbc46..798792b 100644 --- a/drivers/vhost/tcm_vhost.c +++ b/drivers/vhost/tcm_vhost.c @@ -34,7 +34,6 @@ #include #include #include -#include #include #include #include -- 1.7.4.1 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH 1/1] xen/xenbus: Remove duplicate inclusion of asm/xen/hypervisor.h
asm/xen/hypervisor.h was included twice. Signed-off-by: Sachin Kamat --- drivers/xen/xenbus/xenbus_xs.c |1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c index acedeab..88e677b 100644 --- a/drivers/xen/xenbus/xenbus_xs.c +++ b/drivers/xen/xenbus/xenbus_xs.c @@ -48,7 +48,6 @@ #include #include #include "xenbus_comms.h" -#include struct xs_stored_msg { struct list_head list; -- 1.7.4.1 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH v4] x86/xen: Use __pa_symbol instead of __pa on C visible symbols
This change updates a few of the functions to use __pa_symbol when translating C visible symbols instead of __pa. By using __pa_symbol we are able to drop a few extra lines of code as don't have to test to see if the virtual pointer is a part of the kernel text or just standard virtual memory. Cc: Konrad Rzeszutek Wilk Signed-off-by: Alexander Duyck --- v4: I have spun this patch off as a separate patch for v4 due to the fact that this patch doesn't apply cleanly to Linus's tree. As such I am submitting it based off of the linux-next tree to be accepted in the Xen tree since this patch can actually exist on its own without the need for the other patches in the original __phys_addr performance series. arch/x86/xen/mmu.c | 21 +++-- 1 files changed, 11 insertions(+), 10 deletions(-) diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index 4a05b39..a63e5f9 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -1486,7 +1486,8 @@ static int xen_pgd_alloc(struct mm_struct *mm) if (user_pgd != NULL) { user_pgd[pgd_index(VSYSCALL_START)] = - __pgd(__pa(level3_user_vsyscall) | _PAGE_TABLE); + __pgd(__pa_symbol(level3_user_vsyscall) | + _PAGE_TABLE); ret = 0; } @@ -1958,10 +1959,10 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn) * pgd. */ if (xen_feature(XENFEAT_writable_page_tables)) { - native_write_cr3(__pa(init_level4_pgt)); + native_write_cr3(__pa_symbol(init_level4_pgt)); } else { xen_mc_batch(); - __xen_write_cr3(true, __pa(init_level4_pgt)); + __xen_write_cr3(true, __pa_symbol(init_level4_pgt)); xen_mc_issue(PARAVIRT_LAZY_CPU); } /* We can't that easily rip out L3 and L2, as the Xen pagetables are @@ -1984,10 +1985,10 @@ static RESERVE_BRK_ARRAY(pmd_t, swapper_kernel_pmd, PTRS_PER_PMD); static void __init xen_write_cr3_init(unsigned long cr3) { - unsigned long pfn = PFN_DOWN(__pa(swapper_pg_dir)); + unsigned long pfn = PFN_DOWN(__pa_symbol(swapper_pg_dir)); - BUG_ON(read_cr3() != __pa(initial_page_table)); - BUG_ON(cr3 != __pa(swapper_pg_dir)); + BUG_ON(read_cr3() != __pa_symbol(initial_page_table)); + BUG_ON(cr3 != __pa_symbol(swapper_pg_dir)); /* * We are switching to swapper_pg_dir for the first time (from @@ -2011,7 +2012,7 @@ static void __init xen_write_cr3_init(unsigned long cr3) pin_pagetable_pfn(MMUEXT_PIN_L3_TABLE, pfn); pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, - PFN_DOWN(__pa(initial_page_table))); + PFN_DOWN(__pa_symbol(initial_page_table))); set_page_prot(initial_page_table, PAGE_KERNEL); set_page_prot(initial_kernel_pmd, PAGE_KERNEL); @@ -2036,7 +2037,7 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn) copy_page(initial_page_table, pgd); initial_page_table[KERNEL_PGD_BOUNDARY] = - __pgd(__pa(initial_kernel_pmd) | _PAGE_PRESENT); + __pgd(__pa_symbol(initial_kernel_pmd) | _PAGE_PRESENT); set_page_prot(initial_kernel_pmd, PAGE_KERNEL_RO); set_page_prot(initial_page_table, PAGE_KERNEL_RO); @@ -2045,8 +2046,8 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn) pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd))); pin_pagetable_pfn(MMUEXT_PIN_L3_TABLE, - PFN_DOWN(__pa(initial_page_table))); - xen_write_cr3(__pa(initial_page_table)); + PFN_DOWN(__pa_symbol(initial_page_table))); + xen_write_cr3(__pa_symbol(initial_page_table)); memblock_reserve(__pa(xen_start_info->pt_base), xen_start_info->nr_pt_frames * PAGE_SIZE); ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [Xen-devel] [PATCH 09/14] xen: events: Remove redundant check on unsigned variable
On 11/19/2012 04:01 PM, Ian Campbell wrote: > On Mon, 2012-11-19 at 03:52 +, Tushar Behera wrote: >> On 11/16/2012 10:23 PM, Jeremy Fitzhardinge wrote: >>> To be honest I'd nack this kind of patch. The test is only redundant in the >>> most trivial sense that the compiler can easily optimise away. The point of >>> the test is to make sure that the range is OK even if the type subsequently >>> becomes signed (to hold a -ve error, for example). >>> >>> J >>> >> >> The check is on the function argument which is unsigned, so checking '< >> 0' doesn't make sense. We should force signed check only if the argument >> is of signed type. In any case, even if irq has been assigned some error >> value, that would be caught by the check irq >= nr_irqs. > > Jeremy is (I think) arguing that this check is not redundant because > someone might change the type of the argument to be signed and until > then the compiler can trivially optimise the check away, so what's the > harm in it? > > I'm somewhat inclined to agree with him. > > Ian. > Ok, I don't have much argument against this. -- Tushar Behera ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [Xen-devel] [PATCH 09/14] xen: events: Remove redundant check on unsigned variable
On Mon, 2012-11-19 at 03:52 +, Tushar Behera wrote: > On 11/16/2012 10:23 PM, Jeremy Fitzhardinge wrote: > > To be honest I'd nack this kind of patch. The test is only redundant in the > > most trivial sense that the compiler can easily optimise away. The point of > > the test is to make sure that the range is OK even if the type subsequently > > becomes signed (to hold a -ve error, for example). > > > > J > > > > The check is on the function argument which is unsigned, so checking '< > 0' doesn't make sense. We should force signed check only if the argument > is of signed type. In any case, even if irq has been assigned some error > value, that would be caught by the check irq >= nr_irqs. Jeremy is (I think) arguing that this check is not redundant because someone might change the type of the argument to be signed and until then the compiler can trivially optimise the check away, so what's the harm in it? I'm somewhat inclined to agree with him. Ian. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [Pv-drivers] [PATCH 0/6] VSOCK for Linux upstreaming
On Thu, 2012-11-15 at 15:32 -0600, Anthony Liguori wrote: > > The concept was Nacked and that led to the abomination of virtio-serial. If > an > address family for virtualization is on the table, we should reconsider > AF_VMCHANNEL. > > I'd be thrilled to get rid of virtio-serial... Ack. Ben. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH] vhost-blk: Add vhost-blk support v5
vhost-blk is an in-kernel virito-blk device accelerator. Due to lack of proper in-kernel AIO interface, this version converts guest's I/O request to bio and use submit_bio() to submit I/O directly. So this version any supports raw block device as guest's disk image, e.g. /dev/sda, /dev/ram0. We can add file based image support to vhost-blk once we have in-kernel AIO interface. There are some work in progress for in-kernel AIO interface from Dave Kleikamp and Zach Brown: http://marc.info/?l=linux-fsdevel&m=133312234313122 Performance evaluation: - 1) LKVM Fio with libaio ioengine on Fusion IO device using kvm tool IOPS(k)Before After Improvement seq-read 107 121 +13.0% seq-write 130 179 +37.6% rnd-read 102 122 +19.6% rnd-write 125 159 +27.0% 2) QEMU Fio with libaio ioengine on Fusion IO device using QEMU IOPS(k)Before After Improvement seq-read 76 123 +61.8% seq-write 139 173 +24.4% rnd-read 73 120 +64.3% rnd-write 75 156 +108.0% Userspace bits: - 1) LKVM The latest vhost-blk userspace bits for kvm tool can be found here: g...@github.com:asias/linux-kvm.git blk.vhost-blk 2) QEMU The latest vhost-blk userspace prototype for QEMU can be found here: g...@github.com:asias/qemu.git blk.vhost-blk Changes in v5: - Do not assume the buffer layout - Fix wakeup race Changes in v4: - Mark req->status as userspace pointer - Use __copy_to_user() instead of copy_to_user() in vhost_blk_set_status() - Add if (need_resched()) schedule() in blk thread - Kill vhost_blk_stop_vq() and move it into vhost_blk_stop() - Use vq_err() instead of pr_warn() - Fail un Unsupported request - Add flush in vhost_blk_set_features() Changes in v3: - Sending REQ_FLUSH bio instead of vfs_fsync, thanks Christoph! - Check file passed by user is a raw block device file Signed-off-by: Asias He --- drivers/vhost/Kconfig | 1 + drivers/vhost/Kconfig.blk | 10 + drivers/vhost/Makefile| 2 + drivers/vhost/blk.c | 697 ++ drivers/vhost/blk.h | 8 + 5 files changed, 718 insertions(+) create mode 100644 drivers/vhost/Kconfig.blk create mode 100644 drivers/vhost/blk.c create mode 100644 drivers/vhost/blk.h diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig index 202bba6..acd8038 100644 --- a/drivers/vhost/Kconfig +++ b/drivers/vhost/Kconfig @@ -11,4 +11,5 @@ config VHOST_NET if STAGING source "drivers/vhost/Kconfig.tcm" +source "drivers/vhost/Kconfig.blk" endif diff --git a/drivers/vhost/Kconfig.blk b/drivers/vhost/Kconfig.blk new file mode 100644 index 000..ff8ab76 --- /dev/null +++ b/drivers/vhost/Kconfig.blk @@ -0,0 +1,10 @@ +config VHOST_BLK + tristate "Host kernel accelerator for virtio blk (EXPERIMENTAL)" + depends on BLOCK && EXPERIMENTAL && m + ---help--- + This kernel module can be loaded in host kernel to accelerate + guest block with virtio_blk. Not to be confused with virtio_blk + module itself which needs to be loaded in guest kernel. + + To compile this driver as a module, choose M here: the module will + be called vhost_blk. diff --git a/drivers/vhost/Makefile b/drivers/vhost/Makefile index a27b053..1a8a4a5 100644 --- a/drivers/vhost/Makefile +++ b/drivers/vhost/Makefile @@ -2,3 +2,5 @@ obj-$(CONFIG_VHOST_NET) += vhost_net.o vhost_net-y := vhost.o net.o obj-$(CONFIG_TCM_VHOST) += tcm_vhost.o +obj-$(CONFIG_VHOST_BLK) += vhost_blk.o +vhost_blk-y := blk.o diff --git a/drivers/vhost/blk.c b/drivers/vhost/blk.c new file mode 100644 index 000..f0f118a --- /dev/null +++ b/drivers/vhost/blk.c @@ -0,0 +1,697 @@ +/* + * Copyright (C) 2011 Taobao, Inc. + * Author: Liu Yuan + * + * Copyright (C) 2012 Red Hat, Inc. + * Author: Asias He + * + * This work is licensed under the terms of the GNU GPL, version 2. + * + * virtio-blk server in host kernel. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "vhost.c" +#include "vhost.h" +#include "blk.h" + +static DEFINE_IDA(vhost_blk_index_ida); + +enum { + VHOST_BLK_VQ_REQ = 0, + VHOST_BLK_VQ_MAX = 1, +}; + +struct req_page_list { + struct page **pages; + int pages_nr; +}; + +struct vhost_blk_req { + struct llist_node llnode; + struct req_page_list *pl; + struct vhost_blk *blk; + + struct iovec *iov; + int iov_nr; + + struct bio **bio; + atomic_t bio_nr; + + struct iovec status[1]; + + sector_t sector; + int write; + u16 head; + long len; +}; + +struct vhost_blk { + struct task_struct *host_kick; + struct iovec iov[UIO_MAXIOV]; + struct vhost_blk_req *reqs; + struct vhost_virtqueue vq; + struct llist_head llhead; + struct vhost_dev dev; + u16