21 Feb, 2014

10 commits

  • The finish_arch_post_lock_switch is called at the end of the task
    switch after all locks have been released. In concept it is paired
    with the switch_mm function, but the current code only does the
    call in finish_task_switch. Add the call to idle_task_exit and
    use_mm. One use case for the additional calls is s390 which will
    use finish_arch_post_lock_switch to wait for the completion of
    TLB flush operations.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • The uaccesspt kernel parameter allows to enforce using the uaccess page
    table walk variant. This is mainly for debugging purposes, so this mode
    can also be enabled on machines which support the mvcos instruction.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Remove another leftover from the time when we supported running
    user space in either home or primary address space.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • MACHINE_HAS_MVCOS is used exactly once when the machine is brought up.
    There is no need to cache the flag in the machine_flags.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • The types 'size_t' and 'unsigned long' have been used randomly for the
    uaccess functions. This looks rather confusing.
    So let's change all functions to use unsigned long instead and get rid
    of size_t in order to have a consistent interface.

    The only exception is strncpy_from_user() which uses 'long' since it
    may return a signed value (-EFAULT).

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • There are only two uaccess variants on s390 left: the version that is used
    if the mvcos instruction is available, and the page table walk variant.
    So there is no need for expensive indirect function calls.

    By default the mvcos variant will be called. If the mvcos instruction is not
    available it will call the page table walk variant.

    For minimal performance impact the "if (mvcos_is_available)" is implemented
    with a jump label, which will be a six byte nop on machines with mvcos.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • For some unknown reason the indirect uaccess functions on s390 implement a
    different parameter order than what is usual.

    e.g.:

    unsigned long copy_to_user(void *to, const void *from, unsigned long n);
    vs.
    size_t (*copy_to_user)(size_t n, void __user * to, const void *from);

    Let's get rid of this confusing parameter reordering.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Interrupts which happen on ccw consoles prior to their registration
    with the driver core are not accounted to the respective device
    driver. Fix this by setting the proper interrupt class during
    initialization of ccw consoles.

    Reviewed-by: Peter Oberparleiter
    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • Drivers for ccw consoles use ccw_device_probe_console to receive
    an initialized ccw device which is already enabled for interrupts.
    After that the device driver does the initialization of its private
    data. This can race with unsolicited interrupts which can happen
    once the device is enabled for interrupts.

    Split ccw_device_probe_console into ccw_device_create_console and
    ccw_device_enable_console and reorder the initialization of the ccw
    console drivers.

    While at it mark these functions as __init.

    Reviewed-by: Peter Oberparleiter
    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     
  • ccw consoles are in use before they can be properly registered with
    the driver core. For devices which are in use by a device driver we
    rely on the ccw_device's pointer to the driver callbacks to be valid.
    For ccw consoles this pointer is NULL until they are registered later
    during boot and we dereferenced this pointer. This worked by
    chance on 64 bit builds (cdev->drv was NULL but the optional callback
    cdev->drv->path_event was also NULL by coincidence) and was unnoticed
    until we received reports about boot failures on 31 bit systems.
    Fix it by initializing the driver pointer for ccw consoles.

    Cc: # 3.10+
    Reported-by: Mike Frysinger
    Reported-by: Heiko Carstens
    Reviewed-by: Peter Oberparleiter
    Signed-off-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Sebastian Ott
     

19 Feb, 2014

26 commits

  • Pull drm fixes from Dave Airlie:
    "Lots of little small things, nothing too major: nouveau regression
    fixes, vmware fixes for the new hw support, memory leaks in error path
    fixes"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (31 commits)
    drm/radeon/ni: fix typo in dpm sq ramping setup
    drm/radeon/si: fix typo in dpm sq ramping setup
    drm/radeon: fix CP semaphores on CIK
    drm/radeon: delete a stray tab
    drm/radeon: fix display tiling setup on SI
    drm/radeon/dpm: reduce r7xx vblank mclk threshold to 200
    drm/radeon: fill in DRM_CAPs for cursor size
    drm: add DRM_CAPs for cursor size
    drm/radeon: unify bpc handling
    drm/ttm: Fix memory leak in ttm_agp_backend.c
    drm/ttm: declare 'struct device' in ttm_page_alloc.h
    drm/nouveau: fix TTM_PL_TT memtype on pre-nv50
    drm/nv50/disp: use correct register to determine DP display bpp
    drm/nouveau/fb: use correct ram oclass for nv1a hardware
    drm/nv50/gr: add missing nv_error parameter priv
    drm/nouveau: fix ENG_RUNLIST register address
    drm/nv4c/bios: disallow retrieving from prom on nv4x igp's
    drm/nv4c/vga: decode register is in a different place on nv4x igp's
    drm/nv4c/mc: nv4x igp's have a different msi rearm register
    drm/nouveau: set irq_enabled manually
    ...

    Linus Torvalds
     
  • Pull HID update from Jiri Kosina:

    - fixes for several bugs in incorrect allocations of buffers by David
    Herrmann and Benjamin Tissoires.

    - support for a few new device IDs by Archana Patni, Benjamin
    Tissoires, Huei-Horng Yo, Reyad Attiyat and Yufeng Shen

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: hyperv: make sure input buffer is big enough
    HID: Bluetooth: hidp: make sure input buffers are big enough
    HID: hid-sensor-hub: quirk for STM Sensor hub
    HID: apple: add Apple wireless keyboard 2011 JIS model support
    HID: fix buffer allocations
    HID: multitouch: add FocalTech FTxxxx support
    HID: microsoft: Add ID's for Surface Type/Touch Cover 2
    HID: usbhid: quirk for CY-TM75 75 inch Touch Overlay

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) kvaser CAN driver has fixed limits of some of it's table, validate
    that we won't exceed those limits at probe time. Fix from Olivier
    Sobrie.

    2) Fix rtl8192ce disabling interrupts for too long, from Olivier
    Langlois.

    3) Fix botched shift in ath5k driver, from Dan Carpenter.

    4) Fix corruption of deferred packets in TIPC, from Erik Hugne.

    5) Fix newlink error path in macvlan driver, from Cong Wang.

    6) Fix netpoll deadlock in bonding, from Ding Tianhong.

    7) Handle GSO packets properly in forwarding path when fragmentation is
    necessary on egress, from Florian Westphal.

    8) Fix axienet build errors, from Michal Simek.

    9) Fix refcounting of ubufs on tx in vhost net driver, from Michael S
    Tsirkin.

    10) Carrier status isn't set properly in hyperv driver, from Haiyang
    Zhang.

    11) Missing pci_disable_device() in tulip_remove_one), from Ingo Molnar.

    12) AF_PACKET qdisc bypass mode doesn't adhere to driver provided TX
    queue selection method. Add a fallback method mechanism to fix this
    bug, from Daniel Borkmann.

    13) Fix regression in link local route handling on GRE tunnels, from
    Nicolas Dichtel.

    14) Bonding can assign dup aggregator IDs in some sequences of
    configuration, fix by making the allocation counter per-bond instead
    of global. From Jiri Bohac.

    15) sctp_connectx() needs compat translations, from Daniel Borkmann.

    16) Fix of_mdio PHY interrupt parsing, from Ben Dooks

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (62 commits)
    MAINTAINERS: add entry for the PHY library
    of_mdio: fix phy interrupt passing
    net: ethernet: update dependency and help text of mvneta
    NET: fec: only enable napi if we are successful
    af_packet: remove a stray tab in packet_set_ring()
    net: sctp: fix sctp_connectx abi for ia32 emulation/compat mode
    ipv4: fix counter in_slow_tot
    irtty-sir.c: Do not set_termios() on irtty_close()
    bonding: 802.3ad: make aggregator_identifier bond-private
    usbnet: remove generic hard_header_len check
    gre: add link local route when local addr is any
    batman-adv: fix potential kernel paging error for unicast transmissions
    batman-adv: avoid double free when orig_node initialization fails
    batman-adv: free skb on TVLV parsing success
    batman-adv: fix TT CRC computation by ensuring byte order
    batman-adv: fix potential orig_node reference leak
    batman-adv: avoid potential race condition when adding a new neighbour
    batman-adv: properly check pskb_may_pull return value
    batman-adv: release vlan object after checking the CRC
    batman-adv: fix TT-TVLV parsing on OGM reception
    ...

    Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "A range of ARM fixes. Biggest change is the stage-2 attributes used
    for for hyp mode which were wrong. I've killed some bits in a couple
    of DT files which turned out not to be required, and a few other
    fixes.

    One fix touches code outside of arch/arm, which is related to sorting
    out the DMA masks correctly. There is a long standing issue with the
    conversion from PFNs to addresses where people assume that shifting an
    unsigned long left by PAGE_SHIFT results in a correct address. This
    is not the case with C: the integer promotion happens at assignment
    after evaluation. This fixes the recently introduced dma_max_pfn()
    function, but there's a number of other places where we try this
    directly on an unsigned long in the mm code"

    * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: 7957/1: add DSB after icache flush in __flush_icache_all()
    Fix uses of dma_max_pfn() when converting to a limiting address
    ARM: 7955/1: spinlock: ensure we have a compiler barrier before sev
    ARM: 7953/1: mm: ensure TLB invalidation is complete before enabling MMU
    ARM: 7952/1: mm: Fix the memblock allocation for LPAE machines
    ARM: 7950/1: mm: Fix stage-2 device memory attributes
    ARM: dts: fix spdif pinmux configuration

    Linus Torvalds
     
  • Pull jfs fix from David Kleikamp:
    "Another ACL regression. This one more subtle"

    * tag 'jfs-3.14-rc4' of git://github.com/kleikamp/linux-shaggy:
    jfs: set i_ctime when setting ACL

    Linus Torvalds
     
  • The PHY library has been subject to some changes, new drivers and DT
    interactions over the past few months. Add myself as a maintainer for
    the core PHY library parts and drivers. Make sure the PHY library entry
    also covers the Device Tree files which have a close interaction with
    the MDIO bus, PHY connection and Ethernet PHY mode parsing.

    CC: Grant Likely
    CC: Shaohui Xie
    CC: Andy Fleming
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • The of_mdiobus_register_phy() is not setting phy->irq thus causing
    some drivers to incorrectly assume that the PHY does not have an
    IRQ associated with it. Not only do some drivers report no IRQ
    they do not install an interrupt handler for the PHY.

    Simplify the code setting irq and set the phy->irq at the same
    time so that we cover the following issues, which should cover
    all the cases the code will find:

    - Set phy->irq if node has irq property and mdio->irq is NULL
    - Set phy->irq if node has no irq and mdio->irq is not NULL
    - Leave phy->irq as PHY_POLL default if none of the above

    This fixes the issue:
    net eth0: attached PHY 1 (IRQ -1) to driver Micrel KSZ8041RNLI

    to the correct:
    net eth0: attached PHY 1 (IRQ 416) to driver Micrel KSZ8041RNLI

    Signed-off-by: Ben Dooks
    Signed-off-by: David S. Miller

    Ben Dooks
     
  • With the introduction of the support for Armada 375 and Armada 38x,
    the hidden Kconfig option MACH_ARMADA_370_XP is being renamed to
    MACH_MVEBU_V7. Therefore, the dependency that was used for the mvneta
    driver can no longer work. This commit replaces this dependency by a
    dependency on PLAT_ORION, which is used similarly for the mv643xx_eth
    driver.

    In addition to this, it takes this opportunity to adjust the
    description and help text to indicate that the driver can is also used
    for Armada 38x. Note that Armada 375 cannot use this driver as it has
    a completely different networking unit, which will require a separate
    driver.

    Signed-off-by: Thomas Petazzoni
    Acked-by: Jason Cooper
    Signed-off-by: David S. Miller

    Thomas Petazzoni
     
  • If napi is left enabled after a failed attempt to bring the interface
    up, we BUG:

    fec 2188000.ethernet eth0: no PHY, assuming direct connection to switch
    libphy: PHY fixed-0:00 not found
    fec 2188000.ethernet eth0: could not attach to PHY
    ------------[ cut here ]------------
    kernel BUG at include/linux/netdevice.h:502!
    Internal error: Oops - BUG: 0 [#1] SMP ARM
    ...
    PC is at fec_enet_open+0x4d0/0x500
    LR is at __dev_open+0xa4/0xfc

    Only enable napi after we are past all the failure paths.

    Signed-off-by: Russell King
    Signed-off-by: David S. Miller

    Russell King
     
  • At first glance it looks like there is a missing curly brace but
    actually the code works the same either way. I have adjusted the
    indenting but left the code the same.

    Signed-off-by: Dan Carpenter
    Acked-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • Pull request of 2014-02-18

    One compile fix and one memory leak.

    * tag 'ttm-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux:
    drm/ttm: Fix memory leak in ttm_agp_backend.c
    drm/ttm: declare 'struct device' in ttm_page_alloc.h

    Dave Airlie
     
  • …h/linux into drm-fixes

    Pull request of 2014-02-18.

    Nothing special. The biggest change is adding a couple of command defines and
    packing the command data correctly.

    * tag 'vmwgfx-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux:
    drm/vmwgfx: Fix command defines and checks
    drm/vmwgfx: Fix possible integer overflow
    drm/vmwgfx: Remove stray const
    drm/vmwgfx: unlock on error path in vmw_execbuf_process()
    drm/vmwgfx: Get maximum mob size from register SVGA_REG_MOB_MAX_SIZE
    drm/vmwgfx: Fix a couple of sparse warnings and errors

    Dave Airlie
     
  • Fix for 128x128 cursors, along with some misc fixes.

    * 'drm-fixes-3.14' of git://people.freedesktop.org/~agd5f/linux:
    drm/radeon/ni: fix typo in dpm sq ramping setup
    drm/radeon/si: fix typo in dpm sq ramping setup
    drm/radeon: fix CP semaphores on CIK
    drm/radeon: delete a stray tab
    drm/radeon: fix display tiling setup on SI
    drm/radeon/dpm: reduce r7xx vblank mclk threshold to 200
    drm/radeon: fill in DRM_CAPs for cursor size
    drm: add DRM_CAPs for cursor size
    drm/radeon: unify bpc handling

    Dave Airlie
     
  • John W. Linville says:

    ====================
    Please pull this batch of fixes intended for the 3.14 stream...

    For the iwlwifi one, Emmanuel says:

    "As explicitly written in the commit message, we prefer to disable Tx
    AMPDU on NICs supported by iwldvm. This feature gives a big boost in
    Tx performance, but the firmware is buggy and we can't rely on it.
    Our hope is that most of the users out there want wifi to surf on
    the web which means that they care more for Rx traffic than for Tx.
    People who want to enable it can do so with the help of a module
    parameter."

    On top of that...

    Dan Carpenter fixes a typo/thinko in ath5k.

    Olivier Langlois fixes a couple of rtlwifi issues, one which leaves
    IRQs disabled too long (causing a variety of problems elsewhere),
    and one which fixes an incorrect return code when failing to enable
    the NIC.

    Russell King fixes a NULL pointer dereference in hostap.

    Stanislaw Gruszka fixes a DMA coherence issue in the rtl8187 driver.

    Please let me know if there are problems!
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • SCTP's sctp_connectx() abi breaks for 64bit kernels compiled with 32bit
    emulation (e.g. ia32 emulation or x86_x32). Due to internal usage of
    'struct sctp_getaddrs_old' which includes a struct sockaddr pointer,
    sizeof(param) check will always fail in kernel as the structure in
    64bit kernel space is 4bytes larger than for user binaries compiled
    in 32bit mode. Thus, applications making use of sctp_connectx() won't
    be able to run under such circumstances.

    Introduce a compat interface in the kernel to deal with such
    situations by using a 'struct compat_sctp_getaddrs_old' structure
    where user data is copied into it, and then sucessively transformed
    into a 'struct sctp_getaddrs_old' structure with the help of
    compat_ptr(). That fixes sctp_connectx() abi without any changes
    needed in user space, and lets the SCTP test suite pass when compiled
    in 32bit and run on 64bit kernels.

    Fixes: f9c67811ebc0 ("sctp: Fix regression introduced by new sctp_connectx api")
    Signed-off-by: Daniel Borkmann
    Acked-by: Neil Horman
    Acked-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • Included changes:
    - fix soft-interface MTU computation
    - fix bogus pointer mangling when parsing the TT-TVLV
    container. This bug led to a wrong memory access.
    - fix memory leak by properly releasing the VLAN object
    after CRC check
    - properly check pskb_may_pull() return value
    - avoid potential race condition while adding new neighbour
    - fix potential memory leak by removing all the references
    to the orig_node object in case of initialization failure
    - fix the TT CRC computation by ensuring that every node uses
    the same byte order when hosts with different endianess are
    part of the same network
    - fix severe memory leak by freeing skb after a successful
    TVLV parsing
    - avoid potential double free when orig_node initialization
    fails
    - fix potential kernel paging error caused by the usage of
    the old value of skb->data after skb reallocation

    Signed-off-by: David S. Miller

    David S. Miller
     
  • inverted logic.

    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • inverted logic.

    Noticed-by: Sylvain BERTRAND
    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • The CP semaphore queue on CIK has a bug that triggers if uncompleted
    waits use the same address while a signal is still pending. Work around
    this by using different addresses for each sync.

    Signed-off-by: Christian König
    Cc: stable@vger.kernel.org
    Signed-off-by: Alex Deucher

    Christian König
     
  • Static checkers complain that probably curly braces were intended here,
    but actually it makes more sense to remove the extra tab.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Alex Deucher

    Dan Carpenter
     
  • Apply the same logic as CI to SI for setting up the
    display tiling parameters. The num banks may vary
    per tiling index just like CI.

    Bugs:
    https://bugs.freedesktop.org/show_bug.cgi?id=71488
    https://bugs.freedesktop.org/show_bug.cgi?id=73946
    https://bugs.freedesktop.org/show_bug.cgi?id=74927

    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • Most laptops seems to have a vblank period of less than
    300 and mclk switching works fine. Drop the quirk and
    set the default threshold to 200.

    bug:
    https://bugzilla.kernel.org/show_bug.cgi?id=70701

    Signed-off-by: Alex Deucher

    Alex Deucher
     
  • CIK parts are 128x128, older parts are 64x64.

    Signed-off-by: Alex Deucher

    Alex Deucher
     
  • Some hardware may not support standard 64x64 cursors. Add
    a drm cap to query the cursor size from the kernel. Some examples
    include radeon CIK parts (128x128 cursors) and armada (32x64 or 64x32).
    This allows things like device specific ddxes to remove asics specific
    logic and also allows xf86-video-modesetting to work properly with hw
    cursors on this hardware. Default to 64 if the driver doesn't specify
    a size.

    Signed-off-by: Alex Deucher
    Reviewed-by: Rob Clark

    Alex Deucher
     
  • We were already storing the bpc (bits per color) information
    in radeon_crtc, so just use that everywhere rather than
    calculating it everywhere we use it. This also allows us
    to change it in one place if we ever want to override it.

    Signed-off-by: Alex Deucher

    Alex Deucher
     
  • Pull ext4 fixes from Ted Ts'o:
    "Miscellaneous ext4 bug fixes for v3.14"

    * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    jbd2: fix use after free in jbd2_journal_start_reserved()
    ext4: don't leave i_crtime.tv_sec uninitialized
    ext4: fix online resize with a non-standard blocks per group setting
    ext4: fix online resize with very large inode tables
    ext4: don't try to modify s_flags if the the file system is read-only
    ext4: fix error paths in swap_inode_boot_loader()
    ext4: fix xfstest generic/299 block validity failures

    Linus Torvalds
     

18 Feb, 2014

4 commits

  • This patch fix a memory leak found by cppcheck.
    [drivers/gpu/drm/ttm/ttm_agp_backend.c:129]:
    (error) Memory leak: agp_be

    Signed-off-by: Masanari Iida
    Reviewed-by: Thomas Hellstrom

    Masanari Iida
     
  • Declare 'struct device' explicitly in ttm_page_alloc.h as this file
    does not include any file declaring it. This removes the following
    warning:

    warning: 'struct device' declared inside parameter list

    Signed-off-by: Alexandre Courbot
    Reviewed-by: Thierry Reding

    Alexandre Courbot
     
  • …ux-2.6 into drm-fixes

    Nothing too exciting, mostly fixes for ancient boards, but a pretty important fix for DP on some systems.

    Thanks,
    * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
    drm/nouveau: fix TTM_PL_TT memtype on pre-nv50
    drm/nv50/disp: use correct register to determine DP display bpp
    drm/nouveau/fb: use correct ram oclass for nv1a hardware
    drm/nv50/gr: add missing nv_error parameter priv
    drm/nouveau: fix ENG_RUNLIST register address
    drm/nv4c/bios: disallow retrieving from prom on nv4x igp's
    drm/nv4c/vga: decode register is in a different place on nv4x igp's
    drm/nv4c/mc: nv4x igp's have a different msi rearm register
    drm/nouveau: set irq_enabled manually

    Dave Airlie
     
  • 3 fixes plus 1 prep patch, all four cc: stable. Jani will take over from
    here and the plan is that he'll do 3.14-fixes for the entire release just
    to work things out a bit.

    * tag 'drm-intel-fixes-2014-02-14' of ssh://git.freedesktop.org/git/drm-intel:
    drm/i915/dp: add native aux defer retry limit
    drm/i915/dp: increase native aux defer retry timeout
    drm/i915: Prevent MI_DISPLAY_FLIP straddling two cachelines on IVB
    drm/i915: Add intel_ring_cachline_align()

    Dave Airlie