11 Nov, 2012

2 commits

  • Pull networking fixes from David Miller:
    "Bug fixes galore, mostly in drivers as is often the case:

    1) USB gadget and cdc_eem drivers need adjustments to their frame size
    lengths in order to handle VLANs correctly. From Ian Coolidge.

    2) TIPC and several network drivers erroneously call tasklet_disable
    before tasklet_kill, fix from Xiaotian Feng.

    3) r8169 driver needs to apply the WOL suspend quirk to more chipsets,
    fix from Cyril Brulebois.

    4) Fix multicast filters on RTL_GIGA_MAC_VER_35 r8169 chips, from
    Nathan Walp.

    5) FDB netlink dumps should use RTM_NEWNEIGH as the message type, not
    zero. From John Fastabend.

    6) Fix smsc95xx tx checksum offload on big-endian, from Steve
    Glendinning.

    7) __inet_diag_dump() needs to repsect and report the error value
    returned from inet_diag_lock_handler() rather than ignore it.
    Otherwise if an inet diag handler is not available for a particular
    protocol, we essentially report success instead of giving an error
    indication. Fix from Cyrill Gorcunov.

    8) When the QFQ packet scheduler sees TSO/GSO packets it does not
    handle things properly, and in fact ends up corrupting it's
    datastructures as well as mis-schedule packets. Fix from Paolo
    Valente.

    9) Fix oopser in skb_loop_sk(), from Eric Leblond.

    10) CXGB4 passes partially uninitialized datastructures in to FW
    commands, fix from Vipul Pandya.

    11) When we send unsolicited ipv6 neighbour advertisements, we should
    send them to the link-local allnodes multicast address, as per
    RFC4861. Fix from Hannes Frederic Sowa.

    12) There is some kind of bug in the usbnet's kevent deferral
    mechanism, but more immediately when it triggers an uncontrolled
    stream of kernel messages spam the log. Rate limit the error log
    message triggered when this problem occurs, as sending thousands
    of error messages into the kernel log doesn't help matters at all,
    and in fact makes further diagnosis more difficult.

    From Steve Glendinning.

    13) Fix gianfar restore from hibernation, from Wang Dongsheng.

    14) The netlink message attribute sizes are wrong in the ipv6 GRE
    driver, it was using the size of ipv4 addresses instead of ipv6
    ones :-) Fix from Nicolas Dichtel."

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    gre6: fix rtnl dump messages
    gianfar: ethernet vanishes after restoring from hibernation
    usbnet: ratelimit kevent may have been dropped warnings
    ipv6: send unsolicited neighbour advertisements to all-nodes
    net: usb: cdc_eem: Fix rx skb allocation for 802.1Q VLANs
    usb: gadget: g_ether: fix frame size check for 802.1Q
    cxgb4: Fix initialization of SGE_CONTROL register
    isdn: Make CONFIG_ISDN depend on CONFIG_NETDEVICES
    cxgb4: Initialize data structures before using.
    af-packet: fix oops when socket is not present
    pkt_sched: enable QFQ to support TSO/GSO
    net: inet_diag -- Return error code if protocol handler is missed
    net: bnx2x: Fix typo in bnx2x driver
    smsc95xx: fix tx checksum offload for big endian
    rtnetlink: Use nlmsg type RTM_NEWNEIGH from dflt fdb dump
    ptp: update adjfreq callback description
    r8169: allow multicast packets on sub-8168f chipset.
    r8169: Fix WoL on RTL8168d/8111d.
    drivers/net: use tasklet_kill in device remove/close process
    tipc: do not use tasklet_disable before tasklet_kill

    Linus Torvalds
     
  • Pull sparc fixes from David Miller:
    "Several build/bug fixes for sparc, including:

    1) Configuring a mix of static vs. modular sparc64 crypto modules
    didn't work, remove an ill-conceived attempt to only have to build
    the device match table for these drivers once to fix the problem.

    Reported by Meelis Roos.

    2) Make the montgomery multiple/square and mpmul instructions actually
    usable in 32-bit tasks. Essentially this involves providing 32-bit
    userspace with a way to use a 64-bit stack when it needs to.

    3) Our sparc64 atomic backoffs don't yield cpu strands properly on
    Niagara chips. Use pause instruction when available to achieve
    this, otherwise use a benign instruction we know blocks the strand
    for some time.

    4) Wire up kcmp

    5) Fix the build of various drivers by removing the unnecessary
    blocking of OF_GPIO when SPARC.

    6) Fix unintended regression wherein of_address_to_resource stopped
    being provided. Fix from Andreas Larsson.

    7) Fix NULL dereference in leon_handle_ext_irq(), also from Andreas
    Larsson."

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: Fix build with mix of modular vs. non-modular crypto drivers.
    sparc: Support atomic64_dec_if_positive properly.
    of/address: sparc: Declare of_address_to_resource() as an extern function for sparc again
    sparc32, leon: Check for existent irq_map entry in leon_handle_ext_irq
    sparc: Add sparc support for platform_get_irq()
    sparc: Allow OF_GPIO on sparc.
    qlogicpti: Fix build warning.
    sparc: Wire up sys_kcmp.
    sparc64: Improvde documentation and readability of atomic backoff code.
    sparc64: Use pause instruction when available.
    sparc64: Fix cpu strand yielding.
    sparc64: Make montmul/montsqr/mpmul usable in 32-bit threads.

    Linus Torvalds
     

10 Nov, 2012

3 commits

  • Pull Xen fixes from Konrad Rzeszutek Wilk:
    "There are three ARM compile fixes (we forgot to export certain
    functions and if the drivers are built as an module - we go belly-up).

    There is also an mismatch of irq_enter() / exit_idle() calls sequence
    which were fixed some time ago in other piece of codes, but failed to
    appear in the Xen code.

    Lastly a fix for to help in the field with troubleshooting in case we
    cannot get the appropriate parameter and also fallback code when
    working with very old hypervisors."

    Bug-fixes:
    - Fix compile issues on ARM.
    - Fix hypercall fallback code for old hypervisors.
    - Print out which HVM parameter failed if it fails.
    - Fix idle notifier call after irq_enter.

    * tag 'stable/for-linus-3.7-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/arm: Fix compile errors when drivers are compiled as modules (export more).
    xen/arm: Fix compile errors when drivers are compiled as modules.
    xen/generic: Disable fallback build on ARM.
    xen/events: fix RCU warning, or Call idle notifier after irq_enter()
    xen/hvm: If we fail to fetch an HVM parameter print out which flag it is.
    xen/hypercall: fix hypercall fallback code for very old hypervisors

    Linus Torvalds
     
  • This bug-fix makes sure that of_address_to_resource is defined extern for sparc
    so that the sparc-specific implementation of of_address_to_resource() is once
    again used when including include/linux/of_address.h in a sparc context. A
    number of drivers in mainline relies on this function working for sparc.

    The bug was introduced in a850a7554442f08d3e910c6eeb4ee216868dda1e, "of/address:
    add empty static inlines for !CONFIG_OF". Contrary to that commit title, the
    static inlines are added for !CONFIG_OF_ADDRESS, and CONFIG_OF_ADDRESS is never
    defined for sparc. This is good behavior for the other functions in
    include/linux/of_address.h, as the extern functions defined in
    drivers/of/address.c only gets linked when OF_ADDRESS is configured. However,
    for of_address_to_resource there exists a sparc-specific implementation in
    arch/sparc/arch/sparc/kernel/of_device_common.c

    Solution suggested by: Sam Ravnborg

    Signed-off-by: Andreas Larsson
    Acked-by: Rob Herring
    Signed-off-by: David S. Miller

    Andreas Larsson
     
  • Pull MMC fixes from Chris Ball:
    - sdhci: fix a NULL dereference at resume-time, seen on OLPC XO-4
    - sdhci: fix against 3.7-rc1 for UHS modes without a vqmmc regulator
    - sdhci-of-esdhc: disable CMD23 on boards where it's broken
    - sdhci-s3c: fix against 3.7-rc1 for card detection with runtime PM
    - dw_mmc, omap_hsmmc: fix potential NULL derefs, compiler warnings

    * tag 'mmc-fixes-for-3.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
    mmc: sdhci-s3c: fix the card detection in runtime-pm
    mmc: sdhci-s3c: use clk_prepare_enable and clk_disable_unprepare
    mmc: dw_mmc: constify dw_mci_idmac_ops in exynos back-end
    mmc: dw_mmc: fix modular build for exynos back-end
    mmc: sdhci: fix NULL dereference in sdhci_request() tuning
    mmc: sdhci: fix IS_ERR() checking of regulator_get()
    mmc: fix sdhci-dove probe/removal
    mmc: sh_mmcif: fix use after free
    mmc: sdhci-pci: fix 'Invalid iomem size' error message condition
    mmc: mxcmmc: Fix MODULE_ALIAS
    mmc: omap_hsmmc: fix NULL pointer dereference for dt boot
    mmc: omap_hsmmc: fix host reference after mmc_free_host
    mmc: dw_mmc: fix multiple drv_data NULL dereferences
    mmc: dw_mmc: enable controller interrupt before calling mmc_start_host
    mmc: sdhci-of-esdhc: disable CMD23 for some Freescale SoCs
    mmc: dw_mmc: remove _dev_info compile warning
    mmc: dw_mmc: convert the variable type of irq

    Linus Torvalds
     

09 Nov, 2012

1 commit

  • Revert commit 03a7beb55b9f ("epoll: support for disabling items, and a
    self-test app") pending resolution of the issues identified by Michael
    Kerrisk, copied below.

    We'll revisit this for 3.8.

    : I've taken a look at this patch as it currently stands in 3.7-rc1, and
    : done a bit of testing. (By the way, the test program
    : tools/testing/selftests/epoll/test_epoll.c does not compile...)
    :
    : There are one or two places where the behavior seems a little strange,
    : so I have a question or two at the end of this mail. But other than
    : that, I want to check my understanding so that the interface can be
    : correctly documented.
    :
    : Just to go though my understanding, the problem is the following
    : scenario in a multithreaded application:
    :
    : 1. Multiple threads are performing epoll_wait() operations,
    : and maintaining a user-space cache that contains information
    : corresponding to each file descriptor being monitored by
    : epoll_wait().
    :
    : 2. At some point, a thread wants to delete (EPOLL_CTL_DEL)
    : a file descriptor from the epoll interest list, and
    : delete the corresponding record from the user-space cache.
    :
    : 3. The problem with (2) is that some other thread may have
    : previously done an epoll_wait() that retrieved information
    : about the fd in question, and may be in the middle of using
    : information in the cache that relates to that fd. Thus,
    : there is a potential race.
    :
    : 4. The race can't solved purely in user space, because doing
    : so would require applying a mutex across the epoll_wait()
    : call, which would of course blow thread concurrency.
    :
    : Right?
    :
    : Your solution is the EPOLL_CTL_DISABLE operation. I want to
    : confirm my understanding about how to use this flag, since
    : the description that has accompanied the patches so far
    : has been a bit sparse
    :
    : 0. In the scenario you're concerned about, deleting a file
    : descriptor means (safely) doing the following:
    : (a) Deleting the file descriptor from the epoll interest list
    : using EPOLL_CTL_DEL
    : (b) Deleting the corresponding record in the user-space cache
    :
    : 1. It's only meaningful to use this EPOLL_CTL_DISABLE in
    : conjunction with EPOLLONESHOT.
    :
    : 2. Using EPOLL_CTL_DISABLE without using EPOLLONESHOT in
    : conjunction is a logical error.
    :
    : 3. The correct way to code multithreaded applications using
    : EPOLL_CTL_DISABLE and EPOLLONESHOT is as follows:
    :
    : a. All EPOLL_CTL_ADD and EPOLL_CTL_MOD operations should
    : should EPOLLONESHOT.
    :
    : b. When a thread wants to delete a file descriptor, it
    : should do the following:
    :
    : [1] Call epoll_ctl(EPOLL_CTL_DISABLE)
    : [2] If the return status from epoll_ctl(EPOLL_CTL_DISABLE)
    : was zero, then the file descriptor can be safely
    : deleted by the thread that made this call.
    : [3] If the epoll_ctl(EPOLL_CTL_DISABLE) fails with EBUSY,
    : then the descriptor is in use. In this case, the calling
    : thread should set a flag in the user-space cache to
    : indicate that the thread that is using the descriptor
    : should perform the deletion operation.
    :
    : Is all of the above correct?
    :
    : The implementation depends on checking on whether
    : (events & ~EP_PRIVATE_BITS) == 0
    : This replies on the fact that EPOLL_CTL_AD and EPOLL_CTL_MOD always
    : set EPOLLHUP and EPOLLERR in the 'events' mask, and EPOLLONESHOT
    : causes those flags (as well as all others in ~EP_PRIVATE_BITS) to be
    : cleared.
    :
    : A corollary to the previous paragraph is that using EPOLL_CTL_DISABLE
    : is only useful in conjunction with EPOLLONESHOT. However, as things
    : stand, one can use EPOLL_CTL_DISABLE on a file descriptor that does
    : not have EPOLLONESHOT set in 'events' This results in the following
    : (slightly surprising) behavior:
    :
    : (a) The first call to epoll_ctl(EPOLL_CTL_DISABLE) returns 0
    : (the indicator that the file descriptor can be safely deleted).
    : (b) The next call to epoll_ctl(EPOLL_CTL_DISABLE) fails with EBUSY.
    :
    : This doesn't seem particularly useful, and in fact is probably an
    : indication that the user made a logic error: they should only be using
    : epoll_ctl(EPOLL_CTL_DISABLE) on a file descriptor for which
    : EPOLLONESHOT was set in 'events'. If that is correct, then would it
    : not make sense to return an error to user space for this case?

    Cc: Michael Kerrisk
    Cc: "Paton J. Lewis"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

08 Nov, 2012

3 commits

  • The of_device_id match data is now marked as const and
    must not be modified. This changes the dw_mmc to mark
    all pointers passing the dw_mci_drv_data or dw_mci_dma_ops
    structures as const, and also marks the static definitions
    as const.

    drivers/mmc/host/dw_mmc-exynos.c: In function 'dw_mci_exynos_probe':
    drivers/mmc/host/dw_mmc-exynos.c:234:11: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]

    Signed-off-by: Arnd Bergmann
    Cc: Thomas Abraham
    Cc: Will Newton
    Signed-off-by: Chris Ball

    Arnd Bergmann
     
  • CMD23 causes lots of errors in kernel on some freescale SoCs
    (P1020, P1021, P1022, P1024, P1025 and P4080) when MMC card used,
    which is because these controllers does not support CMD23,
    even on the SoCs which declares CMD23 is supported.
    Therefore, we'll not use CMD23.

    Signed-off-by: Jerry Huang
    Signed-off-by: Shaohui Xie
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Jerry Huang
     
  • Even though platform_get_irq returns error, 'host->irq'
    always has an unsigned value. Less-than-zero comparison
    of an unsigned value is never true. Type of 'unsigned int'
    will be changed for 'int'.

    Signed-off-by: Seungwon Jeon
    Acked-by: Will Newton
    Signed-off-by: Chris Ball

    Seungwon Jeon
     

07 Nov, 2012

1 commit


04 Nov, 2012

1 commit

  • This patch updates the adjfreq callback description to include a note that the
    delta in ppb is always relative to the base frequency, and not to the current
    frequency of the hardware clock.

    Signed-off-by: Jacob Keller
    CC: stable@vger.kernel.org [v3.5+]
    CC: Richard Cochran
    CC: John Stultz
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Jacob Keller
     

03 Nov, 2012

3 commits

  • Pull networking fixes from David Miller:
    "First post-Sandy pull request"

    1) Fix antenna gain handling and initialization of chan->max_reg_power
    in wireless, from Felix Fietkau.

    2) Fix nexthop handling in H.232 conntrack helper, from Julian
    Anastasov.

    3) Only process 80211 mesh config header in certain kinds of frames,
    from Javier Cardona.

    4) 80211 management frame header length needs to be validated, from
    Johannes Berg.

    5) Don't access free'd SKBs in ath9k driver, from Felix Fietkay.

    6) Test for permanent state correctly in VXLAN driver, from Stephen
    Hemminger.

    7) BNX2X bug fixes from Yaniv Rosner and Dmitry Kravkov.

    8) Fix off by one errors in bonding, from Nikolay ALeksandrov.

    9) Fix divide by zero in TCP-Illinois congestion control. From Jesper
    Dangaard Brouer.

    10) TCP metrics code says "Yo dawg, I heard you like sizeof, so I did a
    sizeof of a sizeof, so you can size your size" Fix from Julian
    Anastasov.

    11) Several drivers do mdiobus_free without first doing an
    mdiobus_unregister leading to stray pointer references. Fix from
    Peter Senna Tschudin.

    12) Fix OOPS in l2tp_eth_create() error path, it's another danling
    pointer kinda situation. Fix from Tom Parkin.

    13) Hardware driven by the vmxnet driver can't handle larger than 16K
    fragments, so split them up when necessary. From Eric Dumazet.

    14) Handle zero length data length in tcp_send_rcvq() properly. Fix
    from Pavel Emelyanov.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (38 commits)
    tcp-repair: Handle zero-length data put in rcv queue
    vmxnet3: must split too big fragments
    l2tp: fix oops in l2tp_eth_create() error path
    cxgb4: Fix unable to get UP event from the LLD
    drivers/net/phy/mdio-bitbang.c: Call mdiobus_unregister before mdiobus_free
    drivers/net/ethernet/nxp/lpc_eth.c: Call mdiobus_unregister before mdiobus_free
    bnx2x: fix HW initialization using fw 7.8.x
    tcp: Fix double sizeof in new tcp_metrics code
    net: fix divide by zero in tcp algorithm illinois
    net: sctp: Fix typo in net/sctp
    bonding: fix second off-by-one error
    bonding: fix off-by-one error
    bnx2x: Disable FCoE for 57840 since not yet supported by FW
    bnx2x: Fix no link on 577xx 10G-baseT
    bnx2x: Fix unrecognized SFP+ module after driver is loaded
    bnx2x: Fix potential incorrect link speed provision
    bnx2x: Restore global registers back to default.
    bnx2x: Fix link down in 57712 following LFA
    bnx2x: Fix 57810 1G-KR link against certain switches.
    ixgbe: PTP get_ts_info missing software support
    ...

    Linus Torvalds
     
  • Pull Xen bugfixes from Konrad Rzeszutek Wilk:
    - Use appropriate macros instead of hand-rolling our own (ARM).
    - Fixes if FB/KBD closed unexpectedly.
    - Fix memory leak in /dev/gntdev ioctl calls.
    - Fix overflow check in xenbus_file_write.
    - Document cleanup.
    - Performance optimization when migrating guests.

    * tag 'stable/for-linus-3.7-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/mmu: Use Xen specific TLB flush instead of the generic one.
    xen/arm: use the __HVC macro
    xen/xenbus: fix overflow check in xenbus_file_write()
    xen-kbdfront: handle backend CLOSED without CLOSING
    xen-fbfront: handle backend CLOSED without CLOSING
    xen/gntdev: don't leak memory from IOCTL_GNTDEV_MAP_GRANT_REF
    x86: remove obsolete comment from asm/xen/hypervisor.h

    Linus Torvalds
     
  • This hashtable implementation is using hlist buckets to provide a simple
    hashtable to prevent it from getting reimplemented all over the kernel.

    Signed-off-by: Sasha Levin
    [ Merging this now, so that subsystems can start applying Sasha's
    patches that use this - Linus ]
    Signed-off-by: Linus Torvalds

    Sasha Levin
     

01 Nov, 2012

5 commits

  • Pull KVM fix from Marcelo Tosatti.

    * git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: x86: fix vcpu->mmio_fragments overflow

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "This contains unexpectedly many changes in a wide range due to the
    fixes for races at disconnection of USB audio devices. In the end, we
    end up covering fairly core parts of sound subsystem.

    Other than that, just a few usual small fixes."

    * tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: ice1724: Fix rate setup after resume
    ALSA: Avoid endless sleep after disconnect
    ALSA: Add a reference counter to card instance
    ALSA: usb-audio: Fix races at disconnection in mixer_quirks.c
    ALSA: usb-audio: Use rwsem for disconnect protection
    ALSA: usb-audio: Fix races at disconnection
    ALSA: PCM: Fix some races at disconnection
    ASoC: omap-dmic: Correct functional clock name
    ASoC: zoom2: Fix compile error by including correct header files
    ALSA: hda - Fix mute-LED setup for HP dv5 laptop

    Linus Torvalds
     
  • After commit b3356bf0dbb349 (KVM: emulator: optimize "rep ins" handling),
    the pieces of io data can be collected and write them to the guest memory
    or MMIO together

    Unfortunately, kvm splits the mmio access into 8 bytes and store them to
    vcpu->mmio_fragments. If the guest uses "rep ins" to move large data, it
    will cause vcpu->mmio_fragments overflow

    The bug can be exposed by isapc (-M isapc):

    [23154.818733] general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
    [ ......]
    [23154.858083] Call Trace:
    [23154.859874] [] kvm_get_cr8+0x1d/0x28 [kvm]
    [23154.861677] [] kvm_arch_vcpu_ioctl_run+0xcda/0xe45 [kvm]
    [23154.863604] [] ? kvm_arch_vcpu_load+0x17b/0x180 [kvm]

    Actually, we can use one mmio_fragment to store a large mmio access then
    split it when we pass the mmio-exit-info to userspace. After that, we only
    need two entries to store mmio info for the cross-mmio pages access

    Signed-off-by: Xiao Guangrong
    Signed-off-by: Marcelo Tosatti

    Xiao Guangrong
     
  • …wireless into for-davem

    John W. Linville
     
  • As Mukesh explained it, the MMUEXT_TLB_FLUSH_ALL allows the
    hypervisor to do a TLB flush on all active vCPUs. If instead
    we were using the generic one (which ends up being xen_flush_tlb)
    we end up making the MMUEXT_TLB_FLUSH_LOCAL hypercall. But
    before we make that hypercall the kernel will IPI all of the
    vCPUs (even those that were asleep from the hypervisor
    perspective). The end result is that we needlessly wake them
    up and do a TLB flush when we can just let the hypervisor
    do it correctly.

    This patch gives around 50% speed improvement when migrating
    idle guest's from one host to another.

    Oracle-bug: 14630170

    CC: stable@vger.kernel.org
    Tested-by: Jingjie Jiang
    Suggested-by: Mukesh Rathor
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     

31 Oct, 2012

1 commit

  • Pull md fixes from NeilBrown:
    "Some fixes for md in 3.7
    - one recently introduced crash for dm-raid10 with discard
    - one bug in new functionality that has been around for a few
    releases.
    - minor bug in md's 'faulty' personality

    and UAPI disintegration for md."

    * tag 'md-3.7-fixes' of git://neil.brown.name/md:
    MD RAID10: Fix oops when creating RAID10 arrays via dm-raid.c
    md/raid1: Fix assembling of arrays containing Replacements.
    md faulty: use disk_stack_limits()
    UAPI: (Scripted) Disintegrate include/linux/raid

    Linus Torvalds
     

30 Oct, 2012

2 commits


29 Oct, 2012

2 commits

  • Use rcu_read_lock_sched / rcu_read_unlock_sched / synchronize_sched
    instead of rcu_read_lock / rcu_read_unlock / synchronize_rcu.

    This is an optimization. The RCU-protected region is very small, so
    there will be no latency problems if we disable preempt in this region.

    So we use rcu_read_lock_sched / rcu_read_unlock_sched that translates
    to preempt_disable / preempt_disable. It is smaller (and supposedly
    faster) than preemptible rcu_read_lock / rcu_read_unlock.

    Signed-off-by: Mikulas Patocka
    Signed-off-by: Linus Torvalds

    Mikulas Patocka
     
  • This patch introduces new barrier pair light_mb() and heavy_mb() for
    percpu rw semaphores.

    This patch fixes a bug in percpu-rw-semaphores where a barrier was
    missing in percpu_up_write.

    This patch improves performance on the read path of
    percpu-rw-semaphores: on non-x86 cpus, there was a smp_mb() in
    percpu_up_read. This patch changes it to a compiler barrier and removes
    the "#if defined(X86) ..." condition.

    From: Lai Jiangshan
    Signed-off-by: Mikulas Patocka
    Signed-off-by: Linus Torvalds

    Mikulas Patocka
     

27 Oct, 2012

7 commits

  • Pull networking fixes from David Miller:
    "This is what we usually expect at this stage of the game, lots of
    little things, mostly in drivers. With the occasional 'oops didn't
    mean to do that' kind of regressions in the core code."

    1) Uninitialized data in __ip_vs_get_timeouts(), from Arnd Bergmann

    2) Reject invalid ACK sequences in Fast Open sockets, from Jerry Chu.

    3) Lost error code on return from _rtl_usb_receive(), from Christian
    Lamparter.

    4) Fix reset resume on USB rt2x00, from Stanislaw Gruszka.

    5) Release resources on error in pch_gbe driver, from Veaceslav Falico.

    6) Default hop limit not set correctly in ip6_template_metrics[], fix
    from Li RongQing.

    7) Gianfar PTP code requests wrong kind of resource during probe, fix
    from Wei Yang.

    8) Fix VHOST net driver on big-endian, from Michael S Tsirkin.

    9) Mallenox driver bug fixes from Jack Morgenstein, Or Gerlitz, Moni
    Shoua, Dotan Barak, and Uri Habusha.

    10) usbnet leaks memory on TX path, fix from Hemant Kumar.

    11) Use socket state test, rather than presence of FIN bit packet, to
    determine FIONREAD/SIOCINQ value. Fix from Eric Dumazet.

    12) Fix cxgb4 build failure, from Vipul Pandya.

    13) Provide a SYN_DATA_ACKED state to complement SYN_FASTOPEN in socket
    info dumps. From Yuchung Cheng.

    14) Fix leak of security path in kfree_skb_partial(). Fix from Eric
    Dumazet.

    15) Handle RX FIFO overflows more resiliently in pch_gbe driver, from
    Veaceslav Falico.

    16) Fix MAINTAINERS file pattern for networking drivers, from Jean
    Delvare.

    17) Add iPhone5 IDs to IPHETH driver, from Jay Purohit.

    18) VLAN device type change restriction is too strict, and should not
    trigger for the automatically generated vlan0 device. Fix from Jiri
    Pirko.

    19) Make PMTU/redirect flushing work properly again in ipv4, from
    Steffen Klassert.

    20) Fix memory corruptions by using kfree_rcu() in netlink_release().
    From Eric Dumazet.

    21) More qmi_wwan device IDs, from Bjørn Mork.

    22) Fix unintentional change of SNAT/DNAT hooks in generic NAT
    infrastructure, from Elison Niven.

    23) Fix 3.6.x regression in xt_TEE netfilter module, from Eric Dumazet.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (57 commits)
    tilegx: fix some issues in the SW TSO support
    qmi_wwan/cdc_ether: move Novatel 551 and E362 to qmi_wwan
    net: usb: Fix memory leak on Tx data path
    net/mlx4_core: Unmap UAR also in the case of error flow
    net/mlx4_en: Don't use vlan tag value as an indication for vlan presence
    net/mlx4_en: Fix double-release-range in tx-rings
    bas_gigaset: fix pre_reset handling
    vhost: fix mergeable bufs on BE hosts
    gianfar_ptp: use iomem, not ioports resource tree in probe
    ipv6: Set default hoplimit as zero.
    NET_VENDOR_TI: make available for am33xx as well
    pch_gbe: fix error handling in pch_gbe_up()
    b43: Fix oops on unload when firmware not found
    mwifiex: clean up scan state on error
    mwifiex: return -EBUSY if specific scan request cannot be honored
    brcmfmac: fix potential NULL dereference
    Revert "ath9k_hw: Updated AR9003 tx gain table for 5GHz"
    ath9k_htc: Add PID/VID for a Ubiquiti WiFiStation
    rt2x00: usb: fix reset resume
    rtlwifi: pass rx setup error code to caller
    ...

    Linus Torvalds
     
  • A number of places in the mesh code don't check that
    the frame data is present and in the skb header when
    trying to access. Add those checks and the necessary
    pskb_may_pull() calls. This prevents accessing data
    that doesn't actually exist.

    To do this, export ieee80211_get_mesh_hdrlen() to be
    able to use it in mac80211.

    Cc: stable@vger.kernel.org
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Pull staging driver fixes from Greg Kroah-Hartman:
    "Here are some staging driver fixes for your 3.7-rc tree.

    Nothing major here, a number of iio driver fixups that were causing
    problems, some comedi driver bugfixes, and a bunch of tidspbridge
    warning squashing and other regressions fixed from the 3.6 release.

    All have been in the linux-next releases for a bit.

    Signed-off-by: Greg Kroah-Hartman "

    * tag 'staging-3.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (32 commits)
    staging: tidspbridge: delete unused mmu functions
    staging: tidspbridge: ioremap physical address of the stack segment in shm
    staging: tidspbridge: ioremap dsp sync addr
    staging: tidspbridge: change type to __iomem for per and core addresses
    staging: tidspbridge: drop const from custom mmu implementation
    staging: tidspbridge: request the right irq for mmu
    staging: ipack: add missing include (implicit declaration of function 'kfree')
    staging: ramster: depends on NET
    staging: omapdrm: fix allocation size for page addresses array
    staging: zram: Fix handling of incompressible pages
    Staging: android: binder: Allow using highmem for binder buffers
    Staging: android: binder: Fix memory leak on thread/process exit
    staging: comedi: ni_labpc: fix possible NULL deref during detach
    staging: comedi: das08: fix possible NULL deref during detach
    staging: comedi: amplc_pc263: fix possible NULL deref during detach
    staging: comedi: amplc_pc236: fix possible NULL deref during detach
    staging: comedi: amplc_pc236: fix invalid register access during detach
    staging: comedi: amplc_dio200: fix possible NULL deref during detach
    staging: comedi: 8255_pci: fix possible NULL deref during detach
    staging: comedi: ni_daq_700: fix dio subdevice regression
    ...

    Linus Torvalds
     
  • Pull driver core fixes from Greg Kroah-Hartman:
    "Here are a number of firmware core fixes for 3.7, and some other minor
    fixes. And some documentation updates thrown in for good measure.

    All have been in the linux-next tree for a while.

    Signed-off-by: Greg Kroah-Hartman "

    * tag 'driver-core-3.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    Documentation:Chinese translation of Documentation/arm64/memory.txt
    Documentation:Chinese translation of Documentation/arm64/booting.txt
    Documentation:Chinese translation of Documentation/IRQ.txt
    firmware loader: document kernel direct loading
    sysfs: sysfs_pathname/sysfs_add_one: Use strlcat() instead of strcat()
    dynamic_debug: Remove unnecessary __used
    firmware loader: sync firmware cache by async_synchronize_full_domain
    firmware loader: let direct loading back on 'firmware_buf'
    firmware loader: fix one reqeust_firmware race
    firmware loader: cancel uncache work before caching firmware

    Linus Torvalds
     
  • Pull char/misc driver fixes from Greg Kroah-Hartman:
    "Here are some driver fixes for 3.7. They include extcon driver fixes,
    a hyper-v bugfix, and two other minor driver fixes.

    All of these have been in the linux-next releases for a while.

    Signed-off-by: Greg Kroah-Hartman "

    * tag 'char-misc-3.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    sonypi: suspend/resume callbacks should be conditionally compiled on CONFIG_PM_SLEEP
    Drivers: hv: Cleanup error handling in vmbus_open()
    extcon : register for cable interest by cable name
    extcon: trivial: kfree missed from remove path
    extcon: driver model release call not needed
    extcon: MAX77693: Add platform data for MUIC device to initialize registers
    extcon: max77693: Use max77693_update_reg for rmw operations
    extcon: Fix kerneldoc for extcon_set_cable_state and extcon_set_cable_state_
    extcon: adc-jack: Add missing MODULE_LICENSE
    extcon: adc-jack: Fix checking return value of request_any_context_irq
    extcon: Fix return value in extcon_register_interest()
    extcon: unregister compat link on cleanup
    extcon: Unregister compat class at module unload to fix oops
    extcon: optimising the check_mutually_exclusive function
    extcon: standard cable names definition and declaration changed
    extcon-max8997: remove usage of ret in max8997_muic_handle_charger_type_detach
    extcon: Remove duplicate inclusion of extcon.h header file

    Linus Torvalds
     
  • Pull x86 fixes from Ingo Molnar:
    "This fixes a couple of nasty page table initialization bugs which were
    causing kdump regressions. A clean rearchitecturing of the code is in
    the works - meanwhile these are reverts that restore the
    best-known-working state of the kernel.

    There's also EFI fixes and other small fixes."

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, mm: Undo incorrect revert in arch/x86/mm/init.c
    x86: efi: Turn off efi_enabled after setup on mixed fw/kernel
    x86, mm: Find_early_table_space based on ranges that are actually being mapped
    x86, mm: Use memblock memory loop instead of e820_RAM
    x86, mm: Trim memory in memblock to be page aligned
    x86/irq/ioapic: Check for valid irq_cfg pointer in smp_irq_move_cleanup_interrupt
    x86/efi: Fix oops caused by incorrect set_memory_uc() usage
    x86-64: Fix page table accounting
    Revert "x86/mm: Fix the size calculation of mapping tables"
    MAINTAINERS: Add EFI git repository location

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "Most of the kernel diffstat relates to a group of Intel P6 and KNC
    (Xeon-Phi Knights Corner) PMU driver fixes, neither of which is in
    heavy use, so we took the fixes.

    The rest is diverse smallish fixes to the tooling and kernel side."

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86: Remove unused variable in nhmex_rbox_alter_er()
    perf/x86: Enable overflow on Intel KNC with a custom knc_pmu_handle_irq()
    perf/x86: Remove cpuc->enable check on Intl KNC event enable/disable
    perf/x86: Make Intel KNC use full 40-bit width of counters
    perf/x86/uncore: Handle pci_read_config_dword() errors
    perf/x86: Remove P6 cpuc->enabled check
    perf/x86: Update/fix generic events on P6 PMU
    perf/x86: Fix P6 FP_ASSIST event constraint
    perf, cpu hotplug: Use cached value of smp_processor_id()
    perf, cpu hotplug: Run CPU_STARTING notifiers with irqs disabled
    x86/perf: Fix virtualization sanity check
    perf test: Fix exclude_guest parse events tests
    perf tools: do not flush maps on COMM for perf report
    perf help: Fix --help for builtins
    perf trace: Check if sample raw_data field is set
    perf trace: Validate syscall id before growing syscall table

    Linus Torvalds
     

26 Oct, 2012

2 commits

  • Pull drm radeon fixes from Dave Airlie:
    "Just radeon fixes in this one:
    - some new PCI IDs
    - ATPX regression fix
    - async VM regression fixes
    - some module options fixes"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/radeon: fix ATPX regression in acpi rework
    drm/radeon: fix ATPX function documentation
    drm/radeon: move the retry to gem_object_create
    drm/radeon: move size limits to gem_object_create.
    drm/radeon: use vzalloc for gart pages
    drm/radeon: fix and simplify pot argument checks v3
    drm/radeon: fix header size estimation in VM code
    drm/radeon: remove set_page check from VM code
    drm/radeon: fix si_set_page v2
    drm/radeon: fix cayman_vm_set_page v2
    drm/radeon: fix PFP sync in vm_flush
    drm/radeon: add error output if VM CS fails on cayman
    drm/radeon: give each backlight a unique id
    drm/radeon: fix sparse warning
    drm/radeon: add some new SI PCI ids

    Linus Torvalds
     
  • rb_erase_augmented() is a static function annotated with
    __always_inline. This causes a compile failure when attempting to use
    the rbtree implementation as a library (e.g. kvm tool):

    rbtree_augmented.h:125:24: error: expected `=', `,', `;', `asm' or `__attribute__' before `void'

    Include linux/compiler.h in rbtree_augmented.h so that the __always_inline
    macro is resolved correctly.

    Signed-off-by: Will Deacon
    Cc: Pekka Enberg
    Reviewed-by: Michel Lespinasse
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Will Deacon
     

25 Oct, 2012

3 commits

  • Pull spi fixes from Mark Brown:
    "A bunch of fixes here, mostly minor except for the pl022 which has
    just been a bit of a shambles all round, the recent runtime PM changes
    have as far as I can tell never worked so they're just getting thrown
    out."

    * tag 'spi-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc:
    spi/pl022: Revert recent runtime PM changes
    spi: tsc2005: delete soon-obsolete e-mail address
    spi: spi-rspi: fix build error for the latest shdma driver

    Linus Torvalds
     
  • The __used attribute prevents gcc from eliminating
    unnecessary, otherwise optimized away, metadata for
    debugging logging messages.

    Remove the __used attribute.

    Signed-off-by: Joe Perches
    Acked-by: Jason Baron
    Signed-off-by: Greg Kroah-Hartman

    Joe Perches
     
  • We will not map partial pages, so need to make sure memblock
    allocation will not allocate those bytes out.

    Also we will use for_each_mem_pfn_range() to loop to map memory
    range to keep them consistent.

    Signed-off-by: Yinghai Lu
    Link: http://lkml.kernel.org/r/CAE9FiQVZirvaBMFYRfXMmWEcHbKSicQEHz4VAwUv0xFCk51ZNw@mail.gmail.com
    Acked-by: Jacob Shin
    Signed-off-by: H. Peter Anvin
    Cc:

    Yinghai Lu
     

24 Oct, 2012

3 commits

  • The perf_cpu_notifier() macro invokes smp_processor_id()
    multiple times. Optimize it by using a local variable.

    Signed-off-by: Srivatsa S. Bhat
    Reviewed-by: Paul E. McKenney
    Cc: peterz@infradead.org
    Cc: acme@ghostprotocols.net
    Link: http://lkml.kernel.org/r/20121016075817.3572.76733.stgit@srivatsabhat.in.ibm.com
    Signed-off-by: Ingo Molnar

    Srivatsa S. Bhat
     
  • The CPU_STARTING notifiers are supposed to be run with irqs
    disabled. But the perf_cpu_notifier() macro invokes them without
    doing that. Fix it.

    Signed-off-by: Srivatsa S. Bhat
    Reviewed-by: Paul E. McKenney
    Cc: peterz@infradead.org
    Cc: acme@ghostprotocols.net
    Link: http://lkml.kernel.org/r/20121016075809.3572.47848.stgit@srivatsabhat.in.ibm.com
    Signed-off-by: Ingo Molnar

    Srivatsa S. Bhat
     
  • Pull xen bug-fixes from Konrad Rzeszutek Wilk:
    - Fix mysterious SIGSEGV or SIGKILL in applications due to corrupting
    of the %eip when returning from a signal handler.
    - Fix various ARM compile issues after the merge fallout.
    - Continue on making more of the Xen generic code usable by ARM
    platform.
    - Fix SR-IOV passthrough to mirror multifunction PCI devices.
    - Fix various compile warnings.
    - Remove hypercalls that don't exist anymore.

    * tag 'stable/for-linus-3.7-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen: dbgp: Fix warning when CONFIG_PCI is not enabled.
    xen: arm: comment on why 64-bit xen_pfn_t is safe even on 32 bit
    xen: balloon: use correct type for frame_list
    xen/x86: don't corrupt %eip when returning from a signal handler
    xen: arm: make p2m operations NOPs
    xen: balloon: don't include e820.h
    xen: grant: use xen_pfn_t type for frame_list.
    xen: events: pirq_check_eoi_map is X86 specific
    xen: XENMEM_translate_gpfn_list was remove ages ago and is unused.
    xen: sysfs: fix build warning.
    xen: sysfs: include err.h for PTR_ERR etc
    xen: xenbus: quirk uses x86 specific cpuid
    xen PV passthru: assign SR-IOV virtual functions to separate virtual slots
    xen/xenbus: Fix compile warning.
    xen/x86: remove duplicated include from enlighten.c

    Linus Torvalds
     

23 Oct, 2012

1 commit