Skip to content
  1. Jul 06, 2020
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 19a61a75
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Four small fixes in three drivers.
      
        The mptfusion one has actually caused user visible issues in certain
        kernel configurations"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: mptfusion: Don't use GFP_ATOMIC for larger DMA allocations
        scsi: libfc: Skip additional kref updating work event
        scsi: libfc: Handling of extra kref
        scsi: qla2xxx: Fix a condition in qla2x00_find_all_fabric_devs()
      19a61a75
    • Linus Torvalds's avatar
      Merge tag 'block-5.8-2020-07-05' of git://git.kernel.dk/linux-block · 29206c63
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe fixes from Christoph:
          - Fix crash in multi-path disk add (Christoph)
          - Fix ignore of identify error (Sagi)
      
       - Fix a compiler complaint that a function should be static (Wei)
      
      * tag 'block-5.8-2020-07-05' of git://git.kernel.dk/linux-block:
        block: make function __bio_integrity_free() static
        nvme: fix a crash in nvme_mpath_add_disk
        nvme: fix identify error status silent ignore
      29206c63
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.8-2020-07-05' of git://git.kernel.dk/linux-block · 9fbe565c
      Linus Torvalds authored
      Pull io_uring fix from Jens Axboe:
       "Andres reported a regression with the fix that was merged earlier this
        week, where his setup of using signals to interrupt io_uring CQ waits
        no longer worked correctly.
      
        Fix this, and also limit our use of TWA_SIGNAL to the case where we
        need it, and continue using TWA_RESUME for task_work as before.
      
        Since the original is marked for 5.7 stable, let's flush this one out
        early"
      
      * tag 'io_uring-5.8-2020-07-05' of git://git.kernel.dk/linux-block:
        io_uring: fix regression with always ignoring signals in io_cqring_wait()
      9fbe565c
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 77834854
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "The usual driver fixes and documentation updates"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: mlxcpld: check correct size of maximum RECV_LEN packet
        i2c: add Kconfig help text for slave mode
        i2c: slave-eeprom: update documentation
        i2c: eg20t: Load module automatically if ID matches
        i2c: designware: platdrv: Set class based on DMI
        i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
      77834854
    • Linus Torvalds's avatar
      Merge tag 'mips_fixes_5.8_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 45a5ac7a
      Linus Torvalds authored
      Pull MIPS fixes from Thomas Bogendoerfer:
      
       - fix for missing hazard barrier
      
       - DT fix for ingenic
      
       - DT fix of GPHY names for lantiq
      
       - fix usage of smp_processor_id() while preemption is enabled
      
      * tag 'mips_fixes_5.8_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: Do not use smp_processor_id() in preemptible code
        MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen
        MIPS: ingenic: gcw0: Fix HP detection GPIO.
        MIPS: lantiq: xway: sysctrl: fix the GPHY clock alias names
      45a5ac7a
  2. Jul 05, 2020
    • Xingxing Su's avatar
      MIPS: Do not use smp_processor_id() in preemptible code · 5868347a
      Xingxing Su authored
      
      
      Use preempt_disable() to fix the following bug under CONFIG_DEBUG_PREEMPT.
      
      [   21.915305] BUG: using smp_processor_id() in preemptible [00000000] code: qemu-system-mip/1056
      [   21.923996] caller is do_ri+0x1d4/0x690
      [   21.927921] CPU: 0 PID: 1056 Comm: qemu-system-mip Not tainted 5.8.0-rc2 #3
      [   21.934913] Stack : 0000000000000001 ffffffff81370000 ffffffff8071cd60 a80f926d5ac95694
      [   21.942984]         a80f926d5ac95694 0000000000000000 98000007f0043c88 ffffffff80f2fe40
      [   21.951054]         0000000000000000 0000000000000000 0000000000000001 0000000000000000
      [   21.959123]         ffffffff802d60cc 98000007f0043dd8 ffffffff81f4b1e8 ffffffff81f60000
      [   21.967192]         ffffffff81f60000 ffffffff80fe0000 ffff000000000000 0000000000000000
      [   21.975261]         fffffffff500cce1 0000000000000001 0000000000000002 0000000000000000
      [   21.983331]         ffffffff80fe1a40 0000000000000006 ffffffff8077f940 0000000000000000
      [   21.991401]         ffffffff81460000 98000007f0040000 98000007f0043c80 000000fffba8cf20
      [   21.999471]         ffffffff8071cd60 0000000000000000 0000000000000000 0000000000000000
      [   22.007541]         0000000000000000 0000000000000000 ffffffff80212ab4 a80f926d5ac95694
      [   22.015610]         ...
      [   22.018086] Call Trace:
      [   22.020562] [<ffffffff80212ab4>] show_stack+0xa4/0x138
      [   22.025732] [<ffffffff8071cd60>] dump_stack+0xf0/0x150
      [   22.030903] [<ffffffff80c73f5c>] check_preemption_disabled+0xf4/0x100
      [   22.037375] [<ffffffff80213b84>] do_ri+0x1d4/0x690
      [   22.042198] [<ffffffff8020b828>] handle_ri_int+0x44/0x5c
      [   24.359386] BUG: using smp_processor_id() in preemptible [00000000] code: qemu-system-mip/1072
      [   24.368204] caller is do_ri+0x1a8/0x690
      [   24.372169] CPU: 4 PID: 1072 Comm: qemu-system-mip Not tainted 5.8.0-rc2 #3
      [   24.379170] Stack : 0000000000000001 ffffffff81370000 ffffffff8071cd60 a80f926d5ac95694
      [   24.387246]         a80f926d5ac95694 0000000000000000 98001007ef06bc88 ffffffff80f2fe40
      [   24.395318]         0000000000000000 0000000000000000 0000000000000001 0000000000000000
      [   24.403389]         ffffffff802d60cc 98001007ef06bdd8 ffffffff81f4b818 ffffffff81f60000
      [   24.411461]         ffffffff81f60000 ffffffff80fe0000 ffff000000000000 0000000000000000
      [   24.419533]         fffffffff500cce1 0000000000000001 0000000000000002 0000000000000000
      [   24.427603]         ffffffff80fe0000 0000000000000006 ffffffff8077f940 0000000000000020
      [   24.435673]         ffffffff81460020 98001007ef068000 98001007ef06bc80 000000fffbbbb370
      [   24.443745]         ffffffff8071cd60 0000000000000000 0000000000000000 0000000000000000
      [   24.451816]         0000000000000000 0000000000000000 ffffffff80212ab4 a80f926d5ac95694
      [   24.459887]         ...
      [   24.462367] Call Trace:
      [   24.464846] [<ffffffff80212ab4>] show_stack+0xa4/0x138
      [   24.470029] [<ffffffff8071cd60>] dump_stack+0xf0/0x150
      [   24.475208] [<ffffffff80c73f5c>] check_preemption_disabled+0xf4/0x100
      [   24.481682] [<ffffffff80213b58>] do_ri+0x1a8/0x690
      [   24.486509] [<ffffffff8020b828>] handle_ri_int+0x44/0x5c
      
      Signed-off-by: default avatarXingxing Su <suxingxing@loongson.cn>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      5868347a
    • Hauke Mehrtens's avatar
      MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen · fcec538e
      Hauke Mehrtens authored
      This resolves the hazard between the mtc0 in the change_c0_status() and
      the mfc0 in configure_exception_vector(). Without resolving this hazard
      configure_exception_vector() could read an old value and would restore
      this old value again. This would revert the changes change_c0_status()
      did. I checked this by printing out the read_c0_status() at the end of
      per_cpu_trap_init() and the ST0_MX is not set without this patch.
      
      The hazard is documented in the MIPS Architecture Reference Manual Vol.
      III: MIPS32/microMIPS32 Privileged Resource Architecture (MD00088), rev
      6.03 table 8.1 which includes:
      
         Producer | Consumer | Hazard
        ----------|----------|----------------------------
         mtc0     | mfc0     | any coprocessor 0 register
      
      I saw this hazard on an Atheros AR9344 rev 2 SoC with a MIPS 74Kc CPU.
      There the change_c0_status() function would activate the DSPen by
      setting ST0_MX in the c0_status register. This was reverted and then the
      system got a DSP exception when the DSP registers were saved in
      save_dsp() in the first process switch. The crash looks like this:
      
      [    0.089999] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.097796] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
      [    0.107070] Kernel panic - not syncing: Unexpected DSP exception
      [    0.113470] Rebooting in 1 seconds..
      
      We saw this problem in OpenWrt only on the MIPS 74Kc based Atheros SoCs,
      not on the 24Kc based SoCs. We only saw it with kernel 5.4 not with
      kernel 4.19, in addition we had to use GCC 8.4 or 9.X, with GCC 8.3 it
      did not happen.
      
      In the kernel I bisected this problem to commit 9012d011 ("compiler:
      allow all arches to enable CONFIG_OPTIMIZE_INLINING"), but when this was
      reverted it also happened after commit 172dcd93 ("MIPS: Always
      allocate exception vector for MIPSr2+").
      
      Commit 0b24cae4
      
       ("MIPS: Add missing EHB in mtc0 -> mfc0 sequence.")
      does similar changes to a different file. I am not sure if there are
      more places affected by this problem.
      
      Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      fcec538e
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.8-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 9bc0b029
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "One fix for a regression in our pkey handling, which exhibits as
        PROT_EXEC mappings taking continuous page faults.
      
        Thanks to: Jan Stancek, Aneesh Kumar K.V"
      
      * tag 'powerpc-5.8-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/mm/pkeys: Make pkey access check work on execute_only_key
      9bc0b029
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · ec84c3f6
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Nothing earth-shattering, really - some CPU errata workarounds (one
        day they'll get it right, ha!) and a fix for a boot failure with very
        large kernel images where the alternative patching gets confused when
        patching relative branches using veneers.
      
         - Fix alternative patching for very large kernel images and modules
      
         - Hook up existing CPU errata workarounds for Qualcomm Kryo CPUs"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Add KRYO4XX silver CPU cores to erratum list 1530923 and 1024718
        arm64: Add KRYO4XX gold CPU cores to erratum list 1463225 and 1418040
        arm64: Add MIDR value for KRYO4XX gold CPU cores
        arm64/alternatives: use subsections for replacement sequences
      ec84c3f6
    • Jens Axboe's avatar
      io_uring: fix regression with always ignoring signals in io_cqring_wait() · b7db41c9
      Jens Axboe authored
      When switching to TWA_SIGNAL for task_work notifications, we also made
      any signal based condition in io_cqring_wait() return -ERESTARTSYS.
      This breaks applications that rely on using signals to abort someone
      waiting for events.
      
      Check if we have a signal pending because of queued task_work, and
      repeat the signal check once we've run the task_work. This provides a
      reliable way of telling the two apart.
      
      Additionally, only use TWA_SIGNAL if we are using an eventfd. If not,
      we don't have the dependency situation described in the original commit,
      and we can get by with just using TWA_RESUME like we previously did.
      
      Fixes: ce593a6c
      
       ("io_uring: use signal based task_work running")
      Cc: stable@vger.kernel.org # v5.7
      Reported-by: default avatarAndres Freund <andres@anarazel.de>
      Tested-by: default avatarAndres Freund <andres@anarazel.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      b7db41c9
  3. Jul 04, 2020
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.8b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 35e884f8
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
       "One small cleanup patch for ARM and two patches for the xenbus driver
        fixing latent problems (large stack allocations and bad return code
        settings)"
      
      * tag 'for-linus-5.8b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/xenbus: let xenbus_map_ring_valloc() return errno values only
        xen/xenbus: avoid large structs and arrays on the stack
        arm/xen: remove the unused macro GRANT_TABLE_PHYSADDR
      35e884f8
    • Wolfram Sang's avatar
      i2c: mlxcpld: check correct size of maximum RECV_LEN packet · 59791128
      Wolfram Sang authored
      I2C_SMBUS_BLOCK_MAX defines already the maximum number as defined in the
      SMBus 2.0 specs. I don't see a reason to add 1 here. Also, fix the errno
      to what is suggested for this error.
      
      Fixes: c9bfdc7c
      
       ("i2c: mlxcpld: Add support for smbus block read transaction")
      Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
      Reviewed-by: default avatarMichael Shych <michaelsh@mellanox.com>
      Tested-by: default avatarMichael Shych <michaelsh@mellanox.com>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      59791128
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 8b082a41
      Linus Torvalds authored
      Pull sysctl fix from Al Viro:
       "Another regression fix for sysctl changes this cycle..."
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        Call sysctl_head_finish on error
      8b082a41
    • Wolfram Sang's avatar
      i2c: add Kconfig help text for slave mode · 58e64b05
      Wolfram Sang authored
      
      
      I can't recall why there was none, but we surely want to have it.
      
      Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
      Reviewed-by: default avatarNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
      Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      58e64b05
    • Wolfram Sang's avatar
      i2c: slave-eeprom: update documentation · 59d3d604
      Wolfram Sang authored
      
      
      Add more details which have either been missing ever since or describe
      recent additions.
      
      Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
      Reviewed-by: default avatarNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
      Reviewed-by: default avatarLuca Ceresoli <luca@lucaceresoli.net>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      59d3d604
    • Andy Shevchenko's avatar
      i2c: eg20t: Load module automatically if ID matches · 5f90786b
      Andy Shevchenko authored
      
      
      The driver can't be loaded automatically because it misses
      module alias to be provided. Add corresponding MODULE_DEVICE_TABLE()
      call to the driver.
      
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      5f90786b
    • Ricardo Ribalda's avatar
      i2c: designware: platdrv: Set class based on DMI · db2a8b6f
      Ricardo Ribalda authored
      Current AMD's zen-based APUs use this core for some of its i2c-buses.
      
      With this patch we re-enable autodetection of hwmon-alike devices, so
      lm-sensors will be able to work automatically.
      
      It does not affect the boot-time of embedded devices, as the class is
      set based on the DMI information.
      
      DMI is probed only on Qtechnology QT5222 Industrial Camera Platform.
      
      DocLink: https://qtec.com/camera-technology-camera-platforms/
      Fixes: 3eddad96
      
       ("i2c: designware: reverts "i2c: designware: Add support for AMD I2C controller"")
      Signed-off-by: default avatarRicardo Ribalda <ribalda@kernel.org>
      Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      db2a8b6f
    • Chris Packham's avatar
      i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665 · cd217f23
      Chris Packham authored
      The PCA9665 datasheet says that I2CSTA = 78h indicates that SCL is stuck
      low, this differs to the PCA9564 which uses 90h for this indication.
      Treat either 0x78 or 0x90 as an indication that the SCL line is stuck.
      
      Based on looking through the PCA9564 and PCA9665 datasheets this should
      be safe for both chips. The PCA9564 should not return 0x78 for any valid
      state and the PCA9665 should not return 0x90.
      
      Fixes: eff9ec95
      
       ("i2c-algo-pca: Add PCA9665 support")
      Signed-off-by: default avatarChris Packham <chris.packham@alliedtelesis.co.nz>
      Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      cd217f23
    • Linus Torvalds's avatar
      Merge tag '5.8-rc3-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · b8e516b3
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Eight cifs/smb3 fixes, most when specifying the multiuser mount flag.
      
        Five of the fixes are for stable"
      
      * tag '5.8-rc3-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: prevent truncation from long to int in wait_for_free_credits
        cifs: Fix the target file was deleted when rename failed.
        SMB3: Honor 'posix' flag for multiuser mounts
        SMB3: Honor 'handletimeout' flag for multiuser mounts
        SMB3: Honor lease disabling for multiuser mounts
        SMB3: Honor persistent/resilient handle flags for multiuser mounts
        SMB3: Honor 'seal' flag for multiuser mounts
        cifs: Display local UID details for SMB sessions in DebugData
      b8e516b3
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.8-rc4' of... · 6f216714
      Linus Torvalds authored
      Merge tag 'hwmon-for-v5.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - Fix typo in Kconfig SENSORS_IR35221 option
      
       - Fix potential memory leak in acpi_power_meter_add()
      
       - Make sure the OVERT mask is set correctly in max6697 driver
      
       - In PMBus core, fix page vs. register when accessing fans
      
       - Mark is_visible functions static in bt1-pvt driver
      
       - Define Temp- and Volt-to-N poly as maybe-unused in bt1-pvt driver
      
      * tag 'hwmon-for-v5.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (pmbus) fix a typo in Kconfig SENSORS_IR35221 option
        hwmon: (acpi_power_meter) Fix potential memory leak in acpi_power_meter_add()
        hwmon: (max6697) Make sure the OVERT mask is set correctly
        hwmon: (pmbus) Fix page vs. register when accessing fans
        hwmon: (bt1-pvt) Mark is_visible functions static
        hwmon: (bt1-pvt) Define Temp- and Volt-to-N poly as maybe-unused
      6f216714
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · bc2391e7
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "Subsystems affected by this patch series: mm/hugetlb, samples, mm/cma,
        mm/vmalloc, mm/pagealloc"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm/page_alloc: fix documentation error
        vmalloc: fix the owner argument for the new __vmalloc_node_range callers
        mm/cma.c: use exact_nid true to fix possible per-numa cma leak
        samples/vfs: avoid warning in statx override
        mm/hugetlb.c: fix pages per hugetlb calculation
      bc2391e7
    • Joel Savitz's avatar
      mm/page_alloc: fix documentation error · 8beeae86
      Joel Savitz authored
      When I increased the upper bound of the min_free_kbytes value in
      ee8eb9a5
      
       ("mm/page_alloc: increase default min_free_kbytes bound") I
      forgot to tweak the above comment to reflect the new value.  This patch
      fixes that mistake.
      
      Signed-off-by: default avatarJoel Savitz <jsavitz@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Rafael Aquini <aquini@redhat.com>
      Cc: Fabrizio D'Angelo <fdangelo@redhat.com>
      Link: http://lkml.kernel.org/r/20200624221236.29560-1-jsavitz@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8beeae86
    • Christoph Hellwig's avatar
      vmalloc: fix the owner argument for the new __vmalloc_node_range callers · a3a66c38
      Christoph Hellwig authored
      Fix the recently added new __vmalloc_node_range callers to pass the
      correct values as the owner for display in /proc/vmallocinfo.
      
      Fixes: 800e26b8 ("x86/hyperv: allocate the hypercall page with only read and execute bits")
      Fixes: 10d5e97c ("arm64: use PAGE_KERNEL_ROX directly in alloc_insn_page")
      Fixes: 7a0e27b2
      
       ("mm: remove vmalloc_exec")
      Reported-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Link: http://lkml.kernel.org/r/20200627075649.2455097-1-hch@lst.de
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a3a66c38
    • Barry Song's avatar
      mm/cma.c: use exact_nid true to fix possible per-numa cma leak · 40366bd7
      Barry Song authored
      Calling cma_declare_contiguous_nid() with false exact_nid for per-numa
      reservation can easily cause cma leak and various confusion.  For example,
      mm/hugetlb.c is trying to reserve per-numa cma for gigantic pages.  But it
      can easily leak cma and make users confused when system has memoryless
      nodes.
      
      In case the system has 4 numa nodes, and only numa node0 has memory.  if
      we set hugetlb_cma=4G in bootargs, mm/hugetlb.c will get 4 cma areas for 4
      different numa nodes.  since exact_nid=false in current code, all 4 numa
      nodes will get cma successfully from node0, but hugetlb_cma[1 to 3] will
      never be available to hugepage will only allocate memory from
      hugetlb_cma[0].
      
      In case the system has 4 numa nodes, both numa node0&2 has memory, other
      nodes have no memory.  if we set hugetlb_cma=4G in bootargs, mm/hugetlb.c
      will get 4 cma areas for 4 different numa nodes.  since exact_nid=false in
      current code, all 4 numa nodes will get cma successfully from node0 or 2,
      but hugetlb_cma[1] and [3] will never be available to hugepage as
      mm/hugetlb.c will only allocate memory from hugetlb_cma[0] and
      hugetlb_cma[2].  This causes permanent leak of the cma areas which are
      supposed to be used by memoryless node.
      
      Of cource we can workaround the issue by letting mm/hugetlb.c scan all cma
      areas in alloc_gigantic_page() even node_mask includes node0 only.  that
      means when node_mask includes node0 only, we can get page from
      hugetlb_cma[1] to hugetlb_cma[3].  But this will cause kernel crash in
      free_gigantic_page() while it wants to free page by:
      cma_release(hugetlb_cma[page_to_nid(page)], page, 1 << order)
      
      On the other hand, exact_nid=false won't consider numa distance, it might
      be not that useful to leverage cma areas on remote nodes.  I feel it is
      much simpler to make exact_nid true to make everything clear.  After that,
      memoryless nodes won't be able to reserve per-numa CMA from other nodes
      which have memory.
      
      Fixes: cf11e85f
      
       ("mm: hugetlb: optionally allocate gigantic hugepages using cma")
      Signed-off-by: default avatarBarry Song <song.bao.hua@hisilicon.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarRoman Gushchin <guro@fb.com>
      Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
      Cc: Aslan Bakirov <aslan@fb.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: Andreas Schaufler <andreas.schaufler@gmx.de>
      Cc: Mike Kravetz <mike.kravetz@oracle.com>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: Joonsoo Kim <js1304@gmail.com>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: <stable@vger.kernel.org>
      Link: http://lkml.kernel.org/r/20200628074345.27228-1-song.bao.hua@hisilicon.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      40366bd7
    • Kees Cook's avatar
      samples/vfs: avoid warning in statx override · c3eeaae9
      Kees Cook authored
      Something changed recently to uncover this warning:
      
        samples/vfs/test-statx.c:24:15: warning: `struct foo' declared inside parameter list will not be visible outside of this definition or declaration
           24 | #define statx foo
              |               ^~~
      
      Which is due the use of "struct statx" (here, "struct foo") in a function
      prototype argument list before it has been defined:
      
       int
       # 56 "/usr/include/x86_64-linux-gnu/bits/statx-generic.h"
          foo
       # 56 "/usr/include/x86_64-linux-gnu/bits/statx-generic.h" 3 4
                (int __dirfd, const char *__restrict __path, int __flags,
                  unsigned int __mask, struct
       # 57 "/usr/include/x86_64-linux-gnu/bits/statx-generic.h"
                                             foo
       # 57 "/usr/include/x86_64-linux-gnu/bits/statx-generic.h" 3 4
                                                   *__restrict __buf)
         __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 5)));
      
      Add explicit struct before #include to avoid warning.
      
      Fixes: f1b5618e
      
       ("vfs: Add a sample program for the new mount API")
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Miklos Szeredi <mszeredi@redhat.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: David Howells <dhowells@redhat.com>
      Link: http://lkml.kernel.org/r/202006282213.C516EA6@keescook
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c3eeaae9
    • Mike Kravetz's avatar
      mm/hugetlb.c: fix pages per hugetlb calculation · 1139d336
      Mike Kravetz authored
      The routine hpage_nr_pages() was incorrectly used to calculate the number
      of base pages in a hugetlb page.  hpage_nr_pages is designed to be called
      for THP pages and will return HPAGE_PMD_NR for hugetlb pages of any size.
      
      Due to the context in which hpage_nr_pages was called, it is unlikely to
      produce a user visible error.  The routine with the incorrect call is only
      exercised in the case of hugetlb memory error or migration.  In addition,
      this would need to be on an architecture which supports huge page sizes
      less than PMD_SIZE.  And, the vma containing the huge page would also need
      to smaller than PMD_SIZE.
      
      Fixes: c0d0381a
      
       ("hugetlbfs: use i_mmap_rwsem for more pmd sharing synchronization")
      Reported-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Signed-off-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Reviewed-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>
      Cc: <stable@vger.kernel.org>
      Link: http://lkml.kernel.org/r/20200629185003.97202-1-mike.kravetz@oracle.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1139d336
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.8-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 0c7d7d1f
      Linus Torvalds authored
      Pull xfs fix from Darrick Wong:
       "Fix a use-after-free bug when the fs shuts down"
      
      * tag 'xfs-5.8-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: fix use-after-free on CIL context on shutdown
      0c7d7d1f
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.8-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 7fec3ce5
      Linus Torvalds authored
      Pull PCI fix from Bjorn Helgaas:
       "Fix a pcie_find_root_port() simplification that broke power management
        because it didn't handle the edge case of finding the Root Port of a
        Root Port itself (Mika Westerberg)""
      
      * tag 'pci-v5.8-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: Make pcie_find_root_port() work for Root Ports
      7fec3ce5
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 718b7a57
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "Add a new device ID for Intel Tiger Lake to the DPTF battery
        participant driver (Srinivas Pandruvada) and fix the Tiger Lake fan
        device ID (Sumeet Pawnikar)"
      
      * tag 'acpi-5.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: fan: Fix Tiger Lake ACPI device ID
        ACPI: DPTF: Add battery participant for TigerLake
      718b7a57
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v5.8-rc3.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · bf2d6369
      Linus Torvalds authored
      Pull gfs2 fixes from Andreas Gruenbacher:
       "Various gfs2 fixes"
      
      * tag 'gfs2-v5.8-rc3.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: The freeze glock should never be frozen
        gfs2: When freezing gfs2, use GL_EXACT and not GL_NOCACHE
        gfs2: read-only mounts should grab the sd_freeze_gl glock
        gfs2: freeze should work on read-only mounts
        gfs2: eliminate GIF_ORDERED in favor of list_empty
        gfs2: Don't sleep during glock hash walk
        gfs2: fix trans slab error when withdraw occurs inside log_flush
        gfs2: Don't return NULL from gfs2_inode_lookup
      bf2d6369
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-07-03' of git://anongit.freedesktop.org/drm/drm · 1d428714
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Pretty usual rc4 pull: two usual amdgpu, i915 pulls, and some misc arm
        driver fixes.
      
        The bigger bit is including the asm sources for some GPU shaders that
        were contained in the i915 driver, otherwise it's pretty much business
        as usual.
      
        dma-buf:
         - fix a use-after-free bug
      
        amdgpu:
         - Fix for vega20 boards without RAS support
         - DC bandwidth revalidation fix
         - Fix Renoir vram info fetching
         - Fix hwmon freq printing
      
        i915:
         - GVT fixes
            - Two missed MMIO handler fixes for SKL/CFL
            - Fix mask register bits check
            - Fix one lockdep error for debugfs entry access
         - Include asm sources for render cache clear batches
      
        msm:
         - memleak fix
         - display block fix
         - address space fixes
      
        exynos:
         - error value and reference count fix
         - error print removal
      
        sun4i:
         - remove HPD polling"
      
      * tag 'drm-fixes-2020-07-03' of git://anongit.freedesktop.org/drm/drm: (22 commits)
        drm/amdgpu: use %u rather than %d for sclk/mclk
        drm/amdgpu/atomfirmware: fix vram_info fetching for renoir
        drm/amd/display: Only revalidate bandwidth on medium and fast updates
        drm: sun4i: hdmi: Remove extra HPD polling
        drm/i915: Include asm sources for {ivb, hsw}_clear_kernel.c
        drm/exynos: fix ref count leak in mic_pre_enable
        drm/exynos: Properly propagate return value in drm_iommu_attach_device()
        drm/exynos: Remove dev_err() on platform_get_irq() failure
        drm/amd/powerplay: Fix NULL dereference in lock_bus() on Vega20 w/o RAS
        dma-buf: Move dma_buf_release() from fops to dentry_ops
        drm/msm: Fix up the rest of the messed up address sizes
        drm/msm: Fix setup of a6xx create_address_space.
        drm/msm: Fix address space size after refactor.
        drm/i915/gvt: Use GFP_ATOMIC instead of GFP_KERNEL in atomic context
        drm/i915/gvt: Fix incorrect check of enabled bits in mask registers
        drm/i915/gvt: Fix two CFL MMIO handling caused by regression.
        drm/i915/gvt: Add one missing MMIO handler for D_SKL_PLUS
        drm/msm: Fix 0xfffflub in "Refactor address space initialization"
        drm/msm/dpu: allow initialization of encoder locks during encoder init
        drm/msm/dpu: fix error return code in dpu_encoder_init
        ...
      1d428714
    • Matthew Wilcox (Oracle)'s avatar
      Call sysctl_head_finish on error · d4d80e69
      Matthew Wilcox (Oracle) authored
      This error path returned directly instead of calling sysctl_head_finish().
      
      Fixes: ef9d965b
      
       ("sysctl: reject gigantic reads/write to sysctl files")
      Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      d4d80e69
  4. Jul 03, 2020
    • Sai Prakash Ranjan's avatar
      arm64: Add KRYO4XX silver CPU cores to erratum list 1530923 and 1024718 · 9b23d95c
      Sai Prakash Ranjan authored
      
      
      KRYO4XX silver/LITTLE CPU cores with revision r1p0 are affected by
      erratum 1530923 and 1024718, so add them to the respective list.
      The variant and revision bits are implementation defined and are
      different from the their Cortex CPU counterparts on which they are
      based on, i.e., r1p0 is equivalent to rdpe.
      
      Signed-off-by: default avatarSai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
      Link: https://lore.kernel.org/r/7013e8a3f857ca7e82863cc9e34a614293d7f80c.1593539394.git.saiprakash.ranjan@codeaurora.org
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      9b23d95c
    • Sai Prakash Ranjan's avatar
      arm64: Add KRYO4XX gold CPU cores to erratum list 1463225 and 1418040 · a9e821b8
      Sai Prakash Ranjan authored
      
      
      KRYO4XX gold/big CPU core revisions r0p0 to r3p1 are affected by
      erratum 1463225 and 1418040, so add them to the respective list.
      The variant and revision bits are implementation defined and are
      different from the their Cortex CPU counterparts on which they are
      based on, i.e., (r0p0 to r3p1) is equivalent to (rcpe to rfpf).
      
      Signed-off-by: default avatarSai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
      Link: https://lore.kernel.org/r/83780e80c6377c12ca51b5d53186b61241685e49.1593539394.git.saiprakash.ranjan@codeaurora.org
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      a9e821b8
    • Sai Prakash Ranjan's avatar
      arm64: Add MIDR value for KRYO4XX gold CPU cores · dce4f280
      Sai Prakash Ranjan authored
      
      
      Add MIDR value for KRYO4XX gold/big CPU cores which are
      used in Qualcomm Technologies, Inc. SoCs. This will be
      used to identify and apply erratum which are applicable
      for these CPU cores.
      
      Signed-off-by: default avatarSai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
      Link: https://lore.kernel.org/r/9093fb82e22441076280ca1b729242ffde80c432.1593539394.git.saiprakash.ranjan@codeaurora.org
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      dce4f280
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-fan' · ef0c44c3
      Rafael J. Wysocki authored
      * acpi-fan:
        ACPI: fan: Fix Tiger Lake ACPI device ID
      ef0c44c3
    • Bob Peterson's avatar
      gfs2: The freeze glock should never be frozen · c860f8ff
      Bob Peterson authored
      
      
      Before this patch, some gfs2 code locked the freeze glock with LM_FLAG_NOEXP
      (Do not freeze) flag, and some did not. We never want to freeze the freeze
      glock, so this patch makes it consistently use LM_FLAG_NOEXP always.
      
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      c860f8ff
    • Bob Peterson's avatar
      gfs2: When freezing gfs2, use GL_EXACT and not GL_NOCACHE · 623ba664
      Bob Peterson authored
      
      
      Before this patch, the freeze code in gfs2 specified GL_NOCACHE in
      several places. That's wrong because we always want to know the state
      of whether the file system is frozen.
      
      There was also a problem with freeze/thaw transitioning the glock from
      frozen (EX) to thawed (SH) because gfs2 will normally grant glocks in EX
      to processes that request it in SH mode, unless GL_EXACT is specified.
      Therefore, the freeze/thaw code, which tried to reacquire the glock in
      SH mode would get the glock in EX mode, and miss the transition from EX
      to SH. That made it think the thaw had completed normally, but since the
      glock was still cached in EX, other nodes could not freeze again.
      
      This patch removes the GL_NOCACHE flag to allow the freeze glock to be
      cached. It also adds the GL_EXACT flag so the glock is fully transitioned
      from EX to SH, thereby allowing future freeze operations.
      
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      623ba664
    • Bob Peterson's avatar
      gfs2: read-only mounts should grab the sd_freeze_gl glock · b780cc61
      Bob Peterson authored
      
      
      Before this patch, only read-write mounts would grab the freeze
      glock in read-only mode, as part of gfs2_make_fs_rw. So the freeze
      glock was never initialized. That meant requests to freeze, which
      request the glock in EX, were granted without any state transition.
      That meant you could mount a gfs2 file system, which is currently
      frozen on a different cluster node, in read-only mode.
      
      This patch makes read-only mounts lock the freeze glock in SH mode,
      which will block for file systems that are frozen on another node.
      
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      b780cc61
    • Bob Peterson's avatar
      gfs2: freeze should work on read-only mounts · 541656d3
      Bob Peterson authored
      
      
      Before this patch, function freeze_go_sync, called when promoting
      the freeze glock, was testing for the SDF_JOURNAL_LIVE superblock flag.
      That's only set for read-write mounts. Read-only mounts don't use a
      journal, so the bit is never set, so the freeze never happened.
      
      This patch removes the check for SDF_JOURNAL_LIVE for freeze requests
      but still checks it when deciding whether to flush a journal.
      
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      541656d3