13 Jan, 2012

21 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (69 commits)
    pptp: Accept packet with seq zero
    RDS: Remove some unused iWARP code
    net: fsl: fec: handle 10Mbps speed in RMII mode
    drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c: add missing iounmap
    drivers/net/ethernet/tundra/tsi108_eth.c: add missing iounmap
    ksz884x: fix mtu for VLAN
    net_sched: sfq: add optional RED on top of SFQ
    dp83640: Fix NOHZ local_softirq_pending 08 warning
    gianfar: Fix invalid TX frames returned on error queue when time stamping
    gianfar: Fix missing sock reference when processing TX time stamps
    phylib: introduce mdiobus_alloc_size()
    net: decrement memcg jump label when limit, not usage, is changed
    net: reintroduce missing rcu_assign_pointer() calls
    inet_diag: Rename inet_diag_req_compat into inet_diag_req
    inet_diag: Rename inet_diag_req into inet_diag_req_v2
    bond_alb: don't disable softirq under bond_alb_xmit
    mac80211: fix rx->key NULL pointer dereference in promiscuous mode
    nl80211: fix old station flags compatibility
    mdio-octeon: use an unique MDIO bus name.
    mdio-gpio: use an unique MDIO bus name.
    ...

    Linus Torvalds
     
  • Initialize the PPTP "seq received" value to 0xffffffff, so we don't
    ignore packets with seq zero.

    Signed-off-by: Bradley Peterson
    Signed-off-by: David S. Miller

    Bradley Peterson
     
  • rds_iw_flush_goal() just returns a count, but it is only called in one
    place and its return value is ignored there. So delete all the dead code.

    Signed-off-by: Roland Dreier
    Signed-off-by: David S. Miller

    Roland Dreier
     
  • when the link is 10 Mbps and the mode is RMII, it's necessary
    to set FRCONT to 1 in MIIGSK_CFGR to divide the RMII source
    clock by 10 in order to support 10 Mbps operations.

    Signed-off-by: Eric Bénard
    Acked-by: Shawn Guo
    Signed-off-by: David S. Miller

    Eric Benard
     
  • Add missing iounmap in error handling code, in a case where the function
    already preforms iounmap on some other execution path.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @@
    expression e;
    statement S,S1;
    int ret;
    @@
    e = \(ioremap\|ioremap_nocache\)(...)
    ... when != iounmap(e)
    if () S
    ... when any
    when != iounmap(e)
    *if (...)
    { ... when != iounmap(e)
    return ...; }
    ... when any
    iounmap(e);
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: David S. Miller

    Julia Lawall
     
  • Add missing iounmap in error handling code, in a case where the function
    already preforms iounmap on some other execution path.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @@
    expression e;
    statement S,S1;
    int ret;
    @@
    e = \(ioremap\|ioremap_nocache\)(...)
    ... when != iounmap(e)
    if () S
    ... when any
    when != iounmap(e)
    *if (...)
    { ... when != iounmap(e)
    return ...; }
    ... when any
    iounmap(e);
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: David S. Miller

    Julia Lawall
     
  • The Ethernet header does not account for the addition of a VLAN header.
    Full size Ethernet frames containing VLAN header are not processed
    because the frame is larger than the resulting hw mtu.

    Signed-off-by: Doug Kehn
    Signed-off-by: David S. Miller

    Doug Kehn
     
  • Adds an optional Random Early Detection on each SFQ flow queue.

    Traditional SFQ limits count of packets, while RED permits to also
    control number of bytes per flow, and adds ECN capability as well.

    1) We dont handle the idle time management in this RED implementation,
    since each 'new flow' begins with a null qavg. We really want to address
    backlogged flows.

    2) if headdrop is selected, we try to ecn mark first packet instead of
    currently enqueued packet. This gives faster feedback for tcp flows
    compared to traditional RED [ marking the last packet in queue ]

    Example of use :

    tc qdisc add dev $DEV parent 1:1 handle 10: est 1sec 4sec sfq \
    limit 3000 headdrop flows 512 divisor 16384 \
    redflowlimit 100000 min 8000 max 60000 probability 0.20 ecn

    qdisc sfq 10: parent 1:1 limit 3000p quantum 1514b depth 127 headdrop
    flows 512/16384 divisor 16384
    ewma 6 min 8000b max 60000b probability 0.2 ecn
    prob_mark 0 prob_mark_head 4876 prob_drop 6131
    forced_mark 0 forced_mark_head 0 forced_drop 0
    Sent 1175211782 bytes 777537 pkt (dropped 6131, overlimits 11007
    requeues 0)
    rate 99483Kbit 8219pps backlog 689392b 456p requeues 0

    In this test, with 64 netperf TCP_STREAM sessions, 50% using ECN enabled
    flows, we can see number of packets CE marked is smaller than number of
    drops (for non ECN flows)

    If same test is run, without RED, we can check backlog is much bigger.

    qdisc sfq 10: parent 1:1 limit 3000p quantum 1514b depth 127 headdrop
    flows 512/16384 divisor 16384
    Sent 1148683617 bytes 795006 pkt (dropped 0, overlimits 0 requeues 0)
    rate 98429Kbit 8521pps backlog 1221290b 841p requeues 0

    Signed-off-by: Eric Dumazet
    CC: Stephen Hemminger
    CC: Dave Taht
    Tested-by: Dave Taht
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Similar problem as in 481a8199142c050b72bff8a1956a49fd0a75bbe0 ("can:
    fix NOHZ local_softirq_pending 08 warning"). This fix replaces
    netif_rx() with netif_rx_ni() which has to be used from
    process/softirq context.

    Signed-off-by: Manfred Rudigier
    Signed-off-by: David S. Miller

    Manfred Rudigier
     
  • When TX time stamping for PTP messages is enabled on a socket, a time
    stamp is returned on the socket error queue to the user space application
    after the frame was transmitted. The transmitted frame is also returned on
    the error queue so that an application knows to which frame the time stamp
    belongs.

    In the current implementation the TxFCB is immediately followed by the
    frame. Since the eTSEC inserts the TX time stamp 8 bytes after the TxFCB,
    parts of the frame have been overwritten and an invalid frame was returned
    on the socket error queue.

    This patch fixes the described problem by adding additional 16 padding
    bytes between the TxFCB and the frame for all messages sent from a time
    stamping enabled socket (other sockets are not affected).

    Signed-off-by: Manfred Rudigier
    Signed-off-by: David S. Miller

    Manfred Rudigier
     
  • When there is not enough headroom in the skb a private copy will be made.
    However, the private copy had no reference to the socket and consequently
    no time stamp could be queued on the socket error queue during the
    skb_tstamp_tx function. This patch fixes this issue by also stealing the
    sock reference from the original skb after making the private copy.

    Signed-off-by: Manfred Rudigier
    Signed-off-by: David S. Miller

    Manfred Rudigier
     
  • Introduce function mdiobus_alloc_size() as an alternative to mdiobus_alloc().
    Most callers of mdiobus_alloc() also allocate a private data structure, and
    then manually point bus->priv to this object. mdiobus_alloc_size()
    combines the two operations into one, which simplifies memory management.

    The original mdiobus_alloc() now just calls mdiobus_alloc_size(0).

    Signed-off-by: Timur Tabi
    Signed-off-by: David S. Miller

    Timur Tabi
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: bcm5974 - set BUTTONPAD property
    Input: serio_raw - return proper result when serio_raw_write fails
    Input: serio_raw - really signal HUP upon disconnect
    Input: serio_raw - remove stray semicolon
    Input: revert some over-zealous conversions to module_platform_driver()

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
    FUSE: Notifying the kernel of deletion.
    fuse: support ioctl on directories
    fuse: Use kcalloc instead of kzalloc to allocate array
    fuse: llseek optimize SEEK_CUR and SEEK_SET

    Linus Torvalds
     
  • * tag 'to-linus' of git://github.com/rustyrussell/linux: (24 commits)
    lguest: Make sure interrupt is allocated ok by lguest_setup_irq
    lguest: move the lguest tool to the tools directory
    lguest: switch segment-voodoo-numbers to readable symbols
    virtio: balloon: Add freeze, restore handlers to support S4
    virtio: balloon: Move vq initialization into separate function
    virtio: net: Add freeze, restore handlers to support S4
    virtio: net: Move vq and vq buf removal into separate function
    virtio: net: Move vq initialization into separate function
    virtio: blk: Add freeze, restore handlers to support S4
    virtio: blk: Move vq initialization to separate function
    virtio: console: Disable callbacks for virtqueues at start of S4 freeze
    virtio: console: Add freeze and restore handlers to support S4
    virtio: console: Move vq and vq buf removal into separate functions
    virtio: pci: add PM notification handlers for restore, freeze, thaw, poweroff
    virtio: pci: switch to new PM API
    virtio_blk: fix config handler race
    virtio: add debugging if driver doesn't kick.
    virtio: expose added descriptors immediately.
    virtio: avoid modulus operation.
    virtio: support unlocked queue kick
    ...

    Linus Torvalds
     
  • The logic of the current code is that whenever we destroy
    a cgroup that had its limit set (set meaning different than
    maximum), we should decrement the jump_label counter.
    Otherwise we assume it was never incremented.

    But what the code actually does is test for RES_USAGE
    instead of RES_LIMIT. Usage being different than maximum
    is likely to be true most of the time.

    The effect of this is that the key must become negative,
    and since the jump_label test says:

    !!atomic_read(&key->enabled);

    we'll have jump_labels still on when no one else is
    using this functionality.

    Signed-off-by: Glauber Costa
    CC: David S. Miller
    Signed-off-by: David S. Miller

    Glauber Costa
     
  • commit a9b3cd7f32 (rcu: convert uses of rcu_assign_pointer(x, NULL) to
    RCU_INIT_POINTER) did a lot of incorrect changes, since it did a
    complete conversion of rcu_assign_pointer(x, y) to RCU_INIT_POINTER(x,
    y).

    We miss needed barriers, even on x86, when y is not NULL.

    Signed-off-by: Eric Dumazet
    CC: Stephen Hemminger
    CC: Paul E. McKenney
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • It appears that you can only read the sprom contents with aligned 16-bit
    reads: anything else causes at least some versions of the broadcom
    chipset to abort the PCI transaction, returning 0xff.

    This apparently doesn't trigger very often, because most setups don't
    use an external srom chip, and the OTP sprom loading doesn't have this
    issue. But at least the current 11" Macbook Air does trigger it, and
    wireless communications were broken as a result.

    Acked-by: Arend van Spriel
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • David S. Miller
     
  • This very noisy sparse warning appears on almost every file in the
    kernel:

    CHECK init/main.c
    arch/x86/include/asm/thread_info.h:43:55: error: dubious one-bit signed bitfield
    arch/x86/include/asm/thread_info.h:44:46: error: dubious one-bit signed bitfield

    This patch changes sig_on_uaccess_error and uaccess_err flags to unsigned
    type and thus fixes the warning.

    Signed-off-by: Anton Vorontsov
    Acked-by: Andy Lutomirski
    Signed-off-by: Linus Torvalds

    Anton Vorontsov
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (526 commits)
    ASoC: twl6040 - Add method to query optimum PDM_DL1 gain
    ALSA: hda - Fix the lost power-setup of seconary pins after PM resume
    ALSA: usb-audio: add Yamaha MOX6/MOX8 support
    ALSA: virtuoso: add S/PDIF input support for all Xonars
    ALSA: ice1724 - Support for ooAoo SQ210a
    ALSA: ice1724 - Allow card info based on model only
    ALSA: ice1724 - Create capture pcm only for ADC-enabled configurations
    ALSA: hdspm - Provide unique driver id based on card serial
    ASoC: Dynamically allocate the rtd device for a non-empty release()
    ASoC: Fix recursive dependency due to select ATMEL_SSC in SND_ATMEL_SOC_SSC
    ALSA: hda - Fix the detection of "Loopback Mixing" control for VIA codecs
    ALSA: hda - Return the error from get_wcaps_type() for invalid NIDs
    ALSA: hda - Use auto-parser for HP laptops with cx20459 codec
    ALSA: asihpi - Fix potential Oops in snd_asihpi_cmode_info()
    ALSA: hdsp - Fix potential Oops in snd_hdsp_info_pref_sync_ref()
    ALSA: hda/cirrus - support for iMac12,2 model
    ASoC: cx20442: add bias control over a platform provided regulator
    ALSA: usb-audio - Avoid flood of frame-active debug messages
    ALSA: snd-usb-us122l: Delete calls to preempt_disable
    mfd: Put WM8994 into cache only mode when suspending
    ...

    Fix up trivial conflicts in:
    - arch/arm/mach-s3c64xx/mach-crag6410.c:
    renamed speyside_wm8962 to tobermory, added littlemill right
    next to it
    - drivers/base/regmap/{regcache.c,regmap.c}:
    duplicate diff that had already come in with other changes in
    the regmap tree

    Linus Torvalds
     

12 Jan, 2012

19 commits

  • We only need amd_bus.o for AMD systems with PCI. arch/x86/pci/Makefile
    already depends on CONFIG_PCI=y, so this patch just adds the dependency
    on CONFIG_AMD_NB.

    Cc: Yinghai Lu
    Cc: stable@kernel.org # 2.6.34+ (needs adjustment for k8 -> amd rename)
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • Takashi Iwai
     
  • Takashi Iwai
     
  • …sound into topic/asoc

    Takashi Iwai
     
  • SH/R-Mobile updates for 3.3 merge window.

    * tag 'rmobile-for-linus' of git://github.com/pmundt/linux-sh: (32 commits)
    arm: mach-shmobile: add a resource name for shdma
    ARM: mach-shmobile: r8a7779 SMP support V3
    ARM: mach-shmobile: Add kota2 defconfig.
    ARM: mach-shmobile: Add marzen defconfig.
    ARM: mach-shmobile: r8a7779 power domain support V2
    ARM: mach-shmobile: Fix up marzen build for recent GIC changes.
    ARM: mach-shmobile: r8a7779 PFC function support
    ARM: mach-shmobile: Flush caches in platform_cpu_die()
    ARM: mach-shmobile: Allow SoC specific CPU kill code
    ARM: mach-shmobile: Fix headsmp.S code to use CPUINIT
    ARM: mach-shmobile: clock-r8a7779: clkz/clkzs support
    ARM: mach-shmobile: clock-r8a7779: add DIV4 clock support
    ARM: mach-shmobile: Marzen LAN89218 support
    ARM: mach-shmobile: Marzen SCIF2/SCIF4 support
    ARM: mach-shmobile: r8a7779 PFC GPIO-only support V2
    ARM: mach-shmobile: r8a7779 and Marzen base support V2
    sh: pfc: Unlock register support
    sh: pfc: Variable bitfield width config register support
    sh: pfc: Add config_reg_helper() function
    sh: pfc: Convert index to field and value pair
    ...

    Linus Torvalds
     
  • SuperH updates for 3.3 merge window.

    * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh: (38 commits)
    sh: magicpanelr2: Update for parse_mtd_partitions() fallout.
    sh: mach-rsk: Update for parse_mtd_partitions() fallout.
    sh: sh2a: Improve cache flush/invalidate functions
    sh: also without PM_RUNTIME pm_runtime.o must be built
    sh: add a resource name for shdma
    sh: Remove redundant try_to_freeze() invocations.
    sh: Ensure IRQs are enabled across do_notify_resume().
    sh: Fix up store queue code for subsys_interface changes.
    sh: clkfwk: sh_clk_init_parent() should be called after clk_register()
    sh: add platform_device for renesas_usbhs in board-sh7757lcr
    sh: modify clock-sh7757 for renesas_usbhs
    sh: pfc: ioremap() support
    sh: use ioread32/iowrite32 and mapped_reg for div6
    sh: use ioread32/iowrite32 and mapped_reg for div4
    sh: use ioread32/iowrite32 and mapped_reg for mstp32
    sh: extend clock struct with mapped_reg member
    sh: clkfwk: clock-sh73a0: all div6_clks use SH_CLK_DIV6_EXT()
    sh: clkfwk: clock-sh7724: all div6_clks use SH_CLK_DIV6_EXT()
    sh: clock-sh7723: add CLKDEV_ICK_ID for cleanup
    serial: sh-sci: Handle GPIO function requests.
    ...

    Linus Torvalds
     
  • * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched: Fix lockup by limiting load-balance retries on lock-break
    sched: Fix CONFIG_CGROUP_SCHED dependency
    sched: Remove empty #ifdefs

    Linus Torvalds
     
  • Make sure the interrupt is allocated correctly by lguest_setup_irq (check the
    return value of irq_alloc_desc_at for -ENOMEM)

    Signed-off-by: Stratos Psomadakis
    Signed-off-by: Rusty Russell (cleanups and commentry)

    Stratos Psomadakis
     
  • This is a better location instead of having it in Documentation.

    Signed-off-by: Davidlohr Bueso
    Signed-off-by: Rusty Russell (fixed compile)

    Davidlohr Bueso
     
  • When studying lguest's x86 segment descriptor code, it is not longer
    necessary to have the Intel x86 architecture manual open on the page
    with the segment descriptor illustration to understand the crazy
    numbers assigned to both descriptor structure halves a/b.
    Now the struct desc_struct's fields, like suggested by
    Glauber de Oliveira Costa in 2008, are used.

    Signed-off-by: Jacek Galowicz
    Signed-off-by: Rusty Russell

    Jacek Galowicz
     
  • Handling balloon hibernate / restore is tricky. If the balloon was
    inflated before going into the hibernation state, upon resume, the host
    will not have any memory of that. Any pages that were passed on to the
    host earlier would most likely be invalid, and the host will have to
    re-balloon to the previous value to get in the pre-hibernate state.

    So the only sane thing for the guest to do here is to discard all the
    pages that were put in the balloon. When to discard the pages is the
    next question.

    One solution is to deflate the balloon just before writing the image to
    the disk (in the freeze() PM callback). However, asking for pages from
    the host just to discard them immediately after seems wasteful of
    resources. Hence, it makes sense to do this by just fudging our
    counters soon after wakeup. This means we don't deflate the balloon
    before sleep, and also don't put unnecessary pressure on the host.

    This also helps in the thaw case: if the freeze fails for whatever
    reason, the balloon should continue to remain in the inflated state.
    This was tested by issuing 'swapoff -a' and trying to go into the S4
    state. That fails, and the balloon stays inflated, as expected. Both
    the host and the guest are happy.

    Finally, in the restore() callback, we empty the list of pages that were
    previously given off to the host, add the appropriate number of pages to
    the totalram_pages counter, reset the num_pages counter to 0, and
    all is fine.

    As a last step, delete the vqs on the freeze callback to prepare for
    hibernation, and re-create them in the restore and thaw callbacks to
    resume normal operation.

    The kthread doesn't race with any operations here, since it's frozen
    before the freeze() call and is thawed after the thaw() and restore()
    callbacks, so we're safe with that.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • The probe and PM restore functions will share this code.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • Remove all the vqs, disable napi and detach from the netdev on
    hibernation.

    Re-create vqs after restoring from a hibernated image, re-enable napi
    and re-attach the netdev. This keeps networking working across
    hibernation.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • The remove and PM freeze functions will share this code.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • The probe and PM restore functions will share this code.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • Delete the vq and flush any pending requests from the block queue on the
    freeze callback to prepare for hibernation.

    Re-create the vq in the restore callback to resume normal function.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • The probe and PM restore functions will share this code.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • To ensure we don't receive any more interrupts from the host after we
    enter the freeze function, disable all vq interrupts.

    There wasn't any problem seen due to this in tests, but applying this
    patch makes the freeze case more robust.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • Remove all vqs and associated buffers in the freeze callback which
    prepares us to go into hibernation state. On restore, re-create all the
    vqs and populate the input vqs with buffers to get to the pre-hibernate
    state.

    Note: Any outstanding unconsumed buffers are discarded; which means
    there's a possibility of data loss in case the host or the guest didn't
    consume any data already present in the vqs. This can be addressed in a
    later patch series, perhaps in virtio common code.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah