27 Sep, 2012

13 commits


26 Sep, 2012

6 commits

  • Pull more networking fixes from David Miller:

    1) Eric Dumazet discovered and fixed what turned out to be a family of
    bugs. These functions were using pskb_may_pull() which might need
    to reallocate the linear SKB data buffer, but the callers were not
    expecting this possibility. The callers have cached pointers to the
    packet header areas, and would need to reload them if we were to
    continue using pskb_may_pull().

    So they could end up reading garbage.

    It's easier to just change these RAW4/RAW6/MIP6 routines to use
    skb_header_pointer() instead of pskb_may_pull(), which won't modify
    the linear SKB data area.

    2) Dave Jone's syscall spammer caught a case where a non-TCP socket can
    call down into the TCP keepalive code. The case basically involves
    creating a raw socket with sk_protocol == IPPROTO_TCP, then calling
    setsockopt(sock_fd, SO_KEEPALIVE, ...)

    Fixed by Eric Dumazet.

    3) Bluetooth devices do not get configured properly while being powered
    on, resulting in always using legacy pairing instead of SSP. Fix
    from Andrzej Kaczmarek.

    4) Bluetooth cancels delayed work erroneously, put stricter checks in
    place. From Andrei Emeltchenko.

    5) Fix deadlock between cfg80211_mutex and reg_regdb_search_mutex in
    cfg80211, from Luis R. Rodriguez.

    6) Fix interrupt double release in iwlwifi, from Emmanuel Grumbach.

    7) Missing module license in bcm87xx driver, from Peter Huewe.

    8) Team driver can lose port changed events when adding devices to a
    team, fix from Jiri Pirko.

    9) Fix endless loop when trying ot unregister PPPOE device in zombie
    state, from Xiaodong Xu.

    10) batman-adv layer needs to set MAC address of software device
    earlier, otherwise we call tt_local_add with it uninitialized.

    11) Fix handling of KSZ8021 PHYs, it's matched currently by KS8051 but
    that doesn't program the device properly. From Marek Vasut.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    ipv6: mip6: fix mip6_mh_filter()
    ipv6: raw: fix icmpv6_filter()
    net: guard tcp_set_keepalive() to tcp sockets
    phy/micrel: Add missing header to micrel_phy.h
    phy/micrel: Rename KS80xx to KSZ80xx
    phy/micrel: Implement support for KSZ8021
    batman-adv: Fix symmetry check / route flapping in multi interface setups
    batman-adv: Fix change mac address of soft iface.
    pppoe: drop PPPOX_ZOMBIEs in pppoe_release
    team: send port changed when added
    ipv4: raw: fix icmp_filter()
    net/phy/bcm87xx: Add MODULE_LICENSE("GPL") to GPL driver
    iwlwifi: don't double free the interrupt in failure path
    cfg80211: fix possible circular lock on reg_regdb_search()
    Bluetooth: Fix not removing power_off delayed work
    Bluetooth: Fix freeing uninitialized delayed works
    Bluetooth: mgmt: Fix enabling LE while powered off
    Bluetooth: mgmt: Fix enabling SSP while powered off

    Linus Torvalds
     
  • mip6_mh_filter() should not modify its input, or else its caller
    would need to recompute ipv6_hdr() if skb->head is reallocated.

    Use skb_header_pointer() instead of pskb_may_pull()

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

    Eric Dumazet
     
  • Included fixes:
    - fix the behaviour of batman-adv in case of virtual interface MAC change event
    - fix symmetric link check in neighbour selection

    Signed-off-by: David S. Miller

    David S. Miller
     
  • icmpv6_filter() should not modify its input, or else its caller
    would need to recompute ipv6_hdr() if skb->head is reallocated.

    Use skb_header_pointer() instead of pskb_may_pull() and
    change the prototype to make clear both sk and skb are const.

    Also, if icmpv6 header cannot be found, do not deliver the packet,
    as we do in IPv4.

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

    Eric Dumazet
     
  • Pull SuperH fix from Paul Mundt:
    "One last minute regression fix.."

    * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh:
    sh: pfc: Fix up GPIO mux type reconfig case.

    Linus Torvalds
     
  • Merge misc fixes from Andrew Morton:
    "One maintainer change and three bugfixes"

    * emailed patches from Andrew Morton : (4 commits)
    c/r: prctl: fix build error for no-MMU case
    lib/flex_proportions.c: fix corruption of denominator in flexible proportions
    checksyscalls: fix "here document" handling
    pwm-backlight: take over maintenance

    Linus Torvalds
     

25 Sep, 2012

15 commits

  • Commit 1ad75b9e1628 ("c/r: prctl: add minimal address test to
    PR_SET_MM") added some address checking to prctl_set_mm() used by
    checkpoint-restore. This causes a build error for no-MMU systems:

    kernel/sys.c: In function 'prctl_set_mm':
    kernel/sys.c:1868:34: error: 'mmap_min_addr' undeclared (first use in this function)

    The test for mmap_min_addr doesn't make a lot of sense for no-MMU code
    as noted in commit 6e1415467614 ("NOMMU: Optimise away the
    {dac_,}mmap_min_addr tests").

    This patch defines mmap_min_addr as 0UL in the no-MMU case so that the
    compiler will optimize away tests for "addr < mmap_min_addr".

    Signed-off-by: Mark Salter
    Reviewed-by: Cyrill Gorcunov
    Cc: [3.6.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Salter
     
  • When racing with CPU hotplug, percpu_counter_sum() can return negative
    values for the number of observed events.

    This confuses fprop_new_period(), which uses unsigned type and as a
    result number of events is set to big *positive* number. From that
    moment on, things go pear shaped and can result e.g. in division by
    zero as denominator is later truncated to 32-bits.

    This bug causes a divide-by-zero oops in bdi_dirty_limit() in Borislav's
    3.6.0-rc6 based kernel.

    Fix the issue by using a signed type in fprop_new_period(). That makes
    us bail out from the function without doing anything (mistakenly)
    thinking there are no events to age. That makes aging somewhat
    inaccurate but getting accurate data would be rather hard.

    Signed-off-by: Jan Kara
    Reported-by: Borislav Petkov
    Reported-by: Srivatsa S. Bhat
    Cc: Wu Fengguang
    Cc: Peter Zijlstra
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Kara
     
  • "echo" doesn't read from stdin, therefore the checksyscalls script didn't
    warn about not implemented system calls anymore since 29dc54c6
    ("checksyscalls: Use arch/x86/syscalls/syscall_32.tbl as source").

    Use "cat" instead of "echo" which handles this correctly.

    Signed-off-by: Heiko Carstens
    Cc: Michal Marek
    Cc: H. Peter Anvin
    Cc: Cyrill Gorcunov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • Since the pwm-backlight driver is lacking a proper maintainer and is the
    heaviest user of the PWM framework I'm taking over maintenance.

    Signed-off-by: Thierry Reding
    Acked-by: Arun Murthy
    Cc: Matthew Garrett
    Cc: Robert Morell
    Cc: Dilan Lee
    Cc: Axel Lin
    Cc: Mark Brown
    Cc: Alexandre Courbot
    Acked-by: Sachin Kamat
    Acked-by: Linus Walleij
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thierry Reding
     
  • Some drivers need to switch pin states between GPIO and pin function at
    runtime, which was inadvertently broken in the pinctrl driver for GPIOs
    being bound to a specific direction.

    This fixes up the request path to ensure that previously configured GPIOs
    don't cause us to inadvertently error out with an unsupported mux on
    reconfig, which in practice is primarily aimed at trapping pull-up/down
    users that have yet to be implemented under the new API.

    Fixes up regressions in the TPU PWM driver, amongst others.

    Reported-by: Laurent Pinchart
    Tested-by: Laurent Pinchart
    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • John W. Linville says:

    ====================
    Please pull this last(?) batch of fixes intended for 3.6...

    For the Bluetooth bits, Gustavo says this:

    "Here goes probably my last update to 3.6. It includes the two patches
    you were ok last week(from Andrzej Kaczmarek), those are critical
    ones, and two other fixes one for a system crash and the other for
    a missing lockdep annotation."

    The referenced fixes from Andrzej prevent attempts to configure devices
    that are powered-off.

    Along with the Bluetooth fixes, there are a couple of 802.11 fixes.
    Emmanuel Grumbach gives us an iwlwifi fix to prevent releasing an
    interrupt twice. Luis R. Rodriguez provides a fix for a possible
    circular lock dependency in the cfg80211 regulatory enforcement code.

    All of these have been in linux-next for a few days. I hope they are
    not too late to make the 3.6 release!
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull tile gxio ABI fix from Chris Metcalf:
    "This fixes a last-minute change in the Tilera hypervisor ABI for TRIO
    (PCI root complex) support. We've locked in this ABI going forward
    and will make sure no further ABI changes like this occur."

    * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    tile: gxio iorpc numbering change for TRIO interface

    Linus Torvalds
     
  • Pull vfio fixes from Alex Williamson:
    "VFIO doc update and virqfd race fix"

    * tag 'vfio-for-linus' of git://github.com/awilliam/linux-vfio:
    vfio: Fix virqfd release race
    vfio: Trivial Documentation correction

    Linus Torvalds
     
  • Pull a Xen fix from Konrad Rzeszutek Wilk:
    "It is a bug-fix when we run the initial PV guest on a AMD K8 machine
    and have CONFIG_AMD_NUMA enabled and detect the NUMA topology from the
    Northbridge.

    We end up in the situation where the initial domain gets too much
    information and gets confused and crashes - the fix is to restrict the
    domain to get the information - and we do it by just disabling NUMA on
    the PV guest (the hypervisor is still able to do its proper NUMA
    allocations of guests).

    It is OK to disable the PV guest from accessing NUMA data as right now
    we do not inject any NUMA node information to the PV guests. When we
    do get to that point, then this patch will have to be reverted."

    * Disable PV NUMA support as we do not do anything with it (yet) and it
    can cause bootup crashes on certain AMD machines.

    * tag 'stable/for-linus-3.6-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/boot: Disable NUMA for PV guests.

    Linus Torvalds
     
  • Pull two ceph fixes from Sage Weil:
    "The first fixes a leak in the rbd setup error path, and the second
    fixes a more serious problem with mismatched kmap/kunmap that surfaced
    after the recent refactoring work."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    libceph: only kunmap kmapped pages
    rbd: drop dev reference on error in rbd_open()

    Linus Torvalds
     
  • Its possible to use RAW sockets to get a crash in
    tcp_set_keepalive() / sk_reset_timer()

    Fix is to make sure socket is a SOCK_STREAM one.

    Reported-by: Dave Jones
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • The license header was missing in micrel_phy.h . This patch adds
    one.

    Signed-off-by: Marek Vasut
    Cc: David J. Choi
    Cc: David S. Miller
    Cc: Nobuhiro Iwamatsu
    Signed-off-by: David S. Miller

    Marek Vasut
     
  • There is no such part as KS8001, KS8041 or KS8051. There are only
    KSZ8001, KSZ8041 and KSZ8051. Rename these parts as such to match
    the Micrel naming.

    Signed-off-by: Marek Vasut
    Cc: David J. Choi
    Cc: David S. Miller
    Cc: Nobuhiro Iwamatsu
    Cc: Linux ARM kernel
    Cc: Fabio Estevam
    Cc: Shawn Guo
    Signed-off-by: David S. Miller

    Marek Vasut
     
  • The KSZ8021 PHY was previously caught by KS8051, which is not correct.
    This PHY needs additional setup if it is strapped for address 0. In such
    case an reserved bit must be written in the 0x16, "Operation Mode Strap
    Override" register. According to the KS8051 datasheet, that bit means
    "PHY Address 0 in non-broadcast" and it indeed behaves as such on KSZ8021.
    The issue where the ethernet controller (Freescale FEC) did not communicate
    with network is fixed by writing this bit as 1.

    Signed-off-by: Marek Vasut
    Cc: David J. Choi
    Cc: David S. Miller
    Cc: Nobuhiro Iwamatsu
    Signed-off-by: David S. Miller

    Marek Vasut
     
  • An ABI numbering change was made in the hypervisor for Tilera's 4.1
    MDE release (just shipped). It's incompatible with the previous 4.0
    release ABI numbering, so we track the new numbering going forward.
    We plan to avoid modifying ABI numbering for these interfaces again.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

24 Sep, 2012

6 commits

  • The hypervisor is in charge of allocating the proper "NUMA" memory
    and dealing with the CPU scheduler to keep them bound to the proper
    NUMA node. The PV guests (and PVHVM) have no inkling of where they
    run and do not need to know that right now. In the future we will
    need to inject NUMA configuration data (if a guest spans two or more
    NUMA nodes) so that the kernel can make the right choices. But those
    patches are not yet present.

    In the meantime, disable the NUMA capability in the PV guest, which
    also fixes a bootup issue. Andre says:

    "we see Dom0 crashes due to the kernel detecting the NUMA topology not
    by ACPI, but directly from the northbridge (CONFIG_AMD_NUMA).

    This will detect the actual NUMA config of the physical machine, but
    will crash about the mismatch with Dom0's virtual memory. Variation of
    the theme: Dom0 sees what it's not supposed to see.

    This happens with the said config option enabled and on a machine where
    this scanning is still enabled (K8 and Fam10h, not Bulldozer class)

    We have this dump then:
    NUMA: Warning: node ids are out of bound, from=-1 to=-1 distance=10
    Scanning NUMA topology in Northbridge 24
    Number of physical nodes 4
    Node 0 MemBase 0000000000000000 Limit 0000000040000000
    Node 1 MemBase 0000000040000000 Limit 0000000138000000
    Node 2 MemBase 0000000138000000 Limit 00000001f8000000
    Node 3 MemBase 00000001f8000000 Limit 0000000238000000
    Initmem setup node 0 0000000000000000-0000000040000000
    NODE_DATA [000000003ffd9000 - 000000003fffffff]
    Initmem setup node 1 0000000040000000-0000000138000000
    NODE_DATA [0000000137fd9000 - 0000000137ffffff]
    Initmem setup node 2 0000000138000000-00000001f8000000
    NODE_DATA [00000001f095e000 - 00000001f0984fff]
    Initmem setup node 3 00000001f8000000-0000000238000000
    Cannot find 159744 bytes in node 3
    BUG: unable to handle kernel NULL pointer dereference at (null)
    IP: [] __alloc_bootmem_node+0x43/0x96
    Pid: 0, comm: swapper Not tainted 3.3.6 #1 AMD Dinar/Dinar
    RIP: e030:[] [] __alloc_bootmem_node+0x43/0x96
    .. snip..
    [] sparse_early_usemaps_alloc_node+0x64/0x178
    [] sparse_init+0xe4/0x25a
    [] paging_init+0x13/0x22
    [] setup_arch+0x9c6/0xa9b
    [] ? printk+0x3c/0x3e
    [] start_kernel+0xe5/0x468
    [] x86_64_start_reservations+0xba/0xc1
    [] ? xen_setup_runstate_info+0x2c/0x36
    [] xen_start_kernel+0x565/0x56c
    "

    so we just disable NUMA scanning by setting numa_off=1.

    CC: stable@vger.kernel.org
    Reported-and-Tested-by: Andre Przywara
    Acked-by: Andre Przywara
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • Linus Torvalds
     
  • Pull kbuild fixes from Michal Marek:
    "There are two more kbuild fixes for 3.6.

    One fixes a race between x86's archscripts target and the rule
    (re)building scripts/basic/fixdep. The second is a fix for the
    previous attempt at fixing make firmware_install with make 3.82.
    This new solution should work with any version of GNU make"

    * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    x86/kbuild: archscripts depends on scripts_basic
    firmware: fix directory creation rule matching with make 3.80

    Linus Torvalds
     
  • Pull hwmon subsystem fixes from Jean Delvare.

    * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    hwmon: (fam15h_power) Tweak runavg_range on resume
    hwmon: (coretemp) Use get_online_cpus to avoid races involving CPU hotplug
    hwmon: (via-cputemp) Use get_online_cpus to avoid races involving CPU hotplug

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "This is a set of four essential fixes: two oops related (bnx2i,
    virtio-scsi), one data corruption related (hpsa) and one failure to
    boot due to interrupt routing issues (mpt2ss).

    Signed-off-by: James Bottomley "

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    [SCSI] hpsa: fix handling of protocol error
    [SCSI] mpt2sas: Fix for issue - Unable to boot from the drive connected to HBA
    [SCSI] bnx2i: Fixed NULL ptr deference for 1G bnx2 Linux iSCSI offload
    [SCSI] scsi: virtio-scsi: Fix address translation failure of HighMem pages used by sg list

    Linus Torvalds
     
  • Fix potential NULL pointer dereference in edac_unregister_sysfs() on
    system boot introduced in 3.6-rc1.

    Since commit 7a623c039 ("edac: rewrite the sysfs code to use struct
    device") edac_mc_alloc() no longer initializes embedded kobjects in
    struct mem_ctl_info. Therefore edac_mc_free() can no longer simply
    decrement a kobject reference count to free the allocated memory unless
    the memory controller driver module had also called edac_mc_add_mc().

    Now edac_mc_free() will check if the newly embedded struct device has
    been registered with sysfs before using either the standard device
    release functions or freeing the data structures itself with logic
    pulled out of the error path of edac_mc_alloc().

    The BUG this patch resolves for me:

    BUG: unable to handle kernel NULL pointer dereference at (null)
    EIP is at __wake_up_common+0x1a/0x6a
    Process modprobe (pid: 933, ti=f3dc6000 task=f3db9520 task.ti=f3dc6000)
    Call Trace:
    complete_all+0x3f/0x50
    device_pm_remove+0x23/0xa2
    device_del+0x34/0x142
    edac_unregister_sysfs+0x3b/0x5c [edac_core]
    edac_mc_free+0x29/0x2f [edac_core]
    e7xxx_probe1+0x268/0x311 [e7xxx_edac]
    e7xxx_init_one+0x56/0x61 [e7xxx_edac]
    local_pci_probe+0x13/0x15
    ...

    Cc: Mauro Carvalho Chehab
    Cc: Shaohui Xie
    Signed-off-by: Shaun Ruffell
    Signed-off-by: Linus Torvalds

    Shaun Ruffell