1. 20 Jul, 2019 2 commits
  2. 17 Jul, 2019 23 commits
    • Masahiro Yamada's avatar
      kbuild: split out *.mod out of {single,multi}-used-m rules · 9f69a496
      Masahiro Yamada authored
      Currently, *.mod is created as a side-effect of obj-m.
      
      Split out *.mod as a dedicated build rule, which allows to unify
      the %.c -> %.o rule, and remove the single-used-m rule.
      
      This also makes the incremental build of allmodconfig faster because
      it saves $(NM) invocation when there is no change in the module.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      9f69a496
    • Masahiro Yamada's avatar
      kbuild: remove 'prepare1' target · 30527cef
      Masahiro Yamada authored
      Now that there is no rule for 'prepare1', it can go away.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      30527cef
    • Masahiro Yamada's avatar
      kbuild: remove the first line of *.mod files · 60ae1b19
      Masahiro Yamada authored
      The current format of *.mod is like this:
      
        line 1: directory path to the .ko file
        line 2: a list of objects linked into this module
        line 3: unresolved symbols (only when CONFIG_TRIM_UNUSED_KSYMS=y)
      
      Now that *.mod and *.ko are created in the same directory, the line 1
      provides no valuable information. It can be derived by replacing the
      extension .mod with .ko. In fact, nobody uses the first line any more.
      
      Cut down the first line.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      60ae1b19
    • Masahiro Yamada's avatar
      kbuild: create *.mod with full directory path and remove MODVERDIR · b7dca6dd
      Masahiro Yamada authored
      While descending directories, Kbuild produces objects for modules,
      but do not link final *.ko files; it is done in the modpost.
      
      To keep track of modules, Kbuild creates a *.mod file in $(MODVERDIR)
      for every module it is building. Some post-processing steps read the
      necessary information from *.mod files. This avoids descending into
      directories again. This mechanism was introduced in 2003 or so.
      
      Later, commit 551559e1 ("kbuild: implement modules.order") added
      modules.order. So, we can simply read it out to know all the modules
      with directory paths. This is easier than parsing the first line of
      *.mod files.
      
      $(MODVERDIR) has a flat directory structure, that is, *.mod files
      are named only with base names. This is based on the assumption that
      the module name is unique across the tree. This assumption is really
      fragile.
      
      Stephen Rothwell reported a race condition caused by a module name
      conflict:
      
        https://lkml.org/lkml/2019/5/13/991
      
      In parallel building, two different threads could write to the same
      $(MODVERDIR)/*.mod simultaneously.
      
      Non-unique module names are the source of all kind of troubles, hence
      commit 3a48a919 ("kbuild: check uniqueness of module names")
      introduced a new checker script.
      
      However, it is still fragile in the build system point of view because
      this race happens before scripts/modules-check.sh is invoked. If it
      happens again, the modpost will emit unclear error messages.
      
      To fix this issue completely, create *.mod with full directory path
      so that two threads never attempt to write to the same file.
      
      $(MODVERDIR) is no longer needed.
      
      Since modules with directory paths are listed in modules.order, Kbuild
      is still able to find *.mod files without additional descending.
      
      I also killed cmd_secanalysis; scripts/mod/sumversion.c computes MD4 hash
      for modules with MODULE_VERSION(). When CONFIG_DEBUG_SECTION_MISMATCH=y,
      it occurs not only in the modpost stage, but also during directory
      descending, where sumversion.c may parse stale *.mod files. It would emit
      'No such file or directory' warning when an object consisting a module is
      renamed, or when a single-obj module is turned into a multi-obj module or
      vice versa.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Acked-by: default avatarNicolas Pitre <nico@fluxnic.net>
      b7dca6dd
    • Masahiro Yamada's avatar
      kbuild: export_report: read modules.order instead of .tmp_versions/*.mod · 7deb55f5
      Masahiro Yamada authored
      Towards the goal of removing MODVERDIR aka .tmp_versions, read out
      modules.order to get the list of modules to be processed. This is
      simpler than parsing *.mod files in .tmp_versions.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      7deb55f5
    • Masahiro Yamada's avatar
      kbuild: modpost: read modules.order instead of $(MODVERDIR)/*.mod · ff9b45c5
      Masahiro Yamada authored
      Towards the goal of removing MODVERDIR, read out modules.order to get
      the list of modules to be processed. This is simpler than parsing *.mod
      files in $(MODVERDIR).
      
      For external modules, $(KBUILD_EXTMOD)/modules.order should be read.
      
      I removed the single target %.ko from the top Makefile. To make sure
      modpost works correctly, vmlinux and the other modules must be built.
      You cannot build a particular .ko file alone.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      ff9b45c5
    • Masahiro Yamada's avatar
      kbuild: modsign: read modules.order instead of $(MODVERDIR)/*.mod · c35c87d6
      Masahiro Yamada authored
      Towards the goal of removing MODVERDIR, read out modules.order to get
      the list of modules to be signed. This is simpler than parsing *.mod
      files in $(MODVERDIR).
      
      The modules_sign target is only supported for in-kernel modules.
      So, this commit does not take care of external modules.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      c35c87d6
    • Masahiro Yamada's avatar
      kbuild: modinst: read modules.order instead of $(MODVERDIR)/*.mod · d56aec10
      Masahiro Yamada authored
      Towards the goal of removing MODVERDIR, read out modules.order to get
      the list of modules to be installed. This is simpler than parsing *.mod
      files in $(MODVERDIR).
      
      For external modules, $(KBUILD_EXTMOD)/modules.order should be read.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      d56aec10
    • Masahiro Yamada's avatar
      scsi: remove pointless $(MODVERDIR)/$(obj)/53c700.ver · 0e5d8b7f
      Masahiro Yamada authored
      Nothing depends on this, so it is dead code.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      0e5d8b7f
    • Masahiro Yamada's avatar
      kbuild: remove duplication from modules.order in sub-directories · e0e1b1ec
      Masahiro Yamada authored
      Currently, only the top-level modules.order drops duplicated entries.
      
      The modules.order files in sub-directories potentially contain
      duplication. To list out the paths of all modules, I want to use
      modules.order instead of parsing *.mod files in $(MODVERDIR).
      
      To achieve this, I want to rip off duplication from modules.order
      of external modules too.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      e0e1b1ec
    • Masahiro Yamada's avatar
      kbuild: get rid of kernel/ prefix from in-tree modules.{order,builtin} · 1bd9a468
      Masahiro Yamada authored
      Removing the 'kernel/' prefix will make our life easier because we can
      simply do 'cat modules.order' to get all built modules with full paths.
      
      Currently, we parse the first line of '*.mod' files in $(MODVERDIR).
      Since we have duplicated functionality here, I plan to remove MODVERDIR
      entirely.
      
      In fact, modules.order is generated also for external modules in a
      broken format. It adds the 'kernel/' prefix to the absolute path of
      the module, like this:
      
        kernel//path/to/your/external/module/foo.ko
      
      This is fine for now since modules.order is not used for external
      modules. However, I want to sanitize the format everywhere towards
      the goal of removing MODVERDIR.
      
      We cannot change the format of installed module.{order,builtin}.
      So, 'make modules_install' will add the 'kernel/' prefix while copying
      them to $(MODLIB)/.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      1bd9a468
    • Masahiro Yamada's avatar
      kbuild: do not create empty modules.order in the prepare stage · 7e131918
      Masahiro Yamada authored
      Currently, $(objtree)/modules.order is touched in two places.
      
      In the 'prepare0' rule, scripts/Makefile.build creates an empty
      modules.order while processing 'obj=.'
      
      In the 'modules' rule, the top-level Makefile overwrites it with
      the correct list of modules.
      
      While this might be a good side-effect that modules.order is made
      empty every time (probably this is not intended functionality),
      I personally do not like this behavior.
      
      Create modules.order only when it is sensible to do so.
      
      This avoids creating the following pointless files:
      
        scripts/basic/modules.order
        scripts/dtc/modules.order
        scripts/gcc-plugins/modules.order
        scripts/genksyms/modules.order
        scripts/mod/modules.order
        scripts/modules.order
        scripts/selinux/genheaders/modules.order
        scripts/selinux/mdp/modules.order
        scripts/selinux/modules.order
      
      Going forward, $(objtree)/modules.order lists the modules that
      was built in the last successful build.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      7e131918
    • Himanshu Jha's avatar
      coccinelle: api: add devm_platform_ioremap_resource script · d09778d1
      Himanshu Jha authored
      Use recently introduced devm_platform_ioremap_resource
      helper which wraps platform_get_resource() and
      devm_ioremap_resource() together. This helps produce much
      cleaner code and remove local `struct resource` declaration.
      Signed-off-by: default avatarHimanshu Jha <himanshujha199640@gmail.com>
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      d09778d1
    • Masahiro Yamada's avatar
      kbuild: compile-test headers listed in header-test-m as well · 4bd01de8
      Masahiro Yamada authored
      It will be useful to control the header-test by a tristate option.
      
      If CONFIG_FOO is a tristate option, you can write like this:
      
        header-test-$(CONFIG_FOO) += foo.h
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      4bd01de8
    • Masahiro Yamada's avatar
      kbuild: remove unused hostcc-option · c04d1e46
      Masahiro Yamada authored
      We can re-add this whenever it is needed. At this moment, it is unused.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      c04d1e46
    • Masahiro Yamada's avatar
      kbuild: remove tag files by distclean instead of mrproper · 46457133
      Masahiro Yamada authored
      It takes somewhat long time to generate these tag files.
      Keep such precious files until we run 'make distclean'.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      46457133
    • Masahiro Yamada's avatar
      kbuild: add --hash-style= and --build-id unconditionally · 89ff7131
      Masahiro Yamada authored
      As commit 1e022137 ("mips: vdso: drop unnecessary cc-ldoption")
      explained, these flags are supported by the minimal required version
      of binutils. They are supported by ld.lld too.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Reviewed-by: default avatarNathan Chancellor <natechancellor@gmail.com>
      Tested-by: default avatarNathan Chancellor <natechancellor@gmail.com>
      89ff7131
    • Masahiro Yamada's avatar
      kbuild: get rid of misleading $(AS) from documents · 5ef87263
      Masahiro Yamada authored
      The assembler files in the kernel are *.S instead of *.s, so they must
      be preprocessed. Since 'as' of GNU binutils is not able to preprocess,
      we always use $(CC) as an assembler driver.
      
      $(AS) is almost unused in Kbuild. As of v5.2, there is just one place
      that directly invokes $(AS).
      
        $ git grep -e '$(AS)' -e '${AS}' -e '$AS' -e '$(AS:' -e '${AS:' -- :^Documentation
        drivers/net/wan/Makefile:  AS68K = $(AS)
      
      The documentation about *_AFLAGS* sounds like the flags were passed
      to $(AS). This is somewhat misleading.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Reviewed-by: default avatarNathan Chancellor <natechancellor@gmail.com>
      5ef87263
    • Masahiro Yamada's avatar
      kconfig: fix missing choice values in auto.conf · 8e2442a5
      Masahiro Yamada authored
      Since commit 00c864f8 ("kconfig: allow all config targets to write
      auto.conf if missing"), Kconfig creates include/config/auto.conf in the
      defconfig stage when it is missing.
      
      Joonas Kylmälä reported incorrect auto.conf generation under some
      circumstances.
      
      To reproduce it, apply the following diff:
      
      |  --- a/arch/arm/configs/imx_v6_v7_defconfig
      |  +++ b/arch/arm/configs/imx_v6_v7_defconfig
      |  @@ -345,14 +345,7 @@ CONFIG_USB_CONFIGFS_F_MIDI=y
      |   CONFIG_USB_CONFIGFS_F_HID=y
      |   CONFIG_USB_CONFIGFS_F_UVC=y
      |   CONFIG_USB_CONFIGFS_F_PRINTER=y
      |  -CONFIG_USB_ZERO=m
      |  -CONFIG_USB_AUDIO=m
      |  -CONFIG_USB_ETH=m
      |  -CONFIG_USB_G_NCM=m
      |  -CONFIG_USB_GADGETFS=m
      |  -CONFIG_USB_FUNCTIONFS=m
      |  -CONFIG_USB_MASS_STORAGE=m
      |  -CONFIG_USB_G_SERIAL=m
      |  +CONFIG_USB_FUNCTIONFS=y
      |   CONFIG_MMC=y
      |   CONFIG_MMC_SDHCI=y
      |   CONFIG_MMC_SDHCI_PLTFM=y
      
      And then, run:
      
      $ make ARCH=arm mrproper imx_v6_v7_defconfig
      
      You will see CONFIG_USB_FUNCTIONFS=y is correctly contained in the
      .config, but not in the auto.conf.
      
      Please note drivers/usb/gadget/legacy/Kconfig is included from a choice
      block in drivers/usb/gadget/Kconfig. So USB_FUNCTIONFS is a choice value.
      
      This is probably a similar situation described in commit beaaddb6
      ("kconfig: tests: test defconfig when two choices interact").
      
      When sym_calc_choice() is called, the choice symbol forgets the
      SYMBOL_DEF_USER unless all of its choice values are explicitly set by
      the user.
      
      The choice symbol is given just one chance to recall it because
      set_all_choice_values() is called if SYMBOL_NEED_SET_CHOICE_VALUES
      is set.
      
      When sym_calc_choice() is called again, the choice symbol forgets it
      forever, since SYMBOL_NEED_SET_CHOICE_VALUES is a one-time aid.
      Hence, we cannot call sym_clear_all_valid() again and again.
      
      It is crazy to repeat set and unset of internal flags. However, we
      cannot simply get rid of "sym->flags &= flags | ~SYMBOL_DEF_USER;"
      Doing so would re-introduce the problem solved by commit 5d09598d
      ("kconfig: fix new choices being skipped upon config update").
      
      To work around the issue, conf_write_autoconf() stopped calling
      sym_clear_all_valid().
      
      conf_write() must be changed accordingly. Currently, it clears
      SYMBOL_WRITE after the symbol is written into the .config file. This
      is needed to prevent it from writing the same symbol multiple times in
      case the symbol is declared in two or more locations. I added the new
      flag SYMBOL_WRITTEN, to track the symbols that have been written.
      
      Anyway, this is a cheesy workaround in order to suppress the issue
      as far as defconfig is concerned.
      
      Handling of choices is totally broken. sym_clear_all_valid() is called
      every time a user touches a symbol from the GUI interface. To reproduce
      it, just add a new symbol drivers/usb/gadget/legacy/Kconfig, then touch
      around unrelated symbols from menuconfig. USB_FUNCTIONFS will disappear
      from the .config file.
      
      I added the Fixes tag since it is more fatal than before. But, this
      has been broken since long long time before, and still it is.
      We should take a closer look to fix this correctly somehow.
      
      Fixes: 00c864f8 ("kconfig: allow all config targets to write auto.conf if missing")
      Cc: linux-stable <stable@vger.kernel.org> # 4.19+
      Reported-by: default avatarJoonas Kylmälä <joonas.kylmala@iki.fi>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Tested-by: default avatarJoonas Kylmälä <joonas.kylmala@iki.fi>
      8e2442a5
    • Cedric Hombourger's avatar
      builddeb: generate multi-arch friendly linux-libc-dev package · 5a464217
      Cedric Hombourger authored
      Debian-based distributions place libc header files in a machine
      specific directory (/usr/include/<libc-machine>) instead of
      /usr/include/asm to support installation of the linux-libc-dev
      package from multiple architectures. Move headers installed by
      "make headers_install" accordingly using Debian's tuple from
      dpkg-architecture (stored in debian/arch).
      Signed-off-by: default avatarCedric Hombourger <Cedric_Hombourger@mentor.com>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      5a464217
    • Masahiro Yamada's avatar
      kconfig: run olddefconfig instead of oldconfig after merging fragments · 3266c806
      Masahiro Yamada authored
      'make olddefconfig' is non-interactive, so we can drop 'yes'.
      The behavior is equivalent.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      3266c806
    • Masahiro Yamada's avatar
      riscv: drop unneeded -Wall addition · b74c0cad
      Masahiro Yamada authored
      The top level Makefile adds -Wall globally:
      
        KBUILD_CFLAGS   := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
      
      For riscv, I see two "-Wall" added for compiling each object.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      b74c0cad
    • Masahiro Yamada's avatar
      memory: ti-emif-sram: move driver-specific asm-offset.h to drivers/memory/ · eef58fdd
      Masahiro Yamada authored
      <generated/ti-emif-asm-offsets.h> is only generated and included
      by drivers/memory/, so it does not need to reside in the globally
      visible include/generated/.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Acked-by: default avatarSantosh Shilimkar <ssantosh@kernel.org>
      eef58fdd
  3. 16 Jul, 2019 7 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190715' of git://git.kernel.dk/linux-block · 9637d517
      Linus Torvalds authored
      Pull more block updates from Jens Axboe:
       "A later pull request with some followup items. I had some vacation
        coming up to the merge window, so certain things items were delayed a
        bit. This pull request also contains fixes that came in within the
        last few days of the merge window, which I didn't want to push right
        before sending you a pull request.
      
        This contains:
      
         - NVMe pull request, mostly fixes, but also a few minor items on the
           feature side that were timing constrained (Christoph et al)
      
         - Report zones fixes (Damien)
      
         - Removal of dead code (Damien)
      
         - Turn on cgroup psi memstall (Josef)
      
         - block cgroup MAINTAINERS entry (Konstantin)
      
         - Flush init fix (Josef)
      
         - blk-throttle low iops timing fix (Konstantin)
      
         - nbd resize fixes (Mike)
      
         - nbd 0 blocksize crash fix (Xiubo)
      
         - block integrity error leak fix (Wenwen)
      
         - blk-cgroup writeback and priority inheritance fixes (Tejun)"
      
      * tag 'for-linus-20190715' of git://git.kernel.dk/linux-block: (42 commits)
        MAINTAINERS: add entry for block io cgroup
        null_blk: fixup ->report_zones() for !CONFIG_BLK_DEV_ZONED
        block: Limit zone array allocation size
        sd_zbc: Fix report zones buffer allocation
        block: Kill gfp_t argument of blkdev_report_zones()
        block: Allow mapping of vmalloc-ed buffers
        block/bio-integrity: fix a memory leak bug
        nvme: fix NULL deref for fabrics options
        nbd: add netlink reconfigure resize support
        nbd: fix crash when the blksize is zero
        block: Disable write plugging for zoned block devices
        block: Fix elevator name declaration
        block: Remove unused definitions
        nvme: fix regression upon hot device removal and insertion
        blk-throttle: fix zero wait time for iops throttled group
        block: Fix potential overflow in blk_report_zones()
        blkcg: implement REQ_CGROUP_PUNT
        blkcg, writeback: Implement wbc_blkcg_css()
        blkcg, writeback: Add wbc->no_cgroup_owner
        blkcg, writeback: Rename wbc_account_io() to wbc_account_cgroup_owner()
        ...
      9637d517
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 273cbf61
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "New stuff from the I2C world:
      
         - in the core, getting irqs from ACPI is now similar to OF
      
         - new driver for MediaTek MT7621/7628/7688 SoCs
      
         - bcm2835, i801, and tegra drivers got some more attention
      
         - GPIO API cleanups
      
         - cleanups in the core headers
      
         - lots of usual driver updates"
      
      * 'i2c/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (74 commits)
        i2c: mt7621: Fix platform_no_drv_owner.cocci warnings
        i2c: cpm: remove casting dma_alloc
        dt-bindings: i2c: sun6i-p2wi: Fix the binding example
        dt-bindings: i2c: mv64xxx: Fix the example compatible
        i2c: i801: Documentation update
        i2c: i801: Add support for Intel Tiger Lake
        i2c: i801: Fix PCI ID sorting
        dt-bindings: i2c-stm32: document optional dmas
        i2c: i2c-stm32f7: Add I2C_SMBUS_I2C_BLOCK_DATA support
        i2c: core: Tidy up handling of init_irq
        i2c: core: Move ACPI gpio IRQ handling into i2c_acpi_get_irq
        i2c: core: Move ACPI IRQ handling to probe time
        i2c: acpi: Factor out getting the IRQ from ACPI
        i2c: acpi: Use available IRQ helper functions
        i2c: core: Allow whole core to use i2c_dev_irq_from_resources
        eeprom: at24: modify a comment referring to platform data
        dt-bindings: i2c: omap: Add new compatible for J721E SoCs
        dt-bindings: i2c: mv64xxx: Add YAML schemas
        dt-bindings: i2c: sun6i-p2wi: Add YAML schemas
        i2c: mt7621: Add MediaTek MT7621/7628/7688 I2C driver
        ...
      273cbf61
    • Linus Torvalds's avatar
      Merge tag 'for-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 5fe7b600
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
       "Core:
         - add HWMON compat layer
         - new properties:
             - input power limit
             - input voltage limit
      
        Drivers:
         - qcom-pon: add gen2 support
         - new driver for storing reboot move in NVMEM
         - new driver for Wilco EC charger configuration
         - simplify getting the adapter of a client"
      
      * tag 'for-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
        power: reset: nvmem-reboot-mode: add CONFIG_OF dependency
        power_supply: wilco_ec: Add charging config driver
        power: supply: cros: allow to set input voltage and current limit
        power: supply: add input power and voltage limit properties
        power: supply: fix semicolon.cocci warnings
        power: reset: nvmem-reboot-mode: use NVMEM as reboot mode write interface
        dt-bindings: power: reset: add document for NVMEM based reboot-mode
        reset: qcom-pon: Add support for gen2 pon
        dt-bindings: power: reset: qcom: Add qcom,pm8998-pon compatibility line
        power: supply: Add HWMON compatibility layer
        power: supply: sbs-manager: simplify getting the adapter of a client
        power: supply: rt9455_charger: simplify getting the adapter of a client
        power: supply: rt5033_battery: simplify getting the adapter of a client
        power: supply: max17042_battery: simplify getting the adapter of a client
        power: supply: max17040_battery: simplify getting the adapter of a client
        power: supply: max14656_charger_detector: simplify getting the adapter of a client
        power: supply: bq25890_charger: simplify getting the adapter of a client
        power: supply: bq24257_charger: simplify getting the adapter of a client
        power: supply: bq24190_charger: simplify getting the adapter of a client
      5fe7b600
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · fb4da215
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
       "Enumeration changes:
      
         - Evaluate PCI Boot Configuration _DSM to learn if firmware wants us
           to preserve its resource assignments (Benjamin Herrenschmidt)
      
         - Simplify resource distribution (Nicholas Johnson)
      
         - Decode 32 GT/s link speed (Gustavo Pimentel)
      
        Virtualization:
      
         - Fix incorrect caching of VF config space size (Alex Williamson)
      
         - Fix VF driver probing sysfs knobs (Alex Williamson)
      
        Peer-to-peer DMA:
      
         - Fix dma_virt_ops check (Logan Gunthorpe)
      
        Altera host bridge driver:
      
         - Allow building as module (Ley Foon Tan)
      
        Armada 8K host bridge driver:
      
         - add PHYs support (Miquel Raynal)
      
        DesignWare host bridge driver:
      
         - Export APIs to support removable loadable module (Vidya Sagar)
      
         - Enable Relaxed Ordering erratum workaround only on Tegra20 &
           Tegra30 (Vidya Sagar)
      
        Hyper-V host bridge driver:
      
         - Fix use-after-free in eject (Dexuan Cui)
      
        Mobiveil host bridge driver:
      
         - Clean up and fix many issues, including non-identify mapped
           windows, 64-bit windows, multi-MSI, class code, INTx clearing (Hou
           Zhiqiang)
      
        Qualcomm host bridge driver:
      
         - Use clk bulk API for 2.4.0 controllers (Bjorn Andersson)
      
         - Add QCS404 support (Bjorn Andersson)
      
         - Assert PERST for at least 100ms (Niklas Cassel)
      
        R-Car host bridge driver:
      
         - Add r8a774a1 DT support (Biju Das)
      
        Tegra host bridge driver:
      
         - Add support for Gen2, opportunistic UpdateFC and ACK (PCIe protocol
           details) AER, GPIO-based PERST# (Manikanta Maddireddy)
      
         - Fix many issues, including power-on failure cases, interrupt
           masking in suspend, UPHY settings, AFI dynamic clock gating,
           pending DLL transactions (Manikanta Maddireddy)
      
        Xilinx host bridge driver:
      
         - Fix NWL Multi-MSI programming (Bharat Kumar Gogada)
      
        Endpoint support:
      
         - Fix 64bit BAR support (Alan Mikhak)
      
         - Fix pcitest build issues (Alan Mikhak, Andy Shevchenko)
      
        Bug fixes:
      
         - Fix NVIDIA GPU multi-function power dependencies (Abhishek Sahu)
      
         - Fix NVIDIA GPU HDA enablement issue (Lukas Wunner)
      
         - Ignore lockdep for sysfs "remove" (Marek Vasut)
      
        Misc:
      
         - Convert docs to reST (Changbin Du, Mauro Carvalho Chehab)"
      
      * tag 'pci-v5.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (107 commits)
        PCI: Enable NVIDIA HDA controllers
        tools: PCI: Fix installation when `make tools/pci_install`
        PCI: dwc: pci-dra7xx: Fix compilation when !CONFIG_GPIOLIB
        PCI: Fix typos and whitespace errors
        PCI: mobiveil: Fix INTx interrupt clearing in mobiveil_pcie_isr()
        PCI: mobiveil: Fix infinite-loop in the INTx handling function
        PCI: mobiveil: Move PCIe PIO enablement out of inbound window routine
        PCI: mobiveil: Add upper 32-bit PCI base address setup in inbound window
        PCI: mobiveil: Add upper 32-bit CPU base address setup in outbound window
        PCI: mobiveil: Mask out hardcoded bits in inbound/outbound windows setup
        PCI: mobiveil: Clear the control fields before updating it
        PCI: mobiveil: Add configured inbound windows counter
        PCI: mobiveil: Fix the valid check for inbound and outbound windows
        PCI: mobiveil: Clean-up program_{ib/ob}_windows()
        PCI: mobiveil: Remove an unnecessary return value check
        PCI: mobiveil: Fix error return values
        PCI: mobiveil: Refactor the MEM/IO outbound window initialization
        PCI: mobiveil: Make some register updates more readable
        PCI: mobiveil: Reformat the code for readability
        dt-bindings: PCI: mobiveil: Change gpio_slave and apb_csr to optional
        ...
      fb4da215
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 2a3c389a
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "A smaller cycle this time. Notably we see another new driver, 'Soft
        iWarp', and the deletion of an ancient unused driver for nes.
      
         - Revise and simplify the signature offload RDMA MR APIs
      
         - More progress on hoisting object allocation boiler plate code out
           of the drivers
      
         - Driver bug fixes and revisions for hns, hfi1, efa, cxgb4, qib,
           i40iw
      
         - Tree wide cleanups: struct_size, put_user_page, xarray, rst doc
           conversion
      
         - Removal of obsolete ib_ucm chardev and nes driver
      
         - netlink based discovery of chardevs and autoloading of the modules
           providing them
      
         - Move more of the rdamvt/hfi1 uapi to include/uapi/rdma
      
         - New driver 'siw' for software based iWarp running on top of netdev,
           much like rxe's software RoCE.
      
         - mlx5 feature to report events in their raw devx format to userspace
      
         - Expose per-object counters through rdma tool
      
         - Adaptive interrupt moderation for RDMA (DIM), sharing the DIM core
           from netdev"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (194 commits)
        RMDA/siw: Require a 64 bit arch
        RDMA/siw: Mark expected switch fall-throughs
        RDMA/core: Fix -Wunused-const-variable warnings
        rdma/siw: Remove set but not used variable 's'
        rdma/siw: Add missing dependencies on LIBCRC32C and DMA_VIRT_OPS
        RDMA/siw: Add missing rtnl_lock around access to ifa
        rdma/siw: Use proper enumerated type in map_cqe_status
        RDMA/siw: Remove unnecessary kthread create/destroy printouts
        IB/rdmavt: Fix variable shadowing issue in rvt_create_cq
        RDMA/core: Fix race when resolving IP address
        RDMA/core: Make rdma_counter.h compile stand alone
        IB/core: Work on the caller socket net namespace in nldev_newlink()
        RDMA/rxe: Fill in wc byte_len with IB_WC_RECV_RDMA_WITH_IMM
        RDMA/mlx5: Set RDMA DIM to be enabled by default
        RDMA/nldev: Added configuration of RDMA dynamic interrupt moderation to netlink
        RDMA/core: Provide RDMA DIM support for ULPs
        linux/dim: Implement RDMA adaptive moderation (DIM)
        IB/mlx5: Report correctly tag matching rendezvous capability
        docs: infiniband: add it to the driver-api bookset
        IB/mlx5: Implement VHCA tunnel mechanism in DEVX
        ...
      2a3c389a
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 8de26253
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "Core Frameworks:
         - Set 'struct device' fwnode when registering a new device
      
        New Drivers:
         - Add support for ROHM BD70528 PMIC
      
        New Device Support:
         - Add support for LP87561 4-Phase Regulator to TI LP87565 PMIC
         - Add support for RK809 and RK817 to Rockchip RK808
         - Add support for Lid Angle to ChromeOS core
         - Add support for CS47L15 CODEC to Madera core
         - Add support for CS47L92 CODEC to Madera core
         - Add support for ChromeOS (legacy) Accelerometers in ChromeOS core
         - Add support for Add Intel Elkhart Lake PCH to Intel LPSS
      
        New Functionality:
         - Provide regulator supply information when registering; madera-core
         - Additional Device Tree support; lp87565, madera, cros-ec, rohm,bd71837-pmic
         - Allow over-riding power button press via Device Tree; rohm-bd718x7
         - Differentiate between running processors; cros_ec_dev
      
        Fix-ups:
         - Big header file update; cros_ec_commands.h
         - Split header per-subsystem; rohm-bd718x7
         - Remove superfluous code; menelaus, cs5535-mfd, cs47lXX-tables
         - Trivial; sorting, coding style; intel-lpss-pci
         - Only remove Power Off functionality if set locally; rk808
         - Make use for Power Off Prepare(); rk808
         - Fix spelling mistake in header guards; stmfx
         - Properly free IDA resources
         - SPDX fixups; cs47lXX-tables, madera
         - Error path fixups; hi655x-pmic
      
        Bug Fixes:
         - Add missing break in case() statement
         - Repair undefined behaviour when not initialising variables; arizona-core, madera-core
         - Fix reference to Device Tree documentation; madera"
      
      * tag 'mfd-next-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (45 commits)
        mfd: hi655x-pmic: Fix missing return value check for devm_regmap_init_mmio_clk
        mfd: madera: Fixup SPDX headers
        mfd: madera: Remove some unused registers and fix some defaults
        mfd: intel-lpss: Release IDA resources
        mfd: intel-lpss: Add Intel Elkhart Lake PCH PCI IDs
        mfd: cs5535-mfd: Remove ifdef OLPC noise
        mfd: stmfx: Fix macro definition spelling
        dt-bindings: mfd: Add link to ROHM BD71847 Datasheet
        MAINAINERS: Swap words in INTEL PMIC MULTIFUNCTION DEVICE DRIVERS
        mfd: cros_ec_dev: Register cros_ec_accel_legacy driver as a subdevice
        mfd: rk808: Prepare rk805 for poweroff
        mfd: rk808: Check pm_power_off pointer
        mfd: cros_ec: differentiate SCP from EC by feature bit
        dt-bindings: Add binding for cros-ec-rpmsg
        mfd: madera: Add Madera core support for CS47L92
        mfd: madera: Add Madera core support for CS47L15
        mfd: madera: Update DT bindings to add additional CODECs
        mfd: madera: Add supply mapping for MICVDD
        mfd: madera: Fix potential uninitialised use of variable
        mfd: madera: Fix bad reference to pinctrl.txt file
        ...
      8de26253
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2019-07-16' of git://anongit.freedesktop.org/drm/drm · be8454af
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "The biggest thing in this is the AMD Navi GPU support, this again
        contains a bunch of header files that are large. These are the new AMD
        RX5700 GPUs that just recently became available.
      
        New drivers:
         - ST-Ericsson MCDE driver
         - Ingenic JZ47xx SoC
      
        UAPI change:
         - HDR source metadata property
      
        Core:
         - HDR inforframes and EDID parsing
         - drm hdmi infoframe unpacking
         - remove prime sg_table caching into dma-buf
         - New gem vram helpers to reduce driver code
         - Lots of drmP.h removal
         - reservation fencing fix
         - documentation updates
         - drm_fb_helper_connector removed
         - mode name command handler rewrite
      
        fbcon:
         - Remove the fbcon notifiers
      
        ttm:
         - forward progress fixes
      
        dma-buf:
         - make mmap call optional
         - debugfs refcount fixes
         - dma-fence free with pending signals fix
         - each dma-buf gets an inode
      
        Panels:
         - Lots of additional panel bindings
      
        amdgpu:
         - initial navi10 support
         - avoid hw reset
         - HDR metadata support
         - new thermal sensors for vega asics
         - RAS fixes
         - use HMM rather than MMU notifier
         - xgmi topology via kfd
         - SR-IOV fixes
         - driver reload fixes
         - DC use a core bpc attribute
         - Aux fixes for DC
         - Bandwidth calc updates for DC
         - Clock handling refactor
         - kfd VEGAM support
      
        vmwgfx:
         - Coherent memory support changes
      
        i915:
         - HDR Support
         - HDMI i2c link
         - Icelake multi-segmented gamma support
         - GuC firmware update
         - Mule Creek Canyon PCH support for EHL
         - EHL platform updtes
         - move i915.alpha_support to i915.force_probe
         - runtime PM refactoring
         - VBT parsing refactoring
         - DSI fixes
         - struct mutex dependency reduction
         - GEM code reorg
      
        mali-dp:
         - Komeda driver features
      
        msm:
         - dsi vs EPROBE_DEFER fixes
         - msm8998 snapdragon 835 support
         - a540 gpu support
         - mdp5 and dpu interconnect support
      
        exynos:
         - drmP.h removal
      
        tegra:
         - misc fixes
      
        tda998x:
         - audio support improvements
         - pixel repeated mode support
         - quantisation range handling corrections
         - HDMI vendor info fix
      
        armada:
         - interlace support fix
         - overlay/video plane register handling refactor
         - add gamma support
      
        rockchip:
         - RX3328 support
      
        panfrost:
         - expose perf counters via hidden ioctls
      
        vkms:
         - enumerate CRC sources list
      
        ast:
         - rework BO handling
      
        mgag200:
         - rework BO handling
      
        dw-hdmi:
         - suspend/resume support
      
        rcar-du:
         - R8A774A1 Soc Support
         - LVDS dual-link mode support
         - Additional formats
         - Misc fixes
      
        omapdrm:
         - DSI command mode display support
      
        stm
         - fb modifier support
         - runtime PM support
      
        sun4i:
         - use vmap ops
      
        vc4:
         - binner bo binding rework
      
        v3d:
         - compute shader support
         - resync/sync fixes
         - job management refactoring
      
        lima:
         - NULL pointer in irq handler fix
         - scheduler default timeout
      
        virtio:
         - fence seqno support
         - trace events
      
        bochs:
         - misc fixes
      
        tc458767:
         - IRQ/HDP handling
      
        sii902x:
         - HDMI audio support
      
        atmel-hlcdc:
         - misc fixes
      
        meson:
         - zpos support"
      
      * tag 'drm-next-2019-07-16' of git://anongit.freedesktop.org/drm/drm: (1815 commits)
        Revert "Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next"
        Revert "mm: adjust apply_to_pfn_range interface for dropped token."
        mm: adjust apply_to_pfn_range interface for dropped token.
        drm/amdgpu/navi10: add uclk activity sensor
        drm/amdgpu: properly guard the generic discovery code
        drm/amdgpu: add missing documentation on new module parameters
        drm/amdgpu: don't invalidate caches in RELEASE_MEM, only do the writeback
        drm/amd/display: avoid 64-bit division
        drm/amdgpu/psp11: simplify the ucode register logic
        drm/amdgpu: properly guard DC support in navi code
        drm/amd/powerplay: vega20: fix uninitialized variable use
        drm/amd/display: dcn20: include linux/delay.h
        amdgpu: make pmu support optional
        drm/amd/powerplay: Zero initialize current_rpm in vega20_get_fan_speed_percent
        drm/amd/powerplay: Zero initialize freq in smu_v11_0_get_current_clk_freq
        drm/amd/powerplay: Use memset to initialize metrics structs
        drm/amdgpu/mes10.1: Fix header guard
        drm/amd/powerplay: add temperature sensor support for navi10
        drm/amdgpu: fix scheduler timeout calc
        drm/amdgpu: Prepare for hmm_range_register API change (v2)
        ...
      be8454af
  4. 15 Jul, 2019 8 commits
    • Dave Airlie's avatar
      Revert "Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next" · 3729fe2b
      Dave Airlie authored
      This reverts commit 031e610a, reversing
      changes made to 52d2d44e.
      
      The mm changes in there we premature and not fully ack or reviewed by core mm folks,
      I dropped the ball by merging them via this tree, so lets take em all back out.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      3729fe2b
    • Dave Airlie's avatar
      Revert "mm: adjust apply_to_pfn_range interface for dropped token." · 7e4b4dfc
      Dave Airlie authored
      This reverts commit 6dfc43d3.
      
      Going to revert the whole vmwwgfx pull.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      7e4b4dfc
    • Dave Airlie's avatar
      mm: adjust apply_to_pfn_range interface for dropped token. · 6dfc43d3
      Dave Airlie authored
      mm/pgtable: drop pgtable_t variable from pte_fn_t functions
      drops the token came in via the hmm tree, this caused lots of
      conflicts, but applying this cleanup patch should reduce it
      to something easier to handle. Just accept the token is unused
      at this point.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      6dfc43d3
    • Linus Torvalds's avatar
      Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · fec88ab0
      Linus Torvalds authored
      Pull HMM updates from Jason Gunthorpe:
       "Improvements and bug fixes for the hmm interface in the kernel:
      
         - Improve clarity, locking and APIs related to the 'hmm mirror'
           feature merged last cycle. In linux-next we now see AMDGPU and
           nouveau to be using this API.
      
         - Remove old or transitional hmm APIs. These are hold overs from the
           past with no users, or APIs that existed only to manage cross tree
           conflicts. There are still a few more of these cleanups that didn't
           make the merge window cut off.
      
         - Improve some core mm APIs:
             - export alloc_pages_vma() for driver use
             - refactor into devm_request_free_mem_region() to manage
               DEVICE_PRIVATE resource reservations
             - refactor duplicative driver code into the core dev_pagemap
               struct
      
         - Remove hmm wrappers of improved core mm APIs, instead have drivers
           use the simplified API directly
      
         - Remove DEVICE_PUBLIC
      
         - Simplify the kconfig flow for the hmm users and core code"
      
      * tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (42 commits)
        mm: don't select MIGRATE_VMA_HELPER from HMM_MIRROR
        mm: remove the HMM config option
        mm: sort out the DEVICE_PRIVATE Kconfig mess
        mm: simplify ZONE_DEVICE page private data
        mm: remove hmm_devmem_add
        mm: remove hmm_vma_alloc_locked_page
        nouveau: use devm_memremap_pages directly
        nouveau: use alloc_page_vma directly
        PCI/P2PDMA: use the dev_pagemap internal refcount
        device-dax: use the dev_pagemap internal refcount
        memremap: provide an optional internal refcount in struct dev_pagemap
        memremap: replace the altmap_valid field with a PGMAP_ALTMAP_VALID flag
        memremap: remove the data field in struct dev_pagemap
        memremap: add a migrate_to_ram method to struct dev_pagemap_ops
        memremap: lift the devmap_enable manipulation into devm_memremap_pages
        memremap: pass a struct dev_pagemap to ->kill and ->cleanup
        memremap: move dev_pagemap callbacks into a separate structure
        memremap: validate the pagemap type passed to devm_memremap_pages
        mm: factor out a devm_request_free_mem_region helper
        mm: export alloc_pages_vma
        ...
      fec88ab0
    • Linus Torvalds's avatar
      Merge tag 'ecryptfs-5.3-rc1-fixes' of... · fa6e951a
      Linus Torvalds authored
      Merge tag 'ecryptfs-5.3-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs
      
      Pull eCryptfs updates from Tyler Hicks:
      
       - Fix error handling when ecryptfs_read_lower() encounters an error
      
       - Fix read-only file creation when the eCryptfs mount is configured to
         store metadata in xattrs
      
       - Minor code cleanups
      
      * tag 'ecryptfs-5.3-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
        ecryptfs: Change return type of ecryptfs_process_flags
        ecryptfs: Make ecryptfs_xattr_handler static
        ecryptfs: remove unnessesary null check in ecryptfs_keyring_auth_tok_for_sig
        ecryptfs: use print_hex_dump_bytes for hexdump
        eCryptfs: fix permission denied with ecryptfs_xattr mount option when create readonly file
        ecryptfs: re-order a condition for static checkers
        eCryptfs: fix a couple type promotion bugs
      fa6e951a
    • Linus Torvalds's avatar
      Merge tag 'upstream-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs · a318423b
      Linus Torvalds authored
      Pull UBIFS updates from Richard Weinberger:
      
       - Support for zstd compression
      
       - Support for offline signed filesystems
      
       - Various fixes for regressions
      
      * tag 'upstream-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs:
        ubifs: Don't leak orphans on memory during commit
        ubifs: Check link count of inodes when killing orphans.
        ubifs: Add support for zstd compression.
        ubifs: support offline signed images
        ubifs: remove unnecessary check in ubifs_log_start_commit
        ubifs: Fix typo of output in get_cs_sqnum
        ubifs: Simplify redundant code
        ubifs: Correctly use tnc_next() in search_dh_cookie()
      a318423b
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · f2772a0e
      Linus Torvalds authored
      Pull UML updates from Richard Weinberger:
      
       - A new timer mode, time travel, for testing with UML
      
       - Many bugixes/improvements for the serial line driver
      
       - Various bugfixes
      
      * tag 'for-linus-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: fix build without CONFIG_UML_TIME_TRAVEL_SUPPORT
        um: Fix kcov crash during startup
        um: configs: Remove useless UEVENT_HELPER_PATH
        um: Support time travel mode
        um: Pass nsecs to os timer functions
        um: Remove drivers/ssl.h
        um: Don't garbage collect in deactivate_all_fds()
        um: Silence lockdep complaint about mmap_sem
        um: Remove locking in deactivate_all_fds()
        um: Timer code cleanup
        um: fix os_timer_one_shot()
        um: Fix IRQ controller regression on console read
      f2772a0e
    • Linus Torvalds's avatar
      Merge tag 'stream_open-5.3' of https://lab.nexedi.com/kirr/linux · fcd98147
      Linus Torvalds authored
      Pull stream_open() updates from Kirill Smelkov:
       "This time on stream_open front it is only two small changes:
      
         - the first one converts stream_open.cocci to treat all functions
           that start with wait_.* as blocking. Previously it was only
           wait_event_.* functions that were considered as blocking, but this
           was falsely reporting several deadlock cases as only warning.
      
           This was picked by linux-kbuild and entered mainline as commit
           0c4ab18f ("coccinelle: api/stream_open: treat all wait_.*()
           calls as blocking"), and already merged earlier.
      
         - the second one teaches stream_open.cocci to consider files as being
           stream-like even if they use noop_llseek. It results in two more
           drivers being converted to stream_open() (mousedev.c and
           hid-sensor-custom.c)"
      
      * tag 'stream_open-5.3' of https://lab.nexedi.com/kirr/linux:
        *: convert stream-like files -> stream_open, even if they use noop_llseek
      fcd98147