1. 24 Feb, 2016 2 commits
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.5-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 420eb6d7
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "Stable bugfixes:
         - Fix nfs_size_to_loff_t
         - NFSv4: Fix a dentry leak on alias use
      
        Other bugfixes:
         - Don't schedule a layoutreturn if the layout segment can be freed
           immediately.
         - Always set NFS_LAYOUT_RETURN_REQUESTED with lo->plh_return_iomode
         - rpcrdma_bc_receive_call() should init rq_private_buf.len
         - fix stateid handling for the NFS v4.2 operations
         - pnfs/blocklayout: fix a memeory leak when using,vmalloc_to_page
         - fix panic in gss_pipe_downcall() in fips mode
         - Fix a race between layoutget and pnfs_destroy_layout
         - Fix a race between layoutget and bulk recalls"
      
      * tag 'nfs-for-4.5-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFSv4.x/pnfs: Fix a race between layoutget and bulk recalls
        NFSv4.x/pnfs: Fix a race between layoutget and pnfs_destroy_layout
        auth_gss: fix panic in gss_pipe_downcall() in fips mode
        pnfs/blocklayout: fix a memeory leak when using,vmalloc_to_page
        nfs4: fix stateid handling for the NFS v4.2 operations
        NFSv4: Fix a dentry leak on alias use
        xprtrdma: rpcrdma_bc_receive_call() should init rq_private_buf.len
        pNFS: Always set NFS_LAYOUT_RETURN_REQUESTED with lo->plh_return_iomode
        pNFS: Fix pnfs_mark_matching_lsegs_return()
        nfs: fix nfs_size_to_loff_t
      420eb6d7
    • Linus Torvalds's avatar
      x86: fix SMAP in 32-bit environments · de9e478b
      Linus Torvalds authored
      In commit 11f1a4b9 ("x86: reorganize SMAP handling in user space
      accesses") I changed how the stac/clac instructions were generated
      around the user space accesses, which then made it possible to do
      batched accesses efficiently for user string copies etc.
      
      However, in doing so, I completely spaced out, and didn't even think
      about the 32-bit case.  And nobody really even seemed to notice, because
      SMAP doesn't even exist until modern Skylake processors, and you'd have
      to be crazy to run 32-bit kernels on a modern CPU.
      
      Which brings us to Andy Lutomirski.
      
      He actually tested the 32-bit kernel on new hardware, and noticed that
      it doesn't work.  My bad.  The trivial fix is to add the required
      uaccess begin/end markers around the raw accesses in <asm/uaccess_32.h>.
      
      I feel a bit bad about this patch, just because that header file really
      should be cleaned up to avoid all the duplicated code in it, and this
      commit just expands on the problem.  But this just fixes the bug without
      any bigger cleanup surgery.
      Reported-and-tested-by: default avatarAndy Lutomirski <luto@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      de9e478b
  2. 22 Feb, 2016 25 commits
    • Trond Myklebust's avatar
      NFSv4.x/pnfs: Fix a race between layoutget and bulk recalls · 9fd4b9fc
      Trond Myklebust authored
      Replace another case where the layout 'plh_block_lgets' can trigger
      infinite loops in send_layoutget().
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      9fd4b9fc
    • Trond Myklebust's avatar
      NFSv4.x/pnfs: Fix a race between layoutget and pnfs_destroy_layout · 2454dfea
      Trond Myklebust authored
      If the server reboots while there is a layoutget outstanding, then
      the call to pnfs_choose_layoutget_stateid() will fail with an EAGAIN
      error, which causes an infinite loop in send_layoutget(). The reason
      why we never break out of the loop is that the layout 'plh_block_lgets'
      field is never cleared.
      
      Fix is to replace plh_block_lgets with NFS_LAYOUT_INVALID_STID, which
      can be reset after a new layoutget.
      
      Fixes: ab7d763e ("pNFS: Ensure nfs4_layoutget_prepare returns...")
      Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
      2454dfea
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-v4.5-rc5' of... · 4de8ebef
      Linus Torvalds authored
      Merge tag 'trace-fixes-v4.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull tracing fixes from Steven Rostedt:
       "Two more small fixes.
      
        One is by Yang Shi who added a READ_ONCE_NOCHECK() to the scan of the
        stack made by the stack tracer.  As the stack tracer scans the entire
        kernel stack, KASAN triggers seeing it as a "stack out of bounds"
        error.  As the scan is looking at the contents of the stack from
        parent functions.  The NOCHECK() tells KASAN that this is done on
        purpose, and is not some kind of stack overflow.
      
        The second fix is to the ftrace selftests, to retrieve the PID of
        executed commands from the shell with '$!' and not by parsing 'jobs'"
      
      * tag 'trace-fixes-v4.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing, kasan: Silence Kasan warning in check_stack of stack_tracer
        ftracetest: Fix instance test to use proper shell command for pids
      4de8ebef
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.5-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 692b8c66
      Linus Torvalds authored
      Pull xen bug fixes from David Vrabel:
      
       - Two scsiback fixes (resource leak and spurious warning).
      
       - Fix DMA mapping of compound pages on arm/arm64.
      
       - Fix some pciback regressions in MSI-X handling.
      
       - Fix a pcifront crash due to some uninitialize state.
      
      * tag 'for-linus-4.5-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/pcifront: Fix mysterious crashes when NUMA locality information was extracted.
        xen/pcifront: Report the errors better.
        xen/pciback: Save the number of MSI-X entries to be copied later.
        xen/pciback: Check PF instead of VF for PCI_COMMAND_MEMORY
        xen: fix potential integer overflow in queue_reply
        xen/arm: correctly handle DMA mapping of compound pages
        xen/scsiback: avoid warnings when adding multiple LUNs to a domain
        xen/scsiback: correct frontend counting
      692b8c66
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · dea08e60
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       "Looks like a lot, but mostly driver fixes scattered all over as usual.
      
        Of note:
      
         1) Add conditional sched in nf conntrack in cleanup to avoid NMI
            watchdogs.  From Florian Westphal.
      
         2) Fix deadlock in nfnetlink cttimeout, also from Floarian.
      
         3) Fix handling of slaves in bonding ARP monitor validation, from Jay
            Vosburgh.
      
         4) Callers of ip_cmsg_send() are responsible for freeing IP options,
            some were not doing so.  Fix from Eric Dumazet.
      
         5) Fix per-cpu bugs in mvneta driver, from Gregory CLEMENT.
      
         6) Fix vlan handling in mv88e6xxx DSA driver, from Vivien Didelot.
      
         7) bcm7xxx PHY driver bug fixes from Florian Fainelli.
      
         8) Avoid unaligned accesses to protocol headers wrt.  GRE, from
            Alexander Duyck.
      
         9) SKB leaks and other problems in arc_emac driver, from Alexander
            Kochetkov.
      
        10) tcp_v4_inbound_md5_hash() releases listener socket instead of
            request socket on error path, oops.  Fix from Eric Dumazet.
      
        11) Missing socket release in pppoe_rcv_core() that seems to have
            existed basically forever.  From Guillaume Nault.
      
        12) Missing slave_dev unregister in dsa_slave_create() error path,
            from Florian Fainelli.
      
        13) crypto_alloc_hash() never returns NULL, fix return value check in
            __tcp_alloc_md5sig_pool.  From Insu Yun.
      
        14) Properly expire exception route entries in ipv4, from Xin Long.
      
        15) Fix races in tcp/dccp listener socket dismantle, from Eric
            Dumazet.
      
        16) Don't set IFF_TX_SKB_SHARING in vxlan, geneve, or GRE, it's not
            legal.  These drivers modify the SKB on transmit.  From Jiri Benc.
      
        17) Fix regression in the initialziation of netdev->tx_queue_len.
            From Phil Sutter.
      
        18) Missing unlock in tipc_nl_add_bc_link() error path, from Insu Yun.
      
        19) SCTP port hash sizing does not properly ensure that table is a
            power of two in size.  From Neil Horman.
      
        20) Fix initializing of software copy of MAC address in fmvj18x_cs
            driver, from Ken Kawasaki"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (129 commits)
        bnx2x: Fix 84833 phy command handler
        bnx2x: Fix led setting for 84858 phy.
        bnx2x: Correct 84858 PHY fw version
        bnx2x: Fix 84833 RX CRC
        bnx2x: Fix link-forcing for KR2
        net: ethernet: davicom: fix devicetree irq resource
        fmvj18x_cs: fix incorrect indexing of dev->dev_addr[] when copying the MAC address
        Driver: Vmxnet3: Update Rx ring 2 max size
        net: netcp: rework the code for get/set sw_data in dma desc
        soc: ti: knav_dma: rename pad in struct knav_dma_desc to sw_data
        net: ti: netcp: restore get/set_pad_info() functionality
        MAINTAINERS: Drop myself as xen netback maintainer
        sctp: Fix port hash table size computation
        can: ems_usb: Fix possible tx overflow
        Bluetooth: hci_core: Avoid mixing up req_complete and req_complete_skb
        net: bcmgenet: Fix internal PHY link state
        af_unix: Don't use continue to re-execute unix_stream_read_generic loop
        unix_diag: fix incorrect sign extension in unix_lookup_by_ino
        bnxt_en: Failure to update PHY is not fatal condition.
        bnxt_en: Remove unnecessary call to update PHY settings.
        ...
      dea08e60
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.5-rc6' of... · 5c102d0e
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "Two fixes headed for stable:
      
         - Remove an unnecessary speed_index lookup for thermal hook in the
           gpio-fan driver.  The unnecessary speed lookup can hog the system.
      
         - Handle negative conversion values correctly in the ads1015 driver"
      
      * tag 'hwmon-for-linus-v4.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (gpio-fan) Remove un-necessary speed_index lookup for thermal hook
        hwmon: (ads1015) Handle negative conversion values correctly
      5c102d0e
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · a16152c8
      Linus Torvalds authored
      Pull rdma fixes from Doug Ledford:
       "One ocrdma fix:
      
         - The new CQ API support was added to ocrdma, but they got the arming
           logic wrong, so without this, transfers eventually fail when they
           fail to arm the interrupt properly under load
      
        Two related fixes for mlx4:
      
         - When we added the 64bit extended counters support to the core IB
           code, they forgot to update the RoCE side of the mlx4 driver (the
           IB side they properly updated).
      
           I debated whether or not to include these patches as they could be
           considered feature enablement patches, but the existing code will
           blindy copy the 32bit counters, whether any counters were requested
           at all (a bug).
      
           These two patches make it (a) check to see that counters were
           requested and (b) copy the right counters (the 64bit support is
           new, the 32bit is not).  For that reason I went ahead and took
           them"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
        IB/mlx4: Add support for the port info class for RoCE ports
        IB/mlx4: Add support for extended counters over RoCE ports
        RDMA/ocrdma: Fix arm logic to align with new cq API
      a16152c8
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 7ee302f6
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "Some bugfixes from I2C for you:
      
        A fix for a RuntimePM regression with OMAP, a fix to enable TCO for
        Lewisburg platforms, and a typo fix while we are here"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: i801: Adding Intel Lewisburg support for iTCO
        i2c: uniphier: fix typos in error messages
        i2c: omap: Fix PM regression with deferred probe for pm_runtime_reinit
      7ee302f6
    • David S. Miller's avatar
      Merge tag 'linux-can-fixes-for-4.5-20160221' of... · d856626d
      David S. Miller authored
      Merge tag 'linux-can-fixes-for-4.5-20160221' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can
      
      Marc Kleine-Budde says:
      
      ====================
      pull-request: can 2016-02-21
      
      this is a pull reqeust of one patch for net/master.
      
      The patch is by Gerhard Uttenthaler and fixes a potential tx overflow in the
      ems_usb driver.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d856626d
    • David S. Miller's avatar
      Merge branch 'bnx2x-848xx-phy-fixes' · dd78dac8
      David S. Miller authored
      Yuval Mintz says:
      
      ====================
      bnx2x: Fix 848xx phys
      
      This series contains link-related fixes, mostly for the 848xx phys
      [2 patches are for 84833, and 2 patches are for 84858].
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd78dac8
    • Yuval Mintz's avatar
      bnx2x: Fix 84833 phy command handler · 4ec0b6d5
      Yuval Mintz authored
      Current initialization sequence is lacking, causing some configurations
      to fail.
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4ec0b6d5
    • Yuval Mintz's avatar
      bb1187af
    • Yuval Mintz's avatar
      bnx2x: Correct 84858 PHY fw version · 27ba2d2d
      Yuval Mintz authored
      The phy's firmware version isn't being parsed properly as it's
      currently parsed like the rest of the 848xx phys.
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      27ba2d2d
    • Yuval Mintz's avatar
      bnx2x: Fix 84833 RX CRC · 512ab9a0
      Yuval Mintz authored
      There's a problem in current 84833 phy configuration -
      in case 1Gb link is configured and jumbo-sized packets are being
      used, device will experience RX crc errors.
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      512ab9a0
    • Yuval Mintz's avatar
      bnx2x: Fix link-forcing for KR2 · 1e411f01
      Yuval Mintz authored
      Currently, when link is using KR2 it cannot be forced to any speed other
      than 20g.
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.om>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1e411f01
    • David S. Miller's avatar
      Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth · 9ca69b70
      David S. Miller authored
      Johan Hedberg says:
      
      ====================
      pull request: bluetooth 2016-02-20
      
      Here's an important patch for 4.5 which fixes potential invalid pointer
      access when processing completed Bluetooth HCI commands.
      
      Please let me know if there are any issues pulling. Thanks.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9ca69b70
    • Robert Jarzmik's avatar
      net: ethernet: davicom: fix devicetree irq resource · b5a099c6
      Robert Jarzmik authored
      The dm9000 driver doesn't work in at least one device-tree
      configuration, spitting an error message on irq resource :
      [    1.062495] dm9000 8000000.ethernet: insufficient resources
      [    1.068439] dm9000 8000000.ethernet: not found (-2).
      [    1.073451] dm9000: probe of 8000000.ethernet failed with error -2
      
      The reason behind is that the interrupt might be provided by a gpio
      controller, not probed when dm9000 is probed, and needing the probe
      deferral mechanism to apply.
      
      Currently, the interrupt is directly taken from resources. This patch
      changes this to use the more generic platform_get_irq(), which handles
      the deferral.
      
      Moreover, since commit Fixes: 7085a740 ("drivers: platform: parse
      IRQ flags from resources"), the interrupt trigger flags are honored in
      platform_get_irq(), so remove the needless code in dm9000.
      Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
      Acked-by: default avatarMarcel Ziswiler <marcel@ziswiler.com>
      Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Tested-by: default avatarSergei Ianovich <ynvich@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b5a099c6
    • Ken Kawasaki's avatar
      fmvj18x_cs: fix incorrect indexing of dev->dev_addr[] when copying the MAC address · 1ad54668
      Ken Kawasaki authored
      fix incorrect indexing of dev->dev_addr[] when copying the MAC address
      of FMV-J182 at buf[5].
      Signed-off-by: default avatarKen Kawasaki <ken_kawasaki@nifty.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1ad54668
    • Shrikrishna Khare's avatar
      Driver: Vmxnet3: Update Rx ring 2 max size · 14112ca5
      Shrikrishna Khare authored
      Device emulation supports max size of 4096.
      Signed-off-by: default avatarShrikrishna Khare <skhare@vmware.com>
      Signed-off-by: default avatarBhavesh Davda <bhavesh@vmware.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      14112ca5
    • David S. Miller's avatar
      Merge branch 'netcp-fixes' · d3e17183
      David S. Miller authored
      Murali Karicheri says:
      
      ====================
      net: ti: netcp: restore get/set_pad_info() functionality
      
      This series fixes a regression and add some improvements for the ease
      of maintainance. Incorporated comments against v1.
      
      Changelogs:
      
       v2 : combined 2-3 into one patch as this involves a header change
            fixed a parse warning in 3/4 per comment from Arnd.
            Removed Sign-off from Arnd against 1/4
            added comments in 3/3 to alert on the usage of sw data per review
            comments
       v1 : added 2-4 to accomodate feedback received from review
       v0 : initial version to fix the regression (From Grygorii)
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d3e17183
    • Karicheri, Muralidharan's avatar
      net: netcp: rework the code for get/set sw_data in dma desc · 06324481
      Karicheri, Muralidharan authored
      SW data field in descriptor can be used by software to hold private
      data for the driver. As there are 4 words available for this purpose,
      use separate macros to place it or retrieve the same to/from
      descriptors. Also do type cast of data types accordingly.
      
      Cc: Wingman Kwok <w-kwok2@ti.com>
      Cc: Mugunthan V N <mugunthanvnm@ti.com>
      CC: Arnd Bergmann <arnd@arndb.de>
      CC: Grygorii Strashko <grygorii.strashko@ti.com>
      CC: David Laight <David.Laight@ACULAB.COM>
      Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      06324481
    • Karicheri, Muralidharan's avatar
      soc: ti: knav_dma: rename pad in struct knav_dma_desc to sw_data · b1cb86ae
      Karicheri, Muralidharan authored
      Rename the pad to sw_data as per description of this field in the hardware
      spec(refer sprugr9 from www.ti.com). Latest version of the document is
      at http://www.ti.com/lit/ug/sprugr9h/sprugr9h.pdf and section 3.1
      Host Packet Descriptor describes this field.
      
      Define and use a constant for the size of sw_data field similar to
      other fields in the struct for desc and document the sw_data field
      in the header. As the sw_data is not touched by hw, it's type can be
      changed to u32.
      
      Rename the helpers to match with the updated dma desc field sw_data.
      
      Cc: Wingman Kwok <w-kwok2@ti.com>
      Cc: Mugunthan V N <mugunthanvnm@ti.com>
      CC: Arnd Bergmann <arnd@arndb.de>
      CC: Grygorii Strashko <grygorii.strashko@ti.com>
      CC: David Laight <David.Laight@ACULAB.COM>
      Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b1cb86ae
    • Karicheri, Muralidharan's avatar
      net: ti: netcp: restore get/set_pad_info() functionality · 9ecfe875
      Karicheri, Muralidharan authored
      The commit 89907779 ("netcp: try to reduce type confusion in
      descriptors") introduces a regression in Kernel 4.5-rc1 and it breaks
      get/set_pad_info() functionality.
      
      The TI NETCP driver uses pad0 and pad1 fields of knav_dma_desc to
      store DMA/MEM buffer pointer and buffer size respectively. And in both
      cases for Keystone 2 the pointer type size is 32 bit regardless of
      LAPE enabled or not, because CONFIG_ARCH_DMA_ADDR_T_64BIT originally
      is not expected to be defined.
      
      Unfortunately, above commit changed buffer's pointers save/restore
      code (get/set_pad_info()) and added intermediate conversation to u64
      which works incorrectly on 32bit Keystone 2 and causes TI NETCP driver
      crash in RX/TX path due to "Unable to handle kernel NULL pointer"
      exception. This issue was reported and discussed in [1].
      
      Hence, fix it by partially reverting above commit and restoring
      get/set_pad_info() functionality as it was before.
      
      [1] https://www.mail-archive.com/netdev@vger.kernel.org/msg95361.html
      Cc: Wingman Kwok <w-kwok2@ti.com>
      Cc: Mugunthan V N <mugunthanvnm@ti.com>
      CC: David Laight <David.Laight@ACULAB.COM>
      CC: Arnd Bergmann <arnd@arndb.de>
      Reported-by: default avatarFranklin S Cooper Jr <fcooper@ti.com>
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9ecfe875
    • Ian Campbell's avatar
      MAINTAINERS: Drop myself as xen netback maintainer · 3301be32
      Ian Campbell authored
      Wei has been picking this up for quite a while now.
      Signed-off-by: default avatarIan Campbell <ian.campbell@citrix.com>
      Cc: Wei Liu <wei.liu2@citrix.com>
      Acked-by: default avatarWei Liu <wei.liu2@citrix.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3301be32
    • Neil Horman's avatar
      sctp: Fix port hash table size computation · d9749fb5
      Neil Horman authored
      Dmitry Vyukov noted recently that the sctp_port_hashtable had an error in
      its size computation, observing that the current method never guaranteed
      that the hashsize (measured in number of entries) would be a power of two,
      which the input hash function for that table requires.  The root cause of
      the problem is that two values need to be computed (one, the allocation
      order of the storage requries, as passed to __get_free_pages, and two the
      number of entries for the hash table).  Both need to be ^2, but for
      different reasons, and the existing code is simply computing one order
      value, and using it as the basis for both, which is wrong (i.e. it assumes
      that ((1<<order)*PAGE_SIZE)/sizeof(bucket) is still ^2 when its not).
      
      To fix this, we change the logic slightly.  We start by computing a goal
      allocation order (which is limited by the maximum size hash table we want
      to support.  Then we attempt to allocate that size table, decreasing the
      order until a successful allocation is made.  Then, with the resultant
      successful order we compute the number of buckets that hash table supports,
      which we then round down to the nearest power of two, giving us the number
      of entries the table actually supports.
      
      I've tested this locally here, using non-debug and spinlock-debug kernels,
      and the number of entries in the hashtable consistently work out to be
      powers of two in all cases.
      Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Reported-by: default avatarDmitry Vyukov <dvyukov@google.com>
      CC: Dmitry Vyukov <dvyukov@google.com>
      CC: Vladislav Yasevich <vyasevich@gmail.com>
      CC: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d9749fb5
  3. 21 Feb, 2016 1 commit
  4. 20 Feb, 2016 12 commits
    • Linus Torvalds's avatar
      Linux 4.5-rc5 · 81f70ba2
      Linus Torvalds authored
      81f70ba2
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0389075e
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "This is unusually large, partly due to the EFI fixes that prevent
        accidental deletion of EFI variables through efivarfs that may brick
        machines.  These fixes are somewhat involved to maintain compatibility
        with existing install methods and other usage modes, while trying to
        turn off the 'rm -rf' bricking vector.
      
        Other fixes are for large page ioremap()s and for non-temporal
        user-memcpy()s"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Fix vmalloc_fault() to handle large pages properly
        hpet: Drop stale URLs
        x86/uaccess/64: Handle the caching of 4-byte nocache copies properly in __copy_user_nocache()
        x86/uaccess/64: Make the __copy_user_nocache() assembly code more readable
        lib/ucs2_string: Correct ucs2 -> utf8 conversion
        efi: Add pstore variables to the deletion whitelist
        efi: Make efivarfs entries immutable by default
        efi: Make our variable validation list include the guid
        efi: Do variable name validation tests in utf8
        efi: Use ucs2_as_utf8 in efivarfs instead of open coding a bad version
        lib/ucs2_string: Add ucs2 -> utf8 helper functions
      0389075e
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 06b74c65
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "A handful of CPU hotplug related fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/core: Plug potential memory leak in CPU_UP_PREPARE
        perf/core: Remove the bogus and dangerous CPU_DOWN_FAILED hotplug state
        perf/core: Remove bogus UP_CANCELED hotplug state
        perf/x86/amd/uncore: Plug reference leak
      06b74c65
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · e6a1c1e9
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       - Fix build error on 32-bit with checkpoint restart from Aneesh Kumar
       - Fix dedotify for binutils >= 2.26 from Andreas Schwab
       - Don't trace hcalls on offline CPUs from Denis Kirjanov
       - eeh: Fix stale cached primary bus from Gavin Shan
       - eeh: Fix stale PE primary bus from Gavin Shan
       - mm: Fix Multi hit ERAT cause by recent THP update from Aneesh Kumar K.V
       - ioda: Set "read" permission when "write" is set from Alexey Kardashevskiy
      
      * tag 'powerpc-4.5-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/ioda: Set "read" permission when "write" is set
        powerpc/mm: Fix Multi hit ERAT cause by recent THP update
        powerpc/powernv: Fix stale PE primary bus
        powerpc/eeh: Fix stale cached primary bus
        powerpc/pseries: Don't trace hcalls on offline CPUs
        powerpc: Fix dedotify for binutils >= 2.26
        powerpc/book3s_32: Fix build error with checkpoint restart
      e6a1c1e9
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-4.5-rc5' of git://git.infradead.org/users/vkoul/slave-dma · da6b7366
      Linus Torvalds authored
      Pull dmaengine fixes from Vinod Koul:
       "A few fixes for drivers, nothing major here.
      
        Fixes are: iotdma fix to restart channels, new ID for wildcat PCH,
        residue fix for edma, disable irq for non-cyclic in dw"
      
      * tag 'dmaengine-fix-4.5-rc5' of git://git.infradead.org/users/vkoul/slave-dma:
        dmaengine: dw: disable BLOCK IRQs for non-cyclic xfer
        dmaengine: edma: fix residue race for cyclic
        dmaengine: dw: pci: add ID for WildcatPoint PCH
        dmaengine: IOATDMA: fix timer code that continues to restart channels during idle
      da6b7366
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 37aa4dac
      Linus Torvalds authored
      Pull clk driver fixes from Stephen Boyd:
       "An assortment of vendor specific clk drivers fixes, most notably
        fallout from adding Tegra210 and rockchip rk3036/rk3368 drivers this
        cycle.
      
        There's also the random smattering of sparse/checker fixes, a build
        "fix" to get the Tango clk driver to compile because the Kconfig
        symbol was renamed after the fact, and a clk gpio fix for a patch
        mismerge"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (28 commits)
        clk: gpio: Really allow an optional clock= DT property
        Revert "clk: qcom: Specify LE device endianness"
        clk: versatile: mask VCO bits before writing
        clk: tegra: super: Fix sparse warnings for functions not declared as static
        clk: tegra: Fix sparse warnings for functions not declared as static
        clk: tegra: Fix sparse warning for pll_m
        clk: tegra: Use definition for pll_u override bit
        clk: tegra: Fix warning caused by pll_u failing to lock
        clk: tegra: Fix clock sources for Tegra210 EMC
        clk: tegra: Add the APB2APE audio clock on Tegra210
        clk: tegra: Add missing of_node_put()
        clk: tegra: Fix PLLE SS coefficients
        clk: tegra: Fix typos around clearing PLLE bits during enable
        clk: tegra: Do not disable PLLE when under hardware control
        clk: tegra: Fix pllx dyn step calculation
        clk: tegra: pll: Fix potential sleeping-while-atomic
        clk: tegra: Fix the misnaming of nvenc from msenc
        clk: tegra: Fix naming of MISC registers
        clk: tango4: rename ARCH_TANGOX to ARCH_TANGO
        clk: scpi: Fix checking return value of platform_device_register_simple()
        ...
      37aa4dac
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · a703f42d
      Linus Torvalds authored
      Pull more drm fixes from Dave Airlie:
       "Some more fixes trickled in:
      
        A bunch of VC4 ones since it's a pretty new driver not much chance of
        regressions, and it fixes GPU resets.
      
        Also one atomic fix, one set of fixes for a common bug in TTM cleanup,
        and one i915 hotplug fix"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/nouveau: use post-decrement in error handling
        drm/atomic: Allow for holes in connector state, v2.
        drm/i915: Fix hpd live status bits for g4x
        drm/vc4: Use runtime PM to power cycle the device when the GPU hangs.
        drm/vc4: Enable runtime PM.
        drm/vc4: Fix spurious GPU resets due to BO reuse.
        drm/vc4: Drop error message on seqno wait timeouts.
        drm/vc4: Fix -ERESTARTSYS error return from BO waits.
        drm/vc4: Return an ERR_PTR from BO creation instead of NULL.
        drm/vc4: Fix the clear color for the first tile rendered.
        drm/vc4: Validate that WAIT_BO padding is cleared.
        drm/radeon: use post-decrement in error handling
        drm/amdgpu: use post-decrement in error handling
      a703f42d
    • Simon Guinot's avatar
      kernel/resource.c: fix muxed resource handling in __request_region() · 59ceeaaf
      Simon Guinot authored
      In __request_region, if a conflict with a BUSY and MUXED resource is
      detected, then the caller goes to sleep and waits for the resource to be
      released.  A pointer on the conflicting resource is kept.  At wake-up
      this pointer is used as a parent to retry to request the region.
      
      A first problem is that this pointer might well be invalid (if for
      example the conflicting resource have already been freed).  Another
      problem is that the next call to __request_region() fails to detect a
      remaining conflict.  The previously conflicting resource is passed as a
      parameter and __request_region() will look for a conflict among the
      children of this resource and not at the resource itself.  It is likely
      to succeed anyway, even if there is still a conflict.
      
      Instead, the parent of the conflicting resource should be passed to
      __request_region().
      
      As a fix, this patch doesn't update the parent resource pointer in the
      case we have to wait for a muxed region right after.
      Reported-and-tested-by: default avatarVincent Pelletier <plr.vincent@gmail.com>
      Signed-off-by: default avatarSimon Guinot <simon.guinot@sequanux.org>
      Tested-by: default avatarVincent Donnefort <vdonnefort@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      59ceeaaf
    • Douglas Anderson's avatar
      Bluetooth: hci_core: Avoid mixing up req_complete and req_complete_skb · 3bd7594e
      Douglas Anderson authored
      In commit 44d27137 ("Bluetooth: Compress the size of struct
      hci_ctrl") we squashed down the size of the structure by using a union
      with the assumption that all users would use the flag to determine
      whether we had a req_complete or a req_complete_skb.
      
      Unfortunately we had a case in hci_req_cmd_complete() where we weren't
      looking at the flag.  This can result in a situation where we might be
      storing a hci_req_complete_skb_t in a hci_req_complete_t variable, or
      vice versa.
      
      During some testing I found at least one case where the function
      hci_req_sync_complete() was called improperly because the kernel thought
      that it didn't require an SKB.  Looking through the stack in kgdb I
      found that it was called by hci_event_packet() and that
      hci_event_packet() had both of its locals "req_complete" and
      "req_complete_skb" pointing to the same place: both to
      hci_req_sync_complete().
      
      Let's make sure we always check the flag.
      
      For more details on debugging done, see <http://crbug.com/588288>.
      
      Fixes: 44d27137 ("Bluetooth: Compress the size of struct hci_ctrl")
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Acked-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      3bd7594e
    • Jaedon Shin's avatar
      net: bcmgenet: Fix internal PHY link state · d07c0278
      Jaedon Shin authored
      The PHY link state is not chaged in GENETv2 caused by the previous
      commit 49f7a471 ("net: bcmgenet: Properly configure PHY to ignore
      interrupt") was set to PHY_IGNORE_INTERRUPT in bcmgenet_mii_probe().
      
      The internal PHY should use phy_mac_interrupt() when not in use
      PHY_POLL. The statement for phy_mac_interrupt() has two conditions. The
      first condition to check GENET_HAS_MDIO_INTR is not related PHY link
      state, so this patch removes it.
      
      Fixes: 49f7a471 ("net: bcmgenet: Properly configure PHY to ignore interrupt")
      Signed-off-by: default avatarJaedon Shin <jaedon.shin@gmail.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d07c0278
    • Rainer Weikusat's avatar
      af_unix: Don't use continue to re-execute unix_stream_read_generic loop · 18eceb81
      Rainer Weikusat authored
      The unix_stream_read_generic function tries to use a continue statement
      to restart the receive loop after waiting for a message. This may not
      work as intended as the caller might use a recvmsg call to peek at
      control messages without specifying a message buffer. If this was the
      case, the continue will cause the function to return without an error
      and without the credential information if the function had to wait for a
      message while it had returned with the credentials otherwise. Change to
      using goto to restart the loop without checking the condition first in
      this case so that credentials are returned either way.
      Signed-off-by: default avatarRainer Weikusat <rweikusat@mobileactivedefense.com>
      Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      18eceb81
    • Dmitry V. Levin's avatar
      unix_diag: fix incorrect sign extension in unix_lookup_by_ino · b5f05492
      Dmitry V. Levin authored
      The value passed by unix_diag_get_exact to unix_lookup_by_ino has type
      __u32, but unix_lookup_by_ino's argument ino has type int, which is not
      a problem yet.
      However, when ino is compared with sock_i_ino return value of type
      unsigned long, ino is sign extended to signed long, and this results
      to incorrect comparison on 64-bit architectures for inode numbers
      greater than INT_MAX.
      
      This bug was found by strace test suite.
      
      Fixes: 5d3cae8b ("unix_diag: Dumping exact socket core")
      Signed-off-by: default avatarDmitry V. Levin <ldv@altlinux.org>
      Acked-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b5f05492