1. 22 Nov, 2017 1 commit
    • David Disseldorp's avatar
      null_blk: fix dev->badblocks leak · 1addb798
      David Disseldorp authored
      null_alloc_dev() allocates memory for dev->badblocks, but cleanup
      currently only occurs in the configfs release codepath, missing a number
      of other places.
      
      This bug was found running the blktests block/010 test, alongside
      kmemleak:
      rapido1:/blktests# ./check block/010
      ...
      rapido1:/blktests# echo scan > /sys/kernel/debug/kmemleak
      [  306.966708] kmemleak: 32 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
      rapido1:/blktests# cat /sys/kernel/debug/kmemleak
      unreferenced object 0xffff88001f86d000 (size 4096):
        comm "modprobe", pid 231, jiffies 4294892415 (age 318.252s)
        hex dump (first 32 bytes):
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        backtrace:
          [<ffffffff814b0379>] kmemleak_alloc+0x49/0xa0
          [<ffffffff810f180f>] kmem_cache_alloc+0x9f/0xe0
          [<ffffffff8124e45f>] badblocks_init+0x2f/0x60
          [<ffffffffa0019fae>] 0xffffffffa0019fae
          [<ffffffffa0021273>] nullb_device_badblocks_store+0x63/0x130 [null_blk]
          [<ffffffff810004cd>] do_one_initcall+0x3d/0x170
          [<ffffffff8109fe0d>] do_init_module+0x56/0x1e9
          [<ffffffff8109ebd7>] load_module+0x1c47/0x26a0
          [<ffffffff8109f819>] SyS_finit_module+0xa9/0xd0
          [<ffffffff814b4f60>] entry_SYSCALL_64_fastpath+0x13/0x94
      
      Fixes: 2f54a613 ("nullb: badbblocks support")
      Reviewed-by: default avatarShaohua Li <shli@fb.com>
      Signed-off-by: default avatarDavid Disseldorp <ddiss@suse.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      1addb798
  2. 19 Nov, 2017 5 commits
  3. 18 Nov, 2017 34 commits
    • Linus Torvalds's avatar
      clean up x86 platform driver default values · 0192f175
      Linus Torvalds authored
      The updates this merge window added several bogus default enablement for
      new features.  We don't do that.  If people want new behavior, they ask
      for it.
      
      One 'default n' was also removed as pointless.  That's great, but there
      were eight other ones in the same file that were left alone.
      
      Fix it up.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0192f175
    • Linus Torvalds's avatar
      Merge tag 'nfsd-4.15' of git://linux-nfs.org/~bfields/linux · 4dd3c2e5
      Linus Torvalds authored
      Pull nfsd updates from Bruce Fields:
       "Lots of good bugfixes, including:
      
         -  fix a number of races in the NFSv4+ state code
      
         -  fix some shutdown crashes in multiple-network-namespace cases
      
         -  relax our 4.1 session limits; if you've an artificially low limit
            to the number of 4.1 clients that can mount simultaneously, try
            upgrading"
      
      * tag 'nfsd-4.15' of git://linux-nfs.org/~bfields/linux: (22 commits)
        SUNRPC: Improve ordering of transport processing
        nfsd: deal with revoked delegations appropriately
        svcrdma: Enqueue after setting XPT_CLOSE in completion handlers
        nfsd: use nfs->ns.inum as net ID
        rpc: remove some BUG()s
        svcrdma: Preserve CB send buffer across retransmits
        nfds: avoid gettimeofday for nfssvc_boot time
        fs, nfsd: convert nfs4_file.fi_ref from atomic_t to refcount_t
        fs, nfsd: convert nfs4_cntl_odstate.co_odcount from atomic_t to refcount_t
        fs, nfsd: convert nfs4_stid.sc_count from atomic_t to refcount_t
        lockd: double unregister of inetaddr notifiers
        nfsd4: catch some false session retries
        nfsd4: fix cached replies to solo SEQUENCE compounds
        sunrcp: make function _svc_create_xprt static
        SUNRPC: Fix tracepoint storage issues with svc_recv and svc_rqst_status
        nfsd: use ARRAY_SIZE
        nfsd: give out fewer session slots as limit approaches
        nfsd: increase DRC cache limit
        nfsd: remove unnecessary nofilehandle checks
        nfs_common: convert int to bool
        ...
      4dd3c2e5
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v4.15-1' of git://git.infradead.org/linux-platform-drivers-x86 · 07c455ee
      Linus Torvalds authored
      Pull x86 platform driver updates from Andy Shevchenko:
       "Here is the collected material against Platform Drivers x86 subsystem.
        It's rather bit busy cycle for PDx86, mostly due to Dell SMBIOS driver
        activity
      
        For this cycle we have quite an update for the Dell SMBIOS driver
        including WMI work to provide an interface for SMBIOS tokens via sysfs
        and WMI support for 2017+ Dell laptop models. SMM dispatcher code is
        split into a separate driver followed by a new WMI dispatcher. The
        latter provides a character device interface to user space.
      
        The git history also contains a merge of immutable branch from Wolfram
        Sang in order to apply a dependent fix to the Intel CherryTrail
        Battery Management driver.
      
        Other Intel drivers got a lot of cleanups. The Turbo Boost Max 3.0
        support is added for Intel Skylake.
      
        Peaq WMI hotkeys driver gets its own maintainer and white list of
        supported models.
      
        Silead DMI is expanded to support few additional platforms.
      
        Tablet mode via GMMS ACPI method is added to support some ThinkPad
        tablets.
      
        new driver:
         - Add driver to force WMI Thunderbolt controller power status
      
        asus-wmi:
         -  Add lightbar led support
      
        dell-laptop:
         -  Allocate buffer before rfkill use
      
        dell-smbios:
         -  fix string overflow
         -  Add filtering support
         -  Introduce dispatcher for SMM calls
         -  Add a sysfs interface for SMBIOS tokens
         -  only run if proper oem string is detected
         -  Prefix class/select with cmd_
         -  Add pr_fmt definition to driver
      
        dell-smbios-smm:
         -  test for WSMT
      
        dell-smbios-wmi:
         -  release mutex lock on WMI call failure
         -  introduce userspace interface
         -  Add new WMI dispatcher driver
      
        dell-smo8800:
         -  remove redundant assignments to byte_data
      
        dell-wmi:
         -  don't check length returned
         -  clean up wmi descriptor check
         -  increase severity of some failures
         -  Do not match on descriptor GUID modalias
         -  Label driver as handling notifications
      
        dell-*wmi*:
         -  Relay failed initial probe to dependent drivers
      
        dell-wmi-descriptor:
         -  check if memory was allocated
         -  split WMI descriptor into it's own driver
      
        fujitsu-laptop:
         -  Fix radio LED detection
         -  Don't oops when FUJ02E3 is not presnt
      
        hp_accel:
         -  Add quirk for HP ProBook 440 G4
      
        hp-wmi:
         -  Fix tablet mode detection for convertibles
      
        ideapad-laptop:
         -  Add Lenovo Yoga 920-13IKB to no_hw_rfkill dmi list
      
        intel_cht_int33fe:
         -  Update fusb302 type string, add properties
         -  make a couple of local functions static
         -  Work around BIOS bug on some devices
      
        intel-hid:
         -  Power button suspend on Dell Latitude 7275
      
        intel_ips:
         -  Convert timers to use timer_setup()
         -  Remove FSF address from GPL notice
         -  Remove unneeded fields and label
         -  Keep pointer to struct device
         -  Use PCI_VDEVICE() macro
         -  Switch to new PCI IRQ allocation API
         -  Simplify error handling via devres API
      
        intel_pmc_ipc:
         -  Revert Use MFD framework to create dependent devices
         -  Use MFD framework to create dependent devices
         -  Use spin_lock to protect GCR updates
         -  Use devm_* calls in driver probe function
      
        intel_punit_ipc:
         -  Fix resource ioremap warning
      
        intel_telemetry:
         -  Remove useless default in Kconfig
         -  Add needed inclusion
         -  cleanup redundant headers
         -  Fix typos
         -  Fix load failure info
      
        intel_telemetry_debugfs:
         -  Use standard ARRAY_SIZE() macro
      
        intel_turbo_max_3:
         -  Add Skylake platform
      
        intel-wmi-thunderbolt:
         -  Silence error cases
      
        mlx-platform:
         -  make a couple of structures static
      
        peaq_wmi:
         -  Fix missing terminating entry for peaq_dmi_table
      
        peaq-wmi:
         -  Remove unnecessary checks from peaq_wmi_exit
         -  Add DMI check before binding to the WMI interface
         -  Revert Blacklist Lenovo ideapad 700-15ISK
         -  Blacklist Lenovo ideapad 700-15ISK
      
        silead_dmi:
         -  Add silead, home-button property to some tablets
         -  Add entry for the Digma e200 tablet
         -  Fix GP-electronic T701 entry
         -  Add entry for the Chuwi Hi8 Pro tablet
      
        sony-laptop:
         -  Drop variable assignment in sony_nc_setup_rfkill()
         -  Fix error handling in sony_nc_setup_rfkill()
      
        thinkpad_acpi:
         -  Implement tablet mode using GMMS method
      
        tools/wmi:
         -  add a sample for dell smbios communication over WMI
      
        wmi:
         -  release mutex on module acquistion failure
         -  create userspace interface for drivers
         -  Don't allow drivers to get each other's GUIDs
         -  Add new method wmidev_evaluate_method
         -  Destroy on cleanup rather than unregister
         -  Cleanup exit routine in reverse order of init
         -  Sort include list"
      
      * tag 'platform-drivers-x86-v4.15-1' of git://git.infradead.org/linux-platform-drivers-x86: (74 commits)
        platform/x86: silead_dmi: Add silead, home-button property to some tablets
        platform/x86: dell-laptop: Allocate buffer before rfkill use
        platform/x86: dell-*wmi*: Relay failed initial probe to dependent drivers
        platform/x86: dell-wmi-descriptor: check if memory was allocated
        platform/x86: Revert intel_pmc_ipc: Use MFD framework to create dependent devices
        platform/x86: dell-smbios-wmi: release mutex lock on WMI call failure
        platform/x86: wmi: release mutex on module acquistion failure
        platform/x86: dell-smbios: fix string overflow
        platform/x86: intel_pmc_ipc: Use MFD framework to create dependent devices
        platform/x86: intel_punit_ipc: Fix resource ioremap warning
        platform/x86: dell-smo8800: remove redundant assignments to byte_data
        platform/x86: hp-wmi: Fix tablet mode detection for convertibles
        platform/x86: intel_ips: Convert timers to use timer_setup()
        platform/x86: sony-laptop: Drop variable assignment in sony_nc_setup_rfkill()
        platform/x86: sony-laptop: Fix error handling in sony_nc_setup_rfkill()
        tools/wmi: add a sample for dell smbios communication over WMI
        platform/x86: dell-smbios-wmi: introduce userspace interface
        platform/x86: wmi: create userspace interface for drivers
        platform/x86: dell-smbios: Add filtering support
        platform/x86: dell-smbios-smm: test for WSMT
        ...
      07c455ee
    • Hans de Goede's avatar
      platform/x86: silead_dmi: Add silead, home-button property to some tablets · aaa40965
      Hans de Goede authored
      Add "silead,home-button" property to entries for tablets which have
      a capacitive home button (typically a windows logo on the front).
      
      This new property is checked for by the new capacitive home button
      support in the silead touchscreen driver.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      aaa40965
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 1deab8ce
      Linus Torvalds authored
      Pull sparc updates from David Miller:
      
       1) Add missing cmpxchg64() for 32-bit sparc.
      
       2) Timer conversions from Allen Pais and Kees Cook.
      
       3) vDSO support, from Nagarathnam Muthusamy.
      
       4) Fix sparc64 huge page table walks based upon bug report by Al Viro,
          from Nitin Gupta.
      
       5) Optimized fls() for T4 and above, from Vijay Kumar.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc64: Fix page table walk for PUD hugepages
        sparc64: Convert timers to user timer_setup()
        sparc64: convert mdesc_handle.refcnt from atomic_t to refcount_t
        sparc/led: Convert timers to use timer_setup()
        sparc64: Use sparc optimized fls and __fls for T4 and above
        sparc64: SPARC optimized __fls function
        sparc64: SPARC optimized fls function
        sparc64: Define SPARC default __fls function
        sparc64: Define SPARC default fls function
        vDSO for sparc
        sparc32: Add cmpxchg64().
        sbus: char: Move D7S_MINOR to include/linux/miscdevice.h
        sparc: time: Remove unneeded linux/miscdevice.h include
        sparc64: mmu_context: Add missing include files
      1deab8ce
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 81700247
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Revert regression inducing change to the IPSEC template resolver,
          from Steffen Klassert.
      
       2) Peeloffs can cause the wrong sk to be waken up in SCTP, fix from Xin
          Long.
      
       3) Min packet MTU size is wrong in cpsw driver, from Grygorii Strashko.
      
       4) Fix build failure in netfilter ctnetlink, from Arnd Bergmann.
      
       5) ISDN hisax driver checks pnp_irq() for errors incorrectly, from
          Arvind Yadav.
      
       6) Fix fealnx driver build failure on MIPS, from Huacai Chen.
      
       7) Fix into leak in SCTP, the scope_id of socket addresses is not
          always filled in. From Eric W. Biederman.
      
       8) MTU inheritance between physical function and representor fix in nfp
          driver, from Dirk van der Merwe.
      
       9) Fix memory leak in rsi driver, from Colin Ian King.
      
      10) Fix expiration and generation ID handling of cached ipv4 redirect
          routes, from Xin Long.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (40 commits)
        net: usb: hso.c: remove unneeded DRIVER_LICENSE #define
        ibmvnic: fix dma_mapping_error call
        ipvlan: NULL pointer dereference panic in ipvlan_port_destroy
        route: also update fnhe_genid when updating a route cache
        route: update fnhe_expires for redirect when the fnhe exists
        sctp: set frag_point in sctp_setsockopt_maxseg correctly
        rsi: fix memory leak on buf and usb_reg_buf
        net/netlabel: Add list_next_rcu() in rcu_dereference().
        nfp: remove false positive offloads in flower vxlan
        nfp: register flower reprs for egress dev offload
        nfp: inherit the max_mtu from the PF netdev
        nfp: fix vlan receive MAC statistics typo
        nfp: fix flower offload metadata flag usage
        virto_net: remove empty file 'virtio_net.'
        net/sctp: Always set scope_id in sctp_inet6_skb_msgname
        fealnx: Fix building error on MIPS
        isdn: hisax: Fix pnp_irq's error checking for setup_teles3
        isdn: hisax: Fix pnp_irq's error checking for setup_sedlbauer_isapnp
        isdn: hisax: Fix pnp_irq's error checking for setup_niccy
        isdn: hisax: Fix pnp_irq's error checking for setup_ix1micro
        ...
      81700247
    • Linus Torvalds's avatar
      Merge tag 'hwlock-v4.15' of git://github.com/andersson/remoteproc · 27eabfaa
      Linus Torvalds authored
      Pull hwspinlock update from Bjorn Andersson:
       "This changes the HWSPINLOCK core Kconfig option to bool, to aid when
        other core code depends on it"
      
      * tag 'hwlock-v4.15' of git://github.com/andersson/remoteproc:
        hwspinlock: Change hwspinlock to a bool
      27eabfaa
    • Linus Torvalds's avatar
      Merge tag 'rproc-v4.15' of git://github.com/andersson/remoteproc · 4f88bd23
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
       "This adds an interface for configuring Qualcomm's "secure SMMU" and
        adds support for booting the modem Hexagon on MSM8996.
      
        Two new debugfs entries are added in the remoteproc core to introspect
        the list of memory carveouts and the loaded resource table"
      
      * tag 'rproc-v4.15' of git://github.com/andersson/remoteproc:
        remoteproc: qcom: Fix error handling paths in order to avoid memory leaks
        remoteproc: qcom: Drop pr_err in q6v5_xfer_mem_ownership()
        remoteproc: debug: add carveouts list dump feature
        remoteproc: debug: add resource table dump feature
        remoteproc: qcom: Add support for mss remoteproc on msm8996
        remoteproc: qcom: Make secure world call for mem ownership switch
        remoteproc: qcom: refactor mss fw image loading sequence
        firmware: scm: Add new SCM call API for switching memory ownership
      4f88bd23
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v4.15' of git://github.com/andersson/remoteproc · bedf5719
      Linus Torvalds authored
      Pull rpmsg updates from Bjorn Andersson:
      
       - turn RPMSG_VIRTIO into a user selectable config
      
       - fix few bugs in GLINK
      
       - provide the support for specifying initial buffer sizes for GLINK
         channels.
      
      * tag 'rpmsg-v4.15' of git://github.com/andersson/remoteproc:
        rpmsg: glink: The mbox client knows_txdone
        rpmsg: glink: Add missing MODULE_LICENSE
        rpmsg: glink: Use best fit intent during tx
        rpmsg: glink: Add support to preallocate intents
        dt-bindings: soc: qcom: Support GLINK intents
        rpmsg: glink: Initialize the "intent_req_comp" completion variable
        rpmsg: Allow RPMSG_VIRTIO to be enabled via menuconfig or defconfig
      bedf5719
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.15-take2' of... · d9ef1ccf
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.15-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull more hwmon updates/fixes from Guenter Roeck:
      
       - minor bug fix in k10temp driver
      
       - take advantage of added NULL check in i2c_unregister_device()
      
      * tag 'hwmon-for-linus-v4.15-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (w83793) Remove duplicate NULL check
        hwmon: (w83792d) Remove duplicate NULL check
        hwmon: (w83791d) Remove duplicate NULL check
        hwmon: (w83781d) Remove duplicate NULL check
        hwmon: (k10temp) Correct model name for Ryzen 1600X
      d9ef1ccf
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · fc35c196
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "We have two changes to the core framework this time around.
      
        The first being a large change that introduces runtime PM support to
        the clk framework. Now we properly call runtime PM operations on the
        device providing a clk when the clk is in use. This helps on SoCs
        where the clks provided by a device need something to be powered on
        before using the clks, like power domains or regulators. It also helps
        power those things down when clks aren't in use.
      
        The other core change is a devm API addition for clk providers so we
        can get rid of a bunch of clk driver remove functions that are just
        doing of_clk_del_provider().
      
        Outside of the core, we have the usual addition of clk drivers and
        smattering of non-critical fixes to existing drivers. The biggest diff
        is support for Mediatek MT2712 and MT7622 SoCs, but those patches
        really just add a bunch of data.
      
        By the way, we're trying something new here where we build the tree up
        with topic branches. We plan to work this into our workflow so that we
        don't step on each other's toes, and so the fixes branch can be merged
        on an as-needed basis.
      
        Summary:
      
        Core:
         - runtime PM support for clk providers
         - devm API for of_clk_add_hw_provider()
      
        New Drivers:
         - Mediatek MT2712 and MT7622
         - Renesas R-Car V3M SoC
      
        Updates:
         - runtime PM support for Samsung exynos5433/exynos4412 providers
         - removal of clkdev aliases on Samsung SoCs
         - convert clk-gpio to use gpio descriptors
         - various driver cleanups to match kernel coding style
         - Amlogic Video Processing Unit VPU and VAPB clks
         - sigma-delta modulation for Allwinner audio PLLs
         - Allwinner A83t Display clks
         - support for the second display unit clock on Renesas RZ/G1E
         - suspend/resume support for Renesas R-Car Gen3 CPG/MSSR
         - new clock ids for Rockchip rk3188 and rk3368 SoCs
         - various 'const' markings on clk_ops structures
         - RPM clk support on Qualcomm MSM8996/MSM8660 SoCs"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (137 commits)
        clk: stm32h7: fix test of clock config
        clk: pxa: fix building on older compilers
        clk: sunxi-ng: a83t: Fix i2c buses bits
        clk: ti: dra7-atl-clock: fix child-node lookups
        clk: qcom: common: fix legacy board-clock registration
        clk: uniphier: fix DAPLL2 clock rate of Pro5
        clk: uniphier: fix parent of miodmac clock data
        clk: hi3798cv200: correct parent mux clock for 'clk_sdio0_ciu'
        clk: hisilicon: Delete an error message for a failed memory allocation in hisi_register_clkgate_sep()
        clk: hi3660: fix incorrect uart3 clock freqency
        clk: kona-setup: Delete error messages for failed memory allocations
        ARC: clk: fix spelling mistake: "configurarion" -> "configuration"
        clk: cdce925: remove redundant check for non-null parent_name
        clk: versatile: Improve sizeof() usage
        clk: versatile: Delete error messages for failed memory allocations
        clk: ux500: Improve sizeof() usage
        clk: ux500: Delete error messages for failed memory allocations
        clk: spear: Delete error messages for failed memory allocations
        clk: ti: Delete error messages for failed memory allocations
        clk: mmp: Adjust checks for NULL pointers
        ...
      fc35c196
    • Linus Torvalds's avatar
      Merge tag 'kbuild-misc-v4.15' of... · 2ce079f0
      Linus Torvalds authored
      Merge tag 'kbuild-misc-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild misc updates from Masahiro Yamada:
      
       - Clean up and fix RPM package build
      
       - Fix a warning in DEB package build
      
       - Improve coccicheck script
      
       - Improve some semantic patches
      
      * tag 'kbuild-misc-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        docs: dev-tools: coccinelle: delete out of date wiki reference
        coccinelle: orplus: reorganize to improve performance
        coccinelle: use exists to improve efficiency
        builddeb: Pass the kernel:debarch substvar to dpkg-genchanges
        Coccinelle: use false positive annotation
        coccinelle: fix verbose message about .cocci file being run
        coccinelle: grep Options and Requires fields more precisely
        Coccinelle: make DEBUG_FILE option more useful
        coccinelle: api: detect identical chip data arrays
        coccinelle: Improve setup_timer.cocci matching
        Coccinelle: setup_timer: improve messages from setup_timer
        kbuild: rpm-pkg: do not force -jN in submake
        kbuild: rpm-pkg: keep spec file until make mrproper
        kbuild: rpm-pkg: fix jobserver unavailable warning
        kbuild: rpm-pkg: replace $RPM_BUILD_ROOT with %{buildroot}
        kbuild: rpm-pkg: fix build error when CONFIG_MODULES is disabled
        kbuild: rpm-pkg: refactor mkspec with here doc
        kbuild: rpm-pkg: clean up mkspec
        kbuild: rpm-pkg: install vmlinux.bz2 unconditionally
        kbuild: rpm-pkg: remove ppc64 specific image handling
      2ce079f0
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 09bd7c75
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
       "One of the most remarkable improvements in this cycle is, Kbuild is
        now able to cache the result of shell commands. Some variables are
        expensive to compute, for example, $(call cc-option,...) invokes the
        compiler. It is not efficient to redo this computation every time,
        even when we are not actually building anything. Kbuild creates a
        hidden file ".cache.mk" that contains invoked shell commands and their
        results. The speed-up should be noticeable.
      
        Summary:
      
         - Fix arch build issues (hexagon, sh)
      
         - Clean up various Makefiles and scripts
      
         - Fix wrong usage of {CFLAGS,LDFLAGS}_MODULE in arch Makefiles
      
         - Cache variables that are expensive to compute
      
         - Improve cc-ldopton and ld-option for Clang
      
         - Optimize output directory creation"
      
      * tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
        kbuild: move coccicheck help from scripts/Makefile.help to top Makefile
        sh: decompressor: add shipped files to .gitignore
        frv: .gitignore: ignore vmlinux.lds
        selinux: remove unnecessary assignment to subdir-
        kbuild: specify FORCE in Makefile.headersinst as .PHONY target
        kbuild: remove redundant mkdir from ./Kbuild
        kbuild: optimize object directory creation for incremental build
        kbuild: create object directories simpler and faster
        kbuild: filter-out PHONY targets from "targets"
        kbuild: remove redundant $(wildcard ...) for cmd_files calculation
        kbuild: create directory for make cache only when necessary
        sh: select KBUILD_DEFCONFIG depending on ARCH
        kbuild: fix linker feature test macros when cross compiling with Clang
        kbuild: shrink .cache.mk when it exceeds 1000 lines
        kbuild: do not call cc-option before KBUILD_CFLAGS initialization
        kbuild: Cache a few more calls to the compiler
        kbuild: Add a cache for generated variables
        kbuild: add forward declaration of default target to Makefile.asm-generic
        kbuild: remove KBUILD_SUBDIR_ASFLAGS and KBUILD_SUBDIR_CCFLAGS
        hexagon/kbuild: replace CFLAGS_MODULE with KBUILD_CFLAGS_MODULE
        ...
      09bd7c75
    • Greg Kroah-Hartman's avatar
      net: usb: hso.c: remove unneeded DRIVER_LICENSE #define · 461ee7f3
      Greg Kroah-Hartman authored
      There is no need to #define the license of the driver, just put it in
      the MODULE_LICENSE() line directly as a text string.
      
      This allows tools that check that the module license matches the source
      code license to work properly, as there is no need to unwind the
      unneeded dereference.
      
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Andreas Kemnade <andreas@kemnade.info>
      Cc: Johan Hovold <johan@kernel.org>
      Reported-by: default avatarPhilippe Ombredanne <pombredanne@nexb.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarPhilippe Ombredanne <pombredanne@nexb.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      461ee7f3
    • Desnes Augusto Nunes do Rosario's avatar
      ibmvnic: fix dma_mapping_error call · f743106e
      Desnes Augusto Nunes do Rosario authored
      This patch fixes the dma_mapping_error call to use the correct dma_addr
      which is inside the ibmvnic_vpd struct. Moreover, it fixes an uninitialized
      warning regarding a local dma_addr variable which is not used anymore.
      
      Fixes: 4e6759be ("ibmvnic: Feature implementation of VPD for the ibmvnic driver")
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarDesnes A. Nunes do Rosario <desnesn@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f743106e
    • Girish Moodalbail's avatar
      ipvlan: NULL pointer dereference panic in ipvlan_port_destroy · fe18da60
      Girish Moodalbail authored
      When call to register_netdevice() (called from ipvlan_link_new()) fails,
      we call ipvlan_uninit() (through ndo_uninit()) to destroy the ipvlan
      port. After returning unsuccessfully from register_netdevice() we go
      ahead and call ipvlan_port_destroy() again which causes NULL pointer
      dereference panic. Fix the issue by making ipvlan_init() and
      ipvlan_uninit() call symmetric.
      
      The ipvlan port will now be created inside ipvlan_init() and will be
      destroyed in ipvlan_uninit().
      
      Fixes: 2ad7bf36 (ipvlan: Initial check-in of the IPVLAN driver)
      Signed-off-by: default avatarGirish Moodalbail <girish.moodalbail@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fe18da60
    • Xin Long's avatar
      route: also update fnhe_genid when updating a route cache · cebe84c6
      Xin Long authored
      Now when ip route flush cache and it turn out all fnhe_genid != genid.
      If a redirect/pmtu icmp packet comes and the old fnhe is found and all
      it's members but fnhe_genid will be updated.
      
      Then next time when it looks up route and tries to rebind this fnhe to
      the new dst, the fnhe will be flushed due to fnhe_genid != genid. It
      causes this redirect/pmtu icmp packet acutally not to be applied.
      
      This patch is to also reset fnhe_genid when updating a route cache.
      
      Fixes: 5aad1de5 ("ipv4: use separate genid for next hop exceptions")
      Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cebe84c6
    • Xin Long's avatar
      route: update fnhe_expires for redirect when the fnhe exists · e39d5246
      Xin Long authored
      Now when creating fnhe for redirect, it sets fnhe_expires for this
      new route cache. But when updating the exist one, it doesn't do it.
      It will cause this fnhe never to be expired.
      
      Paolo already noticed it before, in Jianlin's test case, it became
      even worse:
      
      When ip route flush cache, the old fnhe is not to be removed, but
      only clean it's members. When redirect comes again, this fnhe will
      be found and updated, but never be expired due to fnhe_expires not
      being set.
      
      So fix it by simply updating fnhe_expires even it's for redirect.
      
      Fixes: aee06da6 ("ipv4: use seqlock for nh_exceptions")
      Reported-by: default avatarJianlin Shi <jishi@redhat.com>
      Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e39d5246
    • Xin Long's avatar
      sctp: set frag_point in sctp_setsockopt_maxseg correctly · ecca8f88
      Xin Long authored
      Now in sctp_setsockopt_maxseg user_frag or frag_point can be set with
      val >= 8 and val <= SCTP_MAX_CHUNK_LEN. But both checks are incorrect.
      
      val >= 8 means frag_point can even be less than SCTP_DEFAULT_MINSEGMENT.
      Then in sctp_datamsg_from_user(), when it's value is greater than cookie
      echo len and trying to bundle with cookie echo chunk, the first_len will
      overflow.
      
      The worse case is when it's value is equal as cookie echo len, first_len
      becomes 0, it will go into a dead loop for fragment later on. In Hangbin
      syzkaller testing env, oom was even triggered due to consecutive memory
      allocation in that loop.
      
      Besides, SCTP_MAX_CHUNK_LEN is the max size of the whole chunk, it should
      deduct the data header for frag_point or user_frag check.
      
      This patch does a proper check with SCTP_DEFAULT_MINSEGMENT subtracting
      the sctphdr and datahdr, SCTP_MAX_CHUNK_LEN subtracting datahdr when
      setting frag_point via sockopt. It also improves sctp_setsockopt_maxseg
      codes.
      Suggested-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Reported-by: default avatarHangbin Liu <liuhangbin@gmail.com>
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ecca8f88
    • Colin Ian King's avatar
      rsi: fix memory leak on buf and usb_reg_buf · d35ef8f8
      Colin Ian King authored
      In the cases where len is too long, the error return path fails to
      kfree allocated buffers buf and usb_reg_buf.  The simplest fix is to
      perform the sanity check on len before the allocations to avoid having
      to do the kfree'ing in the first place.
      
      Detected by CoverityScan, CID#1452258,1452259 ("Resource Leak")
      
      Fixes: 59f73e2a ("rsi: check length before USB read/write register")
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d35ef8f8
    • Tim Hansen's avatar
      net/netlabel: Add list_next_rcu() in rcu_dereference(). · 17e48577
      Tim Hansen authored
      Add list_next_rcu() for fetching next list in rcu_deference safely.
      
      Found with sparse in linux-next tree on tag next-20171116.
      Signed-off-by: default avatarTim Hansen <devtimhansen@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      17e48577
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · fa7f5780
      Linus Torvalds authored
      Merge more updates from Andrew Morton:
      
       - a bit more MM
      
       - procfs updates
      
       - dynamic-debug fixes
      
       - lib/ updates
      
       - checkpatch
      
       - epoll
      
       - nilfs2
      
       - signals
      
       - rapidio
      
       - PID management cleanup and optimization
      
       - kcov updates
      
       - sysvipc updates
      
       - quite a few misc things all over the place
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (94 commits)
        EXPERT Kconfig menu: fix broken EXPERT menu
        include/asm-generic/topology.h: remove unused parent_node() macro
        arch/tile/include/asm/topology.h: remove unused parent_node() macro
        arch/sparc/include/asm/topology_64.h: remove unused parent_node() macro
        arch/sh/include/asm/topology.h: remove unused parent_node() macro
        arch/ia64/include/asm/topology.h: remove unused parent_node() macro
        drivers/pcmcia/sa1111_badge4.c: avoid unused function warning
        mm: add infrastructure for get_user_pages_fast() benchmarking
        sysvipc: make get_maxid O(1) again
        sysvipc: properly name ipc_addid() limit parameter
        sysvipc: duplicate lock comments wrt ipc_addid()
        sysvipc: unteach ids->next_id for !CHECKPOINT_RESTORE
        initramfs: use time64_t timestamps
        drivers/watchdog: make use of devm_register_reboot_notifier()
        kernel/reboot.c: add devm_register_reboot_notifier()
        kcov: update documentation
        Makefile: support flag -fsanitizer-coverage=trace-cmp
        kcov: support comparison operands collection
        kcov: remove pointless current != NULL check
        kernel/panic.c: add TAINT_AUX
        ...
      fa7f5780
    • Randy Dunlap's avatar
      EXPERT Kconfig menu: fix broken EXPERT menu · d1b069f5
      Randy Dunlap authored
      Clean up the EXPERT menu (yet again).
      
      Move FHANDLE and CHECKPOINT_RESTORE into the primary EXPERT menu since
      they already depend on EXPERT.
      
      Move BPF_SYSCALL and USERFAULTFD out of the EXPERT Kconfig symbols menu
      list since they do not depend on EXPERT and were breaking the continuity
      of that menu list.
      
      Move all of the KALLSYMS Kconfig symbols to the end of the EXPERT menu.
      This separates the kernel services from the build options.
      
      This patch depends on [PATCH] pci: move PCI_QUIRKS to the PCI bus menu
      (https://lkml.org/lkml/2017/11/2/907).
      
      Link: http://lkml.kernel.org/r/72e4465a-a5ff-cb3c-1a90-11aa4861b161@infradead.orgSigned-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Acked-by: Daniel Borkmann <daniel@iogearbox.net>	[BPF]
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d1b069f5
    • Dou Liyang's avatar
      include/asm-generic/topology.h: remove unused parent_node() macro · 7016383b
      Dou Liyang authored
      Commit a7be6e5a ("mm: drop useless local parameters of
      __register_one_node()") removed the last user of parent_node().
      
      The parent_node() macro in generic situation is unnecessary.
      
      Remove it for cleanup.
      
      Link: http://lkml.kernel.org/r/1504234599-29533-8-git-send-email-douly.fnst@cn.fujitsu.comSigned-off-by: default avatarDou Liyang <douly.fnst@cn.fujitsu.com>
      Reported-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7016383b
    • Dou Liyang's avatar
      arch/tile/include/asm/topology.h: remove unused parent_node() macro · 52563d05
      Dou Liyang authored
      Commit a7be6e5a ("mm: drop useless local parameters of
      __register_one_node()") removed the last user of parent_node().
      
      The parent_node() macro in tile platform is unnecessary.
      
      Remove it for cleanup.
      
      Link: http://lkml.kernel.org/r/1504234599-29533-7-git-send-email-douly.fnst@cn.fujitsu.comSigned-off-by: default avatarDou Liyang <douly.fnst@cn.fujitsu.com>
      Reported-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Acked-by: default avatarChris Metcalf <cmetcalf@mellanox.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      52563d05
    • Dou Liyang's avatar
      arch/sparc/include/asm/topology_64.h: remove unused parent_node() macro · 5f4cdac6
      Dou Liyang authored
      Commit a7be6e5a ("mm: drop useless local parameters of
      __register_one_node()") removed the last user of parent_node().
      
      The parent_node() macro in SPARC64 platform is unnecessary.
      
      Remove it for cleanup.
      
      Link: http://lkml.kernel.org/r/1504234599-29533-6-git-send-email-douly.fnst@cn.fujitsu.comSigned-off-by: default avatarDou Liyang <douly.fnst@cn.fujitsu.com>
      Reported-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5f4cdac6
    • Dou Liyang's avatar
      arch/sh/include/asm/topology.h: remove unused parent_node() macro · ece15787
      Dou Liyang authored
      Commit a7be6e5a ("mm: drop useless local parameters of
      __register_one_node()") removed the last user of parent_node().
      
      The parent_node() macro in SUPERH platform is unnecessary.
      
      Remove it for cleanup.
      
      Link: http://lkml.kernel.org/r/1504234599-29533-5-git-send-email-douly.fnst@cn.fujitsu.comSigned-off-by: default avatarDou Liyang <douly.fnst@cn.fujitsu.com>
      Reported-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Rich Felker <dalias@libc.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ece15787
    • Dou Liyang's avatar
      arch/ia64/include/asm/topology.h: remove unused parent_node() macro · 5eb9e8ac
      Dou Liyang authored
      Commit a7be6e5a ("mm: drop useless local parameters of
      __register_one_node()") removed the last user of parent_node().
      
      The parent_node() macro in IA64(Itanium) platform is unnecessary.
      
      Remove it for cleanup.
      
      Link: http://lkml.kernel.org/r/1504234599-29533-2-git-send-email-douly.fnst@cn.fujitsu.comSigned-off-by: default avatarDou Liyang <douly.fnst@cn.fujitsu.com>
      Reported-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5eb9e8ac
    • Arnd Bergmann's avatar
      drivers/pcmcia/sa1111_badge4.c: avoid unused function warning · d4258247
      Arnd Bergmann authored
      pcmv_setup() is only used when the badge4 driver is built-in, but not
      when it is a loadable module:
      
        drivers/pcmcia/sa1111_badge4.c:153:122: error: 'pcmv_setup' defined but not used [-Werror=unused-function]
      
      This adds an #ifdef to avoid the definition of the unused function in
      the modular case.
      
      Link: http://lkml.kernel.org/r/20170911201133.3421636-1-arnd@arndb.deSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Russell King <rmk@armlinux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d4258247
    • Kirill A. Shutemov's avatar
      mm: add infrastructure for get_user_pages_fast() benchmarking · 64c349f4
      Kirill A. Shutemov authored
      Performance of get_user_pages_fast() is critical for some workloads, but
      it's tricky to test it directly.
      
      This patch provides /sys/kernel/debug/gup_benchmark that helps with
      testing performance of it.
      
      See tools/testing/selftests/vm/gup_benchmark.c for userspace
      counterpart.
      
      Link: http://lkml.kernel.org/r/20170908215603.9189-2-kirill.shutemov@linux.intel.comSigned-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Thorsten Leemhuis <regressions@leemhuis.info>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Huang Ying <ying.huang@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      64c349f4
    • Davidlohr Bueso's avatar
      sysvipc: make get_maxid O(1) again · 15df03c8
      Davidlohr Bueso authored
      For a custom microbenchmark on a 3.30GHz Xeon SandyBridge, which calls
      IPC_STAT over and over, it was calculated that, on avg the cost of
      ipc_get_maxid() for increasing amounts of keys was:
      
       10 keys: ~900 cycles
       100 keys: ~15000 cycles
       1000 keys: ~150000 cycles
       10000 keys: ~2100000 cycles
      
      This is unsurprising as maxid is currently O(n).
      
      By having the max_id available in O(1) we save all those cycles for each
      semctl(_STAT) command, the idr_find can be expensive -- which some real
      (customer) workloads actually poll on.
      
      Note that this used to be the case, until commit 7ca7e564 ("ipc:
      store ipcs into IDRs").  The cost is the extra idr_find when doing
      RMIDs, but we simply go backwards, and should not take too many
      iterations to find the new value.
      
      [akpm@linux-foundation.org: coding-style fixes]
      Link: http://lkml.kernel.org/r/20170831172049.14576-5-dave@stgolabs.netSigned-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      15df03c8
    • Davidlohr Bueso's avatar
      sysvipc: properly name ipc_addid() limit parameter · ebf66799
      Davidlohr Bueso authored
      This is better understood as a limit, instead of size; exactly like the
      function comment indicates.  Rename it.
      
      Link: http://lkml.kernel.org/r/20170831172049.14576-4-dave@stgolabs.netSigned-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ebf66799
    • Davidlohr Bueso's avatar
      sysvipc: duplicate lock comments wrt ipc_addid() · 39c96a1b
      Davidlohr Bueso authored
      The comment in msgqueues when using ipc_addid() is quite useful imo.
      Duplicate it for shm and semaphores.
      
      Link: http://lkml.kernel.org/r/20170831172049.14576-3-dave@stgolabs.netSigned-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      39c96a1b
    • Davidlohr Bueso's avatar
      sysvipc: unteach ids->next_id for !CHECKPOINT_RESTORE · b8fd9983
      Davidlohr Bueso authored
      Patch series "sysvipc: ipc-key management improvements".
      
      Here are a few improvements I spotted while eyeballing Guillaume's
      rhashtable implementation for ipc keys.  The first and fourth patches
      are the interesting ones, the middle two are trivial.
      
      This patch (of 4):
      
      The next_id object-allocation functionality was introduced in commit
      03f59566 ("ipc: add sysctl to specify desired next object id").
      
      Given that these new entries are _only_ exported under the
      CONFIG_CHECKPOINT_RESTORE option, there is no point for the common case
      to even know about ->next_id.  As such rewrite ipc_buildid() such that
      it can do away with the field as well as unnecessary branches when
      adding a new identifier.  The end result also better differentiates both
      cases, so the code ends up being cleaner; albeit the small duplications
      regarding the default case.
      
      [akpm@linux-foundation.org: coding-style fixes]
      Link: http://lkml.kernel.org/r/20170831172049.14576-2-dave@stgolabs.netSigned-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b8fd9983