04 Dec, 2014

9 commits

  • Pull keyring/nfs fixes from James Morris:
    "From David Howells:

    The first one fixes the handling of maximum buffer size for key
    descriptions, fixing the size at 4095 + NUL char rather than whatever
    PAGE_SIZE happens to be and permits you to read back the full
    description without it getting clipped because some extra information
    got prepended.

    The second and third fix a bug in NFS idmapper handling whereby a key
    representing a mapping between an id and a name expires and causing
    EKEYEXPIRED to be seen internally in NFS (which prevents the mapping
    from happening) rather than re-looking up the mapping"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    KEYS: request_key() should reget expired keys rather than give EKEYEXPIRED
    KEYS: Simplify KEYRING_SEARCH_{NO,DO}_STATE_CHECK flags
    KEYS: Fix the size of the key description passed to/from userspace

    Linus Torvalds
     
  • Merge misc fixes from Andrew Morton:
    "10 fixes"

    * emailed patches from Andrew Morton :
    slab: fix nodeid bounds check for non-contiguous node IDs
    lib/genalloc.c: export devm_gen_pool_create() for modules
    mm: fix anon_vma_clone() error treatment
    mm: fix swapoff hang after page migration and fork
    fat: fix oops on corrupted vfat fs
    ipc/sem.c: fully initialize sem_array before making it visible
    drivers/input/evdev.c: don't kfree() a vmalloc address
    mm/vmpressure.c: fix race in vmpressure_work_fn()
    mm: frontswap: invalidate expired data on a dup-store failure
    mm: do not overwrite reserved pages counter at show_mem()

    Linus Torvalds
     
  • The bounds check for nodeid in ____cache_alloc_node gives false
    positives on machines where the node IDs are not contiguous, leading to
    a panic at boot time. For example, on a POWER8 machine the node IDs are
    typically 0, 1, 16 and 17. This means that num_online_nodes() returns
    4, so when ____cache_alloc_node is called with nodeid = 16 the VM_BUG_ON
    triggers, like this:

    kernel BUG at /home/paulus/kernel/kvm/mm/slab.c:3079!
    Call Trace:
    .____cache_alloc_node+0x5c/0x270 (unreliable)
    .kmem_cache_alloc_node_trace+0xdc/0x360
    .init_list+0x3c/0x128
    .kmem_cache_init+0x1dc/0x258
    .start_kernel+0x2a0/0x568
    start_here_common+0x20/0xa8

    To fix this, we instead compare the nodeid with MAX_NUMNODES, and
    additionally make sure it isn't negative (since nodeid is an int). The
    check is there mainly to protect the array dereference in the get_node()
    call in the next line, and the array being dereferenced is of size
    MAX_NUMNODES. If the nodeid is in range but invalid (for example if the
    node is off-line), the BUG_ON in the next line will catch that.

    Fixes: 14e50c6a9bc2 ("mm: slab: Verify the nodeid passed to ____cache_alloc_node")
    Signed-off-by: Paul Mackerras
    Reviewed-by: Yasuaki Ishimatsu
    Reviewed-by: Pekka Enberg
    Acked-by: David Rientjes
    Cc: Christoph Lameter
    Cc: Joonsoo Kim
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Mackerras
     
  • Modules can use this function for creating pool.

    Signed-off-by: Michal Simek
    Acked-by: Lad, Prabhakar
    Cc: Laura Abbott
    Cc: Olof Johansson
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Vladimir Zapolskiy
    Cc: Philipp Zabel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Simek
     
  • Andrew Morton noticed that the error return from anon_vma_clone() was
    being dropped and replaced with -ENOMEM (which is not itself a bug
    because the only error return value from anon_vma_clone() is -ENOMEM).

    I did an audit of callers of anon_vma_clone() and discovered an actual
    bug where the error return was being lost. In __split_vma(), between
    Linux 3.11 and 3.12 the code was changed so the err variable is used
    before the call to anon_vma_clone() and the default initial value of
    -ENOMEM is overwritten. So a failure of anon_vma_clone() will return
    success since err at this point is now zero.

    Below is a patch which fixes this bug and also propagates the error
    return value from anon_vma_clone() in all cases.

    Fixes: ef0855d334e1 ("mm: mempolicy: turn vma_set_policy() into vma_dup_policy()")
    Signed-off-by: Daniel Forrest
    Reviewed-by: Michal Hocko
    Cc: Konstantin Khlebnikov
    Cc: Andrea Arcangeli
    Cc: Rik van Riel
    Cc: Tim Hartrick
    Cc: Hugh Dickins
    Cc: Michel Lespinasse
    Cc: Vlastimil Babka
    Cc: [3.12+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Forrest
     
  • I've been seeing swapoff hangs in recent testing: it's cycling around
    trying unsuccessfully to find an mm for some remaining pages of swap.

    I have been exercising swap and page migration more heavily recently,
    and now notice a long-standing error in copy_one_pte(): it's trying to
    add dst_mm to swapoff's mmlist when it finds a swap entry, but is doing
    so even when it's a migration entry or an hwpoison entry.

    Which wouldn't matter much, except it adds dst_mm next to src_mm,
    assuming src_mm is already on the mmlist: which may not be so. Then if
    pages are later swapped out from dst_mm, swapoff won't be able to find
    where to replace them.

    There's already a !non_swap_entry() test for stats: move that up before
    the swap_duplicate() and the addition to mmlist.

    Signed-off-by: Hugh Dickins
    Cc: Kelley Nielsen
    Cc: [2.6.18+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • a) don't bother with ->d_time for positives - we only check it for
    negatives anyway.

    b) make sure to set it at unlink and rmdir time - at *that* point
    soon-to-be negative dentry matches then-current directory contents

    c) don't go into renaming of old alias in vfat_lookup() unless it
    has the same parent (which it will, unless we are seeing corrupted
    image)

    [hirofumi@mail.parknet.co.jp: make change minimum, don't call d_move() for dir]
    Signed-off-by: Al Viro
    Signed-off-by: OGAWA Hirofumi
    Cc: [3.17.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • ipc_addid() makes a new ipc identifier visible to everyone. New objects
    start as locked, so that the caller can complete the initialization
    after the call. Within struct sem_array, at least sma->sem_base and
    sma->sem_nsems are accessed without any locks, therefore this approach
    doesn't work.

    Thus: Move the ipc_addid() to the end of the initialization.

    Signed-off-by: Manfred Spraul
    Reported-by: Rik van Riel
    Acked-by: Rik van Riel
    Acked-by: Davidlohr Bueso
    Acked-by: Rafael Aquini
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Manfred Spraul
     
  • If kzalloc() failed and then evdev_open_device() fails, evdev_open()
    will pass a vmalloc'ed pointer to kfree.

    This might fix https://bugzilla.kernel.org/show_bug.cgi?id=88401, where
    there was a crash in kfree().

    Reported-by: Christian Casteyde
    Belatedly-Acked-by: Dmitry Torokhov
    Cc: Henrik Rydberg
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

03 Dec, 2014

3 commits

  • In some android devices, there will be a "divide by zero" exception.
    vmpr->scanned could be zero before spin_lock(&vmpr->sr_lock).

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=88051

    [akpm@linux-foundation.org: neaten]
    Reported-by: ji_ang
    Cc: Anton Vorontsov
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • If a frontswap dup-store failed, it should invalidate the expired page
    in the backend, or it could trigger some data corruption issue.
    Such as:
    1. use zswap as the frontswap backend with writeback feature
    2. store a swap page(version_1) to entry A, success
    3. dup-store a newer page(version_2) to the same entry A, fail
    4. use __swap_writepage() write version_2 page to swapfile, success
    5. zswap do shrink, writeback version_1 page to swapfile
    6. version_2 page is overwrited by version_1, data corrupt.

    This patch fixes this issue by invalidating expired data immediately
    when meet a dup-store failure.

    Signed-off-by: Weijie Yang
    Cc: Konrad Rzeszutek Wilk
    Cc: Seth Jennings
    Cc: Dan Streetman
    Cc: Minchan Kim
    Cc: Bob Liu
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Weijie Yang
     
  • Minor fixlet to perform the reserved pages counter aggregation for each
    node, at show_mem()

    Signed-off-by: Rafael Aquini
    Acked-by: Rik van Riel
    Acked-by: Johannes Weiner
    Acked-by: Yasuaki Ishimatsu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael Aquini
     

02 Dec, 2014

6 commits

  • …/dhowells/linux-fs into for-linus

    James Morris
     
  • Pull ext4 bugfix from Ted Ts'o:
    "Fix an ext4 metadata checksum regression introduced in v3.18-rc3"

    * tag 'ext4_for_linus_urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    jbd2: fix regression where we fail to initialize checksum seed when loading

    Linus Torvalds
     
  • When we're enabling journal features, we cannot use the predicate
    jbd2_journal_has_csum_v2or3() because we haven't yet set the sb
    feature flag fields! Moreover, we just finished loading the shash
    driver, so the test is unnecessary; calculate the seed always.

    Without this patch, we fail to initialize the checksum seed the first
    time we turn on journal_checksum, which means that all journal blocks
    written during that first mount are corrupt. Transactions written
    after the second mount will be fine, since the feature flag will be
    set in the journal superblock. xfstests generic/{034,321,322} are the
    regression tests.

    (This is important for 3.18.)

    Signed-off-by: Darrick J. Wong
    Reported-by: Eric Whitney
    Signed-off-by: Theodore Ts'o

    Darrick J. Wong
     
  • Since the keyring facility can be viewed as a cache (at least in some
    applications), the local expiration time on the key should probably be viewed
    as a 'needs updating after this time' property rather than an absolute 'anyone
    now wanting to use this object is out of luck' property.

    Since request_key() is the main interface for the usage of keys, this should
    update or replace an expired key rather than issuing EKEYEXPIRED if the local
    expiration has been reached (ie. it should refresh the cache).

    For absolute conditions where refreshing the cache probably doesn't help, the
    key can be negatively instantiated using KEYCTL_REJECT_KEY with EKEYEXPIRED
    given as the error to issue. This will still cause request_key() to return
    EKEYEXPIRED as that was explicitly set.

    In the future, if the key type has an update op available, we might want to
    upcall with the expired key and allow the upcall to update it. We would pass
    a different operation name (the first column in /etc/request-key.conf) to the
    request-key program.

    request_key() returning EKEYEXPIRED is causing an NFS problem which Chuck
    Lever describes thusly:

    After about 10 minutes, my NFSv4 functional tests fail because the
    ownership of the test files goes to "-2". Looking at /proc/keys
    shows that the id_resolv keys that map to my test user ID have
    expired. The ownership problem persists until the expired keys are
    purged from the keyring, and fresh keys are obtained.

    I bisected the problem to 3.13 commit b2a4df200d57 ("KEYS: Expand
    the capacity of a keyring"). This commit inadvertantly changes the
    API contract of the internal function keyring_search_aux().

    The root cause appears to be that b2a4df200d57 made "no state check"
    the default behavior. "No state check" means the keyring search
    iterator function skips checking the key's expiry timeout, and
    returns expired keys. request_key_and_link() depends on getting
    an -EAGAIN result code to know when to perform an upcall to refresh
    an expired key.

    This patch can be tested directly by:

    keyctl request2 user debug:fred a @s
    keyctl timeout %user:debug:fred 3
    sleep 4
    keyctl request2 user debug:fred a @s

    Without the patch, the last command gives error EKEYEXPIRED, but with the
    command it gives a new key.

    Reported-by: Carl Hetherington
    Reported-by: Chuck Lever
    Signed-off-by: David Howells
    Tested-by: Chuck Lever

    David Howells
     
  • Simplify KEYRING_SEARCH_{NO,DO}_STATE_CHECK flags to be two variations of the
    same flag. They are effectively mutually exclusive and one or the other
    should be provided, but not both.

    Keyring cycle detection and key possession determination are the only things
    that set NO_STATE_CHECK, except that neither flag really does anything there
    because neither purpose makes use of the keyring_search_iterator() function,
    but rather provides their own.

    For cycle detection we definitely want to check inside of expired keyrings,
    just so that we don't create a cycle we can't get rid of. Revoked keyrings
    are cleared at revocation time and can't then be reused, so shouldn't be a
    problem either way.

    For possession determination, we *might* want to validate each keyring before
    searching it: do you possess a key that's hidden behind an expired or just
    plain inaccessible keyring? Currently, the answer is yes. Note that you
    cannot, however, possess a key behind a revoked keyring because they are
    cleared on revocation.

    keyring_search() sets DO_STATE_CHECK, which is correct.

    request_key_and_link() currently doesn't specify whether to check the key
    state or not - but it should set DO_STATE_CHECK.

    key_get_instantiation_authkey() also currently doesn't specify whether to
    check the key state or not - but it probably should also set DO_STATE_CHECK.

    Signed-off-by: David Howells
    Tested-by: Chuck Lever

    David Howells
     
  • When a key description argument is imported into the kernel from userspace, as
    happens in add_key(), request_key(), KEYCTL_JOIN_SESSION_KEYRING,
    KEYCTL_SEARCH, the description is copied into a buffer up to PAGE_SIZE in size.
    PAGE_SIZE, however, is a variable quantity, depending on the arch. Fix this at
    4096 instead (ie. 4095 plus a NUL termination) and define a constant
    (KEY_MAX_DESC_SIZE) to this end.

    When reading the description back with KEYCTL_DESCRIBE, a PAGE_SIZE internal
    buffer is allocated into which the information and description will be
    rendered. This means that the description will get truncated if an extremely
    long description it has to be crammed into the buffer with the stringified
    information. There is no particular need to copy the description into the
    buffer, so just copy it directly to userspace in a separate operation.

    Reported-by: Christian Kastner
    Signed-off-by: David Howells
    Tested-by: Christian Kastner

    David Howells
     

01 Dec, 2014

4 commits


30 Nov, 2014

2 commits

  • Pull irq fixes from Thomas Gleixner:
    "Three fixlets from the ARM SoC camp:
    - correct irqdomain initialization for atmel-aic
    - correct error handling for device tree parsing in bcm controllers"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irqchip: brcmstb-l2: Fix error handling of irq_of_parse_and_map
    irqchip: bcm7120-l2: Fix error handling of irq_of_parse_and_map
    irqchip: atmel-aic: Fix irqdomain initialization

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "This is a set of ten fixes: 8 for UFS including four static checker
    warnings, a potential null deref in the voltage regulator code, a race
    on module unload, a ref counting fix on the well known LUNs which made
    it impossible to remove the ufs module and fix to correct the
    information in pwr_info.

    In addition to UFS, there's a blacklist for the Intel Multi-Flex array
    which chokes on report supported operation codes and a fix to an oops
    in bnx2fc caused by shared skbs"

    [ For us non-SCSI people: "UFS" here is "Universal Flash Storage" not
    the filesystem. - Linus ]

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    ufs: fix NULL dereference when no regulators are defined
    ufs: ensure clk gating work is finished before module unloading
    scsi: ufs: fix static checker warning in ufshcd_parse_clock_info
    scsi: ufs: fix static checker warning in __ufshcd_setup_clocks
    scsi: ufs: fix static checker warning in ufshcd_populate_vreg
    scsi: ufs: fix static checker errors in ufshcd_system_suspend
    ufs: fix power info after link start-up
    ufs: fix reference counting of W-LUs
    scsi: add Intel Multi-Flex to scsi scan blacklist
    bnx2fc: do not add shared skbs to the fcoe_rx_list

    Linus Torvalds
     

29 Nov, 2014

7 commits

  • Pull staging/IIO driver fixes from Greg KH:
    "Here are some staging and IIO driver fixes for 3.18-rc7 that resolve a
    number of reported issues, and a new device id for a staging wireless
    driver.

    All of these have been in linux-next"

    * tag 'staging-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: r8188eu: Add new device ID for DLink GO-USB-N150
    staging: r8188eu: Fix scheduling while atomic error introduced in commit fadbe0cd
    iio: accel: bmc150: set low default thresholds
    iio: accel: bmc150: Fix iio_event_spec direction
    iio: accel: bmc150: Send x, y and z motion separately
    iio: accel: bmc150: Error handling when mode set fails
    iio: gyro: bmg160: Fix iio_event_spec direction
    iio: gyro: bmg160: Send x, y and z motion separately
    iio: gyro: bmg160: Don't let interrupt mode to be open drain
    iio: gyro: bmg160: Error handling when mode set fails
    iio: adc: men_z188_adc: Add terminating entry for men_z188_ids
    iio: accel: kxcjk-1013: Fix kxcjk10013_set_range
    iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask

    Linus Torvalds
     
  • Pull tty/serial fix from Greg KH:
    "Here is a single revert for the of-serial driver that resolves a
    reported issue.

    This revert has been in linux-next for a while"

    * tag 'tty-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    Revert "serial: of-serial: add PM suspend/resume support"

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are some USB driver fixes and new device ids for 3.18-rc7.

    Full details are in the shortlog, and all of these have been in the
    linux-next tree for a while"

    * tag 'usb-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    usb-quirks: Add reset-resume quirk for MS Wireless Laser Mouse 6000
    usb: xhci: rework root port wake bits if controller isn't allowed to wakeup
    USB: xhci: Reset a halted endpoint immediately when we encounter a stall.
    Revert "xhci: clear root port wake on bits if controller isn't wake-up capable"
    USB: xhci: don't start a halted endpoint before its new dequeue is set
    USB: uas: Add no-uas quirk for Hitachi usb-3 enclosures 4971:1012
    USB: ssu100: fix overrun-error reporting
    USB: keyspan: fix overrun-error reporting
    USB: keyspan: fix tty line-status reporting
    usb: serial: ftdi_sio: add PIDs for Matrix Orbital products
    usb: dwc3: ep0: fix for dead code
    USB: serial: cp210x: add IDs for CEL MeshConnect USB Stick

    Linus Torvalds
     
  • Pull thermal fixes from Eduardo Valentin:
    "In this -rc still very minor changes:

    - Lee Jones fixes compilation warning in sti thermal driver
    - Marjus Elfring removes unnecessary checks in exynos thermal driver
    (as per coccinelle)
    - Now we always update cpufreq policies, and thus get (hopefully)
    always in sync with cpufreq, thanks to Yadwinder"

    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
    thermal: Exynos: Deletion of unnecessary checks before two function calls
    thermal: sti: Ignore suspend/resume functions when !PM_SLEEP
    thermal: cpu_cooling: Update always cpufreq policy with thermal constraints

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "No excitement, here are only minor fixes: an endian fix for the new
    DSD format we added in 3.18, a fix for HP mute LED, and a fix for
    Native Instrument quirk"

    * tag 'sound-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: pcm: Add big-endian DSD sample formats and fix XMOS DSD sample format
    ALSA: hda - One more HP machine needs to change mute led quirk
    ALSA: usb-audio: Use snd_usb_ctl_msg() for Native Instruments quirk

    Linus Torvalds
     
  • Pull ARM SoC fixes from Arnd Bergmann:
    "Not much interesting going on fixes-wise for us this week, as it
    should be for an -rc7. I'm not expecting Olof to work much over
    Thanksgiving weekend, so I decided to take over again and push these
    out to you.

    Just four simple fixes this week:

    - one missing of_node_put() on armv7 based mvebu
    - forcing the USB host into the right mode on Chromebook
    (exynos5-snow)
    - enabling two important drivers for exynos_defconfig
    - fixing a noncritical bug for tegra that would cause a regression
    with common code patches queued for 3.19"

    * tag 'armsoc-for-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: tegra: irq: fix buggy usage of irq_data irq field
    ARM: exynos_defconfig: Enable max77802 rtc and clock drivers
    ARM: dts: Explicitly set dr_mode on exynos5250-snow
    ARM: mvebu: add missing of_node_put() call in coherency.c

    Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "Another round of relatively small ARM fixes.

    Thomas spotted that the strex backoff delay bit was a disable bit, so
    it needed to be clear for this to work. Vladimir spotted that using a
    restart block for the cache flush operation would return -EINTR, which
    userspace was not expecting. Dmitry spotted that the auxiliary
    control register accesses for Xscale were not correct"

    * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: 8226/1: cacheflush: get rid of restarting block
    ARM: 8222/1: mvebu: enable strex backoff delay
    ARM: 8216/1: xscale: correct auxiliary register in suspend/resume

    Linus Torvalds
     

28 Nov, 2014

9 commits

  • Two regression fixes from Ville.

    * tag 'drm-intel-fixes-2014-11-27' of git://anongit.freedesktop.org/drm-intel:
    drm/i915: Cancel vdd off work before suspend
    drm/i915: Ignore SURFLIVE and flip counter when the GPU gets reset

    Dave Airlie
     
  • Pull mips fixes from Ralf Baechle:
    "The hopefully final round of fixes for 3.18:

    - Fix a number of build errors affecting particular configurations.
    - Handle EVA correctly when flushing a signal trampoline and dcache
    lines.
    - Fix printks printing jibberish.
    - Handle 64 bit memory addresses correctly when adding memory chunk
    on 32 bit kernels.
    - Fix a race condition in the hardware tablewalker code"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: tlbex: Fix potential HTW race on TLBL/M/S handlers
    MIPS: Fix address type used for early memory detection.
    MIPS: Kconfig: Don't allow both microMIPS and SmartMIPS to be selected.
    MIPS: kernel: cps-vec: Set ISA level to mips32r2 for the MIPS MT ASE
    MIPS: Netlogic: handle modular AHCI builds
    MIPS: Netlogic: handle modular USB case
    MIPS: Loongson: Make platform serial setup always built-in.
    MIPS: fix EVA & non-SMP non-FPU FP context signal handling
    MIPS: cpu-probe: Set the FTLB probability bit on supported cores
    MIPS: BMIPS: Fix ".previous without corresponding .section" warnings
    MIPS: uaccess.h: Fix strnlen_user comment.
    MIPS: r4kcache: Add EVA case for protected_writeback_dcache_line
    MIPS: Fix info about plat_setup in arch_mem_init comment
    MIPS: rtlx: Remove KERN_DEBUG from pr_debug() arguments in rtlx.c
    MIPS: SEAD3: Fix LED device registration.
    MIPS: Fix a copy & paste error in unistd.h

    Linus Torvalds
     
  • Pull powerpc fixes from Michael Ellerman:
    "Here are five fixes for you to pull please.

    They're all CC'ed to stable except the "Fix PE state format" one which
    went in this release"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux:
    powerpc: 32 bit getcpu VDSO function uses 64 bit instructions
    powerpc/powernv: Replace OPAL_DEASSERT_RESET with EEH_RESET_DEACTIVATE
    powerpc/eeh: Fix PE state format
    powerpc/pseries: Fix endiannes issue in RTAS call from xmon
    powerpc/powernv: Fix the hmi event version check.

    Linus Torvalds
     
  • Pull sparc fixlet from David Miller:
    "Aparc fix to add dma_cache_sync(), even if a nop it should be provided
    if dma_{alloc,free}_noncoherent() is provided too"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc: Add NOP dma_cache_sync() implementation.

    Linus Torvalds
     
  • Pull networking fixes from David Miller:
    "Several small fixes here:

    1) Don't crash in tg3 driver when the number of tx queues has been
    configured to be different from the number of rx queues. From
    Thadeu Lima de Souza Cascardo.

    2) VLAN filter not disabled properly in promisc mode in ixgbe driver,
    from Vlad Yasevich.

    3) Fix OOPS on dellink op in VTI tunnel driver, from Xin Long.

    4) IPV6 GRE driver WCCP code checks skb->protocol for ETH_P_IP
    instead of ETH_P_IPV6, whoops. From Yuri Chislov.

    5) Socket matching in ping driver is buggy when packet AF does not
    match socket's AF. Fix from Jane Zhou.

    6) Fix checksum calculation errors in VXLAN due to where the
    udp_tunnel6_xmit_skb() helper gets it's saddr/daddr from. From
    Alexander Duyck.

    7) Fix 5G detection problem in rtlwifi driver, from Larry Finger.

    8) Fix NULL deref in tcp_v{4,6}_send_reset, from Eric Dumazet.

    9) Various missing netlink attribute verifications in bridging code,
    from Thomas Graf.

    10) tcp_recvmsg() unconditionally calls ipv4 ip_recv_error even for
    ipv6 sockets, whoops. Fix from Willem de Bruijn"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (29 commits)
    net-timestamp: make tcp_recvmsg call ipv6_recv_error for AF_INET6 socks
    bridge: Sanitize IFLA_EXT_MASK for AF_BRIDGE:RTM_GETLINK
    bridge: Add missing policy entry for IFLA_BRPORT_FAST_LEAVE
    net: Check for presence of IFLA_AF_SPEC
    net: Validate IFLA_BRIDGE_MODE attribute length
    bridge: Validate IFLA_BRIDGE_FLAGS attribute length
    stmmac: platform: fix default values of the filter bins setting
    net/mlx4_core: Limit count field to 24 bits in qp_alloc_res
    net: dsa: bcm_sf2: reset switch prior to initialization
    net: dsa: bcm_sf2: fix unmapping registers in case of errors
    tg3: fix ring init when there are more TX than RX channels
    tcp: fix possible NULL dereference in tcp_vX_send_reset()
    rtlwifi: Change order in device startup
    rtlwifi: rtl8821ae: Fix 5G detection problem
    Revert "netfilter: conntrack: fix race in __nf_conntrack_confirm against get_next_corpse"
    vxlan: Fix boolean flip in VXLAN_F_UDP_ZERO_CSUM6_[TX|RX]
    ip6_udp_tunnel: Fix checksum calculation
    net-timestamp: Fix a documentation typo
    net/ping: handle protocol mismatching scenario
    af_packet: fix sparse warning
    ...

    Linus Torvalds
     
  • Pull spi fixes from Mark Brown:
    "There's a couple of driver fixes here, plus one core fix for the DMA
    mapping which wasn't doing the right thing for vmalloc()ed addresses
    that hadn't been through kmap(). It's fairly rare to use vmalloc()
    with SPI and it's a subset of those users who might fail so it's
    unsurprising that this wasn't noticed sooner"

    * tag 'spi-v3.18-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
    spi: sirf: fix word width configuration
    spi: Fix mapping from vmalloc-ed buffer to scatter list
    spi: dw: Fix dynamic speed change.

    Linus Torvalds
     
  • Pull input layer fixes from Dmitry Torokhov:
    "The main change is to fix breakage in Elantech driver introduced by
    the recent commit adding trackpoint reporting to protocol v4. Now we
    are trusting the hardware to advertise the trackpoint properly and do
    not try to decode the data as trackpoint if firmware told us it is not
    present"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: xpad - use proper endpoint type
    Input: elantech - trust firmware about trackpoint presence
    Input: synaptics - adjust min/max on Thinkpad E540

    Linus Torvalds
     
  • The DLink GO-USB-N150 with revision B1 uses this driver.

    Signed-off-by: Larry Finger
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Larry Finger
     
  • There is a potential race when probing the TLB in TLBL/M/S exception
    handlers for a matching entry. Between the time we hit a TLBL/S/M
    exception and the time we get to execute the TLBP instruction, the
    HTW may have replaced the TLB entry we are interested in hence the TLB
    probe may fail. However, in the existing handlers, we never checked the
    status of the TLBP (ie check the result in the C0/Index register). We
    fix this by adding such a check when the core implements the HTW. If
    we couldn't find a matching entry, we return back and try again.

    Signed-off-by: Leonid Yegoshin
    Signed-off-by: Markos Chandras
    Reviewed-by: James Hogan
    Cc: # v3.17+
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/8599/
    Signed-off-by: Ralf Baechle

    Leonid Yegoshin