04 Feb, 2020

3 commits

  • Since commit ddd09bcc899f ("initramfs: make compression options not
    depend on INITRAMFS_SOURCE"), Kconfig asks the compression mode for
    the built-in initramfs regardless of INITRAMFS_SOURCE.

    It is technically simpler, but pointless from a UI perspective,
    Linus says [1].

    When INITRAMFS_SOURCE is empty, usr/Makefile creates a tiny default
    cpio, which is so small that nobody cares about the compression.

    This commit hides the Kconfig choice in that case. The default cpio
    is embedded without compression, which was the original behavior.

    [1]: https://lkml.org/lkml/2020/2/1/160

    Suggested-by: Linus Torvalds
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     
  • Pull more btrfs updates from David Sterba:
    "Fixes that arrived after the merge window freeze, mostly stable
    material.

    - fix race in tree-mod-log element tracking

    - fix bio flushing inside extent writepages

    - fix assertion when in-memory tracking of discarded extents finds an
    empty tree (eg. after adding a new device)

    - update logic of temporary read-only block groups to take into
    account overcommit

    - fix some fixup worker corner cases:
    - page could not go through proper COW cycle and the dirty status
    is lost due to page migration
    - deadlock if delayed allocation is performed under page lock

    - fix send emitting invalid clones within the same file

    - fix statfs reporting 0 free space when global block reserve size is
    larger than remaining free space but there is still space for new
    chunks"

    * tag 'for-5.6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
    btrfs: do not zero f_bavail if we have available space
    Btrfs: send, fix emission of invalid clone operations within the same file
    btrfs: do not do delalloc reservation under page lock
    btrfs: drop the -EBUSY case in __extent_writepage_io
    Btrfs: keep pages dirty when using btrfs_writepage_fixup_worker
    btrfs: take overcommit into account in inc_block_group_ro
    btrfs: fix force usage in inc_block_group_ro
    btrfs: Correctly handle empty trees in find_first_clear_extent_bit
    btrfs: flush write bio if we loop in extent_write_cache_pages
    Btrfs: fix race between adding and putting tree mod seq elements and nodes

    Linus Torvalds
     
  • Pull kgdb updates from Daniel Thompson:
    "Everything for kgdb this time around is either simplifications or
    clean ups.

    In particular Douglas Anderson's modifications to the backtrace
    machine in the *last* dev cycle have enabled Doug to tidy up some MIPS
    specific backtrace code and stop sharing certain data structures
    across the kernel. Note that The MIPS folks were on Cc: for the MIPS
    patch and reacted positively (but without an explicit Acked-by).

    Doug also got rid of the implicit switching between tasks and register
    sets during some but not of kdb's backtrace actions (because the
    implicit switching was either confusing for users, pointless or both).

    Finally there is a coverity fix and patch to replace open coded
    console traversal with the proper helper function"

    * tag 'kgdb-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux:
    kdb: Use for_each_console() helper
    kdb: remove redundant assignment to pointer bp
    kdb: Get rid of confusing diag msg from "rd" if current task has no regs
    kdb: Gid rid of implicit setting of the current task / regs
    kdb: kdb_current_task shouldn't be exported
    kdb: kdb_current_regs should be private
    MIPS: kdb: Remove old workaround for backtracing on other CPUs

    Linus Torvalds
     

03 Feb, 2020

9 commits

  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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: 6a24f567af4accef ("mfd: syscon: Add arguments support for syscon reference")
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Lee Jones

    Geert Uytterhoeven
     
  • 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

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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 instead of
    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_ instead of printk

    Linus Torvalds
     
  • There was some logic added a while ago to clear out f_bavail in statfs()
    if we did not have enough free metadata space to satisfy our global
    reserve. This was incorrect at the time, however didn't really pose a
    problem for normal file systems because we would often allocate chunks
    if we got this low on free metadata space, and thus wouldn't really hit
    this case unless we were actually full.

    Fast forward to today and now we are much better about not allocating
    metadata chunks all of the time. Couple this with d792b0f19711 ("btrfs:
    always reserve our entire size for the global reserve") which now means
    we'll easily have a larger global reserve than our free space, we are
    now more likely to trip over this while still having plenty of space.

    Fix this by skipping this logic if the global rsv's space_info is not
    full. space_info->full is 0 unless we've attempted to allocate a chunk
    for that space_info and that has failed. If this happens then the space
    for the global reserve is definitely sacred and we need to report
    b_avail == 0, but before then we can just use our calculated b_avail.

    Reported-by: Martin Steigerwald
    Fixes: ca8a51b3a979 ("btrfs: statfs: report zero available if metadata are exhausted")
    CC: stable@vger.kernel.org # 4.5+
    Reviewed-by: Qu Wenruo
    Tested-By: Martin Steigerwald
    Signed-off-by: Josef Bacik
    Reviewed-by: David Sterba
    Signed-off-by: David Sterba

    Josef Bacik
     

02 Feb, 2020

6 commits

  • 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: Anatoly Pugachev
    Tested-by: Anatoly Pugachev
    Fixes: 251ec1c159e4 ("y2038: sparc: remove use of struct timex")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • 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

    Linus Torvalds
     
  • 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: "Rantala, Tommi T. (Nokia - FI/Espoo)"
    Reported-by: syzbot+190005201ced78a74ad6@syzkaller.appspotmail.com
    Wearing-brown-paperbag: Al Viro
    Cc: stable@kernel.org
    Fixes: d0cb50185ae9 ("do_last(): fetch directory ->i_mode and ->i_uid before it's too late")
    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • 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()

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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)
    ...

    Linus Torvalds
     

01 Feb, 2020

22 commits

  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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 ae2917093fb60bdc1ed3e

    Linus Torvalds
     
  • To 2.25

    Signed-off-by: Steve French

    Steve French
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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 : (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
    ...

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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.
    ...

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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.

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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.com
    Signed-off-by: Dmitry Vyukov
    Reviewed-by: Andrey Konovalov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Vyukov
     
  • Use PHYS_PFN() macro in io_mapping_map_atomic_wc() instead of open coded
    variant.

    Link: http://lkml.kernel.org/r/20191209165624.56351-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Andy Shevchenko
    Reviewed-by: Andrew Morton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • 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@avx2
    Signed-off-by: Alexey Dobriyan
    Cc: Dan Carpenter
    Cc: Will Deacon
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • 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.com
    Signed-off-by: Yunfeng Ye
    Cc: zhengbin
    Cc: Hu Shiyuan
    Cc: Feilong Lin
    Cc: Jan Kara
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yunfeng Ye
     
  • 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.fr
    Signed-off-by: Christophe Leroy
    Acked-by: Kees Cook
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christophe Leroy
     
  • 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 a99cd1125189 ("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.edu
    Signed-off-by: Arvind Sankar
    Cc: Chris Metcalf
    Cc: Krzysztof Mazur
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arvind Sankar
     
  • Since commit 08746a65c296 ("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.edu
    Signed-off-by: Arvind Sankar
    Cc: Krzysztof Mazur
    Cc: Chris Metcalf
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arvind Sankar