05 Feb, 2009

6 commits

  • The MDIO bus drivers for the UCC and gianfar ethernet controllers are
    essentially the same. There's no reason to duplicate that much code.

    Signed-off-by: Andy Fleming
    Signed-off-by: David S. Miller

    Andy Fleming
     
  • Many physical NICs let the OS re-program the "hardware" MAC
    address. Virtual NICs should allow this too.

    Signed-off-by: Alex Williamson
    Acked-by: Mark McLoughlin
    Signed-off-by: David S. Miller

    Alex Williamson
     
  • VLAN filtering allows the hypervisor to drop packets from VLANs
    that we're not a part of, further reducing the number of extraneous
    packets recieved. This makes use of the VLAN virtqueue command class.
    The CTRL_VLAN feature bit tells us whether the backend supports VLAN
    filtering.

    Signed-off-by: Alex Williamson
    Acked-by: Rusty Russell
    Signed-off-by: David S. Miller

    Alex Williamson
     
  • Make use of the MAC control virtqueue class to support a MAC
    filter table. The filter table is managed by the hypervisor.
    We consider the table to be available if the CTRL_RX feature
    bit is set. We leave it to the hypervisor to manage the table
    and enable promiscuous or all-multi mode as necessary depending
    on the resources available to it.

    Signed-off-by: Alex Williamson
    Acked-by: Rusty Russell
    Signed-off-by: David S. Miller

    Alex Williamson
     
  • Make use of the RX_MODE control virtqueue class to enable the
    set_rx_mode netdev interface. This allows us to selectively
    enable/disable promiscuous and allmulti mode so we don't see
    packets we don't want. For now, we automatically enable these
    as needed if additional unicast or multicast addresses are
    requested.

    Signed-off-by: Alex Williamson
    Acked-by: Rusty Russell
    Signed-off-by: David S. Miller

    Alex Williamson
     
  • This will be used for RX mode, MAC filter table, VLAN filtering, etc...

    The control transaction consists of one or more "out" sg entries and
    one or more "in" sg entries. The first out entry contains a header
    defining the class and command. Additional out entries may provide
    data for the command. The last in entry provides a status response
    back from the command.

    Virtqueues typically run asynchronous, running a callback function
    when there's data in the channel. We can't readily make use of this
    in the command paths where we need to use this. Instead, we kick
    the virtqueue and spin. The kick causes an I/O write, triggering an
    immediate trap into the hypervisor.

    Signed-off-by: Alex Williamson
    Acked-by: Rusty Russell
    Signed-off-by: David S. Miller

    Alex Williamson
     

04 Feb, 2009

6 commits


03 Feb, 2009

28 commits

  • Conflicts:
    drivers/net/Kconfig

    David S. Miller
     
  • David S. Miller
     
  • Michael Tokarev wrote:
    []
    > 2, and this is the main one: How about supplementary groups?
    >
    > Here I have a valid usage case: a group of testers running various
    > versions of windows using KVM (kernel virtual machine), 1 at a time,
    > to test some software. kvm is set up to use bridge with a tap device
    > (there should be a way to connect to the machine). Anyone on that group
    > has to be able to start/stop the virtual machines.
    >
    > My first attempt - pretty obvious when I saw -g option of tunctl - is
    > to add group ownership for the tun device and add a supplementary group
    > to each user (their primary group should be different). But that fails,
    > since kernel only checks for egid, not any other group ids.
    >
    > What's the reasoning to not allow supplementary groups and to only check
    > for egid?

    Signed-off-by: Michael Tokarev
    Signed-off-by: David S. Miller

    Michael Tokarev
     
  • Change spin_locks to irqsave to prevent dead-locks.
    Protect adding and deleting to/from dca_providers list.
    Drop the lock during dca_sysfs_add_req() and dca_sysfs_remove_req() calls
    as they might sleep (use GFP_KERNEL allocation).

    Signed-off-by: Maciej Sosnowski
    Acked-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Maciej Sosnowski
     
  • The netlink connector uses its own workqueue to relay the datas sent
    from userspace to the appropriate callback. If you launch the test
    from Documentation/connector and change it a bit to send a high flow
    of data, you will see thousands of events coming to the "cqueue"
    workqueue by looking at the workqueue tracer.

    This flow of events can be sent very quickly. So, to not encumber the
    kevent workqueue and delay other jobs, the "cqueue" workqueue should
    remain.

    But this workqueue is pointless most of the time, it will always be
    created (assuming you have built it of course) although only
    developpers with specific needs will use it.

    So avoid this "most of the time useless task", this patch proposes to
    create this workqueue only when needed once. The first jobs to be
    sent to connector callbacks will be sent to kevent while the "cqueue"
    thread creation will be scheduled to kevent too.

    The following jobs will continue to be scheduled to keventd until the
    cqueue workqueue is created, and then the rest of the jobs will
    continue to perform as usual, through this dedicated workqueue.

    Each time I tested this patch, only the first event was sent to
    keventd, the rest has been sent to cqueue which have been created
    quickly.

    Also, this patch fixes some trailing whitespaces on the connector files.

    Signed-off-by: Frederic Weisbecker
    Acked-by: Evgeniy Polyakov
    Signed-off-by: David S. Miller

    Frederic Weisbecker
     
  • while (limit--)
    if (test())
    break;

    if (limit
    Signed-off-by: David S. Miller

    Roel Kluin
     
  • while (timeout--) { ... }

    timeout becomes -1 if the loop isn't ended otherwise, not 0.

    Signed-off-by: Roel Kluin
    Signed-off-by: David S. Miller

    Roel Kluin
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    PCI hotplug: Change link order of pciehp & acpiphp
    PCI hotplug: fakephp: Allocate PCI resources before adding the device
    PCI MSI: Fix undefined shift by 32
    PCI PM: Do not wait for buses in B2 or B3 during resume
    PCI PM: Power up devices before restoring their state
    PCI PM: Fix hibernation breakage on EeePC 701
    PCI: irq and pci_ids patch for Intel Tigerpoint DeviceIDs
    PCI PM: Fix suspend error paths and testing facility breakage

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
    slub: fix per cpu kmem_cache_cpu array memory leak
    kmalloc: return NULL instead of link failure

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    fbdev/atyfb: Fix DSP config on some PowerMacs & PowerBooks
    powerpc: Fix oops on some machines due to incorrect pr_debug()
    powerpc/ps3: Printing fixups for l64 to ll64 convserion drivers/net
    powerpc/5200: update device tree binding documentation
    powerpc/5200: Bugfix for PCI mapping of memory and IMMR
    powerpc/5200: update defconfigs

    Linus Torvalds
     
  • …l/git/tip/linux-2.6-tip

    * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    sched_rt: don't use first_cpu on cpumask created with cpumask_and
    sched: fix buddie group latency
    sched: clear buddies more aggressively
    sched: symmetric sync vs avg_overlap
    sched: fix sync wakeups
    cpuset: fix possible deadlock in async_rebuild_sched_domains

    Linus Torvalds
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (45 commits)
    V4L/DVB (10411): s5h1409: Perform s5h1409 soft reset after tuning
    V4L/DVB (10403): saa7134-alsa: saa7130 doesn't support digital audio
    V4L/DVB (10229): ivtv: fix memory leak
    V4L/DVB (10385): gspca - main: Fix memory leak when USB disconnection while streaming.
    V4L/DVB (10325): em28xx: Fix for fail to submit URB with IRQs and Pre-emption Disabled
    V4L/DVB (10317): radio-mr800: fix radio->muted and radio->stereo
    V4L/DVB (10314): cx25840: ignore TUNER_SET_CONFIG in the command callback.
    V4L/DVB (10288): af9015: bug fix: stick does not work always when plugged
    V4L/DVB (10287): af9015: fix second FE
    V4L/DVB (10270): saa7146: fix unbalanced mutex_lock/unlock
    V4L/DVB (10265): budget.c driver: Kernel oops: "BUG: unable to handle kernel paging request at ffffffff
    V4L/DVB (10261): em28xx: fix kernel panic on audio shutdown
    V4L/DVB (10257): em28xx: Fix for KWorld 330U Board
    V4L/DVB (10256): em28xx: Fix for KWorld 330U AC97
    V4L/DVB (10254): em28xx: Fix audio URB transfer buffer race condition
    V4L/DVB (10250): cx25840: fix regression: fw not loaded on first use
    V4L/DVB (10248): v4l-dvb: fix a bunch of compile warnings.
    V4L/DVB (10243): em28xx: fix compile warning
    V4L/DVB (10240): Fix obvious swapped names in v4l2_subdev logic
    V4L/DVB (10233): [PATCH] Terratec Cinergy DT XS Diversity new USB ID (0ccd:0081)
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:
    pxamci: enable DMA for write ops after CMD/RESP
    pxamci: replace #ifdef CONFIG_PXA27x with if (cpu_is_pxa27x())
    ricoh_mmc: Use suspend_late/resume_early
    mmci: Add support for ST Micro derivate
    mmc: Add a MX2/MX3 specific SDHC driver

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
    icside: fix PCB version 6 support (v2)
    tx4939ide: typo fix and minor cleanup
    ide: add CS5536 host driver (v3)
    ide: Force VIA IDE legacy interrupts for AmigaOne boards
    IDE: Unregister and disable devices if initialization fails.
    ide: fix ide_register_port() failure handling
    ide: struct device - replace bus_id with dev_name(), dev_set_name()
    ide-cd: fix DMA for non bio-backed requests

    Linus Torvalds
     
  • * 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb:
    uwb: lock rc->rsvs_lock with spin_lock_bh()
    wusb: timeout when waiting for ASL/PZL updates in whci-hcd
    uwb: remove unused #include 's
    wusb: return -ENOTCONN when resetting a port with no connected device
    uwb: safely remove all reservations

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
    block: add text file detailing queue/ sysfs files
    bio.h: If they MUST be inlined, then use __always_inline
    Fix misleading comment in bio.h
    block: fix inconsistent parenthesisation of QUEUE_FLAG_DEFAULT
    block: fix oops in blk_queue_io_stat()

    Linus Torvalds
     
  • The host really shouldn't be notifying us of config changes
    before the device status is VIRTIO_CONFIG_S_DRIVER or
    VIRTIO_CONFIG_S_DRIVER_OK.

    However, if we do happen to be interrupted while we're not
    attached to a driver, we really shouldn't oops. Prevent
    this simply by checking that device->driver is non-NULL
    before trying to notify the driver of config changes.

    Problem observed by doing a "set_link virtio.0 down" with
    QEMU before the net driver had been loaded.

    Signed-off-by: Mark McLoughlin
    Signed-off-by: Rusty Russell
    Signed-off-by: Linus Torvalds

    Mark McLoughlin
     
  • Current refcounting for modules (done if CONFIG_MODULE_UNLOAD=y) is
    using a lot of memory.

    Each 'struct module' contains an [NR_CPUS] array of full cache lines.

    This patch uses existing infrastructure (percpu_modalloc() &
    percpu_modfree()) to allocate percpu space for the refcount storage.

    Instead of wasting NR_CPUS*128 bytes (on i386), we now use
    nr_cpu_ids*sizeof(local_t) bytes.

    On a typical distro, where NR_CPUS=8, shiping 2000 modules, we reduce
    size of module files by about 2 Mbytes. (1Kb per module)

    Instead of having all refcounters in the same memory node - with TLB misses
    because of vmalloc() - this new implementation permits to have better
    NUMA properties, since each CPU will use storage on its preferred node,
    thanks to percpu storage.

    Signed-off-by: Eric Dumazet
    Signed-off-by: Rusty Russell
    Signed-off-by: Linus Torvalds

    Eric Dumazet
     
  • Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Ron Mercer
     
  • Without this the 2nd port gets first ports MAC addr.

    Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Ron Mercer
     
  • Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Ron Mercer
     
  • Commit 93821778def10ec1e69aa3ac10adee975dad4ff3 (udp: Fix rcv socket
    locking) accidentally removed sk_drops increments for UDP IPV4
    sockets.

    This field can be used to detect incorrect sizing of socket receive
    buffers.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Reported by Andrew Walrond

    Changeset c19e654ddbe3831252f61e76a74d661e1a755530
    ("gre: Add netlink interface") added an include
    of linux/ip.h to linux/if_tunnel.h

    We can't really let that get exposed to userspace
    because this conflicts with types defined in netinet/ip.h
    which userland is almost certainly going to have included
    either explicitly or implicitly.

    So guard this include with a __KERNEL__ ifdef.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • With the PXA270 MMC hardware, there seems to be an issue of
    data corruption on writes where a 4KB data block is offset
    by one byte.

    If we delay enabling the DMA for writes until after the CMD/RESP
    has finished, the problem seems to be fixed.

    related to PXA270 Erratum #91

    Tested-by: Vernon Sauder
    Signed-off-by: Cliff Brake
    Acked-by: Eric Miao
    Signed-off-by: Pierre Ossman

    Cliff Brake
     
  • Signed-off-by: Cliff Brake
    Acked-by: Eric Miao
    Signed-off-by: Pierre Ossman

    Cliff Brake
     
  • If ricoh_mmc suspends before sdhci_pci, it will pull the card
    out from under the controller, which could leave the system in
    a very confused state.

    Using suspend_late/resume_early ensures that sdhci_pci suspends first
    and resumes second.

    Signed-off-by: Philip Langdale
    Signed-off-by: Pierre Ossman

    philipl@overt.org
     
  • This patch adds support for the ST Microelectronics version of
    the PL180 PrimeCell. They use designer ID 0x80 and have a few
    alterations/bugfixes related to open drain and HW flow control.
    They also add some SDIO registers, I am unsure if these are
    in ST HW only or if this is things also added in later ARM
    revisions, but they are included in the mmci.h file for
    completeness.

    Signed-off-by: Linus Walleij
    Signed-off-by: Pierre Ossman

    Linus Walleij
     
  • This patch adds a MX2/MX3 specific SDHC driver. The hardware is basically
    the same as in the MX1, but unlike the MX1 controller the MX2
    controller just works as expected. Since the MX1 driver has more
    workarounds for bugs than anything else I had no success with supporting
    MX1 and MX2 in a sane way in one driver.

    Signed-off-by: Sascha Hauer
    Signed-off-by: Pierre Ossman

    Sascha Hauer