24 Mar, 2013

1 commit

  • This reverts commit 11b80f459adaf91a712f95e7734a17655a36bf30.

    Bcache needs rw semaphores for cache coherency in writeback mode -
    writes have to take a read lock on a per cache device rw sem, and
    release it when the bio completes.

    But since this is for bios it's naturally not in the context of the
    process that originally took the lock.

    Signed-off-by: Kent Overstreet
    CC: Christoph Hellwig
    CC: David Howells

    Kent Overstreet
     

18 Mar, 2013

1 commit

  • Commit 1d9d8639c063 ("perf,x86: fix kernel crash with PEBS/BTS after
    suspend/resume") introduces a link failure since
    perf_restore_debug_store() is only defined for CONFIG_CPU_SUP_INTEL:

    arch/x86/power/built-in.o: In function `restore_processor_state':
    (.text+0x45c): undefined reference to `perf_restore_debug_store'

    Fix it by defining the dummy function appropriately.

    Signed-off-by: David Rientjes
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    David Rientjes
     

16 Mar, 2013

3 commits

  • Pull OpenRISC bug fixes from Jonas Bonn:

    - The GPIO descriptor work has exposed how broken the non-GPIOLIB bits
    for OpenRISC were. We now require GPIOLIB as this is the preferred
    way forward.

    - The system.h split introduced a bug in llist.h for arches using
    asm-generic/cmpxchg.h directly, which is currently only OpenRISC.
    The patch here moves two defines from asm-generic/atomic.h to
    asm-generic/cmpxchg.h to make things work as they should.

    - The VIRT_TO_BUS selector was added for OpenRISC, but OpenRISC does
    not have the virt_to_bus methods, so there's a patch to remove it
    again.

    * tag 'for-3.9-rc3' of git://openrisc.net/jonas/linux:
    openrisc: remove HAVE_VIRT_TO_BUS
    asm-generic: move cmpxchg*_local defs to cmpxchg.h
    openrisc: require gpiolib

    Linus Torvalds
     
  • Pull MFD fixes from Samuel Ortiz:
    "This is the first batch of MFD fixes for 3.9.

    With this one we have:

    - An ab8500 build failure fix.
    - An ab8500 device tree parsing fix.
    - A fix for twl4030_madc remove routine to work properly (when
    built-in).
    - A fix for properly registering palmas interrupt handler.
    - A fix for omap-usb init routine to actually write into the
    hostconfig register.
    - A couple of warning fixes for ab8500-gpadc and tps65912"

    * tag 'mfd-fixes-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-fixes:
    mfd: twl4030-madc: Remove __exit_p annotation
    mfd: ab8500: Kill "reg" property from binding
    mfd: ab8500-gpadc: Complain if we fail to enable vtvout LDO
    mfd: wm831x: Don't forward declare enum wm831x_auxadc
    mfd: twl4030-audio: Fix argument type for twl4030_audio_disable_resource()
    mfd: tps65912: Declare and use tps65912_irq_exit()
    mfd: palmas: Provide irq flags through DT/platform data
    mfd: Make AB8500_CORE select POWER_SUPPLY to fix build error
    mfd: omap-usb-host: Actually update hostconfig

    Linus Torvalds
     
  • This patch fixes a kernel crash when using precise sampling (PEBS)
    after a suspend/resume. Turns out the CPU notifier code is not invoked
    on CPU0 (BP). Therefore, the DS_AREA (used by PEBS) is not restored properly
    by the kernel and keeps it power-on/resume value of 0 causing any PEBS
    measurement to crash when running on CPU0.

    The workaround is to add a hook in the actual resume code to restore
    the DS Area MSR value. It is invoked for all CPUS. So for all but CPU0,
    the DS_AREA will be restored twice but this is harmless.

    Reported-by: Linus Torvalds
    Signed-off-by: Stephane Eranian
    Signed-off-by: Linus Torvalds

    Stephane Eranian
     

15 Mar, 2013

2 commits

  • Pull fix for hlist_entry_safe() regression from Paul McKenney:
    "This contains a single commit that fixes a regression in
    hlist_entry_safe(). This macro references its argument twice, which
    can cause NULL-pointer errors. This commit applies a gcc statement
    expression, creating a temporary variable to avoid the double
    reference. This has been posted to LKML at

    https://lkml.org/lkml/2013/3/9/75.

    Kudos to CAI Qian, whose testing uncovered this, to Eric Dumazet, who
    spotted root cause, and to Li Zefan, who tested this commit."

    * 'rcu/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
    list: Fix double fetch of pointer in hlist_entry_safe()

    Linus Torvalds
     
  • The current version of hlist_entry_safe() fetches the pointer twice,
    once to test for NULL and the other to compute the offset back to the
    enclosing structure. This is OK for normal lock-based use because in
    that case, the pointer cannot change. However, when the pointer is
    protected by RCU (as in "rcu_dereference(p)"), then the pointer can
    change at any time. This use case can result in the following sequence
    of events:

    1. CPU 0 invokes hlist_entry_safe(), fetches the RCU-protected
    pointer as sees that it is non-NULL.

    2. CPU 1 invokes hlist_del_rcu(), deleting the entry that CPU 0
    just fetched a pointer to. Because this is the last entry
    in the list, the pointer fetched by CPU 0 is now NULL.

    3. CPU 0 refetches the pointer, obtains NULL, and then gets a
    NULL-pointer crash.

    This commit therefore applies gcc's "({ })" statement expression to
    create a temporary variable so that the specified pointer is fetched
    only once, avoiding the above sequence of events. Please note that
    it is the caller's responsibility to use rcu_dereference() as needed.
    This allows RCU-protected uses to work correctly without imposing
    any additional overhead on the non-RCU case.

    Many thanks to Eric Dumazet for spotting root cause!

    Reported-by: CAI Qian
    Reported-by: Eric Dumazet
    Signed-off-by: Paul E. McKenney
    Tested-by: Li Zefan

    Paul E. McKenney
     

14 Mar, 2013

9 commits

  • Merge misc fixes from Andrew Morton:

    - A bunch of fixes

    - Finish off the idr API conversions before someone starts to use the
    old interfaces again.

    * emailed patches from Andrew Morton :
    idr: idr_alloc() shouldn't trigger lowmem warning when preloaded
    UAPI: fix endianness conditionals in M32R's asm/stat.h
    UAPI: fix endianness conditionals in linux/raid/md_p.h
    UAPI: fix endianness conditionals in linux/acct.h
    UAPI: fix endianness conditionals in linux/aio_abi.h
    decompressors: fix typo "POWERPC"
    mm/fremap.c: fix oops on error path
    idr: deprecate idr_pre_get() and idr_get_new[_above]()
    tidspbridge: convert to idr_alloc()
    zcache: convert to idr_alloc()
    mlx4: remove leftover idr_pre_get() call
    workqueue: convert to idr_alloc()
    nfsd: convert to idr_alloc()
    nfsd: remove unused get_new_stid()
    kernel/signal.c: use __ARCH_HAS_SA_RESTORER instead of SA_RESTORER
    signal: always clear sa_restorer on execve
    mm: remove_memory(): fix end_pfn setting
    include/linux/res_counter.h needs errno.h

    Linus Torvalds
     
  • In the UAPI header files, __BIG_ENDIAN and __LITTLE_ENDIAN must be
    compared against __BYTE_ORDER in preprocessor conditionals where these are
    exposed to userspace (that is they're not inside __KERNEL__ conditionals).

    However, in the main kernel the norm is to check for
    "defined(__XXX_ENDIAN)" rather than comparing against __BYTE_ORDER and
    this has incorrectly leaked into the userspace headers.

    The definition of struct mdp_superblock_s in linux/raid/md_p.h is wrong in
    this way. Note that userspace will likely interpret the ordering of the
    fields incorrectly as the big-endian variant on a little-endian machines -
    depending on header inclusion order.

    [!!!] NOTE [!!!] This patch may adversely change the userspace API. It might
    be better to fix the ordering of events_hi, events_lo, cp_events_hi and
    cp_events_lo in struct mdp_superblock_s / typedef mdp_super_t.

    Signed-off-by: David Howells
    Acked-by: NeilBrown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • In the UAPI header files, __BIG_ENDIAN and __LITTLE_ENDIAN must be
    compared against __BYTE_ORDER in preprocessor conditionals where these are
    exposed to userspace (that is they're not inside __KERNEL__ conditionals).

    However, in the main kernel the norm is to check for
    "defined(__XXX_ENDIAN)" rather than comparing against __BYTE_ORDER and
    this has incorrectly leaked into the userspace headers.

    The definition of ACCT_BYTEORDER in linux/acct.h is wrong in this way.
    Note that userspace will likely interpret this incorrectly as the
    big-endian variant on little-endian machines - depending on header
    inclusion order.

    [!!!] NOTE [!!!] This patch may adversely change the userspace API. It might
    be better to fix the value of ACCT_BYTEORDER.

    Signed-off-by: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • In the UAPI header files, __BIG_ENDIAN and __LITTLE_ENDIAN must be
    compared against __BYTE_ORDER in preprocessor conditionals where these are
    exposed to userspace (that is they're not inside __KERNEL__ conditionals).

    However, in the main kernel the norm is to check for
    "defined(__XXX_ENDIAN)" rather than comparing against __BYTE_ORDER and
    this has incorrectly leaked into the userspace headers.

    The definition of PADDED() in linux/aio_abi.h is wrong in this way. Note
    that userspace will likely interpret this and thus the order of fields in
    struct iocb incorrectly as the little-endian variant on big-endian
    machines - depending on header inclusion order.

    [!!!] NOTE [!!!] This patch may adversely change the userspace API. It might
    be better to fix the ordering of aio_key and aio_reserved1 in struct iocb.

    Signed-off-by: David Howells
    Acked-by: Benjamin LaHaise
    Acked-by: Jeff Moyer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Now that all in-kernel users are converted to ues the new alloc
    interface, mark the old interface deprecated. We should be able to
    remove these in a few releases.

    Signed-off-by: Tejun Heo
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tejun Heo
     
  • alpha allmodconfig:

    In file included from mm/memcontrol.c:28:
    include/linux/res_counter.h: In function 'res_counter_set_limit':
    include/linux/res_counter.h:203: error: 'EBUSY' undeclared (first use in this function)
    include/linux/res_counter.h:203: error: (Each undeclared identifier is reported only once
    include/linux/res_counter.h:203: error: for each function it appears in.)

    Cc: Kamezawa Hiroyuki
    Cc: Glauber Costa
    Cc: Tejun Heo
    Cc: Frederic Weisbecker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Pull USB fixes from Greg Kroah-Hartman:
    "Here are a number of tiny USB fixes and new USB device ids for your
    3.9 tree.

    The "largest" one here is a revert of a usb-storage patch that turned
    out to be incorrect, breaking existing users, which is never a good
    thing. Everything else is pretty simple and small"

    * tag 'usb-3.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (43 commits)
    USB: quatech2: only write to the tty if the port is open.
    qcserial: bind to DM/DIAG port on Gobi 1K devices
    USB: cdc-wdm: fix buffer overflow
    usb: serial: Add Rigblaster Advantage to device table
    qcaux: add Franklin U600
    usb: musb: core: fix possible build error with randconfig
    usb: cp210x new Vendor/Device IDs
    usb: gadget: pxa25x: fix disconnect reporting
    usb: dwc3: ep0: fix sparc64 build
    usb: c67x00 RetryCnt value in c67x00 TD should be 3
    usb: Correction to c67x00 TD data length mask
    usb: Makefile: fix drivers/usb/phy/ Makefile entry
    USB: added support for Cinterion's products AH6 and PLS8
    usb: gadget: fix omap_udc build errors
    USB: storage: fix Huawei mode switching regression
    USB: storage: in-kernel modeswitching is deprecated
    tools: usb: ffs-test: Fix build failure
    USB: option: add Huawei E5331
    usb: musb: omap2430: fix sparse warning
    usb: musb: omap2430: fix omap_musb_mailbox glue check again
    ...

    Linus Torvalds
     
  • Pull tty/serial fixes from Greg Kroah-Hartman:
    "Here are some tty/serial driver fixes for 3.9

    We finally mute the annoying WARN_ON that lots of people are hitting
    and it turns out isn't needed anymore. Also add a few new device ids
    and a some other minor fixes."

    * tag 'tty-3.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    tty: serial: fix typo "SERIAL_S3C2412"
    serial: 8250: Keep 8250. module options functional after driver rename
    tty: serial: fix typo "ARCH_S5P6450"
    tty/8250_pnp: serial port detection regression since v3.7
    serial: bcm63xx_uart: fix compilation after "TTY: switch tty_insert_flip_char"
    serial: 8250_pci: add support for another kind of NetMos Technology PCI 9835 Multi-I/O Controller
    Fix 4 port and add support for 8 port 'Unknown' PCI serial port cards
    tty/serial: Add support for Altera serial port
    tty: serial: vt8500: Unneccessary duplicated clock code removed
    tty: serial: mpc5xxx: fix PSC clock name bug
    TTY: disable debugging warning

    Linus Torvalds
     
  • Pull staging tree fixes from Greg Kroah-Hartman:
    "Here are some drivers/staging and drivers/iio fixes for 3.9 (the two
    are still pretty intertwined, hence them coming both from my tree
    still.) Nothing major, just a few things that have been reported by
    users, all of these have been in linux-next for a while."

    * tag 'staging-3.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: comedi: dt9812: use CR_CHAN() for channel number
    staging/vt6656: Fix too large integer constant warning on 32-bit
    staging: comedi: drivers: usbduxsigma.c: fix DMA buffers on stack
    staging: imx/drm: request irq only after adding the crtc
    staging: comedi: drivers: usbduxfast.c: fix for DMA buffers on stack
    staging: comedi: drivers: usbdux.c: fix DMA buffers on stack
    staging: vt6656: Fix oops on resume from suspend.
    iio:common:st_sensors fixed all warning messages about uninitialized variables
    iio: Fix build error seen if IIO_TRIGGER is defined but IIO_BUFFER is not
    iio/imu: inv_mpu6050 depends on IIO_BUFFER
    iio:ad5064: Initialize register cache correctly
    iio:ad5064: Fix off by one in DAC value range check
    iio:ad5064: Fix address of the second channel for ad5065/ad5045/ad5025

    Linus Torvalds
     

13 Mar, 2013

3 commits

  • asm/cmpxchg.h can be included on its own and needs to be self-consistent.
    The definitions for the cmpxchg*_local macros, as such, need to be part
    of this file.

    This fixes a build issue on OpenRISC since the system.h smashing patch
    96f951edb1f1bdbbc99b0cd458f9808bb83d58ae that introdued the direct inclusion
    asm/cmpxchg.h into linux/llist.h.

    CC: David Howells
    Signed-off-by: Jonas Bonn
    Acked-by: Arnd Bergmann

    Jonas Bonn
     
  • Fix new kernel-doc warnings in idr:

    Warning(include/linux/idr.h:113): No description found for parameter 'idr'
    Warning(include/linux/idr.h:113): Excess function parameter 'idp' description in 'idr_find'
    Warning(lib/idr.c:232): Excess function parameter 'id' description in 'sub_alloc'
    Warning(lib/idr.c:232): Excess function parameter 'id' description in 'sub_alloc'

    Signed-off-by: Randy Dunlap
    Acked-by: Tejun Heo
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Pull Xen fixes from Konrad Rzeszutek Wilk:
    - Compile warnings and errors (one on x86, two on ARM)
    - WARNING in xen-pciback
    - Use the acpi_processor_get_performance_info instead of the 'register'
    version

    * tag 'stable/for-linus-3.9-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/acpi: remove redundant acpi/acpi_drivers.h include
    xen: arm: mandate EABI and use generic atomic operations.
    acpi: Export the acpi_processor_get_performance_info
    xen/pciback: Don't disable a PCI device that is already disabled.

    Linus Torvalds
     

12 Mar, 2013

4 commits


10 Mar, 2013

1 commit

  • Pull namespace bugfixes from Eric Biederman:
    "This is three simple fixes against 3.9-rc1. I have tested each of
    these fixes and verified they work correctly.

    The userns oops in key_change_session_keyring and the BUG_ON triggered
    by proc_ns_follow_link were found by Dave Jones.

    I am including the enhancement for mount to only trigger requests of
    filesystem modules here instead of delaying this for the 3.10 merge
    window because it is both trivial and the kind of change that tends to
    bit-rot if left untouched for two months."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    proc: Use nd_jump_link in proc_ns_follow_link
    fs: Limit sys_mount to only request filesystem modules (Part 2).
    fs: Limit sys_mount to only request filesystem modules.
    userns: Stop oopsing in key_change_session_keyring

    Linus Torvalds
     

09 Mar, 2013

1 commit

  • This same driver can be used by atmel based touchscreens and touchpads
    (buttonpads). Platform data may specify a device is a touchpad
    using the is_tp flag.

    This will cause the driver to perform some touchpad specific
    initializations, such as:
    * register input device name "Atmel maXTouch Touchpad" instead of
    Touchscreen.
    * register BTN_LEFT & BTN_TOOL_* event types.
    * register axis resolution (as a fixed constant, for now)
    * register BUTTONPAD property
    * process GPIO buttons using reportid T19

    Input event GPIO mapping is done by the platform data key_map array.

    key_map[x] should contain the KEY or BTN code to send when processing
    GPIOx from T19. To specify a GPIO as not an input source, populate
    with KEY_RESERVED, or 0.

    Signed-off-by: Daniel Kurtz
    Signed-off-by: Benson Leung
    Signed-off-by: Nick Dyer
    Tested-by: Olof Johansson
    Signed-off-by: Linus Torvalds

    Daniel Kurtz
     

08 Mar, 2013

5 commits

  • Pull drm fixes from Dave Airlie:
    "Misc radeon, nouveau, mgag200 and intel fixes.

    The intel fixes should contain the fix for the touchpad on the
    Chromebook - hey I'm an input maintainer now!"

    Hate to pee on your parade, Dave, but I don't think being an input
    maintainer is necessarily something to strive for..

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (25 commits)
    drm/tegra: drop "select DRM_HDMI"
    drm: Documentation typo fixes
    drm/mgag200: Bug fix: Renesas board now selects native resolution.
    drm/mgag200: Reject modes that are too big for VRAM
    drm/mgag200: 'fbdev_list' in 'struct mga_fbdev' is not used
    drm/radeon: don't check mipmap alignment if MIP_ADDRESS is FMASK
    drm/radeon: skip MC reset as it's probably not hung
    drm/radeon: add primary dac adj quirk for R200 board
    drm/radeon: don't set hpd, afmt interrupts when interrupts are disabled
    drm/i915: Turn off hsync and vsync on ADPA when disabling crt
    drm/i915: Fix incorrect definition of ADPA HSYNC and VSYNC bits
    drm/i915: also disable south interrupts when handling them
    drm/i915: enable irqs earlier when resuming
    drm/i915: Increase the RC6p threshold.
    DRM/i915: On G45 enable cursor plane briefly after enabling the display plane.
    drm/nv50-: prevent some races between modesetting and page flipping
    drm/nouveau/i2c: drop parent refcount when creating ports
    drm/nv84: fix regression in page flipping
    drm/nouveau: Fix typo in init_idx_addr_latched().
    drm/nouveau: Disable AGP on PowerPC again.
    ...

    Linus Torvalds
     
  • Pull ACPI and power management fixes from Rafael J Wysocki:

    - Two fixes for the new intel_pstate driver from Dirk Brandewie.

    - Fix for incorrect usage of the .find_bridge() callback from struct
    acpi_bus_type in the USB core and subsequent removal of that callback
    from Rafael J Wysocki.

    - ACPI processor driver cleanups from Chen Gang and Syam Sidhardhan.

    - ACPI initialization and error messages fix from Joe Perches.

    - Operating Performance Points documentation improvement from Nishanth
    Menon.

    - Fixes for memory leaks and potential concurrency issues and sysfs
    attributes leaks during device removal in the core device PM QoS code
    from Rafael J Wysocki.

    - Calxeda Highbank cpufreq driver simplification from Emilio López.

    - cpufreq comment cleanup from Namhyung Kim.

    - Fix for a section mismatch in Calxeda Highbank interprocessor
    communication code from Mark Langsdorf (this is not a PM fix strictly
    speaking, but the code in question went in through the PM tree).

    * tag 'pm+acpi-3.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq / intel_pstate: Do not load on VM that does not report max P state.
    cpufreq / intel_pstate: Fix intel_pstate_init() error path
    ACPI / glue: Drop .find_bridge() callback from struct acpi_bus_type
    ACPI / glue: Add .match() callback to struct acpi_bus_type
    ACPI / porocessor: Beautify code, pr->id is u32 which is never < 0
    ACPI / processor: Remove redundant NULL check before kfree
    ACPI / Sleep: Avoid interleaved message on errors
    PM / QoS: Remove device PM QoS sysfs attributes at the right place
    PM / QoS: Fix concurrency issues and memory leaks in device PM QoS
    cpufreq: highbank: do not initialize array with a loop
    PM / OPP: improve introductory documentation
    cpufreq: Fix a typo in comment
    mailbox, pl320-ipc: remove __init from probe function

    Linus Torvalds
     
  • Signed-off-by: Christopher Harvey
    Signed-off-by: Dave Airlie

    Christopher Harvey
     
  • Pull regulator fixes from Mark Brown:
    "A few small things here and there, nothing major here really. The
    conversion of twl4030ldo_ops to get_voltage_sel is a fix, as covered
    in the commit log it fixes inconsistency in handling of the IS_UNSUP()
    feature in the driver."

    * tag 'regulator-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
    regulator: fixed regulator_bulk_enable unwinding code
    regulator: twl: Convert twl4030ldo_ops to get_voltage_sel
    regulator: palmas: fix number of SMPS voltages
    regulator: core: fix documentation error in regulator_allow_bypass
    regulator: core: update kernel documentation for regulator_desc
    regulator: db8500-prcmu - remove incorrect __exit markup

    Linus Torvalds
     
  • Pull ecryptfs fixes from Tyler Hicks:
    "Minor code cleanups and new Kconfig option to disable /dev/ecryptfs

    The code cleanups fix up W=1 compiler warnings and some unnecessary
    checks. The new Kconfig option, defaulting to N, allows the rarely
    used eCryptfs kernel to userspace communication channel to be compiled
    out. This may be the first step in it being eventually removed."

    Hmm. I'm not sure whether these should be called "fixes", and it
    probably should have gone in the merge window. But I'll let it slide.

    * tag 'ecryptfs-3.9-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
    eCryptfs: allow userspace messaging to be disabled
    eCryptfs: Fix redundant error check on ecryptfs_find_daemon_by_euid()
    ecryptfs: ecryptfs_msg_ctx_alloc_to_free(): remove kfree() redundant null check
    eCryptfs: decrypt_pki_encrypted_session_key(): remove kfree() redundant null check
    eCryptfs: remove unneeded checks in virt_to_scatterlist()
    eCryptfs: Fix -Wmissing-prototypes warnings
    eCryptfs: Fix -Wunused-but-set-variable warnings
    eCryptfs: initialize payload_len in keystore.c

    Linus Torvalds
     

06 Mar, 2013

5 commits

  • The git commit d5aaffa9dd531c978c6f3fea06a2972653bd7fc8
    (cpufreq: handle cpufreq being disabled for all exported function)
    tightens the cpufreq API by returning errors when disable_cpufreq()
    had been called.

    The problem we are hitting is that the module xen-acpi-processor which
    uses the ACPI's functions: acpi_processor_register_performance,
    acpi_processor_preregister_performance, and acpi_processor_notify_smm
    fails at acpi_processor_register_performance with -22.

    Note that earlier during bootup in arch/x86/xen/setup.c there is also
    an call to cpufreq's API: disable_cpufreq().

    This is b/c we want the Linux kernel to parse the ACPI data, but leave
    the cpufreq decisions to the hypervisor.

    In v3.9 all the checks that d5aaffa9dd531c978c6f3fea06a2972653bd7fc8
    added are now hit and the calls to cpufreq_register_notifier will now
    fail. This means that acpi_processor_ppc_init ends up printing:

    "Warning: Processor Platform Limit not supported"

    and the acpi_processor_ppc_status is not set.

    The repercussions of that is that the call to
    acpi_processor_register_performance fails right away at:

    if (!(acpi_processor_ppc_status & PPC_REGISTERED))

    and we don't progress any further on parsing and extracting the _P*
    objects.

    The only reason the Xen code called that function was b/c it was
    exported and the only way to gather the P-states. But we can also
    just make acpi_processor_get_performance_info be exported and not
    use acpi_processor_register_performance. This patch does so.

    Acked-by: Rafael J. Wysocki
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • Pull networking fixes from David Miller:
    "A moderately sized pile of fixes, some specifically for merge window
    introduced regressions although others are for longer standing items
    and have been queued up for -stable.

    I'm kind of tired of all the RDS protocol bugs over the years, to be
    honest, it's way out of proportion to the number of people who
    actually use it.

    1) Fix missing range initialization in netfilter IPSET, from Jozsef
    Kadlecsik.

    2) ieee80211_local->tim_lock needs to use BH disabling, from Johannes
    Berg.

    3) Fix DMA syncing in SFC driver, from Ben Hutchings.

    4) Fix regression in BOND device MAC address setting, from Jiri
    Pirko.

    5) Missing usb_free_urb in ISDN Hisax driver, from Marina Makienko.

    6) Fix UDP checksumming in bnx2x driver for 57710 and 57711 chips,
    fix from Dmitry Kravkov.

    7) Missing cfgspace_lock initialization in BCMA driver.

    8) Validate parameter size for SCTP assoc stats getsockopt(), from
    Guenter Roeck.

    9) Fix SCTP association hangs, from Lee A Roberts.

    10) Fix jumbo frame handling in r8169, from Francois Romieu.

    11) Fix phy_device memory leak, from Petr Malat.

    12) Omit trailing FCS from frames received in BGMAC driver, from Hauke
    Mehrtens.

    13) Missing socket refcount release in L2TP, from Guillaume Nault.

    14) sctp_endpoint_init should respect passed in gfp_t, rather than use
    GFP_KERNEL unconditionally. From Dan Carpenter.

    15) Add AISX AX88179 USB driver, from Freddy Xin.

    16) Remove MAINTAINERS entries for drivers deleted during the merge
    window, from Cesar Eduardo Barros.

    17) RDS protocol can try to allocate huge amounts of memory, check
    that the user's request length makes sense, from Cong Wang.

    18) SCTP should use the provided KMALLOC_MAX_SIZE instead of it's own,
    bogus, definition. From Cong Wang.

    19) Fix deadlocks in FEC driver by moving TX reclaim into NAPI poll,
    from Frank Li. Also, fix a build error introduced in the merge
    window.

    20) Fix bogus purging of default routes in ipv6, from Lorenzo Colitti.

    21) Don't double count RTT measurements when we leave the TCP receive
    fast path, from Neal Cardwell."

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (61 commits)
    tcp: fix double-counted receiver RTT when leaving receiver fast path
    CAIF: fix sparse warning for caif_usb
    rds: simplify a warning message
    net: fec: fix build error in no MXC platform
    net: ipv6: Don't purge default router if accept_ra=2
    net: fec: put tx to napi poll function to fix dead lock
    sctp: use KMALLOC_MAX_SIZE instead of its own MAX_KMALLOC_SIZE
    rds: limit the size allocated by rds_message_alloc()
    MAINTAINERS: remove eexpress
    MAINTAINERS: remove drivers/net/wan/cycx*
    MAINTAINERS: remove 3c505
    caif_dev: fix sparse warnings for caif_flow_cb
    ax88179_178a: ASIX AX88179_178A USB 3.0/2.0 to gigabit ethernet adapter driver
    sctp: use the passed in gfp flags instead GFP_KERNEL
    ipv[4|6]: correct dropwatch false positive in local_deliver_finish
    l2tp: Restore socket refcount when sendmsg succeeds
    net/phy: micrel: Disable asymmetric pause for KSZ9021
    bgmac: omit the fcs
    phy: Fix phy_device_free memory leak
    bnx2x: Fix KR2 work-around condition
    ...

    Linus Torvalds
     
  • Pull irq fixes and cleanups from Thomas Gleixner:
    "Commit e5ab012c3271 ("nohz: Make tick_nohz_irq_exit() irq safe") is
    the first commit in the series and the minimal necessary bugfix, which
    needs to go back into stable.

    The remanining commits enforce irq disabling in irq_exit(), sanitize
    the hardirq/softirq preempt count transition and remove a bunch of no
    longer necessary conditionals."

    I personally love getting rid of the very subtle and confusing
    IRQ_EXIT_OFFSET thing. Even apart from the whole "more lines removed
    than added" thing.

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irq: Don't re-enable interrupts at the end of irq_exit
    irq: Remove IRQ_EXIT_OFFSET workaround
    Revert "nohz: Make tick_nohz_irq_exit() irq safe"
    irq: Sanitize invoke_softirq
    irq: Ensure irq_exit() code runs with interrupts disabled
    nohz: Make tick_nohz_irq_exit() irq safe

    Linus Torvalds
     
  • Pull smpboot bugfix from Thomas Gleixner:
    "A single bugfix for a regression introduced with the conversion of the
    stop machine threads to the generic smpboot thread management
    facility"

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    stop_machine: Mark per cpu stopper enabled early

    Linus Torvalds
     
  • …jic23/iio into staging-linus

    Jonathan writes:

    "First round of iio fixes post the 3.9 merge window.

    1) Some little fixes for the ad5064 dac driver.
    2) A build warning 'fix' for a false positive in st_sensors
    3) A couple of missing dependencies on IIO_BUFFER.

    So nothing major and these mostly showed the advantages of the randconfig
    builds various people have performed."

    Greg Kroah-Hartman
     

05 Mar, 2013

2 commits

  • A few trivial fixes for composite driver:

    Warning(include/linux/usb/composite.h:165): No description found for parameter
    'fs_descriptors'
    Warning(include/linux/usb/composite.h:165): Excess struct/union/enum/typedef
    member 'descriptors' description in 'usb_function'
    Warning(include/linux/usb/composite.h:321): No description found for parameter
    'gadget_driver'
    Warning(drivers/usb/gadget/composite.c:1777): Excess function parameter 'bind'
    description in 'usb_composite_probe'

    Cc: Greg Kroah-Hartman
    Cc: Jiri Kosina
    Cc: linux-usb@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Nishanth Menon
    Signed-off-by: Felipe Balbi

    Nishanth Menon
     
  • Mark Brown
     

04 Mar, 2013

3 commits

  • After PCI and USB have stopped using the .find_bridge() callback in
    struct acpi_bus_type, the only remaining user of it is SATA, but SATA
    only pretends to be a user, because it points that callback to a stub
    always returning -ENODEV.

    For this reason, drop the SATA's dummy .find_bridge() callback and
    remove .find_bridge(), which is not used any more, from struct
    acpi_bus_type entirely.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Yinghai Lu
    Acked-by: Jeff Garzik

    Rafael J. Wysocki
     
  • USB uses the .find_bridge() callback from struct acpi_bus_type
    incorrectly, because as a result of the way it is used by USB every
    device in the system that doesn't have a bus type or parent is
    passed to usb_acpi_find_device() for inspection.

    What USB actually needs, though, is to call usb_acpi_find_device()
    for USB ports that don't have a bus type defined, but have
    usb_port_device_type as their device type, as well as for USB
    devices.

    To fix that replace the struct bus_type pointer in struct
    acpi_bus_type used for matching devices to specific subsystems
    with a .match() callback to be used for this purpose and update
    the users of struct acpi_bus_type, including USB, accordingly.
    Define the .match() callback routine for USB, usb_acpi_bus_match(),
    in such a way that it will cover both USB devices and USB ports
    and remove the now redundant .find_bridge() callback pointer from
    usb_acpi_bus.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Greg Kroah-Hartman
    Acked-by: Yinghai Lu
    Acked-by: Jeff Garzik

    Rafael J. Wysocki
     
  • When the userspace messaging (for the less common case of userspace key
    wrap/unwrap via ecryptfsd) is not needed, allow eCryptfs to build with
    it removed. This saves on kernel code size and reduces potential attack
    surface by removing the /dev/ecryptfs node.

    Signed-off-by: Kees Cook
    Signed-off-by: Tyler Hicks

    Kees Cook