1. 26 6月, 2015 5 次提交
  2. 25 6月, 2015 35 次提交
    • D
      Merge branch 'bnx2x' · 011cb197
      David S. Miller 提交于
      Yuval Mintz says:
      
      ====================
      bnx2x: various fixes
      
      This patch series contains several small fixes [with the possible
      exception of the first 2 link fixes] for various driver flows.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      011cb197
    • Y
      bnx2x: Fix linearization for encapsulated packets · 592b9b8d
      Yuval Mintz 提交于
      Due to FW constraints, driver must make sure that transmitted SKBs will
      not be too fragmented, or in the case that they are - that each 'window'
      of fragments passed to the FW would contain at least an mss worth of data.
      
      For encapsultaed packets the calculation is wrong, since it ignores the
      inner headers in the calculation of the headers' length.
      This could lead to a FW assertion in case of a too-fragmented encapsulated
      packet.
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      592b9b8d
    • Y
      bnx2x: Release nvram lock on error flow · efd38b8f
      Yuval Mintz 提交于
      During an error flow when trying to access the nvram the driver doesn't
      release the hw lock it acquired.
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      efd38b8f
    • A
      bnx2x: Fix statistics gathering on link change · dc6a20aa
      Ariel Elior 提交于
      Since driver statistics flow access MACs and those might reset during
      link re-configurations, when we're about to change link properties we
      have to make sure that statistics are not operational.
      Statisics would be re-enabled [i.e., gathering of statistics would
      re-commence] once physical link is achieved again.
      
      Since driver employs a link-flap avoidance scheme, there are scenarios
      where driver will receive no indication that the new link is up, and
      as a result the statistics would not be re-enabled.
      
      Preventing LFA from working in such cases would guarantee that we'll
      always receive such indications and thus will fix statistics gathering.
      Signed-off-by: NAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dc6a20aa
    • Y
      bnx2x: Fix self-test for 20g devices · 2f43b821
      Yuval Mintz 提交于
      20g-capable devices are not configured properly for self-test, using
      10g as their speed which cause the link indication to remain down and
      fail the internal loopback test.
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2f43b821
    • S
      bnx2x: Fix VF MAC removal · bb9e9c1d
      Shahed Shaikh 提交于
      There's a bug in today's driver where VF requests to add/remove MAC filters
      always reach the Hypervisor as add requests.
      This prevents the VF from changing its MAC address, as it cannot remove the
      previously configured MAC and runs out of MAC credits.
      Signed-off-by: NShahed Shaikh <Shahed.Shaikh@qlogic.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bb9e9c1d
    • M
      bnx2x: Don't notify about scratchpad parities · ad6afbe9
      Manish Chopra 提交于
      The scratchpad is a shared block between all functions of a given device.
      Due to HW limitations, we can't properly close its parity notifications
      to all functions on legal flows.
      E.g., it's possible that while taking a register dump from one function
      a parity error would be triggered on other functions.
      
      Today driver doesn't consider this parity as a 'real' parity unless its
      being accompanied by additional indications [which would happen in a real
      parity scenario]; But it does print notifications for such events in the
      system logs.
      
      This eliminates such prints - in case of real parities driver would have
      additional indications; But if this is the only signal user will not even
      see a parity being logged in the system.
      Signed-off-by: NManish Chopra <Manish.Chopra@qlogic.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ad6afbe9
    • Y
      bnx2x: Prevent false warning when accessing MACs · 9d18d270
      Yuval Mintz 提交于
      Each time a flow finishes reads from the classification shadow
      configuration in the driver, that flow would check for pending commands
      and pass them to FW if possible.
      In case there's already a completion pending command, I.e., a ramrod
      that has been sent to the FW and is yet to be completed while said flow
      tries to configure the pending command we would get a false error message
      in logs [and panic if SOE was used for driver compilation] since the
      command could not have been completed.
      
      This prevents said print [and panic]; The pending command will be sent by
      the time the completion of the current sent command would arrive.
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9d18d270
    • Y
      bnx2x: Correct speed from baseT into KR. · 5d67c1c5
      Yuval Mintz 提交于
      ethtool shows KR supported/advertised speeds incorrectly as baseT
      in cases the board is in fact KR-base.
      Signed-off-by: NYaniv Rosner <Yaniv.Rosner@qlogic.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5d67c1c5
    • Y
      bnx2x: Correct asymmetric flow-control · 1359d73c
      Yuval Mintz 提交于
      This fixes several issues relating to asymmetric configuration:
       1. When user requests to disable TX, the local-device needs to
          advertise both PAUSE and ASM_DIR, but to avoid transmitting pause
          frames. In the 578xx, it would ignore the TX disable.
      
       2. When user advertises RX-only, ASM_DIR was advertised instead of
          PAUSE/ASM_DIR.
      
       3. When changing mode, the advertised PAUSE/ASM_DIR was not cleared
          before setting new one, so disabling RX or TX had no impact on the
          'advertised' as appeared in the 'ethtool -a' output.
      Signed-off-by: NYaniv Rosner <Yaniv.Rosner@qlogic.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1359d73c
    • J
      net: sched: flower fix typo · b175c3a4
      Jamal Hadi Salim 提交于
      Fix typo in the validation rules for flower's attributes
      Signed-off-by: NJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b175c3a4
    • G
      enic: use atomic_t instead of spin_lock in busy poll · f586a336
      Govindarajulu Varadarajan 提交于
      We use spinlock to access a single flag. We can avoid spin_locks by using
      atomic variable and atomic_cmpxchg(). Use atomic_cmpxchg to set the flag
      for idle to poll. And a simple atomic_set to unlock (set idle from poll).
      
      In napi poll, if gro is enabled, we call napi_gro_receive() to deliver the
      packets. Before we call napi_complete(), i.e while re-polling, if low
      latency busy poll is called, we use netif_receive_skb() to deliver the packets.
      At this point if there are some skb's held in GRO, busy poll could deliver the
      packets out of order. So we call napi_gro_flush() to flush skbs before we
      move the napi poll to idle.
      Signed-off-by: NGovindarajulu Varadarajan <_govind@gmx.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f586a336
    • S
      net/phy: Add Vitesse 8641 phy ID · 1298267b
      Shaohui Xie 提交于
      Vitesse VSC8641 is compatible with Vitesse 82xx
      Signed-off-by: NShaohui Xie <Shaohui.Xie@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1298267b
    • A
      net/fsl: remove dependency FSL_SOC for Gianfar · bbc65bf7
      Alison Wang 提交于
      CONFIG_GIANFAR is not depended on FSL_SOC, it
      can be built on non-PPC platforms.
      Signed-off-by: NAlison Wang <alison.wang@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bbc65bf7
    • D
      cavium/liquidio: fix some error handling in lio_set_phys_id() · cbdb9777
      Dan Carpenter 提交于
      There was a missing assignment so the "if (ret)" on the next line is
      never true.
      
      Fixes: f21fb3ed ('Add support of Cavium Liquidio ethernet adapters')
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cbdb9777
    • D
      renesas: missing unlock on error path · 5102e237
      Dan Carpenter 提交于
      We need to unlock before returning here.
      
      Fixes: a0d2f206 ('Renesas Ethernet AVB PTP clock driver')
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5102e237
    • D
      Merge branch 'mlx4' · be35ffa3
      David S. Miller 提交于
      Or Gerlitz says:
      
      ====================
      mlx4 driver fixes, June 24, 2015
      
      Some fixes that we made recently, all need to go into stable.
      
      patch #1 "net/mlx4_en: Release TX QP when destroying TX ring" and patch #3
      "Fix wrong csum complete report when rxvlan offload is disabled" to >= 3.19
      
      patch #2 "Wake TX queues only when there's enough room" addressing a bug
      which is there from day one... should go to whatever kernels it's still applicable
      
      patch #4 "mlx4: Disable HA for SRIOV PF RoCE devices" to >= 4.0
      
      The patches are marked with net but are made against net-next,
      as the net tree still doesn't contain all the net-next bits.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      be35ffa3
    • O
      mlx4: Disable HA for SRIOV PF RoCE devices · 7254acff
      Or Gerlitz 提交于
      When in HA mode, the driver exposes an IB (RoCE) device instance with only
      one port. Under SRIOV, the existing implementation doesn't go well with
      the PF RoCE driver's role of Special QPs Para-Virtualization, etc.
      
      As such, disable HA for the mlx4 PF RoCE device in SRIOV mode.
      
      Fixes: a5750090 ('IB/mlx4: Add port aggregation support')
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7254acff
    • I
      net/mlx4_en: Fix wrong csum complete report when rxvlan offload is disabled · 79a25852
      Ido Shamay 提交于
      The check_csum() function relied on hwtstamp_rx_filter to know if rxvlan
      offload is disabled. This is wrong since rxvlan offload can be switched
      on/off regardless of hwtstamp_rx_filter.
      
      Also moved check_csum to query CQE information to identify VLAN packets
      and removed the check of IP packets, since it has been validated before.
      
      Fixes: f8c6455b ('net/mlx4_en: Extend checksum offloading by CHECKSUM COMPLETE')
      Signed-off-by: NIdo Shamay <idos@mellanox.com>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      79a25852
    • I
      net/mlx4_en: Wake TX queues only when there's enough room · 488a9b48
      Ido Shamay 提交于
      Indication of a single completed packet, marked by txbbs_skipped
      being bigger then zero, in not enough in order to wake up a
      stopped TX queue. The completed packet may contain a single TXBB,
      while next packet to be sent (after the wake up) may have multiple
      TXBBs (LSO/TSO packets for example), causing overflow in queue followed
      by WQE corruption and TX queue timeout.
      Instead, wake the stopped queue only when there's enough room for the
      worst case (maximum sized WQE) packet that we should need to handle after
      the queue is opened again.
      
      Also created an helper routine - mlx4_en_is_tx_ring_full, which checks
      if the current TX ring is full or not. It provides better code readability
      and removes code duplication.
      Signed-off-by: NIdo Shamay <idos@mellanox.com>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      488a9b48
    • E
      net/mlx4_en: Release TX QP when destroying TX ring · 0eb08514
      Eran Ben Elisha 提交于
      TX ring QP wasn't released at mlx4_en_destroy_tx_ring. Instead, the code
      used the deprecated base_tx_qpn field. Move TX QP release to
      mlx4_en_destroy_tx_ring and remove the base_tx_qpn field.
      
      Fixes: ddae0349 ('net/mlx4: Change QP allocation scheme')
      Signed-off-by: NEran Ben Elisha <eranbe@mellanox.com>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0eb08514
    • L
      Merge branch 'akpm' (patches from Andrew) · aefbef10
      Linus Torvalds 提交于
      Merge first patchbomb from Andrew Morton:
      
       - a few misc things
      
       - ocfs2 udpates
      
       - kernel/watchdog.c feature work (took ages to get right)
      
       - most of MM.  A few tricky bits are held up and probably won't make 4.2.
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (91 commits)
        mm: kmemleak_alloc_percpu() should follow the gfp from per_alloc()
        mm, thp: respect MPOL_PREFERRED policy with non-local node
        tmpfs: truncate prealloc blocks past i_size
        mm/memory hotplug: print the last vmemmap region at the end of hot add memory
        mm/mmap.c: optimization of do_mmap_pgoff function
        mm: kmemleak: optimise kmemleak_lock acquiring during kmemleak_scan
        mm: kmemleak: avoid deadlock on the kmemleak object insertion error path
        mm: kmemleak: do not acquire scan_mutex in kmemleak_do_cleanup()
        mm: kmemleak: fix delete_object_*() race when called on the same memory block
        mm: kmemleak: allow safe memory scanning during kmemleak disabling
        memcg: convert mem_cgroup->under_oom from atomic_t to int
        memcg: remove unused mem_cgroup->oom_wakeups
        frontswap: allow multiple backends
        x86, mirror: x86 enabling - find mirrored memory ranges
        mm/memblock: allocate boot time data structures from mirrored memory
        mm/memblock: add extra "flags" to memblock to allow selection of memory based on attribute
        mm: do not ignore mapping_gfp_mask in page cache allocation paths
        mm/cma.c: fix typos in comments
        mm/oom_kill.c: print points as unsigned int
        mm/hugetlb: handle races in alloc_huge_page and hugetlb_reserve_pages
        ...
      aefbef10
    • L
      Merge tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 266da6f1
      Linus Torvalds 提交于
      Pull pstore updates from Tony Luck:
       "Miscellaneous pstore improvements"
      
      * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        ramoops: make it possible to change mem_type param.
        pstore/ram: verify ramoops header before saving record
        fs/pstore: Optimization function ramoops_init_przs
        fs/pstore: update the backend parameter in pstore module
        pstore: do not use message compression without lock
      266da6f1
    • L
      Merge tag 'for-f2fs-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · cfcc0ad4
      Linus Torvalds 提交于
      Pull f2fs updates from Jaegeuk Kim:
       "New features:
         - per-file encryption (e.g., ext4)
         - FALLOC_FL_ZERO_RANGE
         - FALLOC_FL_COLLAPSE_RANGE
         - RENAME_WHITEOUT
      
        Major enhancement/fixes:
         - recovery broken superblocks
         - enhance f2fs_trim_fs with a discard_map
         - fix a race condition on dentry block allocation
         - fix a deadlock during summary operation
         - fix a missing fiemap result
      
        .. and many minor bug fixes and clean-ups were done"
      
      * tag 'for-f2fs-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (83 commits)
        f2fs: do not trim preallocated blocks when truncating after i_size
        f2fs crypto: add alloc_bounce_page
        f2fs crypto: fix to handle errors likewise ext4
        f2fs: drop the volatile_write flag only
        f2fs: skip committing valid superblock
        f2fs: setting discard option in parse_options()
        f2fs: fix to return exact trimmed size
        f2fs: support FALLOC_FL_INSERT_RANGE
        f2fs: hide common code in f2fs_replace_block
        f2fs: disable the discard option when device doesn't support
        f2fs crypto: remove alloc_page for bounce_page
        f2fs: fix a deadlock for summary page lock vs. sentry_lock
        f2fs crypto: clean up error handling in f2fs_fname_setup_filename
        f2fs crypto: avoid f2fs_inherit_context for symlink
        f2fs crypto: do not set encryption policy for non-directory by ioctl
        f2fs crypto: allow setting encryption policy once
        f2fs crypto: check context consistent for rename2
        f2fs: avoid duplicated code by reusing f2fs_read_end_io
        f2fs crypto: use per-inode tfm structure
        f2fs: recovering broken superblock during mount
        ...
      cfcc0ad4
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · a7296b49
      Linus Torvalds 提交于
      Pull UDF fixes and cleanups from Jan Kara:
       "The contains some small fixes and improvements in error handling for
        UDF.
      
        Bundled is also one ext3 coding style fix and a fix in quota
        documentation"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: fix udf_load_pvoldesc()
        udf: remove double err declaration in udf_file_write_iter()
        UDF: support NFSv2 export
        fs: ext3: super: fixed a space coding style issue
        quota: Update documentation
        udf: Return error from udf_find_entry()
        udf: Make udf_get_filename() return error instead of 0 length file name
        udf: bug on exotic flag in udf_get_filename()
        udf: improve error management in udf_CS0toNLS()
        udf: improve error management in udf_CS0toUTF8()
        udf: unicode: update function name in comments
        udf: remove unnecessary test in udf_build_ustr_exact()
        udf: Return -ENOMEM when allocation fails in udf_get_filename()
      a7296b49
    • L
      Merge tag 'docs-for-linus' of git://git.lwn.net/linux-2.6 · 1e467e68
      Linus Torvalds 提交于
      Pull documentation updates from Jonathan Corbet:
       "The main thing here is Ingo's big subdirectory documenting feature
        support for each architecture.  Beyond that, it's the usual pile of
        fixes, tweaks, and small additions"
      
      * tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (79 commits)
        doc:md: fix typo in md.txt.
        Documentation/mic/mpssd: don't build x86 userspace when cross compiling
        Documentation/prctl: don't build tsc tests when cross compiling
        Documentation/vDSO: don't build tests when cross compiling
        Doc:ABI/testing: Fix typo in sysfs-bus-fcoe
        Doc: Docbook: Change wikipedia's URL from http to https in scsi.tmpl
        Doc: Change wikipedia's URL from http to https
        Documentation/kernel-parameters: add missing pciserial to the earlyprintk
        Doc:pps: Fix typo in pps.txt
        kbuild : Fix documentation of INSTALL_HDR_PATH
        Documentation: filesystems: updated struct file_operations documentation in vfs.txt
        kbuild: edit explanation of clean-files variable
        Doc: ja_JP: Fix typo in HOWTO
        Move freefall program from Documentation/ to tools/
        Documentation: ARM: EXYNOS: Describe boot loaders interface
        Doc:nfc: Fix typo in nfc-hci.txt
        vfs: Minor documentation fix
        Doc: networking: txtimestamp: fix printf format warning
        Documentation, intel_pstate: Improve legacy mode internal governors description
        Documentation: extend use case for EXPORT_SYMBOL_GPL()
        ...
      1e467e68
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 14738e03
      Linus Torvalds 提交于
      Pull input subsystem updates from Dmitry Torokhov:
       "Thanks to Samuel Thibault input device (keyboard) LEDs are no longer
        hardwired within the input core but use LED subsystem and so allow use
        of different triggers; Hans de Goede did a large update for the ALPS
        touchpad driver; we have new TI drv2665 haptics driver and DA9063
        OnKey driver, and host of other drivers got various fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (55 commits)
        Input: pixcir_i2c_ts - fix receive error
        MAINTAINERS: remove non existent input mt git tree
        Input: improve usage of gpiod API
        tty/vt/keyboard: define LED triggers for VT keyboard lock states
        tty/vt/keyboard: define LED triggers for VT LED states
        Input: export LEDs as class devices in sysfs
        Input: cyttsp4 - use swap() in cyttsp4_get_touch()
        Input: goodix - do not explicitly set evbits in input device
        Input: goodix - export id and version read from device
        Input: goodix - fix variable length array warning
        Input: goodix - fix alignment issues
        Input: add OnKey driver for DA9063 MFD part
        Input: elan_i2c - add product IDs FW names
        Input: elan_i2c - add support for multi IC type and iap format
        Input: focaltech - report finger width to userspace
        tty: remove platform_sysrq_reset_seq
        Input: synaptics_i2c - use proper boolean values
        Input: psmouse - use true instead of 1 for boolean values
        Input: cyapa - fix a few typos in comments
        Input: stmpe-ts - enforce device tree only mode
        ...
      14738e03
    • L
      Merge tag 'edac_for_4.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 45471cd9
      Linus Torvalds 提交于
      Pull EDAC updates from Borislav Petkov:
      
       - New APM X-Gene SoC EDAC driver (Loc Ho)
      
       - AMD error injection module improvements (Aravind Gopalakrishnan)
      
       - Altera Arria 10 support (Thor Thayer)
      
       - misc fixes and cleanups all over the place
      
      * tag 'edac_for_4.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (28 commits)
        EDAC: Update Documentation/edac.txt
        EDAC: Fix typos in Documentation/edac.txt
        EDAC, mce_amd_inj: Set MISCV on injection
        EDAC, mce_amd_inj: Move bit preparations before the injection
        EDAC, mce_amd_inj: Cleanup and simplify README
        EDAC, altera: Do not allow suspend when EDAC is enabled
        EDAC, mce_amd_inj: Make inj_type static
        arm: socfpga: dts: Add Arria10 SDRAM EDAC DTS support
        EDAC, altera: Add Arria10 EDAC support
        EDAC, altera: Refactor for Altera CycloneV SoC
        EDAC, altera: Generalize driver to use DT Memory size
        EDAC, mce_amd_inj: Add README file
        EDAC, mce_amd_inj: Add individual permissions field to dfs_node
        EDAC, mce_amd_inj: Modify flags attribute to use string arguments
        EDAC, mce_amd_inj: Read out number of MCE banks from the hardware
        EDAC, mce_amd_inj: Use MCE_INJECT_GET macro for bank node too
        EDAC, xgene: Fix cpuid abuse
        EDAC, mpc85xx: Extend error address to 64 bit
        EDAC, mpc8xxx: Adapt for FSL SoC
        EDAC, edac_stub: Drop arch-specific include
        ...
      45471cd9
    • L
      Merge tag 'pinctrl-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 93a4b1b9
      Linus Torvalds 提交于
      Pull pin control updates from Linus Walleij:
       "Here is the bulk of pin control changes for the v4.2 series: Quite a
        lot of new SoC subdrivers and two new main drivers this time, apart
        from that business as usual.
      
        Details:
      
        Core functionality:
         - Enable exclusive pin ownership: it is possible to flag a pin
           controller so that GPIO and other functions cannot use a single pin
           simultaneously.
      
        New drivers:
         - NXP LPC18xx System Control Unit pin controller
         - Imagination Pistachio SoC pin controller
      
        New subdrivers:
         - Freescale i.MX7d SoC
         - Intel Sunrisepoint-H PCH
         - Renesas PFC R8A7793
         - Renesas PFC R8A7794
         - Mediatek MT6397, MT8127
         - SiRF Atlas 7
         - Allwinner A33
         - Qualcomm MSM8660
         - Marvell Armada 395
         - Rockchip RK3368
      
        Cleanups:
         - A big cleanup of the Marvell MVEBU driver rectifying it to
           correspond to reality
         - Drop platform device probing from the SH PFC driver, we are now a
           DT only shop for SuperH
         - Drop obsolte multi-platform check for SH PFC
         - Various janitorial: constification, grammar etc
      
        Improvements:
         - The AT91 GPIO portions now supports the set_multiple() feature
         - Split out SPI pins on the Xilinx Zynq
         - Support DTs without specific function nodes in the i.MX driver"
      
      * tag 'pinctrl-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (99 commits)
        pinctrl: rockchip: add support for the rk3368
        pinctrl: rockchip: generalize perpin driver-strength setting
        pinctrl: sh-pfc: r8a7794: add SDHI pin groups
        pinctrl: sh-pfc: r8a7794: add MMCIF pin groups
        pinctrl: sh-pfc: add R8A7794 PFC support
        pinctrl: make pinctrl_register() return proper error code
        pinctrl: mvebu: armada-39x: add support for Armada 395 variant
        pinctrl: mvebu: armada-39x: add missing SATA functions
        pinctrl: mvebu: armada-39x: add missing PCIe functions
        pinctrl: mvebu: armada-38x: add ptp functions
        pinctrl: mvebu: armada-38x: add ua1 functions
        pinctrl: mvebu: armada-38x: add nand functions
        pinctrl: mvebu: armada-38x: add sata functions
        pinctrl: mvebu: armada-xp: add dram functions
        pinctrl: mvebu: armada-xp: add nand rb function
        pinctrl: mvebu: armada-xp: add spi1 function
        pinctrl: mvebu: armada-39x: normalize ref clock naming
        pinctrl: mvebu: armada-xp: rename spi to spi0
        pinctrl: mvebu: armada-370: align spi1 clock pin naming
        pinctrl: mvebu: armada-370: align VDD cpu-pd pin naming with datasheet
        ...
      93a4b1b9
    • L
      Merge tag 'backlight-for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · d59b92f9
      Linus Torvalds 提交于
      Pull backlight updates from Lee Jones:
       "Changes to existing drivers:
      
         - supply MODULE_DEVICE_TABLE() to ensure probing
         - constify struct; da9052_bl
         - enable compile test; lcd_l4f00242t03, lcd_lms283fg05, backlight_gpio
         - suspend/resume bugfix; lp855x_bl
         - devm_gpiod_get_optional() API fixup; pwm_bl
         - error handling fixup; backlight"
      
      * tag 'backlight-for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: Change the return type of backlight_update_status() to int
        backlight: pwm_bl: Simplify usage of devm_gpiod_get_optional
        backlight: lp855x: Don't clear level on suspend/blank
        backlight: Allow compile test of GPIO consumers if !GPIOLIB
        video: backlight: da9052: Constify platform_device_id
        gpio-backlight: Discover driver during boot time
      d59b92f9
    • L
      mm: kmemleak_alloc_percpu() should follow the gfp from per_alloc() · 8a8c35fa
      Larry Finger 提交于
      Beginning at commit d52d3997 ("ipv6: Create percpu rt6_info"), the
      following INFO splat is logged:
      
        ===============================
        [ INFO: suspicious RCU usage. ]
        4.1.0-rc7-next-20150612 #1 Not tainted
        -------------------------------
        kernel/sched/core.c:7318 Illegal context switch in RCU-bh read-side critical section!
        other info that might help us debug this:
        rcu_scheduler_active = 1, debug_locks = 0
         3 locks held by systemd/1:
         #0:  (rtnl_mutex){+.+.+.}, at: [<ffffffff815f0c8f>] rtnetlink_rcv+0x1f/0x40
         #1:  (rcu_read_lock_bh){......}, at: [<ffffffff816a34e2>] ipv6_add_addr+0x62/0x540
         #2:  (addrconf_hash_lock){+...+.}, at: [<ffffffff816a3604>] ipv6_add_addr+0x184/0x540
        stack backtrace:
        CPU: 0 PID: 1 Comm: systemd Not tainted 4.1.0-rc7-next-20150612 #1
        Hardware name: TOSHIBA TECRA A50-A/TECRA A50-A, BIOS Version 4.20   04/17/2014
        Call Trace:
          dump_stack+0x4c/0x6e
          lockdep_rcu_suspicious+0xe7/0x120
          ___might_sleep+0x1d5/0x1f0
          __might_sleep+0x4d/0x90
          kmem_cache_alloc+0x47/0x250
          create_object+0x39/0x2e0
          kmemleak_alloc_percpu+0x61/0xe0
          pcpu_alloc+0x370/0x630
      
      Additional backtrace lines are truncated.  In addition, the above splat
      is followed by several "BUG: sleeping function called from invalid
      context at mm/slub.c:1268" outputs.  As suggested by Martin KaFai Lau,
      these are the clue to the fix.  Routine kmemleak_alloc_percpu() always
      uses GFP_KERNEL for its allocations, whereas it should follow the gfp
      from its callers.
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Reviewed-by: NKamalesh Babulal <kamalesh@linux.vnet.ibm.com>
      Acked-by: NMartin KaFai Lau <kafai@fb.com>
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Martin KaFai Lau <kafai@fb.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Cc: <stable@vger.kernel.org>	[3.18+]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8a8c35fa
    • V
      mm, thp: respect MPOL_PREFERRED policy with non-local node · 0867a57c
      Vlastimil Babka 提交于
      Since commit 077fcf11 ("mm/thp: allocate transparent hugepages on
      local node"), we handle THP allocations on page fault in a special way -
      for non-interleave memory policies, the allocation is only attempted on
      the node local to the current CPU, if the policy's nodemask allows the
      node.
      
      This is motivated by the assumption that THP benefits cannot offset the
      cost of remote accesses, so it's better to fallback to base pages on the
      local node (which might still be available, while huge pages are not due
      to fragmentation) than to allocate huge pages on a remote node.
      
      The nodemask check prevents us from violating e.g.  MPOL_BIND policies
      where the local node is not among the allowed nodes.  However, the
      current implementation can still give surprising results for the
      MPOL_PREFERRED policy when the preferred node is different than the
      current CPU's local node.
      
      In such case we should honor the preferred node and not use the local
      node, which is what this patch does.  If hugepage allocation on the
      preferred node fails, we fall back to base pages and don't try other
      nodes, with the same motivation as is done for the local node hugepage
      allocations.  The patch also moves the MPOL_INTERLEAVE check around to
      simplify the hugepage specific test.
      
      The difference can be demonstrated using in-tree transhuge-stress test
      on the following 2-node machine where half memory on one node was
      occupied to show the difference.
      
      > numactl --hardware
      available: 2 nodes (0-1)
      node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 24 25 26 27 28 29 30 31 32 33 34 35
      node 0 size: 7878 MB
      node 0 free: 3623 MB
      node 1 cpus: 12 13 14 15 16 17 18 19 20 21 22 23 36 37 38 39 40 41 42 43 44 45 46 47
      node 1 size: 8045 MB
      node 1 free: 7818 MB
      node distances:
      node   0   1
        0:  10  21
        1:  21  10
      
      Before the patch:
      > numactl -p0 -C0 ./transhuge-stress
      transhuge-stress: 2.197 s/loop, 0.276 ms/page,   7249.168 MiB/s 7962 succeed,    0 failed, 1786 different pages
      
      > numactl -p0 -C12 ./transhuge-stress
      transhuge-stress: 2.962 s/loop, 0.372 ms/page,   5376.172 MiB/s 7962 succeed,    0 failed, 3873 different pages
      
      Number of successful THP allocations corresponds to free memory on node 0 in
      the first case and node 1 in the second case, i.e. -p parameter is ignored and
      cpu binding "wins".
      
      After the patch:
      > numactl -p0 -C0 ./transhuge-stress
      transhuge-stress: 2.183 s/loop, 0.274 ms/page,   7295.516 MiB/s 7962 succeed,    0 failed, 1760 different pages
      
      > numactl -p0 -C12 ./transhuge-stress
      transhuge-stress: 2.878 s/loop, 0.361 ms/page,   5533.638 MiB/s 7962 succeed,    0 failed, 1750 different pages
      
      > numactl -p1 -C0 ./transhuge-stress
      transhuge-stress: 4.628 s/loop, 0.581 ms/page,   3440.893 MiB/s 7962 succeed,    0 failed, 3918 different pages
      
      The -p parameter is respected regardless of cpu binding.
      
      > numactl -C0 ./transhuge-stress
      transhuge-stress: 2.202 s/loop, 0.277 ms/page,   7230.003 MiB/s 7962 succeed,    0 failed, 1750 different pages
      
      > numactl -C12 ./transhuge-stress
      transhuge-stress: 3.020 s/loop, 0.379 ms/page,   5273.324 MiB/s 7962 succeed,    0 failed, 3916 different pages
      
      Without -p parameter, hugepage restriction to CPU-local node works as before.
      
      Fixes: 077fcf11 ("mm/thp: allocate transparent hugepages on local node")
      Signed-off-by: NVlastimil Babka <vbabka@suse.cz>
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Acked-by: NDavid Rientjes <rientjes@google.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Michal Hocko <mhocko@suse.cz>
      Cc: <stable@vger.kernel.org>	[4.0+]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0867a57c
    • J
      tmpfs: truncate prealloc blocks past i_size · afa2db2f
      Josef Bacik 提交于
      One of the rocksdb people noticed that when you do something like this
      
          fallocate(fd, FALLOC_FL_KEEP_SIZE, 0, 10M)
          pwrite(fd, buf, 5M, 0)
          ftruncate(5M)
      
      on tmpfs, the file would still take up 10M: which led to super fun
      issues because we were getting ENOSPC before we thought we should be
      getting ENOSPC.  This patch fixes the problem, and mirrors what all the
      other fs'es do (and was agreed to be the correct behaviour at LSF).
      
      I tested it locally to make sure it worked properly with the following
      
          xfs_io -f -c "falloc -k 0 10M" -c "pwrite 0 5M" -c "truncate 5M" file
      
      Without the patch we have "Blocks: 20480", with the patch we have the
      correct value of "Blocks: 10240".
      Signed-off-by: NJosef Bacik <jbacik@fb.com>
      Signed-off-by: NHugh Dickins <hughd@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      afa2db2f
    • Z
      mm/memory hotplug: print the last vmemmap region at the end of hot add memory · c435a390
      Zhu Guihua 提交于
      When hot add two nodes continuously, we found the vmemmap region info is
      a bit messed.  The last region of node 2 is printed when node 3 hot
      added, like the following:
      
        Initmem setup node 2 [mem 0x0000000000000000-0xffffffffffffffff]
         On node 2 totalpages: 0
         Built 2 zonelists in Node order, mobility grouping on.  Total pages: 16090539
         Policy zone: Normal
         init_memory_mapping: [mem 0x40000000000-0x407ffffffff]
          [mem 0x40000000000-0x407ffffffff] page 1G
          [ffffea1000000000-ffffea10001fffff] PMD -> [ffff8a077d800000-ffff8a077d9fffff] on node 2
          [ffffea1000200000-ffffea10003fffff] PMD -> [ffff8a077de00000-ffff8a077dffffff] on node 2
        ...
          [ffffea101f600000-ffffea101f9fffff] PMD -> [ffff8a074ac00000-ffff8a074affffff] on node 2
          [ffffea101fa00000-ffffea101fdfffff] PMD -> [ffff8a074a800000-ffff8a074abfffff] on node 2
        Initmem setup node 3 [mem 0x0000000000000000-0xffffffffffffffff]
         On node 3 totalpages: 0
         Built 3 zonelists in Node order, mobility grouping on.  Total pages: 16090539
         Policy zone: Normal
         init_memory_mapping: [mem 0x60000000000-0x607ffffffff]
          [mem 0x60000000000-0x607ffffffff] page 1G
          [ffffea101fe00000-ffffea101fffffff] PMD -> [ffff8a074a400000-ffff8a074a5fffff] on node 2 <=== node 2 ???
          [ffffea1800000000-ffffea18001fffff] PMD -> [ffff8a074a600000-ffff8a074a7fffff] on node 3
          [ffffea1800200000-ffffea18005fffff] PMD -> [ffff8a074a000000-ffff8a074a3fffff] on node 3
          [ffffea1800600000-ffffea18009fffff] PMD -> [ffff8a0749c00000-ffff8a0749ffffff] on node 3
        ...
      
      The cause is the last region was missed at the and of hot add memory,
      and p_start, p_end, node_start were not reset, so when hot add memory to
      a new node, it will consider they are not contiguous blocks and print
      the previous one.  So we print the last vmemmap region at the end of hot
      add memory to avoid the confusion.
      Signed-off-by: NZhu Guihua <zhugh.fnst@cn.fujitsu.com>
      Reviewed-by: NNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c435a390
    • P
      mm/mmap.c: optimization of do_mmap_pgoff function · e37609bb
      Piotr Kwapulinski 提交于
      The simple check for zero length memory mapping may be performed
      earlier.  So that in case of zero length memory mapping some unnecessary
      code is not executed at all.  It does not make the code less readable
      and saves some CPU cycles.
      Signed-off-by: NPiotr Kwapulinski <kwapulinski.piotr@gmail.com>
      Acked-by: NMichal Hocko <mhocko@suse.cz>
      Acked-by: NRik van Riel <riel@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e37609bb