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

2 commits

  • 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

5 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
     
  • 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 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

1 commit

  • 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
     

12 Mar, 2013

3 commits

  • We can't forward declare enums.

    Signed-off-by: Andrew Morton
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • Clean up interrupts on exit, silencing a sparse warning caused by
    tps65912_irq_exit() being defined but not prototyped as we go.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • Currently driver sets the irq type to IRQF_TRIGGER_LOW which is
    causing interrupt registration failure in ARM based SoCs as:
    [ 0.208479] genirq: Setting trigger mode 8 for irq 118 failed (gic_set_type+0x0/0xf0)
    [ 0.208513] dummy 0-0059: Failed to request IRQ 118: -22

    Provide the irq flags through platform data if device is registered
    through board file or get the irq type from DT node property in place
    of hardcoding the irq flag in driver to support multiple platforms.

    Also configure the device to generate the interrupt signal according to
    flag type.

    Signed-off-by: Laxman Dewangan
    Signed-off-by: Samuel Ortiz

    Laxman Dewangan
     

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

2 commits

  • 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

4 commits

  • 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

6 commits

  • 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
     
  • Modify the request_module to prefix the file system type with "fs-"
    and add aliases to all of the filesystems that can be built as modules
    to match.

    A common practice is to build all of the kernel code and leave code
    that is not commonly needed as modules, with the result that many
    users are exposed to any bug anywhere in the kernel.

    Looking for filesystems with a fs- prefix limits the pool of possible
    modules that can be loaded by mount to just filesystems trivially
    making things safer with no real cost.

    Using aliases means user space can control the policy of which
    filesystem modules are auto-loaded by editing /etc/modprobe.d/*.conf
    with blacklist and alias directives. Allowing simple, safe,
    well understood work-arounds to known problematic software.

    This also addresses a rare but unfortunate problem where the filesystem
    name is not the same as it's module name and module auto-loading
    would not work. While writing this patch I saw a handful of such
    cases. The most significant being autofs that lives in the module
    autofs4.

    This is relevant to user namespaces because we can reach the request
    module in get_fs_type() without having any special permissions, and
    people get uncomfortable when a user specified string (in this case
    the filesystem type) goes all of the way to request_module.

    After having looked at this issue I don't think there is any
    particular reason to perform any filtering or permission checks beyond
    making it clear in the module request that we want a filesystem
    module. The common pattern in the kernel is to call request_module()
    without regards to the users permissions. In general all a filesystem
    module does once loaded is call register_filesystem() and go to sleep.
    Which means there is not much attack surface exposed by loading a
    filesytem module unless the filesystem is mounted. In a user
    namespace filesystems are not mounted unless .fs_flags = FS_USERNS_MOUNT,
    which most filesystems do not set today.

    Acked-by: Serge Hallyn
    Acked-by: Kees Cook
    Reported-by: Kees Cook
    Signed-off-by: "Eric W. Biederman"

    Eric W. Biederman
     
  • Pull more VFS bits from Al Viro:
    "Unfortunately, it looks like xattr series will have to wait until the
    next cycle ;-/

    This pile contains 9p cleanups and fixes (races in v9fs_fid_add()
    etc), fixup for nommu breakage in shmem.c, several cleanups and a bit
    more file_inode() work"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    constify path_get/path_put and fs_struct.c stuff
    fix nommu breakage in shmem.c
    cache the value of file_inode() in struct file
    9p: if v9fs_fid_lookup() gets to asking server, it'd better have hashed dentry
    9p: make sure ->lookup() adds fid to the right dentry
    9p: untangle ->lookup() a bit
    9p: double iput() in ->lookup() if d_materialise_unique() fails
    9p: v9fs_fid_add() can't fail now
    v9fs: get rid of v9fs_dentry
    9p: turn fid->dlist into hlist
    9p: don't bother with private lock in ->d_fsdata; dentry->d_lock will do just fine
    more file_inode() open-coded instances
    selinux: opened file can't have NULL or negative ->f_path.dentry

    (In the meantime, the hlist traversal macros have changed, so this
    required a semantic conflict fixup for the newly hlistified fid->dlist)

    Linus Torvalds
     
  • Pull new ImgTec Meta architecture from James Hogan:
    "This adds core architecture support for Imagination's Meta processor
    cores, followed by some later miscellaneous arch/metag cleanups and
    fixes which I kept separate to ease review:

    - Support for basic Meta 1 (ATP) and Meta 2 (HTP) core architecture
    - A few fixes all over, particularly for symbol prefixes
    - A few privilege protection fixes
    - Several cleanups (setup.c includes, split out a lot of
    metag_ksyms.c)
    - Fix some missing exports
    - Convert hugetlb to use vm_unmapped_area()
    - Copy device tree to non-init memory
    - Provide dma_get_sgtable()"

    * tag 'metag-v3.9-rc1-v4' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: (61 commits)
    metag: Provide dma_get_sgtable()
    metag: prom.h: remove declaration of metag_dt_memblock_reserve()
    metag: copy devicetree to non-init memory
    metag: cleanup metag_ksyms.c includes
    metag: move mm/init.c exports out of metag_ksyms.c
    metag: move usercopy.c exports out of metag_ksyms.c
    metag: move setup.c exports out of metag_ksyms.c
    metag: move kick.c exports out of metag_ksyms.c
    metag: move traps.c exports out of metag_ksyms.c
    metag: move irq enable out of irqflags.h on SMP
    genksyms: fix metag symbol prefix on crc symbols
    metag: hugetlb: convert to vm_unmapped_area()
    metag: export clear_page and copy_page
    metag: export metag_code_cache_flush_all
    metag: protect more non-MMU memory regions
    metag: make TXPRIVEXT bits explicit
    metag: kernel/setup.c: sort includes
    perf: Enable building perf tools for Meta
    metag: add boot time LNKGET/LNKSET check
    metag: add __init to metag_cache_probe()
    ...

    Linus Torvalds
     
  • Pull watchdog updates from Wim Van Sebroeck:
    "This contains:
    - fixes and improvements
    - devicetree bindings
    - conversion to watchdog generic framework of the following drivers:
    - booke_wdt
    - bcm47xx_wdt.c
    - at91sam9_wdt
    - Removal of old STMP3xxx driver
    - Addition of following new drivers:
    - new driver for STMP3xxx and i.MX23/28
    - Retu watchdog driver"

    * git://www.linux-watchdog.org/linux-watchdog: (30 commits)
    watchdog: sp805_wdt depends on ARM
    watchdog: davinci_wdt: update to devm_* API
    watchdog: davinci_wdt: use devm managed clk get
    watchdog: at91rm9200: add DT support
    watchdog: add timeout-sec property binding
    watchdog: at91sam9_wdt: Convert to use the watchdog framework
    watchdog: omap_wdt: Add option nowayout
    watchdog: core: dt: add support for the timeout-sec dt property
    watchdog: bcm47xx_wdt.c: add hard timer
    watchdog: bcm47xx_wdt.c: rename wdt_time to timeout
    watchdog: bcm47xx_wdt.c: rename ops methods
    watchdog: bcm47xx_wdt.c: use platform device
    watchdog: bcm47xx_wdt.c: convert to watchdog core api
    watchdog: Convert BookE watchdog driver to watchdog infrastructure
    watchdog: s3c2410_wdt: Use devm_* functions
    watchdog: remove old STMP3xxx driver
    watchdog: add new driver for STMP3xxx and i.MX23/28
    rtc: stmp3xxx: add wdt-accessor function
    watchdog: introduce retu_wdt driver
    watchdog: intel_scu_watchdog: fix Kconfig dependency
    ...

    Linus Torvalds
     
  • Pull second set of slave-dmaengine updates from Vinod Koul:
    "Arnd's patch moves the dw_dmac to use generic DMA binding. I agreed
    to merge this late as it will avoid the conflicts between trees.

    The second patch from Matt adding a dma_request_slave_channel_compat
    API was supposed to be picked up, but somehow never got picked up.
    Some patches dependent on this are already in -next :("

    * 'next' of git://git.infradead.org/users/vkoul/slave-dma:
    dmaengine: dw_dmac: move to generic DMA binding
    dmaengine: add dma_request_slave_channel_compat()

    Linus Torvalds
     

03 Mar, 2013

9 commits

  • Pull NFS client bugfixes from Trond Myklebust:
    "We've just concluded another Connectathon interoperability testing
    week, and so here are the fixes for the bugs that were discovered:

    - Don't allow NFS silly-renamed files to be deleted
    - Don't start the retransmission timer when out of socket space
    - Fix a couple of pnfs-related Oopses.
    - Fix one more NFSv4 state recovery deadlock
    - Don't loop forever when LAYOUTGET returns NFS4ERR_LAYOUTTRYLATER"

    * tag 'nfs-for-3.9-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    SUNRPC: One line comment fix
    NFSv4.1: LAYOUTGET EDELAY loops timeout to the MDS
    SUNRPC: add call to get configured timeout
    PNFS: set the default DS timeout to 60 seconds
    NFSv4: Fix another open/open_recovery deadlock
    nfs: don't allow nfs_find_actor to match inodes of the wrong type
    NFSv4.1: Hold reference to layout hdr in layoutget
    pnfs: fix resend_to_mds for directio
    SUNRPC: Don't start the retransmission timer when out of socket space
    NFS: Don't allow NFS silly-renamed files to be deleted, no signal

    Linus Torvalds
     
  • Pull btrfs update from Chris Mason:
    "The biggest feature in the pull is the new (and still experimental)
    raid56 code that David Woodhouse started long ago. I'm still working
    on the parity logging setup that will avoid inconsistent parity after
    a crash, so this is only for testing right now. But, I'd really like
    to get it out to a broader audience to hammer out any performance
    issues or other problems.

    scrub does not yet correct errors on raid5/6 either.

    Josef has another pass at fsync performance. The big change here is
    to combine waiting for metadata with waiting for data, which is a big
    latency win. It is also step one toward using atomics from the
    hardware during a commit.

    Mark Fasheh has a new way to use btrfs send/receive to send only the
    metadata changes. SUSE is using this to make snapper more efficient
    at finding changes between snapshosts.

    Snapshot-aware defrag is also included.

    Otherwise we have a large number of fixes and cleanups. Eric Sandeen
    wins the award for removing the most lines, and I'm hoping we steal
    this idea from XFS over and over again."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (118 commits)
    btrfs: fixup/remove module.h usage as required
    Btrfs: delete inline extents when we find them during logging
    btrfs: try harder to allocate raid56 stripe cache
    Btrfs: cleanup to make the function btrfs_delalloc_reserve_metadata more logic
    Btrfs: don't call btrfs_qgroup_free if just btrfs_qgroup_reserve fails
    Btrfs: remove reduplicate check about root in the function btrfs_clean_quota_tree
    Btrfs: return ENOMEM rather than use BUG_ON when btrfs_alloc_path fails
    Btrfs: fix missing deleted items in btrfs_clean_quota_tree
    btrfs: use only inline_pages from extent buffer
    Btrfs: fix wrong reserved space when deleting a snapshot/subvolume
    Btrfs: fix wrong reserved space in qgroup during snap/subv creation
    Btrfs: remove unnecessary dget_parent/dput when creating the pending snapshot
    btrfs: remove a printk from scan_one_device
    Btrfs: fix NULL pointer after aborting a transaction
    Btrfs: fix memory leak of log roots
    Btrfs: copy everything if we've created an inline extent
    btrfs: cleanup for open-coded alignment
    Btrfs: do not change inode flags in rename
    Btrfs: use reserved space for creating a snapshot
    clear chunk_alloc flag on retryable failure
    ...

    Linus Torvalds
     
  • Pull MTD update from David Woodhouse:
    "Fairly unexciting MTD merge for 3.9:

    - misc clean-ups in the MTD command-line partitioning parser
    (cmdlinepart)
    - add flash locking support for STmicro chips serial flash chips, as
    well as for CFI command set 2 chips.
    - new driver for the ELM error correction HW module found in various
    TI chips, enable the OMAP NAND driver to use the ELM HW error
    correction
    - added number of new serial flash IDs
    - various fixes and improvements in the gpmi NAND driver
    - bcm47xx NAND driver improvements
    - make the mtdpart module actually removable"

    * tag 'for-linus-20130301' of git://git.infradead.org/linux-mtd: (45 commits)
    mtd: map: BUG() in non handled cases
    mtd: bcm47xxnflash: use pr_fmt for module prefix in messages
    mtd: davinci_nand: Use managed resources
    mtd: mtd_torturetest can cause stack overflows
    mtd: physmap_of: Convert device allocation to managed devm_kzalloc()
    mtd: at91: atmel_nand: for PMECC, add code to check the ONFI parameter ECC requirement.
    mtd: atmel_nand: make pmecc-cap, pmecc-sector-size in dts is optional.
    mtd: atmel_nand: avoid to report an error when lookup table offset is 0.
    mtd: bcm47xxsflash: adjust names of bus-specific functions
    mtd: bcm47xxpart: improve probing of nvram partition
    mtd: bcm47xxpart: add support for other erase sizes
    mtd: bcm47xxnflash: register this as normal driver
    mtd: bcm47xxnflash: fix message
    mtd: bcm47xxsflash: register this as normal driver
    mtd: bcm47xxsflash: write number of written bytes
    mtd: gpmi: add sanity check for the ECC
    mtd: gpmi: set the Golois Field bit for mx6q's BCH
    mtd: devices: elm: Removes literals in elm DT node
    mtd: gpmi: fix a dereferencing freed memory error
    mtd: fix the wrong timeo for panic_nand_wait()
    ...

    Linus Torvalds
     
  • Commit cc2383ec06be093789469852e1fe96e1148e9a2c ("mm: introduce
    arch-specific vma flag VM_ARCH_1") merged in v3.7-rc1.

    The above commit combined several arch-specific vma flags into one, and
    in the process it changed the VM_GROWSUP definition to depend on
    specific architectures rather than CONFIG_STACK_GROWSUP. Therefore add
    an ifdef for CONFIG_METAG to also set VM_GROWSUP.

    Signed-off-by: James Hogan
    Cc: Konstantin Khlebnikov
    Cc: Andrew Morton
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Al Viro
    Cc: linux-mm@kvack.org

    James Hogan
     
  • Meta core internal interrupts (from HWSTATMETA and friends) are vectored
    onto the TR1 core trigger for the current thread. This is demultiplexed
    in irq-metag.c to individual Linux IRQs for each internal interrupt.

    External SoC interrupts (from HWSTATEXT and friends) are vectored onto
    the TR2 core trigger for the current thread. This is demultiplexed in
    irq-metag-ext.c to individual Linux IRQs for each external SoC interrupt.
    The external irqchip has devicetree bindings for configuring the number
    of irq banks and the type of masking available.

    Signed-off-by: James Hogan
    Cc: Arnd Bergmann
    Cc: Grant Likely
    Cc: Rob Herring
    Cc: Rob Landley
    Cc: Dom Cobley
    Cc: Simon Arlott
    Cc: Viresh Kumar
    Cc: Maxime Ripard
    Cc: devicetree-discuss@lists.ozlabs.org
    Cc: linux-doc@vger.kernel.org

    James Hogan
     
  • Pull device-mapper update from Alasdair G Kergon:
    "The main addition here is a long-desired target framework to allow an
    SSD to be used as a cache in front of a slower device. Cache tuning
    is delegated to interchangeable policy modules so these can be
    developed independently of the mechanics needed to shuffle the data
    around.

    Other than that, kcopyd users acquire a throttling parameter, ioctl
    buffer usage gets streamlined, more mempool reliance is reduced and
    there are a few other bug fixes and tidy-ups."

    * tag 'dm-3.9-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm: (30 commits)
    dm cache: add cleaner policy
    dm cache: add mq policy
    dm: add cache target
    dm persistent data: add bitset
    dm persistent data: add transactional array
    dm thin: remove cells from stack
    dm bio prison: pass cell memory in
    dm persistent data: add btree_walk
    dm: add target num_write_bios fn
    dm kcopyd: introduce configurable throttling
    dm ioctl: allow message to return data
    dm ioctl: optimize functions without variable params
    dm ioctl: introduce ioctl_flags
    dm: merge io_pool and tio_pool
    dm: remove unused _rq_bio_info_cache
    dm: fix limits initialization when there are no data devices
    dm snapshot: add missing module aliases
    dm persistent data: set some btree fn parms const
    dm: refactor bio cloning
    dm: rename bio cloning functions
    ...

    Linus Torvalds
     
  • Tim found:

    WARNING: at arch/x86/kernel/smpboot.c:324 topology_sane.isra.2+0x6f/0x80()
    Hardware name: S2600CP
    sched: CPU #1's llc-sibling CPU #0 is not on the same node! [node: 1 != 0]. Ignoring dependency.
    smpboot: Booting Node 1, Processors #1
    Modules linked in:
    Pid: 0, comm: swapper/1 Not tainted 3.9.0-0-generic #1
    Call Trace:
    set_cpu_sibling_map+0x279/0x449
    start_secondary+0x11d/0x1e5

    Don Morris reproduced on a HP z620 workstation, and bisected it to
    commit e8d195525809 ("acpi, memory-hotplug: parse SRAT before memblock
    is ready")

    It turns out movable_map has some problems, and it breaks several things

    1. numa_init is called several times, NOT just for srat. so those
    nodes_clear(numa_nodes_parsed)
    memset(&numa_meminfo, 0, sizeof(numa_meminfo))
    can not be just removed. Need to consider sequence is: numaq, srat, amd, dummy.
    and make fall back path working.

    2. simply split acpi_numa_init to early_parse_srat.
    a. that early_parse_srat is NOT called for ia64, so you break ia64.
    b. for (i = 0; i < MAX_LOCAL_APIC; i++)
    set_apicid_to_node(i, NUMA_NO_NODE)
    still left in numa_init. So it will just clear result from early_parse_srat.
    it should be moved before that....
    c. it breaks ACPI_TABLE_OVERIDE...as the acpi table scan is moved
    early before override from INITRD is settled.

    3. that patch TITLE is total misleading, there is NO x86 in the title,
    but it changes critical x86 code. It caused x86 guys did not
    pay attention to find the problem early. Those patches really should
    be routed via tip/x86/mm.

    4. after that commit, following range can not use movable ram:
    a. real_mode code.... well..funny, legacy Node0 [0,1M) could be hot-removed?
    b. initrd... it will be freed after booting, so it could be on movable...
    c. crashkernel for kdump...: looks like we can not put kdump kernel above 4G
    anymore.
    d. init_mem_mapping: can not put page table high anymore.
    e. initmem_init: vmemmap can not be high local node anymore. That is
    not good.

    If node is hotplugable, the mem related range like page table and
    vmemmap could be on the that node without problem and should be on that
    node.

    We have workaround patch that could fix some problems, but some can not
    be fixed.

    So just remove that offending commit and related ones including:

    f7210e6c4ac7 ("mm/memblock.c: use CONFIG_HAVE_MEMBLOCK_NODE_MAP to
    protect movablecore_map in memblock_overlaps_region().")

    01a178a94e8e ("acpi, memory-hotplug: support getting hotplug info from
    SRAT")

    27168d38fa20 ("acpi, memory-hotplug: extend movablemem_map ranges to
    the end of node")

    e8d195525809 ("acpi, memory-hotplug: parse SRAT before memblock is
    ready")

    fb06bc8e5f42 ("page_alloc: bootmem limit with movablecore_map")

    42f47e27e761 ("page_alloc: make movablemem_map have higher priority")

    6981ec31146c ("page_alloc: introduce zone_movable_limit[] to keep
    movable limit for nodes")

    34b71f1e04fc ("page_alloc: add movable_memmap kernel parameter")

    4d59a75125d5 ("x86: get pg_data_t's memory from other node")

    Later we should have patches that will make sure kernel put page table
    and vmemmap on local node ram instead of push them down to node0. Also
    need to find way to put other kernel used ram to local node ram.

    Reported-by: Tim Gardner
    Reported-by: Don Morris
    Bisected-by: Don Morris
    Tested-by: Don Morris
    Signed-off-by: Yinghai Lu
    Cc: Tony Luck
    Cc: Thomas Renninger
    Cc: Tejun Heo
    Cc: Tang Chen
    Cc: Yasuaki Ishimatsu
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     
  • Pull signal/compat fixes from Al Viro:
    "Fixes for several regressions introduced in the last signal.git pile,
    along with fixing bugs in truncate and ftruncate compat (on just about
    anything biarch at least one of those two had been done wrong)."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
    compat: restore timerfd settime and gettime compat syscalls
    [regression] braino in "sparc: convert to ksignal"
    fix compat truncate/ftruncate
    switch lseek to COMPAT_SYSCALL_DEFINE
    lseek() and truncate() on sparc really need sign extension

    Linus Torvalds
     
  • If CONFIG_IIO_TRIGGER is defined but CONFIG_IIO_BUFFER is not, the following
    build error is seen.

    drivers/iio/common/st_sensors/st_sensors_trigger.c:21:5: error:
    redefinition of ‘st_sensors_allocate_trigger’
    In file included from
    drivers/iio/common/st_sensors/st_sensors_trigger.c:18:0:
    include/linux/iio/common/st_sensors.h:239:19: note: previous
    definition of ‘st_sensors_allocate_trigger’ was here
    drivers/iio/common/st_sensors/st_sensors_trigger.c:65:6: error:
    redefinition of ‘st_sensors_deallocate_trigger’
    In file included from
    drivers/iio/common/st_sensors/st_sensors_trigger.c:18:0:
    include/linux/iio/common/st_sensors.h:244:20: note: previous
    definition of ‘st_sensors_deallocate_trigger’ was here

    This occurs because st_sensors_deallocate_trigger is built if CONFIG_IIO_TRIGGER
    is defined, but the dummy function is compiled if CONFIG_IIO_BUFFER is defined.

    Signed-off-by: Guenter Roeck
    Acked-by: Denis Ciocca
    Signed-off-by: Jonathan Cameron

    Guenter Roeck
     

02 Mar, 2013

1 commit