aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* virtio net: Allow receiving SG packetsHerbert Xu2008-07-24
| | | | | | | | | | Finally this patch lets virtio_net receive GSO packets in addition to sending them. This can definitely be optimised for the non-GSO case. For comparison the Xen approach stores one page in each skb and uses subsequent skb's pages to construct an SG skb instead of preallocating the maximum amount of pages per skb. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (added feature bits)
* virtio net: Add ethtool ops for SG/GSOHerbert Xu2008-07-24
| | | | | | | | This patch adds some basic ethtool operations to virtio_net so I could test SG without GSO (which was really useful because TSO turned out to be buggy :) Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (remove MTU setting)
* virtio: fix virtio_net xmit of freed skb bugMark McLoughlin2008-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Mon, 2008-05-26 at 17:42 +1000, Rusty Russell wrote: > If we fail to transmit a packet, we assume the queue is full and put > the skb into last_xmit_skb. However, if more space frees up before we > xmit it, we loop, and the result can be transmitting the same skb twice. > > Fix is simple: set skb to NULL if we've used it in some way, and check > before sending. ... > diff -r 564237b31993 drivers/net/virtio_net.c > --- a/drivers/net/virtio_net.c Mon May 19 12:22:00 2008 +1000 > +++ b/drivers/net/virtio_net.c Mon May 19 12:24:58 2008 +1000 > @@ -287,21 +287,25 @@ again: > free_old_xmit_skbs(vi); > > /* If we has a buffer left over from last time, send it now. */ > - if (vi->last_xmit_skb) { > + if (unlikely(vi->last_xmit_skb)) { > if (xmit_skb(vi, vi->last_xmit_skb) != 0) { > /* Drop this skb: we only queue one. */ > vi->dev->stats.tx_dropped++; > kfree_skb(skb); > + skb = NULL; > goto stop_queue; > } > vi->last_xmit_skb = NULL; With this, may drop an skb and then later in the function discover that we could have sent it after all. Poor wee skb :) How about the incremental patch below? Cheers, Mark. Subject: [PATCH] virtio_net: Delay dropping tx skbs Currently we drop the skb in start_xmit() if we have a queued buffer and fail to transmit it. However, if we delay dropping it until we've stopped the queue and enabled the tx notification callback, then there is a chance space might become available for it. Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6Linus Torvalds2008-07-24
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (76 commits) ide: use proper printk() KERN_* levels in ide-probe.c ide: fix for EATA SCSI HBA in ATA emulating mode ide: remove stale comments from drivers/ide/Makefile ide: enable local IRQs in all handlers for TASKFILE_NO_DATA data phase ide-scsi: remove kmalloced struct request ht6560b: remove old history ht6560b: update email address ide-cd: fix oops when using growisofs gayle: release resources on ide_host_add() failure palm_bk3710: add UltraDMA/100 support ide: trivial sparse annotations ide: ide-tape.c sparse annotations and unaligned access removal ide: drop 'name' parameter from ->init_chipset method ide: prefix messages from IDE PCI host drivers by driver name it821x: remove DECLARE_ITE_DEV() macro it8213: remove DECLARE_ITE_DEV() macro ide: include PCI device name in messages from IDE PCI host drivers ide: remove <asm/ide.h> for some archs ide-generic: remove ide_default_{io_base,irq}() inlines (take 3) ide-generic: is no longer needed on ppc32 ...
| * ide: use proper printk() KERN_* levels in ide-probe.cBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | While at it: - fixup printk() messages in save_match() and hwif_init(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: fix for EATA SCSI HBA in ATA emulating modeBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | | | | | | | IDE probing code used to skip devices attached to EATA SCSI HBA in ATA emulating mode but because of warm-plug support port I/O resources are no longer freed if no devices are detected on a port and the decision about the driver to use is left up to the user. Remove no longer valid EATA SCSI HBA quirk from do_identify(). Noticed-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: remove stale comments from drivers/ide/MakefileBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: enable local IRQs in all handlers for TASKFILE_NO_DATA data phaseBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | It is already done by task_no_data_intr() and there is no reason not to do it in other TASKFILE_NO_DATA data phase handlers. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide-scsi: remove kmalloced struct requestFUJITA Tomonori2008-07-24
| | | | | | | | | | | | | | | | This converts ide-scsi to use blk_get/put_request instead of kmalloc/kfree. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ht6560b: remove old historyJan Evert van Grootheest2008-07-24
| | | | | | | | | | | | | | Remove the ancient version history. Git does a better job. From: Jan Evert van Grootheest <j.e.van.grootheest@caiway.nl> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ht6560b: update email addressJan Evert van Grootheest2008-07-24
| | | | | | | | | | | | | | Update email address. From: Jan Evert van Grootheest <j.e.van.grootheest@caiway.nl> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide-cd: fix oops when using growisofsJens Axboe2008-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cdrom_read_capacity() will blindly return the capacity from the device without sanity-checking it. This later causes code in fs/buffer.c to oops. Fix this by checking that the device is telling us sensible things. From: Jens Axboe <jens.axboe@oracle.com> Cc: Michael Buesch <mb@bu3sch.de> Cc: Jan Kara <jack@suse.cz> Cc: Arnd Bergmann <arnd@arndb.de> Cc: <stable@kernel.org> Cc: Borislav Petkov <petkovbb@googlemail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> [bart: print device name instead of driver name] Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> [harvey: blocklen is a big-endian value] Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * gayle: release resources on ide_host_add() failureBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | | | | | "gayle: reserve memory resources at once" patch temporary removed freeing of resources on failure (to ease convertion to ide_host_add() interface). This patch fixes it. Thanks to Geert for noticing the issue. Noticed-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * palm_bk3710: add UltraDMA/100 supportSergei Shtylyov2008-07-24
| | | | | | | | | | | | | | | | | | | | | | This controller supports UltraDMA up to mode 5 but it should be clocked with at least twice the data strobe frequency, so enable mode 5 for 100+ MHz IDECLK. While at it, start passing the correct device to clk_get() -- it worked anyway but WTF? :-/ Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: trivial sparse annotationsHarvey Harrison2008-07-24
| | | | | | | | | | Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: ide-tape.c sparse annotations and unaligned access removalHarvey Harrison2008-07-24
| | | | | | | | | | | | | | | | | | | | If this is actually unaligned the access of speed/max_speed above is already broken and needs a get_unaligned. Otherwise it is aligned and they can be removed. Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Cc: Borislav Petkov <petkovbb@googlemail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: drop 'name' parameter from ->init_chipset methodBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: prefix messages from IDE PCI host drivers by driver nameBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prefix messages from IDE PCI host drivers by driver name instead of marketed chipset name (it is still possible to exactly identify the particular chipset basing on driver messages). As a bonus this provides nice code savings for some drivers: text data bss dec hex filename 3826 112 8 3946 f6a drivers/ide/pci/amd74xx.o.before 2786 112 8 2906 b5a drivers/ide/pci/amd74xx.o.after 764 108 0 872 368 drivers/ide/pci/cs5520.o.before 680 108 0 788 314 drivers/ide/pci/cs5520.o.after 1680 112 4 1796 704 drivers/ide/pci/generic.o.before 1155 112 4 1271 4f7 drivers/ide/pci/generic.o.after 7128 792 0 7920 1ef0 drivers/ide/pci/hpt366.o.before 6984 792 0 7776 1e60 drivers/ide/pci/hpt366.o.after 2800 148 0 2948 b84 drivers/ide/pci/pdc202xx_new.o.before 2523 148 0 2671 a6f drivers/ide/pci/pdc202xx_new.o.after 2831 148 0 2979 ba3 drivers/ide/pci/pdc202xx_old.o.before 2683 148 0 2831 b0f drivers/ide/pci/pdc202xx_old.o.after 3776 112 4 3892 f34 drivers/ide/pci/piix.o.before 2804 112 4 2920 b68 drivers/ide/pci/piix.o.after 4693 116 0 4809 12c9 drivers/ide/pci/siimage.o.before 4600 116 0 4716 126c drivers/ide/pci/siimage.o.after Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * it821x: remove DECLARE_ITE_DEV() macroBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | | | While at it: * it821x_chipsets[] -> it821x_chipset. * Fix it821x_chipset's name field (as it is used for IT8211/8212). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * it8213: remove DECLARE_ITE_DEV() macroBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | While at it: * it8213_chipsets[] -> it8213_chipset. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: include PCI device name in messages from IDE PCI host driversBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While at it: * Apply small fixes to messages (s/dma/DMA/, remove trailing '.', etc). * Fix printk() call in ide_setup_pci_baseregs() to use KERN_INFO. * Move printk() call from ide_pci_clear_simplex() to the caller. * Cleanup do_ide_setup_pci_device() a bit. * amd74xx.c: remove superfluous PCI device revision information. * hpt366.c: fix two printk() calls in ->init_chipset to use KERN_INFO. * pdc202xx_new.c: fix printk() call in ->init_chipset to use KERN_INFO. * pdc202xx_old.c: fix driver message in pdc202xx_init_one(). * via82cxxx.c: fix driver warning message in via_init_one(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: remove <asm/ide.h> for some archsBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | | | | | | | * Remove <linux/irq.h> include from <asm-ia64.h> (<linux/ide.h> includes <linux/interrupt.h> which is enough). * Remove <asm/ide.h> for alpha/blackfin/h8300/ia64/m32r/sh/x86/xtensa (this leaves us with arm/frv/m68k/mips/mn10300/parisc/powerpc/sparc[64]). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide-generic: remove ide_default_{io_base,irq}() inlines (take 3)Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace ide_default_{io_base,irq}() inlines by legacy_{bases,irqs}[]. v2: Add missing zero-ing of hws[] (caught during testing by Borislav Petkov). v3: Fix zero-oing of hws[] for _real_ this time. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide-generic: is no longer needed on ppc32Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide-generic: remove broken PPC_PREP supportBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | PPC_PREP has been depending on BROKEN for some time now. Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: define MAX_HWIFS in <linux/ide.h>Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Now that ide_hwif_t instances are allocated dynamically the difference between MAX_HWIFS == 2 and MAX_HWIFS == 10 is ~100 bytes (x86-32) so use MAX_HWIFS == 10 on all archs except these ones that use MAX_HWIFS == 1. * Define MAX_HWIFS in <linux/ide.h> instead of <asm/ide.h>. [ Please note that avr32/cris/v850 have no <asm/ide.h> and alpha/ia64/sh always define CONFIG_IDE_MAX_HWIFS. ] Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: remove <asm-cris/ide.h>Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | | | | | Remove <asm-cris/arch-v{10,32}/ide.h> and <asm-cris/ide.h>. This has been a broken code for some time now and needs rewrite to match IDE core code / host driver model anyway. Cc: Jesper Nilsson <Jesper.Nilsson@axis.com> Cc: Mikael Starvik <mikael.starvik@axis.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide-generic: remove "no_pci_devices()" quirk from ide_default_io_base()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | Since the decision to probe for ISA ide2-6 is now left to the user "no_pci_devices()" quirk is no longer needed and may be removed. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide-generic: minor fix for mipsBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | Move ide_probe_legacy() call to ide_generic_init() so it fails early if necessary and returns the proper error value (nowadays ide_default_io_base() is used only by ide-generic). Cc: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide-generic: fix ide_default_io_base() for m32rBartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | Fix ide_default_io_base() to match ide_default_irq(). Cc: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ide: fix <asm-xtensa/ide.h>Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | | | | | | | | | | | | | * Add missing <asm-generic/ide_iops.h> include. While at it: * Remove needless ide_default_{irq,io_base}() inlines. Cc: Chris Zankel <chris@zankel.net> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * rapide: add module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * icside: add module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * via82cxxx: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * trm290: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * triflex: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * tc86c001: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | | | Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * slc90e66: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * sl82c105: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * sis5513: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * siimage: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * serverworks: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * sc1200: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * rz1000: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * piix: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * pdc202xx_old: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * pdc202xx_new: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * opti621: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * ns87415: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * jmicron: add ->remove method and module_exit()Bartlomiej Zolnierkiewicz2008-07-24
| | | | | | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>