1. 03 Feb, 2020 7 commits
    • Masahiro Yamada's avatar
      kbuild: fix the document to use extra-y for vmlinux.lds · faa7bdd7
      Masahiro Yamada authored
      The difference between "always" and "extra-y" is that the targets
      listed in $(always) are always built, whereas the ones in $(extra-y)
      are built only when KBUILD_BUILTIN is set.
      
      So, "make modules" does not build the targets in $(extra-y).
      
      vmlinux.lds is only needed for linking vmlinux. So, adding it to extra-y
      is more correct. In fact, arch/x86/kernel/Makefile does this.
      
      Fix the example code.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      faa7bdd7
    • Masahiro Yamada's avatar
      kconfig: fix broken dependency in randconfig-generated .config · c8fb7d7e
      Masahiro Yamada authored
      Running randconfig on arm64 using KCONFIG_SEED=0x40C5E904 (e.g. on v5.5)
      produces the .config with CONFIG_EFI=y and CONFIG_CPU_BIG_ENDIAN=y,
      which does not meet the !CONFIG_CPU_BIG_ENDIAN dependency.
      
      This is because the user choice for CONFIG_CPU_LITTLE_ENDIAN vs
      CONFIG_CPU_BIG_ENDIAN is set by randomize_choice_values() after the
      value of CONFIG_EFI is calculated.
      
      When this happens, the has_changed flag should be set.
      
      Currently, it takes the result from the last iteration. It should
      accumulate all the results of the loop.
      
      Fixes: 3b9a19e0 ("kconfig: loop as long as we changed some symbols in randconfig")
      Reported-by: default avatarVincenzo Frascino <vincenzo.frascino@arm.com>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      c8fb7d7e
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 754beeec
      Linus Torvalds authored
      Pull char/misc fix from Greg KH:
       "Here is a single patch, that fixes up a commit that came in the
        previous char/misc merge.
      
        It fixes a bug in the hpet driver that everyone keeps tripping over in
        their automated testing. Good thing is, people are catching it. Bad
        thing it wasn't caught by anyone testing before this. Oh well...
      
        This has been in linux-next for a few days with no reported issues"
      
      * tag 'char-misc-5.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        char: hpet: Fix out-of-bounds read bug
      754beeec
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 2367da5b
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "Fix-ups:
         - Remove superfluous code in ams369fg06
         - Convert over to GPIO descriptor (gpiod) in bd6107
      
        Bug Fixes:
         - Fix unsigned comparison to less than zero in qcom-wled"
      
      * tag 'backlight-next-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: qcom-wled: Fix unsigned comparison to zero
        backlight: bd6107: Convert to use GPIO descriptor
        backlight: ams369fg06: Drop GPIO include
      2367da5b
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · af32f3a4
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Drivers:
         - Add support for ROHM BD71828 PMICs and GPIOs
         - Add support for Qualcomm Aqstic Audio Codecs WCD9340 and WCD9341
      
        New Device Support:
         - Add support for BD71828 to BD70528 RTC driver
         - Add support for Intel's Jasper Lake to LPSS PCI
      
        New Functionality:
         - Add support for Power Key to ROHM BD71828
         - Add support for Clocks to ROHM BD71828
         - Add support for GPIOs to Dialog DA9062
         - Add support for USB PD Notify to ChromiumOS EC
         - Allow callers to specify args when requesting regmap lookup; syscon
      
        Fix-ups:
         - Improve error handling and sanity checking; atmel-hlcdc, dln2
         - Device Tree support/documentation; bd71828, da9062, xylon,logicvc,
           ab8500, max14577, atmel-usart
         - Match devices using platform IDs; bd7xxxx
         - Refactor BD718x7 regulator component; bd718x7-regulator
         - Use standard interfaces/helpers; syscon, sm501
         - Trivial (whitespace, spelling, etc); ab8500-core, Kconfig
         - Remove unused code; db8500-prcmu, tqmx86
         - Wait until boot has finished before accessing registers;
           madera-core
         - Provide missing register value defaults; cs47l15-tables
         - Allow more time for hardware to reset; madera-core
      
        Bug Fixes:
         - Fix erroneous register values; rohm-bd70528
         - Fix register volatility; axp20x, rn5t618
         - Fix Kconfig dependencies; MFD_MAX77650
         - Fix incorrect compatible string; da9062-core
         - Fix syscon_regmap_lookup_by_phandle_args() stub; syscon"
      
      * tag 'mfd-next-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (41 commits)
        mfd: syscon: Fix syscon_regmap_lookup_by_phandle_args() dummy
        mfd: wcd934x: Add support to wcd9340/wcd9341 codec
        mfd: syscon: Add arguments support for syscon reference
        mfd: rn5t618: Mark ADC control register volatile
        dt-bindings: atmel-usart: Add microchip,sam9x60-{usart, dbgu}
        dt-bindings: atmel-usart: Remove wildcard
        mfd: cros_ec: Add cros-usbpd-notify subdevice
        mfd: da9062: Fix watchdog compatible string
        mfd: madera: Allow more time for hardware reset
        mfd: cs47l15: Add missing register default
        mfd: madera: Wait for boot done before accessing any other registers
        mfd: Kconfig: Rename Samsung to lowercase
        mfd: tqmx86: remove set but not used variable 'i2c_ien'
        mfd: dbx500-prcmu: Drop DSI pll clock functions
        mfd: dbx500-prcmu: Drop set_display_clocks()
        mfd: max77650: Select REGMAP_IRQ in Kconfig
        mfd: axp20x: Mark AXP20X_VBUS_IPSOUT_MGMT as volatile
        mfd: ab8500: Fix ab8500-clk typo
        mfd: intel-lpss: Add Intel Jasper Lake PCI IDs
        dt-bindings: mfd: max14577: Add reference to max14040_battery.txt descriptions
        ...
      af32f3a4
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux · d0fa9250
      Linus Torvalds authored
      Pull Hyper-V updates from Sasha Levin:
      
       - Most of the commits here are work to enable host-initiated
         hibernation support by Dexuan Cui.
      
       - Fix for a warning shown when host sends non-aligned balloon requests
         by Tianyu Lan.
      
      * tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        hv_utils: Add the support of hibernation
        hv_utils: Support host-initiated hibernation request
        hv_utils: Support host-initiated restart request
        Tools: hv: Reopen the devices if read() or write() returns errors
        video: hyperv: hyperv_fb: Use physical memory for fb on HyperV Gen 1 VMs.
        Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)
        video: hyperv_fb: Fix hibernation for the deferred IO feature
        Input: hyperv-keyboard: Add the support of hibernation
        hv_balloon: Balloon up according to request page number
      d0fa9250
    • Geert Uytterhoeven's avatar
      mfd: syscon: Fix syscon_regmap_lookup_by_phandle_args() dummy · 5312f321
      Geert Uytterhoeven authored
      If CONFIG_MFD_SYSCON=n:
      
          include/linux/mfd/syscon.h:54:23: warning: ‘syscon_regmap_lookup_by_phandle_args’ defined but not used [-Wunused-function]
      
      Fix this by adding the missing inline keyword.
      
      Fixes: 6a24f567 ("mfd: syscon: Add arguments support for syscon reference")
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      5312f321
  2. 02 Feb, 2020 4 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 46d6b7be
      Linus Torvalds authored
      Pull sparc fix from David Miller:
       "adjtimex regression fix from Arnd"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc64: fix adjtimex regression
      46d6b7be
    • Linus Torvalds's avatar
      Merge tag 'leds-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds · 545ae665
      Linus Torvalds authored
      Pull LED updates from Pavel Machek:
      
       - New driver for TI TPS6105X
      
       - Add managed API to get a LED from a device driver
      
       - Misc fixes and updates
      
      * tag 'leds-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds: (22 commits)
        leds: lm3692x: Disable chip on brightness 0
        leds: lm3692x: Split out lm3692x_leds_disable
        leds: lm3692x: Move lm3692x_init and rename to lm3692x_leds_enable
        leds: lm3692x: Make sure we don't exceed the maximum LED current
        dt: bindings: lm3692x: Add led-max-microamp property
        leds: lm3692x: Allow to configure over voltage protection
        dt: bindings: lm3692x: Add ti,ovp-microvolt property
        leds: populate the device's of_node
        leds: Add managed API to get a LED from a device driver
        leds: Add of_led_get() and led_put()
        leds: lm3532: add pointer to documentation and fix typo
        leds: lm3532: use extended registration so that LED can be used for backlight
        leds: lm3642: remove warnings for bad strtol, cleanup gotos
        leds: rb532: cleanup whitespace
        ledtrig-pattern: fix email address quoting in MODULE_AUTHOR()
        dt-bindings: mfd: update TI tps6105x chip bindings
        leds: tps6105x: add driver for MFD chip LED mode
        led: max77650: add of_match table
        leds: bd2802: Convert to use GPIO descriptors
        leds: pca963x: Fix open-drain initialization
        ...
      545ae665
    • Linus Torvalds's avatar
      Merge branch 'pcmcia-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux · 15f8e733
      Linus Torvalds authored
      Pull pcmcia updates from Dominik Brodowski:
       "This is a series co-developed by Simon Geis and Lukas Panzer to clean
        up the i82092 PCMCIA device driver"
      
      * 'pcmcia-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux:
        PCMCIA/i82092: remove #if 0 block
        PCMCIA/i82092: delete enter/leave macro
        PCMCIA/i82092: include <linux/io.h> instead of <asm/io.h>
        PCMCIA/i82092: shorten the lines with over 80 characters
        PCMCIA/i82092: move assignment out of if condition
        PCMCIA/i82092: change code indentation
        PCMCIA/i82092: insert blank line after declarations
        PCMCIA/i82092: remove braces around single statement blocks
        PCMCIA/i82092: add/remove spaces to improve readability
        PCMCIA/i82092: use dev_<level> instead of printk
      15f8e733
    • Arnd Bergmann's avatar
      sparc64: fix adjtimex regression · 11648b83
      Arnd Bergmann authored
      Anatoly Pugachev reported one of the y2038 patches to introduce
      a fatal bug from a stupid typo:
      
      [   96.384129] watchdog: BUG: soft lockup - CPU#8 stuck for 22s!
      ...
      [   96.385624]  [0000000000652ca4] handle_mm_fault+0x84/0x320
      [   96.385668]  [0000000000b6f2bc] do_sparc64_fault+0x43c/0x820
      [   96.385720]  [0000000000407754] sparc64_realfault_common+0x10/0x20
      [   96.385769]  [000000000042fa28] __do_sys_sparc_clock_adjtime+0x28/0x80
      [   96.385819]  [00000000004307f0] sys_sparc_clock_adjtime+0x10/0x20
      [   96.385866]  [0000000000406294] linux_sparc_syscall+0x34/0x44
      
      Fix the code to dereference the correct pointer again.
      Reported-by: default avatarAnatoly Pugachev <matorola@gmail.com>
      Tested-by: default avatarAnatoly Pugachev <matorola@gmail.com>
      Fixes: 251ec1c1 ("y2038: sparc: remove use of struct timex")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      11648b83
  3. 01 Feb, 2020 5 commits
    • Linus Torvalds's avatar
      Merge tag '5.6-rc-small-smb3-fix-for-stable' of git://git.samba.org/sfrench/cifs-2.6 · 94f2630b
      Linus Torvalds authored
      Pull cifs fix from Steve French:
       "Small SMB3 fix for stable (fixes problem with soft mounts)"
      
      * tag '5.6-rc-small-smb3-fix-for-stable' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: update internal module version number
        cifs: fix soft mounts hanging in the reconnect code
      94f2630b
    • Al Viro's avatar
      vfs: fix do_last() regression · 6404674a
      Al Viro authored
      Brown paperbag time: fetching ->i_uid/->i_mode really should've been
      done from nd->inode.  I even suggested that, but the reason for that has
      slipped through the cracks and I went for dir->d_inode instead - made
      for more "obvious" patch.
      
      Analysis:
      
       - at the entry into do_last() and all the way to step_into(): dir (aka
         nd->path.dentry) is known not to have been freed; so's nd->inode and
         it's equal to dir->d_inode unless we are already doomed to -ECHILD.
         inode of the file to get opened is not known.
      
       - after step_into(): inode of the file to get opened is known; dir
         might be pointing to freed memory/be negative/etc.
      
       - at the call of may_create_in_sticky(): guaranteed to be out of RCU
         mode; inode of the file to get opened is known and pinned; dir might
         be garbage.
      
      The last was the reason for the original patch.  Except that at the
      do_last() entry we can be in RCU mode and it is possible that
      nd->path.dentry->d_inode has already changed under us.
      
      In that case we are going to fail with -ECHILD, but we need to be
      careful; nd->inode is pointing to valid struct inode and it's the same
      as nd->path.dentry->d_inode in "won't fail with -ECHILD" case, so we
      should use that.
      Reported-by: default avatar"Rantala, Tommi T. (Nokia - FI/Espoo)" <tommi.t.rantala@nokia.com>
      Reported-by: syzbot+190005201ced78a74ad6@syzkaller.appspotmail.com
      Wearing-brown-paperbag: Al Viro <viro@zeniv.linux.org.uk>
      Cc: stable@kernel.org
      Fixes: d0cb5018 ("do_last(): fetch directory ->i_mode and ->i_uid before it's too late")
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6404674a
    • Linus Torvalds's avatar
      Merge tag 'kconfig-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 14cd0bd0
      Linus Torvalds authored
      Pull Kconfig updates from Masahiro Yamada:
      
       - add 'yes2modconfig' and 'mod2yesconfig' targets (useful mainly for
         turning syzbot configs into more modular ones as a step to minimizing
         the result)
      
       - sanitize help text
      
       - various code cleanups
      
      * tag 'kconfig-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kconfig: fix documentation typos
        kconfig: fix an "implicit declaration of function" warning
        kconfig: fix nesting of symbol help text
        kconfig: distinguish between dependencies and visibility in help text
        kconfig: list all definitions of a symbol in help text
        kconfig: Add yes2modconfig and mod2yesconfig targets.
        kconfig: use $(PERL) in Makefile
        kconfig: fix too deep indentation in Makefile
        kconfig: localmodconfig: fix indentation for closing brace
        kconfig: localmodconfig: remove unused $config
        kconfig: squash prop_alloc() into menu_add_prop()
        kconfig: remove sym from struct property
        kconfig: remove 'prompt' argument from menu_add_prop()
        kconfig: move prompt handling to menu_add_prompt() from menu_add_prop()
        kconfig: remove 'prompt' symbol
        kconfig: drop T_WORD from the RHS of 'prompt' symbol
        kconfig: use parent->dep as the parentdep of 'menu'
        kconfig: remove the rootmenu check in menu_add_prop()
      14cd0bd0
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 368d060b
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - detect missing include guard in UAPI headers
      
       - do not create orphan built-in.a or obj-y objects
      
       - generate modules.builtin more simply, and drop tristate.conf
      
       - simplify built-in initramfs creation
      
       - make linux-headers deb package thinner
      
       - optimize the deb package build script
      
       - misc cleanups
      
      * tag 'kbuild-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (34 commits)
        builddeb: split libc headers deployment out into a function
        builddeb: split kernel headers deployment out into a function
        builddeb: remove redundant make for ARCH=um
        builddeb: avoid invoking sub-shells where possible
        builddeb: remove redundant $objtree/
        builddeb: match temporary directory name to the package name
        builddeb: remove unneeded files in hdrobjfiles for headers package
        kbuild: use -S instead of -E for precise cc-option test in Kconfig
        builddeb: allow selection of .deb compressor
        kbuild: remove 'Building modules, stage 2.' log
        kbuild: remove *.tmp file when filechk fails
        kbuild: remove PYTHON2 variable
        modpost: assume STT_SPARC_REGISTER is defined
        gen_initramfs.sh: remove intermediate cpio_list on errors
        initramfs: refactor the initramfs build rules
        gen_initramfs.sh: always output cpio even without -o option
        initramfs: add default_cpio_list, and delete -d option support
        initramfs: generate dependency list and cpio at the same time
        initramfs: specify $(src)/gen_initramfs.sh as a prerequisite in Makefile
        initramfs: make initramfs compression choice non-optional
        ...
      368d060b
    • Linus Torvalds's avatar
      Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · acd77500
      Linus Torvalds authored
      Pull random changes from Ted Ts'o:
       "Change /dev/random so that it uses the CRNG and only blocking if the
        CRNG hasn't initialized, instead of the old blocking pool. Also clean
        up archrandom.h, and some other miscellaneous cleanups"
      
      * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: (24 commits)
        s390x: Mark archrandom.h functions __must_check
        powerpc: Mark archrandom.h functions __must_check
        powerpc: Use bool in archrandom.h
        x86: Mark archrandom.h functions __must_check
        linux/random.h: Mark CONFIG_ARCH_RANDOM functions __must_check
        linux/random.h: Use false with bool
        linux/random.h: Remove arch_has_random, arch_has_random_seed
        s390: Remove arch_has_random, arch_has_random_seed
        powerpc: Remove arch_has_random, arch_has_random_seed
        x86: Remove arch_has_random, arch_has_random_seed
        random: remove some dead code of poolinfo
        random: fix typo in add_timer_randomness()
        random: Add and use pr_fmt()
        random: convert to ENTROPY_BITS for better code readability
        random: remove unnecessary unlikely()
        random: remove kernel.random.read_wakeup_threshold
        random: delete code to pull data into pools
        random: remove the blocking pool
        random: make /dev/random be almost like /dev/urandom
        random: ignore GRND_RANDOM in getentropy(2)
        ...
      acd77500
  4. 31 Jan, 2020 24 commits
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.6-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 26dca6db
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
      
       "Resource management:
      
         - Improve resource assignment for hot-added nested bridges, e.g.,
           Thunderbolt (Nicholas Johnson)
      
        Power management:
      
         - Optionally print config space of devices before suspend (Chen Yu)
      
         - Increase D3 delay for AMD Ryzen5/7 XHCI controllers (Daniel Drake)
      
        Virtualization:
      
         - Generalize DMA alias quirks (James Sewart)
      
         - Add DMA alias quirk for PLX PEX NTB (James Sewart)
      
         - Fix IOV memory leak (Navid Emamdoost)
      
        AER:
      
         - Log which device prevents error recovery (Yicong Yang)
      
        Peer-to-peer DMA:
      
         - Whitelist Intel SkyLake-E (Armen Baloyan)
      
        Broadcom iProc host bridge driver:
      
         - Apply PAXC quirk whether driver is built-in or module (Wei Liu)
      
        Broadcom STB host bridge driver:
      
         - Add Broadcom STB PCIe host controller driver (Jim Quinlan)
      
        Intel Gateway SoC host bridge driver:
      
         - Add driver for Intel Gateway SoC (Dilip Kota)
      
        Intel VMD host bridge driver:
      
         - Add support for DMA aliases on other buses (Jon Derrick)
      
         - Remove dma_map_ops overrides (Jon Derrick)
      
         - Remove now-unused X86_DEV_DMA_OPS (Christoph Hellwig)
      
        NVIDIA Tegra host bridge driver:
      
         - Fix Tegra30 afi_pex2_ctrl register offset (Marcel Ziswiler)
      
        Panasonic UniPhier host bridge driver:
      
         - Remove module code since driver can't be built as a module
           (Masahiro Yamada)
      
        Qualcomm host bridge driver:
      
         - Add support for SDM845 PCIe controller (Bjorn Andersson)
      
        TI Keystone host bridge driver:
      
         - Fix "num-viewport" DT property error handling (Kishon Vijay Abraham I)
      
         - Fix link training retries initiation (Yurii Monakov)
      
         - Fix outbound region mapping (Yurii Monakov)
      
        Misc:
      
         - Add Switchtec Gen4 support (Kelvin Cao)
      
         - Add Switchtec Intercomm Notify and Upstream Error Containment
           support (Logan Gunthorpe)
      
         - Use dma_set_mask_and_coherent() since Switchtec supports 64-bit
           addressing (Wesley Sheng)"
      
      * tag 'pci-v5.6-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (60 commits)
        PCI: Allow adjust_bridge_window() to shrink resource if necessary
        PCI: Set resource size directly in adjust_bridge_window()
        PCI: Rename extend_bridge_window() to adjust_bridge_window()
        PCI: Rename extend_bridge_window() parameter
        PCI: Consider alignment of hot-added bridges when assigning resources
        PCI: Remove local variable usage in pci_bus_distribute_available_resources()
        PCI: Pass size + alignment to pci_bus_distribute_available_resources()
        PCI: Rename variables
        PCI: vmd: Add two VMD Device IDs
        PCI: Remove unnecessary braces
        PCI: brcmstb: Add MSI support
        PCI: brcmstb: Add Broadcom STB PCIe host controller driver
        x86/PCI: Remove X86_DEV_DMA_OPS
        PCI: vmd: Remove dma_map_ops overrides
        iommu/vt-d: Remove VMD child device sanity check
        iommu/vt-d: Use pci_real_dma_dev() for mapping
        PCI: Introduce pci_real_dma_dev()
        x86/PCI: Expose VMD's pci_dev in struct pci_sysdata
        x86/PCI: Add to_pci_sysdata() helper
        PCI/AER: Initialize aer_fifo
        ...
      26dca6db
    • Linus Torvalds's avatar
      Merge tag 'media/v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 846de71b
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
      
       - New staging driver for Rockship ISPv1 unit
      
       - New staging driver for Rockchip MIPI Synopsys DPHY RX0
      
       - y2038 fixes at V4L2 API (backward-compatible)
      
       - A dvb core fix when receiving invalid EIT sections
      
       - Some clang-specific warnings got fixed
      
       - Added support for touch V4L2 interface at vivid
      
       - Several drivers were converted to use the new
         i2c_new_scanned_device() kAPI
      
       - Added sm1 support at meson's vdec driver
      
       - Several other driver cleanups, fixes and improvements
      
      * tag 'media/v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (207 commits)
        media: staging/intel-ipu3: remove TODO item about acronyms
        media: v4l2-fwnode: Print the node name while parsing endpoints
        media: Revert "media: staging/intel-ipu3: make imgu use fixed running mode"
        media: mt9v111: constify copied structure
        media: platform: VIDEO_MEDIATEK_JPEG can also depend on MTK_IOMMU
        media: uvcvideo: Add a quirk to force GEO GC6500 Camera bits-per-pixel value
        media: uvcvideo: Avoid cyclic entity chains due to malformed USB descriptors
        media: hantro: fix post-processing NULL pointer dereference
        media: rcar-vin: Use correct pixel format when aligning format
        media: MAINTAINERS: add entry for Rockchip ISP1 driver
        media: staging: rkisp1: add TODO file for staging
        media: staging: rkisp1: add document for rkisp1 meta buffer format
        media: staging: rkisp1: add output device for parameters
        media: staging: rkisp1: add capture device for statistics
        media: staging: rkisp1: add user space ABI definitions
        media: staging: rkisp1: add streaming paths
        media: staging: rkisp1: add Rockchip ISP1 base driver
        media: staging: phy-rockchip-dphy-rx0: add Rockchip MIPI Synopsys DPHY RX0 driver
        media: staging: dt-bindings: add Rockchip MIPI RX D-PHY RX0 yaml bindings
        media: staging: dt-bindings: add Rockchip ISP1 yaml bindings
        ...
      846de71b
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 8fdd4019
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "A very quiet cycle with few notable changes. Mostly the usual list of
        one or two patches to drivers changing something that isn't quite rc
        worthy. The subsystem seems to be seeing a larger number of rework and
        cleanup style patches right now, I feel that several vendors are
        prepping their drivers for new silicon.
      
        Summary:
      
         - Driver updates and cleanup for qedr, bnxt_re, hns, siw, mlx5, mlx4,
           rxe, i40iw
      
         - Larger series doing cleanup and rework for hns and hfi1.
      
         - Some general reworking of the CM code to make it a little more
           understandable
      
         - Unify the different code paths connected to the uverbs FD scheme
      
         - New UAPI ioctls conversions for get context and get async fd
      
         - Trace points for CQ and CM portions of the RDMA stack
      
         - mlx5 driver support for virtio-net formatted rings as RDMA raw
           ethernet QPs
      
         - verbs support for setting the PCI-E relaxed ordering bit on DMA
           traffic connected to a MR
      
         - A couple of bug fixes that came too late to make rc7"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (108 commits)
        RDMA/core: Make the entire API tree static
        RDMA/efa: Mask access flags with the correct optional range
        RDMA/cma: Fix unbalanced cm_id reference count during address resolve
        RDMA/umem: Fix ib_umem_find_best_pgsz()
        IB/mlx4: Fix leak in id_map_find_del
        IB/opa_vnic: Spelling correction of 'erorr' to 'error'
        IB/hfi1: Fix logical condition in msix_request_irq
        RDMA/cm: Remove CM message structs
        RDMA/cm: Use IBA functions for complex structure members
        RDMA/cm: Use IBA functions for simple structure members
        RDMA/cm: Use IBA functions for swapping get/set acessors
        RDMA/cm: Use IBA functions for simple get/set acessors
        RDMA/cm: Add SET/GET implementations to hide IBA wire format
        RDMA/cm: Add accessors for CM_REQ transport_type
        IB/mlx5: Return the administrative GUID if exists
        RDMA/core: Ensure that rdma_user_mmap_entry_remove() is a fence
        IB/mlx4: Fix memory leak in add_gid error flow
        IB/mlx5: Expose RoCE accelerator counters
        RDMA/mlx5: Set relaxed ordering when requested
        RDMA/core: Add the core support field to METHOD_GET_CONTEXT
        ...
      8fdd4019
    • Linus Torvalds's avatar
      Merge tag 'thermal-v5.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux · 68b62e5d
      Linus Torvalds authored
      Pull thermal fixes from Daniel Lezcano:
      
       - Fix a severe docs build failure for cpu idle cooling device (Randy
         Dunlap)
      
       - Fix a spelling mistake in the error message for the stm32 (Colin Ian
         King)
      
      * tag 'thermal-v5.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux:
        thermal: stm32: fix spelling mistake "preprare" -> "prepare"
        Documentation: cpu-idle-cooling: fix a SEVERE docs build failure
      68b62e5d
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · ffda81b6
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "Fix up MAINTAINERS entires related to ACPI (Andy Shevchenko)"
      
      * tag 'acpi-5.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        MAINTAINERS: Sort entries in database for X-POWERS AXP288
        MAINTAINERS: Sort entries in database for ACPICA
        MAINTAINERS: Sort entries in database for ACPI
      ffda81b6
    • Linus Torvalds's avatar
      Merge tag 'pm-5.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · cf3c8f84
      Linus Torvalds authored
      Pull more power manadement updates from Rafael Wysocki:
       "Prevent cpufreq from creating excessively large stack frames and fix
        the handling of devices deleted during system-wide resume in the PM
        core (Rafael Wysocki), revert a problematic commit affecting the
        cpupower utility and correct its man page (Thomas Renninger,
        Brahadambal Srinivasan), and improve the intel_pstate_tracer utility
        (Doug Smythies)"
      
      * tag 'pm-5.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        tools/power/x86/intel_pstate_tracer: change several graphs to autoscale y-axis
        tools/power/x86/intel_pstate_tracer: changes for python 3 compatibility
        Correction to manpage of cpupower
        cpufreq: Avoid creating excessively large stack frames
        PM: core: Fix handling of devices deleted during system-wide resume
        cpupower: Revert library ABI changes from commit ae291709
      cf3c8f84
    • Steve French's avatar
      cifs: update internal module version number · b5810984
      Steve French authored
      To 2.25
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      b5810984
    • Linus Torvalds's avatar
      Merge tag 'gfs2-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · a62aa6f7
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - Fix some corner cases on filesystems with a block size < page size.
      
       - Fix a corner case that could expose incorrect access times over nfs.
      
       - Revert an otherwise sensible revoke accounting cleanup that causes
         assertion failures. The revoke accounting is whacky and needs to be
         fixed properly before we can add back this cleanup.
      
       - Various other minor cleanups.
      
      In addition, please expect to see another pull request from Bob Peterson
      about his gfs2 recovery patch queue shortly.
      
      * tag 'gfs2-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        Revert "gfs2: eliminate tr_num_revoke_rm"
        gfs2: remove unused LBIT macros
        fs/gfs2: remove unused IS_DINODE and IS_LEAF macros
        gfs2: Remove GFS2_MIN_LVB_SIZE define
        gfs2: Fix incorrect variable name
        gfs2: Avoid access time thrashing in gfs2_inode_lookup
        gfs2: minor cleanup: remove unneeded variable ret in gfs2_jdata_writepage
        gfs2: eliminate ssize parameter from gfs2_struct2blk
        gfs2: Another gfs2_find_jhead fix
      a62aa6f7
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.6-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 677b60dc
      Linus Torvalds authored
      Pull iomap fix from Darrick Wong:
       "A single patch fixing an off-by-one error when we're checking to see
        how far we're gotten into an EOF page"
      
      * tag 'iomap-5.6-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        fs: Fix page_mkwrite off-by-one errors
      677b60dc
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 7eec11d3
      Linus Torvalds authored
      Pull updates from Andrew Morton:
       "Most of -mm and quite a number of other subsystems: hotfixes, scripts,
        ocfs2, misc, lib, binfmt, init, reiserfs, exec, dma-mapping, kcov.
      
        MM is fairly quiet this time.  Holidays, I assume"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (118 commits)
        kcov: ignore fault-inject and stacktrace
        include/linux/io-mapping.h-mapping: use PHYS_PFN() macro in io_mapping_map_atomic_wc()
        execve: warn if process starts with executable stack
        reiserfs: prevent NULL pointer dereference in reiserfs_insert_item()
        init/main.c: fix misleading "This architecture does not have kernel memory protection" message
        init/main.c: fix quoted value handling in unknown_bootoption
        init/main.c: remove unnecessary repair_env_string in do_initcall_level
        init/main.c: log arguments and environment passed to init
        fs/binfmt_elf.c: coredump: allow process with empty address space to coredump
        fs/binfmt_elf.c: coredump: delete duplicated overflow check
        fs/binfmt_elf.c: coredump: allocate core ELF header on stack
        fs/binfmt_elf.c: make BAD_ADDR() unlikely
        fs/binfmt_elf.c: better codegen around current->mm
        fs/binfmt_elf.c: don't copy ELF header around
        fs/binfmt_elf.c: fix ->start_code calculation
        fs/binfmt_elf.c: smaller code generation around auxv vector fill
        lib/find_bit.c: uninline helper _find_next_bit()
        lib/find_bit.c: join _find_next_bit{_le}
        uapi: rename ext2_swab() to swab() and share globally in swab.h
        lib/scatterlist.c: adjust indentation in __sg_alloc_table
        ...
      7eec11d3
    • Linus Torvalds's avatar
      Merge tag 'modules-for-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · ddaefe89
      Linus Torvalds authored
      Pull module updates from Jessica Yu:
       "Summary of modules changes for the 5.6 merge window:
      
         - Add "MS" (SHF_MERGE|SHF_STRINGS) section flags to __ksymtab_strings
           to indicate to the linker that it can perform string deduplication
           (i.e., duplicate strings are reduced to a single copy in the string
           table). This means any repeated namespace string would be merged to
           just one entry in __ksymtab_strings.
      
         - Various code cleanups and small fixes (fix small memleak in error
           path, improve moduleparam docs, silence rcu warnings, improve error
           logging)"
      
      * tag 'modules-for-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        module.h: Annotate mod_kallsyms with __rcu
        module: avoid setting info->name early in case we can fall back to info->mod->name
        modsign: print module name along with error message
        kernel/module: Fix memleak in module_add_modinfo_attrs()
        export.h: reduce __ksymtab_strings string duplication by using "MS" section flags
        moduleparam: fix kerneldoc
        modules: lockdep: Suppress suspicious RCU usage warning
      ddaefe89
    • Linus Torvalds's avatar
      Merge tag 'mips_5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · c5951e7c
      Linus Torvalds authored
      Pull MIPS changes from Paul Burton:
       "Nothing too big or scary in here:
      
         - Support mremap() for the VDSO, primarily to allow CRIU to restore
           the VDSO to its checkpointed location.
      
         - Restore the MIPS32 cBPF JIT, after having reverted the enablement
           of the eBPF JIT for MIPS32 systems in the 5.5 cycle.
      
         - Improve cop0 counter synchronization behaviour whilst onlining CPUs
           by running with interrupts disabled.
      
         - Better match FPU behaviour when emulating multiply-accumulate
           instructions on pre-r6 systems that implement IEEE754-2008 style
           MACs.
      
         - Loongson64 kernels now build using the MIPS64r2 ISA, allowing them
           to take advantage of instructions introduced by r2.
      
         - Support for the Ingenic X1000 SoC & the really nice little CU Neo
           development board that's using it.
      
         - Support for WMAC on GARDENA Smart Gateway devices.
      
         - Lots of cleanup & refactoring of SGI IP27 (Origin 2*) support in
           preparation for introducing IP35 (Origin 3*) support.
      
         - Various Kconfig & Makefile cleanups"
      
      * tag 'mips_5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (60 commits)
        MIPS: PCI: Add detection of IOC3 on IO7, IO8, IO9 and Fuel
        MIPS: Loongson64: Disable exec hazard
        MIPS: Loongson64: Bump ISA level to MIPSR2
        MIPS: Make DIEI support as a config option
        MIPS: OCTEON: octeon-irq: fix spelling mistake "to" -> "too"
        MIPS: asm: local: add barriers for Loongson
        MIPS: Loongson64: Select mac2008 only feature
        MIPS: Add MAC2008 Support
        Revert "MIPS: Add custom serial.h with BASE_BAUD override for generic kernel"
        MIPS: sort MIPS and MIPS_GENERIC Kconfig selects alphabetically (again)
        MIPS: make CPU_HAS_LOAD_STORE_LR opt-out
        MIPS: generic: don't unconditionally select PINCTRL
        MIPS: don't explicitly select LIBFDT in Kconfig
        MIPS: sync-r4k: do slave counter synchronization with disabled HW interrupts
        MIPS: SGI-IP30: Check for valid pointer before using it
        MIPS: syscalls: fix indentation of the 'SYSNR' message
        MIPS: boot: fix typo in 'vmlinux.lzma.its' target
        MIPS: fix indentation of the 'RELOCS' message
        dt-bindings: Document loongson vendor-prefix
        MIPS: CU1000-Neo: Refresh defconfig to support HWMON and WiFi.
        ...
      c5951e7c
    • Linus Torvalds's avatar
      Merge tag 'arc-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · b7e573bb
      Linus Torvalds authored
      Pull ARC updates from Vineet Gupta:
      
       - Wire up clone3 syscall
      
       - ARCv2 FPU state save/restore across context switch
      
       - AXS10x platform and misc fixes
      
      * tag 'arc-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARCv2: fpu: preserve userspace fpu state
        ARC: fpu: declutter code, move bits out into fpu.h
        ARC: wireup clone3 syscall
        ARC: [plat-axs10x]: Add missing multicast filter number to GMAC node
        ARC: update feature support for jump-labels
      b7e573bb
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.6-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · a1084542
      Linus Torvalds authored
      Pull RISC-V updates from Palmer Dabbelt:
       "This contains a handful of patches for this merge window:
      
         - Support for kasan
      
         - 32-bit physical addresses on rv32i-based systems
      
         - Support for CONFIG_DEBUG_VIRTUAL
      
         - DT entry for the FU540 GPIO controller, which has recently had a
           device driver merged
      
        These boot a buildroot-based system on QEMU's virt board for me"
      
      * tag 'riscv-for-linus-5.6-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: dts: Add DT support for SiFive FU540 GPIO driver
        riscv: mm: add support for CONFIG_DEBUG_VIRTUAL
        riscv: keep 32-bit kernel to 32-bit phys_addr_t
        kasan: Add riscv to KASAN documentation.
        riscv: Add KASAN support
        kasan: No KASAN's memmove check if archs don't have it.
      a1084542
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b70a2d6b
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Misc fixes:
      
         - three fixes and a cleanup for the resctrl code
      
         - a HyperV fix
      
         - a fix to /proc/kcore contents in live debugging sessions
      
         - a fix for the x86 decoder opcode map"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/decoder: Add TEST opcode to Group3-2
        x86/resctrl: Clean up unused function parameter in mkdir path
        x86/resctrl: Fix a deadlock due to inaccurate reference
        x86/resctrl: Fix use-after-free due to inaccurate refcount of rdtgroup
        x86/resctrl: Fix use-after-free when deleting resource groups
        x86/hyper-v: Add "polling" bit to hv_synic_sint
        x86/crash: Define arch_crash_save_vmcoreinfo() if CONFIG_CRASH_CORE=y
      b70a2d6b
    • Dmitry Vyukov's avatar
      kcov: ignore fault-inject and stacktrace · 43e76af8
      Dmitry Vyukov authored
      Don't instrument 3 more files that contain debugging facilities and
      produce large amounts of uninteresting coverage for every syscall.
      
      The following snippets are sprinkled all over the place in kcov traces
      in a debugging kernel.  We already try to disable instrumentation of
      stack unwinding code and of most debug facilities.  I guess we did not
      use fault-inject.c at the time, and stacktrace.c was somehow missed (or
      something has changed in kernel/configs).  This change both speeds up
      kcov (kernel doesn't need to store these PCs, user-space doesn't need to
      process them) and frees trace buffer capacity for more useful coverage.
      
        should_fail
        lib/fault-inject.c:149
        fail_dump
        lib/fault-inject.c:45
      
        stack_trace_save
        kernel/stacktrace.c:124
        stack_trace_consume_entry
        kernel/stacktrace.c:86
        stack_trace_consume_entry
        kernel/stacktrace.c:89
        ... a hundred frames skipped ...
        stack_trace_consume_entry
        kernel/stacktrace.c:93
        stack_trace_consume_entry
        kernel/stacktrace.c:86
      
      Link: http://lkml.kernel.org/r/20200116111449.217744-1-dvyukov@gmail.comSigned-off-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Reviewed-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      43e76af8
    • Andy Shevchenko's avatar
    • Alexey Dobriyan's avatar
      execve: warn if process starts with executable stack · 47a2ebb7
      Alexey Dobriyan authored
      There were few episodes of silent downgrade to an executable stack over
      years:
      
      1) linking innocent looking assembly file will silently add executable
         stack if proper linker options is not given as well:
      
      	$ cat f.S
      	.intel_syntax noprefix
      	.text
      	.globl f
      	f:
      	        ret
      
      	$ cat main.c
      	void f(void);
      	int main(void)
      	{
      	        f();
      	        return 0;
      	}
      
      	$ gcc main.c f.S
      	$ readelf -l ./a.out
      	  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                               0x0000000000000000 0x0000000000000000  RWE    0x10
      			 					 ^^^
      
      2) converting C99 nested function into a closure
         https://nullprogram.com/blog/2019/11/15/
      
      	void intsort2(int *base, size_t nmemb, _Bool invert)
      	{
      	    int cmp(const void *a, const void *b)
      	    {
      	        int r = *(int *)a - *(int *)b;
      	        return invert ? -r : r;
      	    }
      	    qsort(base, nmemb, sizeof(*base), cmp);
      	}
      
      will silently require stack trampolines while non-closure version will
      not.
      
      Without doubt this behaviour is documented somewhere, add a warning so
      that developers and users can at least notice.  After so many years of
      x86_64 having proper executable stack support it should not cause too
      many problems.
      
      Link: http://lkml.kernel.org/r/20191208171918.GC19716@avx2Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      47a2ebb7
    • Yunfeng Ye's avatar
      reiserfs: prevent NULL pointer dereference in reiserfs_insert_item() · aacee544
      Yunfeng Ye authored
      The variable inode may be NULL in reiserfs_insert_item(), but there is
      no check before accessing the member of inode.
      
      Fix this by adding NULL pointer check before calling reiserfs_debug().
      
      Link: http://lkml.kernel.org/r/79c5135d-ff25-1cc9-4e99-9f572b88cc00@huawei.comSigned-off-by: default avatarYunfeng Ye <yeyunfeng@huawei.com>
      Cc: zhengbin <zhengbin13@huawei.com>
      Cc: Hu Shiyuan <hushiyuan@huawei.com>
      Cc: Feilong Lin <linfeilong@huawei.com>
      Cc: Jan Kara <jack@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aacee544
    • Christophe Leroy's avatar
      init/main.c: fix misleading "This architecture does not have kernel memory protection" message · f596ded1
      Christophe Leroy authored
      This message leads to thinking that memory protection is not implemented
      for the said architecture, whereas absence of CONFIG_STRICT_KERNEL_RWX
      only means that memory protection has not been selected at compile time.
      
      Don't print this message when CONFIG_ARCH_HAS_STRICT_KERNEL_RWX is
      selected by the architecture.  Instead, print "Kernel memory protection
      not selected by kernel config."
      
      Link: http://lkml.kernel.org/r/62477e446d9685459d4f27d193af6ff1bd69d55f.1578557581.git.christophe.leroy@c-s.frSigned-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
      Acked-by: default avatarKees Cook <keescook@chromium.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f596ded1
    • Arvind Sankar's avatar
      init/main.c: fix quoted value handling in unknown_bootoption · 283900e8
      Arvind Sankar authored
      Patch series "init/main.c: minor cleanup/bugfix of envvar handling", v2.
      
      unknown_bootoption passes unrecognized command line arguments to init as
      either environment variables or arguments.  Some of the logic in the
      function is broken for quoted command line arguments.
      
      When an argument of the form param="value" is processed by parse_args
      and passed to unknown_bootoption, the command line has
      
        param\0"value\0
      
      with val pointing to the beginning of value.  The helper function
      repair_env_string is then used to restore the '=' character that was
      removed by parse_args, and strip the quotes off fully.  This results in
      
        param=value\0\0
      
      and val ends up pointing to the 'a' instead of the 'v' in value.  This
      bug was introduced when repair_env_string was refactored into a separate
      function, and the decrement of val in repair_env_string became dead
      code.
      
      This causes two problems in unknown_bootoption in the two places where
      the val pointer is used as a substitute for the length of param:
      
      1. An argument of the form param=".value" is misinterpreted as a
         potential module parameter, with the result that it will not be
         placed in init's environment.
      
      2. An argument of the form param="value" is checked to see if param is
         an existing environment variable that should be overwritten, but the
         comparison is off-by-one and compares 'param=v' instead of 'param='
         against the existing environment. So passing, for example,
         TERM="vt100" on the command line results in init being passed both
         TERM=linux and TERM=vt100 in its environment.
      
      Patch 1 adds logging for the arguments and environment passed to init
      and is independent of the rest: it can be dropped if this is
      unnecessarily verbose.
      
      Patch 2 removes repair_env_string from initcall parameter parsing in
      do_initcall_level, as that uses a separate copy of the command line now
      and the repairing is no longer necessary.
      
      Patch 3 fixes the bug in unknown_bootoption by recording the length of
      param explicitly instead of implying it from val-param.
      
      This patch (of 3):
      
      Commit a99cd112 ("init: fix bug where environment vars can't be
      passed via boot args") introduced two minor bugs in unknown_bootoption
      by factoring out the quoted value handling into a separate function.
      
      When value is quoted, repair_env_string will move the value up 1 byte to
      strip the quotes, so val in unknown_bootoption no longer points to the
      actual location of the value.
      
      The result is that an argument of the form param=".value" is mistakenly
      treated as a potential module parameter and is not placed in init's
      environment, and an argument of the form param="value" can result in a
      duplicate environment variable: eg TERM="vt100" on the command line will
      result in both TERM=linux and TERM=vt100 being placed into init's
      environment.
      
      Fix this by recording the length of the param before calling
      repair_env_string instead of relying on val.
      
      Link: http://lkml.kernel.org/r/20191212180023.24339-4-nivedita@alum.mit.eduSigned-off-by: default avatarArvind Sankar <nivedita@alum.mit.edu>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Krzysztof Mazur <krzysiek@podlesie.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      283900e8
    • Arvind Sankar's avatar
      init/main.c: remove unnecessary repair_env_string in do_initcall_level · 7e2762e1
      Arvind Sankar authored
      Since commit 08746a65 ("init: fix in-place parameter modification
      regression"), parse_args in do_initcall_level is called on a copy of
      saved_command_line.  It is unnecessary to call repair_env_string during
      this parsing, as this copy is not used for anything later.
      
      Remove the now unnecessary arguments from repair_env_string as well.
      
      Link: http://lkml.kernel.org/r/20191212180023.24339-3-nivedita@alum.mit.eduSigned-off-by: default avatarArvind Sankar <nivedita@alum.mit.edu>
      Cc: Krzysztof Mazur <krzysiek@podlesie.net>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7e2762e1
    • Arvind Sankar's avatar
      init/main.c: log arguments and environment passed to init · b88c50ac
      Arvind Sankar authored
      Extend logging in `run_init_process` to also show the arguments and
      environment that we are passing to init.
      
      Link: http://lkml.kernel.org/r/20191212180023.24339-2-nivedita@alum.mit.eduSigned-off-by: default avatarArvind Sankar <nivedita@alum.mit.edu>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Krzysztof Mazur <krzysiek@podlesie.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b88c50ac
    • Alexey Dobriyan's avatar
      fs/binfmt_elf.c: coredump: allow process with empty address space to coredump · 1fbede6e
      Alexey Dobriyan authored
      Unmapping whole address space at once with
      
      	munmap(0, (1ULL<<47) - 4096)
      
      or equivalent will create empty coredump.
      
      It is silly way to exit, however registers content may still be useful.
      
      The right to coredump is fundamental right of a process!
      
      Link: http://lkml.kernel.org/r/20191222150137.GA1277@avx2Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1fbede6e