]> Git Repo - J-linux.git/commitdiff
Merge tag 'char-misc-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregk...
authorLinus Torvalds <[email protected]>
Thu, 15 Oct 2020 17:01:51 +0000 (10:01 -0700)
committerLinus Torvalds <[email protected]>
Thu, 15 Oct 2020 17:01:51 +0000 (10:01 -0700)
Pull char/misc driver updates from Greg KH:
 "Here is the big set of char, misc, and other assorted driver subsystem
  patches for 5.10-rc1.

  There's a lot of different things in here, all over the drivers/
  directory. Some summaries:

   - soundwire driver updates

   - habanalabs driver updates

   - extcon driver updates

   - nitro_enclaves new driver

   - fsl-mc driver and core updates

   - mhi core and bus updates

   - nvmem driver updates

   - eeprom driver updates

   - binder driver updates and fixes

   - vbox minor bugfixes

   - fsi driver updates

   - w1 driver updates

   - coresight driver updates

   - interconnect driver updates

   - misc driver updates

   - other minor driver updates

  All of these have been in linux-next for a while with no reported
  issues"

* tag 'char-misc-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (396 commits)
  binder: fix UAF when releasing todo list
  docs: w1: w1_therm: Fix broken xref, mistakes, clarify text
  misc: Kconfig: fix a HISI_HIKEY_USB dependency
  LSM: Fix type of id parameter in kernel_post_load_data prototype
  misc: Kconfig: add a new dependency for HISI_HIKEY_USB
  firmware_loader: fix a kernel-doc markup
  w1: w1_therm: make w1_poll_completion static
  binder: simplify the return expression of binder_mmap
  test_firmware: Test partial read support
  firmware: Add request_partial_firmware_into_buf()
  firmware: Store opt_flags in fw_priv
  fs/kernel_file_read: Add "offset" arg for partial reads
  IMA: Add support for file reads without contents
  LSM: Add "contents" flag to kernel_read_file hook
  module: Call security_kernel_post_load_data()
  firmware_loader: Use security_post_load_data()
  LSM: Introduce kernel_post_load_data() hook
  fs/kernel_read_file: Add file_size output argument
  fs/kernel_read_file: Switch buffer size arg to size_t
  fs/kernel_read_file: Remove redundant size argument
  ...

15 files changed:
1  2 
Documentation/virt/index.rst
MAINTAINERS
drivers/base/firmware_loader/fallback.c
drivers/misc/uacce/uacce.c
fs/Makefile
fs/exec.c
include/linux/fs.h
kernel/module.c
kernel/trace/trace.c
security/selinux/hooks.c
sound/soc/codecs/max98373-sdw.c
sound/soc/codecs/rt1308-sdw.c
sound/soc/codecs/rt700-sdw.c
sound/soc/codecs/rt711-sdw.c
sound/soc/codecs/rt715-sdw.c

index d20490292642246e915cb015eb542ddd84731f06,e4224305dbef7d7857b52a40f0120ead3fefbf22..350f5c869b5642e5519b89de3350b7a30e38310a
@@@ -8,9 -8,10 +8,10 @@@ Linux Virtualization Suppor
     :maxdepth: 2
  
     kvm/index
 -   uml/user_mode_linux
 +   uml/user_mode_linux_howto_v2
     paravirt_ops
     guest-halt-polling
+    ne_overview
  
  .. only:: html and subproject
  
diff --combined MAINTAINERS
index 1975f409e68403002980e8db9dc80ef26fdfff8a,22f6e31abb4b782477e21174aad856e3b263d279..2c59389f3455da5584bd125c793a0c4430e52e7f
@@@ -405,7 -405,7 +405,7 @@@ F: drivers/platform/x86/i2c-multi-insta
  ACPI PMIC DRIVERS
  M:    "Rafael J. Wysocki" <[email protected]>
  M:    Len Brown <[email protected]>
 -R:    Andy Shevchenko <and[email protected]>
 +R:    Andy Shevchenko <and[email protected]>
  R:    Mika Westerberg <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -802,13 -802,6 +802,13 @@@ S:       Maintaine
  F:    Documentation/devicetree/bindings/interrupt-controller/amazon,al-fic.txt
  F:    drivers/irqchip/irq-al-fic.c
  
 +AMAZON ANNAPURNA LABS MEMORY CONTROLLER EDAC
 +M:    Talel Shenhar <[email protected]>
 +M:    Talel Shenhar <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/edac/amazon,al-mc-edac.yaml
 +F:    drivers/edac/al_mc_edac.c
 +
  AMAZON ANNAPURNA LABS THERMAL MMIO DRIVER
  M:    Talel Shenhar <[email protected]>
  S:    Maintained
@@@ -950,12 -943,37 +950,12 @@@ S:      Supporte
  F:    arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
  F:    drivers/net/ethernet/amd/xgbe/
  
 -ANALOG DEVICES INC AD5686 DRIVER
 -M:    Michael Hennerich <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    drivers/iio/dac/ad5686*
 -F:    drivers/iio/dac/ad5696*
 -
 -ANALOG DEVICES INC AD5758 DRIVER
 -M:    Michael Hennerich <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/dac/ad5758.txt
 -F:    drivers/iio/dac/ad5758.c
 -
 -ANALOG DEVICES INC AD7091R5 DRIVER
 -M:    Beniamin Bia <[email protected]>
 +AMS AS73211 DRIVER
 +M:    Christian Eggers <[email protected]>
  L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/adc/adi,ad7091r5.yaml
 -F:    drivers/iio/adc/ad7091r5.c
 -
 -ANALOG DEVICES INC AD7124 DRIVER
 -M:    Michael Hennerich <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
 -F:    drivers/iio/adc/ad7124.c
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/light/ams,as73211.yaml
 +F:    drivers/iio/light/as73211.c
  
  ANALOG DEVICES INC AD7192 DRIVER
  M:    Alexandru Tachici <[email protected]>
@@@ -973,6 -991,15 +973,6 @@@ W:        http://ez.analog.com/community/linux
  F:    Documentation/devicetree/bindings/iio/adc/adi,ad7292.yaml
  F:    drivers/iio/adc/ad7292.c
  
 -ANALOG DEVICES INC AD7606 DRIVER
 -M:    Michael Hennerich <[email protected]>
 -M:    Beniamin Bia <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
 -F:    drivers/iio/adc/ad7606.c
 -
  ANALOG DEVICES INC AD7768-1 DRIVER
  M:    Michael Hennerich <[email protected]>
  L:    [email protected]
@@@ -1034,6 -1061,7 +1034,6 @@@ F:      drivers/iio/imu/adis16475.
  F:    Documentation/devicetree/bindings/iio/imu/adi,adis16475.yaml
  
  ANALOG DEVICES INC ADM1177 DRIVER
 -M:    Beniamin Bia <[email protected]>
  M:    Michael Hennerich <[email protected]>
  L:    [email protected]
  S:    Supported
  S:    Maintained
  F:    drivers/media/i2c/adv7842*
  
 +ANALOG DEVICES INC ADXRS290 DRIVER
 +M:    Nishant Malpani <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/iio/gyro/adxrs290.c
 +F:    Documentation/devicetree/bindings/iio/gyroscope/adi,adxrs290.yaml
 +
  ANALOG DEVICES INC ASOC CODEC DRIVERS
  M:    Lars-Peter Clausen <[email protected]>
  M:    Nuno Sá <[email protected]>
@@@ -1107,6 -1128,15 +1107,6 @@@ S:     Supporte
  W:    http://ez.analog.com/community/linux-device-drivers
  F:    drivers/dma/dma-axi-dmac.c
  
 -ANALOG DEVICES INC HMC425A DRIVER
 -M:    Beniamin Bia <[email protected]>
 -M:    Michael Hennerich <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/amplifiers/adi,hmc425a.yaml
 -F:    drivers/iio/amplifiers/hmc425a.c
 -
  ANALOG DEVICES INC IIO DRIVERS
  M:    Lars-Peter Clausen <[email protected]>
  M:    Michael Hennerich <[email protected]>
@@@ -1115,11 -1145,8 +1115,11 @@@ W:    http://wiki.analog.com
  W:    http://ez.analog.com/community/linux-device-drivers
  F:    Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523
  F:    Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350
 +F:    Documentation/devicetree/bindings/iio/*/adi,*
 +F:    Documentation/devicetree/bindings/iio/dac/ad5758.txt
  F:    drivers/iio/*/ad*
  F:    drivers/iio/adc/ltc249*
 +F:    drivers/iio/amplifiers/hmc425a.c
  F:    drivers/staging/iio/*/ad*
  X:    drivers/iio/*/adjd*
  
@@@ -1433,11 -1460,6 +1433,11 @@@ S:    Odd Fixe
  F:    drivers/amba/
  F:    include/linux/amba/bus.h
  
 +ARM PRIMECELL CLCD PL110 DRIVER
 +M:    Russell King <[email protected]>
 +S:    Odd Fixes
 +F:    drivers/video/fbdev/amba-clcd.*
 +
  ARM PRIMECELL KMI PL050 DRIVER
  M:    Russell King <[email protected]>
  S:    Odd Fixes
@@@ -1484,7 -1506,8 +1484,7 @@@ L:      [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/iommu/arm,smmu*
  F:    drivers/iommu/arm/
 -F:    drivers/iommu/io-pgtable-arm-v7s.c
 -F:    drivers/iommu/io-pgtable-arm.c
 +F:    drivers/iommu/io-pgtable-arm*
  
  ARM SUB-ARCHITECTURES
  L:    [email protected] (moderated for non-subscribers)
@@@ -1502,9 -1525,8 +1502,9 @@@ F:      Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/clock/actions,owl-cmu.txt
  F:    Documentation/devicetree/bindings/dma/owl-dma.txt
  F:    Documentation/devicetree/bindings/i2c/i2c-owl.txt
 +F:    Documentation/devicetree/bindings/interrupt-controller/actions,owl-sirq.yaml
  F:    Documentation/devicetree/bindings/mmc/owl-mmc.yaml
 -F:    Documentation/devicetree/bindings/pinctrl/actions,s900-pinctrl.txt
 +F:    Documentation/devicetree/bindings/pinctrl/actions,*
  F:    Documentation/devicetree/bindings/power/actions,owl-sps.txt
  F:    Documentation/devicetree/bindings/timer/actions,owl-timer.txt
  F:    arch/arm/boot/dts/owl-*
@@@ -1514,7 -1536,6 +1514,7 @@@ F:      drivers/clk/actions
  F:    drivers/clocksource/timer-owl*
  F:    drivers/dma/owl-dma.c
  F:    drivers/i2c/busses/i2c-owl.c
 +F:    drivers/irqchip/irq-owl-sirq.c
  F:    drivers/mmc/host/owl-mmc.c
  F:    drivers/pinctrl/actions/*
  F:    drivers/soc/actions/
@@@ -1602,7 -1623,7 +1602,7 @@@ N:      meso
  
  ARM/Annapurna Labs ALPINE ARCHITECTURE
  M:    Tsahee Zidenberg <[email protected]>
 -M:    Antoine Tenart <a[email protected]>
 +M:    Antoine Tenart <a[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/boot/dts/alpine*
@@@ -1725,6 -1746,7 +1725,7 @@@ ARM/CORESIGHT FRAMEWORK AND DRIVER
  M:    Mathieu Poirier <[email protected]>
  R:    Suzuki K Poulose <[email protected]>
  R:    Mike Leach <[email protected]>
+ L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-bus-coresight-devices-*
@@@ -2424,7 -2446,7 +2425,7 @@@ L:      [email protected] (m
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/s5p-cec.txt
 -F:    drivers/media/platform/s5p-cec/
 +F:    drivers/media/cec/platform/s5p/
  
  ARM/SAMSUNG S5P SERIES JPEG CODEC SUPPORT
  M:    Andrzej Pietrasiewicz <[email protected]>
@@@ -2483,7 -2505,7 +2484,7 @@@ S:      Maintaine
  F:    drivers/clk/socfpga/
  
  ARM/SOCFPGA EDAC SUPPORT
 -M:    Thor Thayer <[email protected]>
 +M:    Dinh Nguyen <[email protected]>
  S:    Maintained
  F:    drivers/edac/altera_edac.
  
@@@ -2569,7 -2591,7 +2570,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/tegra-cec.txt
 -F:    drivers/media/platform/tegra-cec/
 +F:    drivers/media/cec/platform/tegra/
  
  ARM/TETON BGA MACHINE SUPPORT
  M:    "Mark F. Brown" <[email protected]>
@@@ -3454,14 -3476,6 +3455,14 @@@ F:    drivers/bus/brcmstb_gisb.
  F:    drivers/pci/controller/pcie-brcmstb.c
  N:    brcmstb
  
 +BROADCOM BDC DRIVER
 +M:    Al Cooper <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/usb/brcm,bdc.txt
 +F:    drivers/usb/gadget/udc/bdc/
 +
  BROADCOM BMIPS CPUFREQ DRIVER
  M:    Markus Mayer <[email protected]>
  M:    [email protected]
@@@ -3494,17 -3508,13 +3495,17 @@@ F:   drivers/net/ethernet/broadcom/bnx2.
  F:    drivers/net/ethernet/broadcom/bnx2_*
  
  BROADCOM BNX2FC 10 GIGABIT FCOE DRIVER
 -M:    [email protected]
 +M:    Saurav Kashyap <[email protected]>
 +M:    Javed Hasan <[email protected]>
 +M:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/scsi/bnx2fc/
  
  BROADCOM BNX2I 1/10 GIGABIT iSCSI DRIVER
 -M:    [email protected]
 +M:    Nilesh Javali <[email protected]>
 +M:    Manish Rangankar <[email protected]>
 +M:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/scsi/bnx2i/
@@@ -3839,16 -3849,6 +3840,16 @@@ S:    Orpha
  F:    Documentation/devicetree/bindings/mtd/cadence-nand-controller.txt
  F:    drivers/mtd/nand/raw/cadence-nand-controller.c
  
 +CADENCE USB3 DRD IP DRIVER
 +M:    Peter Chen <[email protected]>
 +M:    Pawel Laszczak <[email protected]>
 +M:    Roger Quadros <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
 +F:    Documentation/devicetree/bindings/usb/cdns-usb3.txt
 +F:    drivers/usb/cdns3/
 +
  CADET FM/AM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
@@@ -4031,7 -4031,7 +4032,7 @@@ S:      Supporte
  W:    http://linuxtv.org
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/cec-gpio.txt
 -F:    drivers/media/platform/cec-gpio/
 +F:    drivers/media/cec/platform/cec-gpio/
  
  CELL BROADBAND ENGINE ARCHITECTURE
  M:    Arnd Bergmann <[email protected]>
@@@ -4101,6 -4101,11 +4102,11 @@@ T:    git git://git.kernel.org/pub/scm/lin
  F:    drivers/char/
  F:    drivers/misc/
  F:    include/linux/miscdevice.h
+ X:    drivers/char/agp/
+ X:    drivers/char/hw_random/
+ X:    drivers/char/ipmi/
+ X:    drivers/char/random.c
+ X:    drivers/char/tpm/
  
  CHECKPATCH
  M:    Andy Whitcroft <[email protected]>
@@@ -4409,6 -4414,12 +4415,6 @@@ T:     git git://git.infradead.org/users/hc
  F:    fs/configfs/
  F:    include/linux/configfs.h
  
 -CONNECTOR
 -M:    Evgeniy Polyakov <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/connector/
 -
  CONSOLE SUBSYSTEM
  M:    Greg Kroah-Hartman <[email protected]>
  S:    Supported
@@@ -5007,12 -5018,6 +5013,12 @@@ S:    Maintaine
  F:    drivers/base/devcoredump.c
  F:    include/linux/devcoredump.h
  
 +DEVICE DEPENDENCY HELPER SCRIPT
 +M:    Saravana Kannan <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    scripts/dev-needs.sh
 +
  DEVICE DIRECT ACCESS (DAX)
  M:    Dan Williams <[email protected]>
  M:    Vishal Verma <[email protected]>
@@@ -5381,6 -5386,7 +5387,6 @@@ F:      include/linux/kobj
  F:    lib/kobj*
  
  DRIVERS FOR ADAPTIVE VOLTAGE SCALING (AVS)
 -M:    Kevin Hilman <[email protected]>
  M:    Nishanth Menon <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -6180,12 -6186,12 +6186,12 @@@ F:   Documentation/devicetree/bindings/ed
  F:    drivers/edac/aspeed_edac.c
  
  EDAC-BLUEFIELD
 -M:    Shravan Kumar Ramani <sramani@nvidia.com>
 +M:    Shravan Kumar Ramani <shravankr@nvidia.com>
  S:    Supported
  F:    drivers/edac/bluefield_edac.c
  
  EDAC-CALXEDA
 -M:    Robert Richter <[email protected]>
 +M:    Andre Przywara <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/edac/highbank*
@@@ -6828,14 -6834,17 +6834,17 @@@ F:   drivers/net/ethernet/nvidia/
  
  FPGA DFL DRIVERS
  M:    Wu Hao <[email protected]>
+ R:    Tom Rix <[email protected]>
  L:    [email protected]
  S:    Maintained
+ F:    Documentation/ABI/testing/sysfs-bus-dfl
  F:    Documentation/fpga/dfl.rst
  F:    drivers/fpga/dfl*
  F:    include/uapi/linux/fpga-dfl.h
  
  FPGA MANAGER FRAMEWORK
  M:    Moritz Fischer <[email protected]>
+ R:    Tom Rix <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.rocketboards.org
@@@ -7241,7 -7250,7 +7250,7 @@@ F:      drivers/staging/gasket
  GCC PLUGINS
  M:    Kees Cook <[email protected]>
  R:    Emese Revfy <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/kbuild/gcc-plugins.rst
  F:    scripts/Makefile.gcc-plugins
@@@ -7741,8 -7750,8 +7750,8 @@@ F:      Documentation/watchdog/hpwdt.rs
  F:    drivers/watchdog/hpwdt.c
  
  HEWLETT-PACKARD SMART ARRAY RAID DRIVER (hpsa)
 -M:    Don Brace <don.brace@microsemi.com>
 -L:    esc.storagedev@microsemi.com
 +M:    Don Brace <don.brace@microchip.com>
 +L:    storagedev@microchip.com
  L:    [email protected]
  S:    Supported
  F:    Documentation/scsi/hpsa.rst
@@@ -7885,6 -7894,13 +7894,13 @@@ W:    http://www.hisilicon.co
  F:    Documentation/devicetree/bindings/net/hisilicon*.txt
  F:    drivers/net/ethernet/hisilicon/
  
+ HIKEY960 ONBOARD USB GPIO HUB DRIVER
+ M:    John Stultz <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/misc/hisi_hikey_usb.c
+ F:    Documentation/devicetree/bindings/misc/hisilicon-hikey-usb.yaml
  HISILICON PMU DRIVER
  M:    Shaokun Zhang <[email protected]>
  S:    Supported
@@@ -7928,12 -7944,6 +7944,12 @@@ F:    drivers/crypto/hisilicon/sec2/sec_cr
  F:    drivers/crypto/hisilicon/sec2/sec_crypto.h
  F:    drivers/crypto/hisilicon/sec2/sec_main.c
  
 +HISILICON STAGING DRIVERS FOR HIKEY 960/970
 +M:    Mauro Carvalho Chehab <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/staging/hikey9xx/
 +
  HISILICON TRUE RANDOM NUMBER GENERATOR V2 SUPPORT
  M:    Zaibo Xu <[email protected]>
  S:    Maintained
@@@ -8335,9 -8345,8 +8351,9 @@@ S:      Supporte
  F:    drivers/pci/hotplug/rpaphp*
  
  IBM Power SRIOV Virtual NIC Device Driver
 -M:    Thomas Falcon <[email protected]>
 -M:    John Allen <[email protected]>
 +M:    Dany Madden <[email protected]>
 +M:    Lijun Pan <[email protected]>
 +M:    Sukadev Bhattiprolu <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/ibm/ibmvnic.*
@@@ -8351,7 -8360,7 +8367,7 @@@ F:      arch/powerpc/platforms/powernv/copy-
  F:    arch/powerpc/platforms/powernv/vas*
  
  IBM Power Virtual Ethernet Device Driver
 -M:    Thomas Falcon <tlfalcon@linux.ibm.com>
 +M:    Cristobal Forno <cforno12@linux.ibm.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/ibm/ibmveth.*
@@@ -8511,6 -8520,7 +8527,6 @@@ F:      drivers/iio/multiplexer/iio-mux.
  
  IIO SUBSYSTEM AND DRIVERS
  M:    Jonathan Cameron <[email protected]>
 -R:    Hartmut Knaack <[email protected]>
  R:    Lars-Peter Clausen <[email protected]>
  R:    Peter Meerwald-Stadler <[email protected]>
  L:    [email protected]
@@@ -8684,7 -8694,7 +8700,7 @@@ F:      drivers/input/input-mt.
  K:    \b(ABS|SYN)_MT_
  
  INSIDE SECURE CRYPTO DRIVER
 -M:    Antoine Tenart <a[email protected]>
 +M:    Antoine Tenart <a[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/crypto/inside-secure/
@@@ -8763,8 -8773,7 +8779,8 @@@ F:      include/drm/i915
  F:    include/uapi/drm/i915_drm.h
  
  INTEL ETHERNET DRIVERS
 -M:    Jeff Kirsher <[email protected]>
 +M:    Jesse Brandeburg <[email protected]>
 +M:    Tony Nguyen <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  W:    http://www.intel.com/support/feedback.htm
@@@ -8863,7 -8872,7 +8879,7 @@@ INTEL IPU3 CSI-2 CIO2 DRIVE
  M:    Yong Zhi <[email protected]>
  M:    Sakari Ailus <[email protected]>
  M:    Bingbu Cao <[email protected]>
 -R:    Tian Shu Qiu <[email protected]>
 +R:    Tianshu Qiu <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/userspace-api/media/v4l/pixfmt-srggb10-ipu3.rst
@@@ -8872,7 -8881,7 +8888,7 @@@ F:      drivers/media/pci/intel/ipu3
  INTEL IPU3 CSI-2 IMGU DRIVER
  M:    Sakari Ailus <[email protected]>
  R:    Bingbu Cao <[email protected]>
 -R:    Tian Shu Qiu <[email protected]>
 +R:    Tianshu Qiu <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/admin-guide/media/ipu3.rst
@@@ -8937,8 -8946,8 +8953,8 @@@ F:      arch/x86/include/asm/intel_punit_ipc
  F:    drivers/platform/x86/intel_punit_ipc.c
  
  INTEL PMC CORE DRIVER
 -M:    Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
 -M:    Vishwanath Somayaji <vishwanath.somayaji@intel.com>
 +M:    Rajneesh Bhardwaj <irenic.rajneesh@gmail.com>
 +M:    David E Box <david.e.box@intel.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/platform/x86/intel_pmc_core*
@@@ -8951,7 -8960,7 +8967,7 @@@ F:      drivers/gpio/gpio-*cove.
  F:    drivers/gpio/gpio-msic.c
  
  INTEL PMIC MULTIFUNCTION DEVICE DRIVERS
 -R:    Andy Shevchenko <[email protected]>
 +M:    Andy Shevchenko <[email protected]>
  S:    Maintained
  F:    drivers/mfd/intel_msic.c
  F:    drivers/mfd/intel_soc_pmic*
@@@ -9132,7 -9141,6 +9148,7 @@@ L:      [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  F:    Documentation/devicetree/bindings/iommu/
 +F:    Documentation/userspace-api/iommu.rst
  F:    drivers/iommu/
  F:    include/linux/iommu.h
  F:    include/linux/iova.h
@@@ -9259,7 -9267,7 +9275,7 @@@ F:      drivers/firmware/iscsi_ibft
  
  ISCSI EXTENSIONS FOR RDMA (ISER) INITIATOR
  M:    Sagi Grimberg <[email protected]>
 -M:    Max Gurtovoy <maxg@nvidia.com>
 +M:    Max Gurtovoy <mgurtovoy@nvidia.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.openfabrics.org
@@@ -9725,8 -9733,8 +9741,8 @@@ M:      Catalin Marinas <catalin.marinas@arm
  S:    Maintained
  F:    Documentation/dev-tools/kmemleak.rst
  F:    include/linux/kmemleak.h
 -F:    mm/kmemleak-test.c
  F:    mm/kmemleak.c
 +F:    samples/kmemleak/kmemleak-test.c
  
  KMOD KERNEL MODULE LOADER - USERMODE HELPER
  M:    Luis Chamberlain <[email protected]>
@@@ -9755,12 -9763,6 +9771,12 @@@ F:    Documentation/admin-guide/auxdisplay
  F:    drivers/auxdisplay/ks0108.c
  F:    include/linux/ks0108.h
  
 +KTD253 BACKLIGHT DRIVER
 +M:    Linus Walleij <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/leds/backlight/kinetic,ktd253.yaml
 +F:    drivers/video/backlight/ktd253-backlight.c
 +
  L3MDEV
  M:    David Ahern <[email protected]>
  L:    [email protected]
@@@ -9815,7 -9817,7 +9831,7 @@@ F:      drivers/scsi/53c700
  LEAKING_ADDRESSES
  M:    Tobin C. Harding <[email protected]>
  M:    Tycho Andersen <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tobin/leaks.git
  F:    scripts/leaking_addresses.pl
@@@ -9886,6 -9888,15 +9902,6 @@@ T:     git git://git.kernel.org/pub/scm/lin
  F:    drivers/ata/pata_arasan_cf.c
  F:    include/linux/pata_arasan_cf_data.h
  
 -LIBATA PATA DRIVERS
 -M:    Bartlomiej Zolnierkiewicz <[email protected]>
 -M:    Jens Axboe <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
 -F:    drivers/ata/ata_generic.c
 -F:    drivers/ata/pata_*.c
 -
  LIBATA PATA FARADAY FTIDE010 AND GEMINI SATA BRIDGE DRIVERS
  M:    Linus Walleij <[email protected]>
  L:    [email protected]
@@@ -11047,7 -11058,6 +11063,7 @@@ F:   drivers/char/hw_random/mtk-rng.
  
  MEDIATEK SWITCH DRIVER
  M:    Sean Wang <[email protected]>
 +M:    Landen Chao <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/dsa/mt7530.*
@@@ -11055,7 -11065,7 +11071,7 @@@ F:   net/dsa/tag_mtk.
  
  MEDIATEK USB3 DRD IP DRIVER
  M:    Chunfeng Yun <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -11323,8 -11333,8 +11339,8 @@@ S:   Supporte
  W:    http://linux-meson.com/
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/amlogic,meson-gx-ao-cec.yaml
 -F:    drivers/media/platform/meson/ao-cec-g12a.c
 -F:    drivers/media/platform/meson/ao-cec.c
 +F:    drivers/media/cec/platform/meson/ao-cec-g12a.c
 +F:    drivers/media/cec/platform/meson/ao-cec.c
  
  MESON NAND CONTROLLER DRIVER FOR AMLOGIC SOCS
  M:    Liang Yang <[email protected]>
@@@ -11334,6 -11344,7 +11350,6 @@@ F:   Documentation/devicetree/bindings/mt
  F:    drivers/mtd/nand/raw/meson_*
  
  MESON VIDEO DECODER DRIVER FOR AMLOGIC SOCS
 -M:    Maxime Jourdan <[email protected]>
  M:    Neil Armstrong <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -11353,6 -11364,7 +11369,7 @@@ M:   Hemant Kumar <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mani/mhi.git
+ F:    Documentation/ABI/stable/sysfs-bus-mhi
  F:    Documentation/mhi/
  F:    drivers/bus/mhi/
  F:    include/linux/mhi.h
@@@ -11551,8 -11563,8 +11568,8 @@@ F:   arch/mips/configs/generic/board-ocel
  F:    arch/mips/generic/board-ocelot.c
  
  MICROSEMI SMART ARRAY SMARTPQI DRIVER (smartpqi)
 -M:    Don Brace <don.brace@microsemi.com>
 -L:    esc.storagedev@microsemi.com
 +M:    Don Brace <don.brace@microchip.com>
 +L:    storagedev@microchip.com
  L:    [email protected]
  S:    Supported
  F:    Documentation/scsi/smartpqi.rst
@@@ -11784,13 -11796,6 +11801,13 @@@ Q: http://patchwork.linuxtv.org/project
  T:    git git://linuxtv.org/anttip/media_tree.git
  F:    drivers/media/usb/msi2500/
  
 +MSTAR INTERRUPT CONTROLLER DRIVER
 +M:    Mark-PK Tsai <[email protected]>
 +M:    Daniel Palmer <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/interrupt-controller/mstar,mst-intc.yaml
 +F:    drivers/irqchip/irq-mst-intc.c
 +
  MSYSTEMS DISKONCHIP G3 MTD DRIVER
  M:    Robert Jarzmik <[email protected]>
  L:    [email protected]
@@@ -12067,7 -12072,6 +12084,7 @@@ Q:   http://patchwork.ozlabs.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
  F:    Documentation/devicetree/bindings/net/
 +F:    drivers/connector/
  F:    drivers/net/
  F:    include/linux/etherdevice.h
  F:    include/linux/fcdevice.h
@@@ -12093,7 -12097,6 +12110,7 @@@ NETWORKING [DSA
  M:    Andrew Lunn <[email protected]>
  M:    Vivien Didelot <[email protected]>
  M:    Florian Fainelli <[email protected]>
 +M:    Vladimir Oltean <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/dsa/
  F:    drivers/net/dsa/
@@@ -12307,6 -12310,19 +12324,19 @@@ S: Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2.git
  F:    arch/nios2/
  
+ NITRO ENCLAVES (NE)
+ M:    Andra Paraschiv <[email protected]>
+ M:    Alexandru Vasile <[email protected]>
+ M:    Alexandru Ciobotaru <[email protected]>
+ L:    [email protected]
+ S:    Supported
+ W:    https://aws.amazon.com/ec2/nitro/nitro-enclaves/
+ F:    Documentation/virt/ne_overview.rst
+ F:    drivers/virt/nitro_enclaves/
+ F:    include/linux/nitro_enclaves.h
+ F:    include/uapi/linux/nitro_enclaves.h
+ F:    samples/nitro_enclaves/
  NOHZ, DYNTICKS SUPPORT
  M:    Frederic Weisbecker <[email protected]>
  M:    Thomas Gleixner <[email protected]>
@@@ -12469,6 -12485,13 +12499,13 @@@ F: drivers/iio/gyro/fxas21002c_core.
  F:    drivers/iio/gyro/fxas21002c_i2c.c
  F:    drivers/iio/gyro/fxas21002c_spi.c
  
+ NXP PTN5150A CC LOGIC AND EXTCON DRIVER
+ M:    Krzysztof Kozlowski <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/extcon/extcon-ptn5150.yaml
+ F:    drivers/extcon/extcon-ptn5150.c
  NXP SGTL5000 DRIVER
  M:    Fabio Estevam <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -12519,7 -12542,6 +12556,7 @@@ M:   Josh Poimboeuf <[email protected]
  M:    Peter Zijlstra <[email protected]>
  S:    Supported
  F:    tools/objtool/
 +F:    include/linux/objtool.h
  
  OCELOT ETHERNET SWITCH DRIVER
  M:    Microchip Linux Driver Support <[email protected]>
@@@ -12781,7 -12803,7 +12818,7 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    drivers/media/i2c/ov2685.c
  
  OMNIVISION OV2740 SENSOR DRIVER
 -M:    Tianshu Qiu <tian.shu.qiua@intel.com>
 +M:    Tianshu Qiu <[email protected]>
  R:    Shawn Tu <[email protected]>
  R:    Bingbu Cao <[email protected]>
  L:    [email protected]
@@@ -12797,12 -12819,10 +12834,12 @@@ T:        git git://linuxtv.org/media_tree.gi
  F:    drivers/media/i2c/ov5640.c
  
  OMNIVISION OV5647 SENSOR DRIVER
 -M:    Luis Oliveira <[email protected]>
 +M:    Dave Stevenson <[email protected]>
 +M:    Jacopo Mondi <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/ov5647.yaml
  F:    drivers/media/i2c/ov5647.c
  
  OMNIVISION OV5670 SENSOR DRIVER
@@@ -13065,9 -13085,7 +13102,9 @@@ F:   lib/packing.
  
  PADATA PARALLEL EXECUTION MECHANISM
  M:    Steffen Klassert <[email protected]>
 +M:    Daniel Jordan <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/core-api/padata.rst
  F:    include/linux/padata.h
@@@ -13204,7 -13222,6 +13241,7 @@@ F:   drivers/firmware/pcdp.
  
  PCI DRIVER FOR AARDVARK (Marvell Armada 3700)
  M:    Thomas Petazzoni <[email protected]>
 +M:    Pali Rohár <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -13739,9 -13756,10 +13776,9 @@@ PIN CONTROLLER - RENESA
  M:    Geert Uytterhoeven <[email protected]>
  L:    [email protected]
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git sh-pfc
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git renesas-pinctrl
  F:    Documentation/devicetree/bindings/pinctrl/renesas,*
 -F:    drivers/pinctrl/pinctrl-rz*
 -F:    drivers/pinctrl/sh-pfc/
 +F:    drivers/pinctrl/renesas/
  
  PIN CONTROLLER - SAMSUNG
  M:    Tomasz Figa <[email protected]>
@@@ -13974,7 -13992,6 +14011,7 @@@ PRINT
  M:    Petr Mladek <[email protected]>
  M:    Sergey Senozhatsky <[email protected]>
  R:    Steven Rostedt <[email protected]>
 +R:    John Ogness <[email protected]>
  S:    Maintained
  F:    include/linux/printk.h
  F:    kernel/printk/
@@@ -14212,17 -14229,13 +14249,17 @@@ S:        Supporte
  F:    drivers/infiniband/hw/qib/
  
  QLOGIC QL41xxx FCOE DRIVER
 -M:    [email protected]
 +M:    Saurav Kashyap <[email protected]>
 +M:    Javed Hasan <[email protected]>
 +M:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/scsi/qedf/
  
  QLOGIC QL41xxx ISCSI DRIVER
 -M:    [email protected]
 +M:    Nilesh Javali <[email protected]>
 +M:    Manish Rangankar <[email protected]>
 +M:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/scsi/qedi/
@@@ -14255,20 -14268,21 +14292,20 @@@ M:        Nilesh Javali <[email protected]
  M:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    Documentation/scsi/LICENSE.qla2xxx
  F:    drivers/scsi/qla2xxx/
  
  QLOGIC QLA3XXX NETWORK DRIVER
  M:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    Documentation/networking/device_drivers/ethernet/qlogic/LICENSE.qla3xxx
  F:    drivers/net/ethernet/qlogic/qla3xxx.*
  
  QLOGIC QLA4XXX iSCSI DRIVER
 -M:    [email protected]
 +M:    Nilesh Javali <[email protected]>
 +M:    Manish Rangankar <[email protected]>
 +M:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    Documentation/scsi/LICENSE.qla4xxx
  F:    drivers/scsi/qla4xxx/
  
  QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
@@@ -14616,9 -14630,9 +14653,9 @@@ M:   Niklas Söderlund <niklas.soderlund+
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml
 -F:    drivers/media/i2c/rdacm20.c
  F:    drivers/media/i2c/max9271.c
  F:    drivers/media/i2c/max9271.h
 +F:    drivers/media/i2c/rdacm20.c
  
  RDC R-321X SoC
  M:    Florian Fainelli <[email protected]>
@@@ -14912,11 -14926,8 +14949,11 @@@ F: include/linux/hid-roccat
  
  ROCKCHIP ISP V1 DRIVER
  M:    Helen Koike <[email protected]>
 +M:    Dafna Hirschfeld <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/admin-guide/media/rkisp1.rst
 +F:    Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst
  F:    drivers/staging/media/rkisp1/
  
  ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER
@@@ -15412,7 -15423,6 +15449,7 @@@ R:   Dietmar Eggemann <dietmar.eggemann@a
  R:    Steven Rostedt <[email protected]> (SCHED_FIFO/SCHED_RR)
  R:    Ben Segall <[email protected]> (CONFIG_CFS_BANDWIDTH)
  R:    Mel Gorman <[email protected]> (CONFIG_NUMA_BALANCING)
 +R:    Daniel Bristot de Oliveira <[email protected]> (SCHED_DEADLINE)
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
@@@ -15534,8 -15544,8 +15571,8 @@@ F:   drivers/mmc/host/sdricoh_cs.
  SECO BOARDS CEC DRIVER
  M:    Ettore Chimenti <[email protected]>
  S:    Maintained
 -F:    drivers/media/platform/seco-cec/seco-cec.c
 -F:    drivers/media/platform/seco-cec/seco-cec.h
 +F:    drivers/media/cec/platform/seco/seco-cec.c
 +F:    drivers/media/cec/platform/seco/seco-cec.h
  
  SECURE COMPUTING
  M:    Kees Cook <[email protected]>
@@@ -15628,7 -15638,6 +15665,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/ABI/obsolete/sysfs-selinux-checkreqprot
  F:    Documentation/ABI/obsolete/sysfs-selinux-disable
  F:    Documentation/admin-guide/LSM/SELinux.rst
 +F:    include/trace/events/avc.h
  F:    include/uapi/linux/selinux_netlink.h
  F:    scripts/selinux/
  F:    security/selinux/
@@@ -16103,6 -16112,7 +16140,6 @@@ F:   include/uapi/rdma/rdma_user_rxe.
  SOFTLOGIC 6x10 MPEG CODEC
  M:    Bluecherry Maintainers <[email protected]>
  M:    Anton Sviridenko <[email protected]>
 -M:    Andrey Utkin <[email protected]>
  M:    Andrey Utkin <[email protected]>
  M:    Ismael Luceno <[email protected]>
  L:    [email protected]
@@@ -16184,7 -16194,7 +16221,7 @@@ M:   Leon Luo <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/imx274.txt
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml
  F:    drivers/media/i2c/imx274.c
  
  SONY IMX290 SENSOR DRIVER
@@@ -16522,6 -16532,7 +16559,6 @@@ F:   drivers/staging/rtl8712
  
  STAGING - SEPS525 LCD CONTROLLER DRIVERS
  M:    Michael Hennerich <[email protected]>
 -M:    Beniamin Bia <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
@@@ -16569,7 -16580,7 +16606,7 @@@ STI CEC DRIVE
  M:    Benjamin Gaignard <[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/stih-cec.txt
 -F:    drivers/media/platform/sti/cec/
 +F:    drivers/media/cec/platform/sti/
  
  STK1160 USB VIDEO CAPTURE DRIVER
  M:    Ezequiel Garcia <[email protected]>
@@@ -16753,13 -16764,6 +16790,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
  F:    drivers/gpio/gpio-dwapb.c
  
 +SYNOPSYS DESIGNWARE APB SSI DRIVER
 +M:    Serge Semin <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
 +F:    drivers/spi/spi-dw*
 +
  SYNOPSYS DESIGNWARE AXI DMAC DRIVER
  M:    Eugeniy Paltsev <[email protected]>
  S:    Maintained
  S:    Maintained
  W:    https://kernsec.org/wiki/index.php/Linux_Kernel_Integrity
  Q:    https://patchwork.kernel.org/project/linux-integrity/list/
 -T:    git git://git.infradead.org/users/jjs/linux-tpmdd.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git
  F:    drivers/char/tpm/
  
  TRACING
@@@ -17763,7 -17767,6 +17800,7 @@@ S:   Supporte
  W:    http://www.linux-mtd.infradead.org/doc/ubifs.html
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git next
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git fixes
 +F:    Documentation/filesystems/ubifs-authentication.rst
  F:    Documentation/filesystems/ubifs.rst
  F:    fs/ubifs/
  
@@@ -18157,6 -18160,14 +18194,6 @@@ T:  git git://linuxtv.org/media_tree.gi
  F:    drivers/media/usb/uvc/
  F:    include/uapi/linux/uvcvideo.h
  
 -USB VISION DRIVER
 -M:    Hans Verkuil <[email protected]>
 -L:    [email protected]
 -S:    Odd Fixes
 -W:    https://linuxtv.org
 -T:    git git://linuxtv.org/media_tree.git
 -F:    drivers/staging/media/usbvision/
 -
  USB WEBCAM GADGET
  M:    Laurent Pinchart <[email protected]>
  L:    [email protected]
@@@ -18310,8 -18321,7 +18347,8 @@@ F:   drivers/gpu/vga/vga_switcheroo.
  F:    include/linux/vga_switcheroo.h
  
  VIA RHINE NETWORK DRIVER
 -S:    Orphan
 +S:    Maintained
 +M:    Kevin Brace <[email protected]>
  F:    drivers/net/ethernet/via/via-rhine.c
  
  VIA SD/MMC CARD CONTROLLER DRIVER
@@@ -18356,8 -18366,10 +18393,8 @@@ S:  Maintaine
  F:    drivers/media/platform/video-mux.c
  
  VIDEOBUF2 FRAMEWORK
 -M:    Pawel Osciak <[email protected]>
 +M:    Tomasz Figa <[email protected]>
  M:    Marek Szyprowski <[email protected]>
 -M:    Kyungmin Park <[email protected]>
 -R:    Tomasz Figa <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/media/common/videobuf2/*
@@@ -18547,14 -18559,6 +18584,14 @@@ W: https://linuxtv.or
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/test-drivers/vivid/*
  
 +VIDTV VIRTUAL DIGITAL TV DRIVER
 +M:    Daniel W. S. Almeida <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +W:    https://linuxtv.org
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/test-drivers/vidtv/*
 +
  VLYNQ BUS
  M:    Florian Fainelli <[email protected]>
  L:    [email protected] (subscribers-only)
@@@ -18922,11 -18926,11 +18959,11 @@@ T:        git git://git.kernel.org/pub/scm/lin
  F:    arch/x86/mm/
  
  X86 PLATFORM DRIVERS
 -M:    Darren Hart <[email protected]>
 -M:    Andy Shevchenko <[email protected]>
 +M:    Hans de Goede <[email protected]>
 +M:    Mark Gross <[email protected]>
  L:    [email protected]
 -S:    Odd Fixes
 -T:    git git://git.infradead.org/linux-platform-drivers-x86.git
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
  F:    drivers/platform/olpc/
  F:    drivers/platform/x86/
  
@@@ -19275,16 -19279,6 +19312,16 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    Documentation/filesystems/zonefs.rst
  F:    fs/zonefs/
  
 +ZR36067 VIDEO FOR LINUX DRIVER
 +M:    Corentin Labbe <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +W:    http://mjpeg.sourceforge.net/driver-zoran/
 +Q:    https://patchwork.linuxtv.org/project/linux-media/list/
 +F:    Documentation/driver-api/media/drivers/zoran.rst
 +F:    drivers/staging/media/zoran/
 +
  ZPOOL COMPRESSED PAGE STORAGE API
  M:    Dan Streetman <[email protected]>
  L:    [email protected]
index d60e6d8c967cdb13ac70c9a86ce6c08bc066a38d,355a0e98fa7e9f2a9529247cc0a0e6c5f7185cee..4dec4b79ae067619ae55dc24508eb45f65c12c18
@@@ -124,7 -124,7 +124,7 @@@ void kill_pending_fw_fallback_reqs(boo
  static ssize_t timeout_show(struct class *class, struct class_attribute *attr,
                            char *buf)
  {
 -      return sprintf(buf, "%d\n", __firmware_loading_timeout());
 +      return sysfs_emit(buf, "%d\n", __firmware_loading_timeout());
  }
  
  /**
@@@ -219,7 -219,7 +219,7 @@@ static ssize_t firmware_loading_show(st
                loading = fw_sysfs_loading(fw_sysfs->fw_priv);
        mutex_unlock(&fw_lock);
  
 -      return sprintf(buf, "%d\n", loading);
 +      return sysfs_emit(buf, "%d\n", loading);
  }
  
  /**
@@@ -272,9 -272,9 +272,9 @@@ static ssize_t firmware_loading_store(s
                                dev_err(dev, "%s: map pages failed\n",
                                        __func__);
                        else
-                               rc = security_kernel_post_read_file(NULL,
-                                               fw_priv->data, fw_priv->size,
-                                               READING_FIRMWARE);
+                               rc = security_kernel_post_load_data(fw_priv->data,
+                                               fw_priv->size,
+                                               LOADING_FIRMWARE, "blob");
  
                        /*
                         * Same logic as fw_load_abort, only the DONE bit
@@@ -490,13 -490,11 +490,11 @@@ exit
  /**
   * fw_load_sysfs_fallback() - load a firmware via the sysfs fallback mechanism
   * @fw_sysfs: firmware sysfs information for the firmware to load
-  * @opt_flags: flags of options, FW_OPT_*
   * @timeout: timeout to wait for the load
   *
   * In charge of constructing a sysfs fallback interface for firmware loading.
   **/
- static int fw_load_sysfs_fallback(struct fw_sysfs *fw_sysfs,
-                                 u32 opt_flags, long timeout)
+ static int fw_load_sysfs_fallback(struct fw_sysfs *fw_sysfs, long timeout)
  {
        int retval = 0;
        struct device *f_dev = &fw_sysfs->dev;
        list_add(&fw_priv->pending_list, &pending_fw_head);
        mutex_unlock(&fw_lock);
  
-       if (opt_flags & FW_OPT_UEVENT) {
+       if (fw_priv->opt_flags & FW_OPT_UEVENT) {
                fw_priv->need_uevent = true;
                dev_set_uevent_suppress(f_dev, false);
                dev_dbg(f_dev, "firmware: requesting %s\n", fw_priv->fw_name);
@@@ -580,10 -578,10 +578,10 @@@ static int fw_load_from_user_helper(str
        }
  
        fw_sysfs->fw_priv = firmware->priv;
-       ret = fw_load_sysfs_fallback(fw_sysfs, opt_flags, timeout);
+       ret = fw_load_sysfs_fallback(fw_sysfs, timeout);
  
        if (!ret)
-               ret = assign_fw(firmware, device, opt_flags);
+               ret = assign_fw(firmware, device);
  
  out_unlock:
        usermodehelper_read_unlock();
@@@ -613,7 -611,7 +611,7 @@@ static bool fw_run_sysfs_fallback(u32 o
                return false;
  
        /* Also permit LSMs and IMA to fail firmware sysfs fallback */
-       ret = security_kernel_load_data(LOADING_FIRMWARE);
+       ret = security_kernel_load_data(LOADING_FIRMWARE, true);
        if (ret < 0)
                return false;
  
   * @fw: pointer to firmware image
   * @name: name of firmware file to look for
   * @device: device for which firmware is being loaded
-  * @opt_flags: options to control firmware loading behaviour
+  * @opt_flags: options to control firmware loading behaviour, as defined by
+  *           &enum fw_opt
   * @ret: return value from direct lookup which triggered the fallback mechanism
   *
   * This function is called if direct lookup for the firmware failed, it enables
index 4cb7a5b194677df10cb6db2f5422dcce80e4cc59,a9da7b166503daa93d3d9d26d1f9010d2fcd6e85..56dd98ab5a81463584799833611fae48917a42c0
@@@ -93,7 -93,7 +93,7 @@@ static long uacce_fops_compat_ioctl(str
  
  static int uacce_bind_queue(struct uacce_device *uacce, struct uacce_queue *q)
  {
 -      int pasid;
 +      u32 pasid;
        struct iommu_sva *handle;
  
        if (!(uacce->flags & UACCE_DEV_SVA))
@@@ -370,7 -370,7 +370,7 @@@ static struct attribute *uacce_dev_attr
  static umode_t uacce_dev_is_visible(struct kobject *kobj,
                                    struct attribute *attr, int n)
  {
-       struct device *dev = container_of(kobj, struct device, kobj);
+       struct device *dev = kobj_to_dev(kobj);
        struct uacce_device *uacce = to_uacce_device(dev);
  
        if (((attr == &dev_attr_region_mmio_size.attr) &&
diff --combined fs/Makefile
index d72ee2ce7af0802d74032558d180e8f4540f2d2b,40c19ff3d570f85128aa2e916b2149278ac4b07f..7bb2a05fda1f18cf7f20ba960bbecd0a0d32e1c0
@@@ -13,7 -13,8 +13,8 @@@ obj-y :=      open.o read_write.o file_table
                seq_file.o xattr.o libfs.o fs-writeback.o \
                pnode.o splice.o sync.o utimes.o d_path.o \
                stack.o fs_struct.o statfs.o fs_pin.o nsfs.o \
-               fs_types.o fs_context.o fs_parser.o fsopen.o init.o
+               fs_types.o fs_context.o fs_parser.o fsopen.o init.o \
+               kernel_read_file.o
  
  ifeq ($(CONFIG_BLOCK),y)
  obj-y +=      buffer.o block_dev.o direct-io.o mpage.o
@@@ -37,6 -38,7 +38,6 @@@ obj-$(CONFIG_FS_DAX)          += dax.
  obj-$(CONFIG_FS_ENCRYPTION)   += crypto/
  obj-$(CONFIG_FS_VERITY)               += verity/
  obj-$(CONFIG_FILE_LOCKING)      += locks.o
 -obj-$(CONFIG_COMPAT)          += compat.o
  obj-$(CONFIG_BINFMT_AOUT)     += binfmt_aout.o
  obj-$(CONFIG_BINFMT_EM86)     += binfmt_em86.o
  obj-$(CONFIG_BINFMT_MISC)     += binfmt_misc.o
diff --combined fs/exec.c
index 07910f5032e74ae9fcc7749d8d5c75504a68a64e,9f094406ea82d9da65e59541dbd136e42dcf0939..3f83e94bb0ba6914bd191598bf54df3bbb712822
+++ b/fs/exec.c
@@@ -23,6 -23,7 +23,7 @@@
   * formats.
   */
  
+ #include <linux/kernel_read_file.h>
  #include <linux/slab.h>
  #include <linux/file.h>
  #include <linux/fdtable.h>
@@@ -62,7 -63,6 +63,7 @@@
  #include <linux/oom.h>
  #include <linux/compat.h>
  #include <linux/vmalloc.h>
 +#include <linux/io_uring.h>
  
  #include <linux/uaccess.h>
  #include <asm/mmu_context.h>
@@@ -950,137 -950,6 +951,6 @@@ struct file *open_exec(const char *name
  }
  EXPORT_SYMBOL(open_exec);
  
- int kernel_read_file(struct file *file, void **buf, loff_t *size,
-                    loff_t max_size, enum kernel_read_file_id id)
- {
-       loff_t i_size, pos;
-       ssize_t bytes = 0;
-       int ret;
-       if (!S_ISREG(file_inode(file)->i_mode) || max_size < 0)
-               return -EINVAL;
-       ret = deny_write_access(file);
-       if (ret)
-               return ret;
-       ret = security_kernel_read_file(file, id);
-       if (ret)
-               goto out;
-       i_size = i_size_read(file_inode(file));
-       if (i_size <= 0) {
-               ret = -EINVAL;
-               goto out;
-       }
-       if (i_size > SIZE_MAX || (max_size > 0 && i_size > max_size)) {
-               ret = -EFBIG;
-               goto out;
-       }
-       if (id != READING_FIRMWARE_PREALLOC_BUFFER)
-               *buf = vmalloc(i_size);
-       if (!*buf) {
-               ret = -ENOMEM;
-               goto out;
-       }
-       pos = 0;
-       while (pos < i_size) {
-               bytes = kernel_read(file, *buf + pos, i_size - pos, &pos);
-               if (bytes < 0) {
-                       ret = bytes;
-                       goto out_free;
-               }
-               if (bytes == 0)
-                       break;
-       }
-       if (pos != i_size) {
-               ret = -EIO;
-               goto out_free;
-       }
-       ret = security_kernel_post_read_file(file, *buf, i_size, id);
-       if (!ret)
-               *size = pos;
- out_free:
-       if (ret < 0) {
-               if (id != READING_FIRMWARE_PREALLOC_BUFFER) {
-                       vfree(*buf);
-                       *buf = NULL;
-               }
-       }
- out:
-       allow_write_access(file);
-       return ret;
- }
- EXPORT_SYMBOL_GPL(kernel_read_file);
- int kernel_read_file_from_path(const char *path, void **buf, loff_t *size,
-                              loff_t max_size, enum kernel_read_file_id id)
- {
-       struct file *file;
-       int ret;
-       if (!path || !*path)
-               return -EINVAL;
-       file = filp_open(path, O_RDONLY, 0);
-       if (IS_ERR(file))
-               return PTR_ERR(file);
-       ret = kernel_read_file(file, buf, size, max_size, id);
-       fput(file);
-       return ret;
- }
- EXPORT_SYMBOL_GPL(kernel_read_file_from_path);
- int kernel_read_file_from_path_initns(const char *path, void **buf,
-                                     loff_t *size, loff_t max_size,
-                                     enum kernel_read_file_id id)
- {
-       struct file *file;
-       struct path root;
-       int ret;
-       if (!path || !*path)
-               return -EINVAL;
-       task_lock(&init_task);
-       get_fs_root(init_task.fs, &root);
-       task_unlock(&init_task);
-       file = file_open_root(root.dentry, root.mnt, path, O_RDONLY, 0);
-       path_put(&root);
-       if (IS_ERR(file))
-               return PTR_ERR(file);
-       ret = kernel_read_file(file, buf, size, max_size, id);
-       fput(file);
-       return ret;
- }
- EXPORT_SYMBOL_GPL(kernel_read_file_from_path_initns);
- int kernel_read_file_from_fd(int fd, void **buf, loff_t *size, loff_t max_size,
-                            enum kernel_read_file_id id)
- {
-       struct fd f = fdget(fd);
-       int ret = -EBADF;
-       if (!f.file)
-               goto out;
-       ret = kernel_read_file(f.file, buf, size, max_size, id);
- out:
-       fdput(f);
-       return ret;
- }
- EXPORT_SYMBOL_GPL(kernel_read_file_from_fd);
  #if defined(CONFIG_HAVE_AOUT) || defined(CONFIG_BINFMT_FLAT) || \
      defined(CONFIG_BINFMT_ELF_FDPIC)
  ssize_t read_code(struct file *file, unsigned long addr, loff_t pos, size_t len)
@@@ -1895,11 -1764,6 +1765,11 @@@ static int bprm_execve(struct linux_bin
        struct file *file;
        struct files_struct *displaced;
        int retval;
 +
 +      /*
 +       * Cancel any io_uring activity across execve
 +       */
 +      io_uring_task_cancel();
  
        retval = unshare_files(&displaced);
        if (retval)
diff --combined include/linux/fs.h
index 5815f7d4dbf45dc0712dea5ceffb343f9fd443bd,0885d53afb118ed9dd93371b725e68d7b66817c4..ae97d87a00d284f152a332b9493aead05b731636
@@@ -178,6 -178,14 +178,6 @@@ typedef int (dio_iodone_t)(struct kioc
  /* File supports async buffered reads */
  #define FMODE_BUF_RASYNC      ((__force fmode_t)0x40000000)
  
 -/*
 - * Flag for rw_copy_check_uvector and compat_rw_copy_check_uvector
 - * that indicates that they should check the contents of the iovec are
 - * valid, but not check the memory that the iovec elements
 - * points too.
 - */
 -#define CHECK_IOVEC_ONLY -1
 -
  /*
   * Attribute flags.  These should be or-ed together to figure out what
   * has been changed!
@@@ -302,20 -310,17 +302,20 @@@ enum rw_hint 
        WRITE_LIFE_EXTREME      = RWH_WRITE_LIFE_EXTREME,
  };
  
 -#define IOCB_EVENTFD          (1 << 0)
 -#define IOCB_APPEND           (1 << 1)
 -#define IOCB_DIRECT           (1 << 2)
 -#define IOCB_HIPRI            (1 << 3)
 -#define IOCB_DSYNC            (1 << 4)
 -#define IOCB_SYNC             (1 << 5)
 -#define IOCB_WRITE            (1 << 6)
 -#define IOCB_NOWAIT           (1 << 7)
 +/* Match RWF_* bits to IOCB bits */
 +#define IOCB_HIPRI            (__force int) RWF_HIPRI
 +#define IOCB_DSYNC            (__force int) RWF_DSYNC
 +#define IOCB_SYNC             (__force int) RWF_SYNC
 +#define IOCB_NOWAIT           (__force int) RWF_NOWAIT
 +#define IOCB_APPEND           (__force int) RWF_APPEND
 +
 +/* non-RWF related bits - start at 16 */
 +#define IOCB_EVENTFD          (1 << 16)
 +#define IOCB_DIRECT           (1 << 17)
 +#define IOCB_WRITE            (1 << 18)
  /* iocb->ki_waitq is valid */
 -#define IOCB_WAITQ            (1 << 8)
 -#define IOCB_NOIO             (1 << 9)
 +#define IOCB_WAITQ            (1 << 19)
 +#define IOCB_NOIO             (1 << 20)
  
  struct kiocb {
        struct file             *ki_filp;
@@@ -1380,7 -1385,7 +1380,7 @@@ extern int send_sigurg(struct fown_stru
  #define SB_I_CGROUPWB 0x00000001      /* cgroup-aware writeback enabled */
  #define SB_I_NOEXEC   0x00000002      /* Ignore executables on this fs */
  #define SB_I_NODEV    0x00000004      /* Ignore devices on this fs */
 -#define SB_I_MULTIROOT        0x00000008      /* Multiple roots to the dentry tree */
 +#define SB_I_STABLE_WRITES 0x00000008 /* don't modify blks until WB is done */
  
  /* sb->s_iflags to limit user namespace mounts */
  #define SB_I_USERNS_VISIBLE           0x00000010 /* fstype already mounted */
@@@ -1882,6 -1887,11 +1882,6 @@@ static inline int call_mmap(struct fil
        return file->f_op->mmap(file, vma);
  }
  
 -ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
 -                            unsigned long nr_segs, unsigned long fast_segs,
 -                            struct iovec *fast_pointer,
 -                            struct iovec **ret_pointer);
 -
  extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *);
  extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_t *);
  extern ssize_t vfs_readv(struct file *, const struct iovec __user *,
@@@ -2581,10 -2591,6 +2581,10 @@@ extern bool is_bad_inode(struct inode *
  unsigned long invalidate_mapping_pages(struct address_space *mapping,
                                        pgoff_t start, pgoff_t end);
  
 +void invalidate_mapping_pagevec(struct address_space *mapping,
 +                              pgoff_t start, pgoff_t end,
 +                              unsigned long *nr_pagevec);
 +
  static inline void invalidate_remote_inode(struct inode *inode)
  {
        if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
@@@ -2852,45 -2858,6 +2852,6 @@@ static inline void i_readcount_inc(stru
  #endif
  extern int do_pipe_flags(int *, int);
  
- #define __kernel_read_file_id(id) \
-       id(UNKNOWN, unknown)            \
-       id(FIRMWARE, firmware)          \
-       id(FIRMWARE_PREALLOC_BUFFER, firmware)  \
-       id(FIRMWARE_EFI_EMBEDDED, firmware)     \
-       id(MODULE, kernel-module)               \
-       id(KEXEC_IMAGE, kexec-image)            \
-       id(KEXEC_INITRAMFS, kexec-initramfs)    \
-       id(POLICY, security-policy)             \
-       id(X509_CERTIFICATE, x509-certificate)  \
-       id(MAX_ID, )
- #define __fid_enumify(ENUM, dummy) READING_ ## ENUM,
- #define __fid_stringify(dummy, str) #str,
- enum kernel_read_file_id {
-       __kernel_read_file_id(__fid_enumify)
- };
- static const char * const kernel_read_file_str[] = {
-       __kernel_read_file_id(__fid_stringify)
- };
- static inline const char *kernel_read_file_id_str(enum kernel_read_file_id id)
- {
-       if ((unsigned)id >= READING_MAX_ID)
-               return kernel_read_file_str[READING_UNKNOWN];
-       return kernel_read_file_str[id];
- }
- extern int kernel_read_file(struct file *, void **, loff_t *, loff_t,
-                           enum kernel_read_file_id);
- extern int kernel_read_file_from_path(const char *, void **, loff_t *, loff_t,
-                                     enum kernel_read_file_id);
- extern int kernel_read_file_from_path_initns(const char *, void **, loff_t *, loff_t,
-                                            enum kernel_read_file_id);
- extern int kernel_read_file_from_fd(int, void **, loff_t *, loff_t,
-                                   enum kernel_read_file_id);
  extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
  ssize_t __kernel_read(struct file *file, void *buf, size_t count, loff_t *pos);
  extern ssize_t kernel_write(struct file *, const void *, size_t, loff_t *);
@@@ -3073,6 -3040,8 +3034,6 @@@ enum 
        DIO_SKIP_HOLES  = 0x02,
  };
  
 -void dio_end_io(struct bio *bio);
 -
  ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode,
                             struct block_device *bdev, struct iov_iter *iter,
                             get_block_t get_block,
@@@ -3309,9 -3278,6 +3270,9 @@@ static inline int kiocb_set_rw_flags(st
  {
        int kiocb_flags = 0;
  
 +      /* make sure there's no overlap between RWF and private IOCB flags */
 +      BUILD_BUG_ON((__force int) RWF_SUPPORTED & IOCB_EVENTFD);
 +
        if (!flags)
                return 0;
        if (unlikely(flags & ~RWF_SUPPORTED))
        if (flags & RWF_NOWAIT) {
                if (!(ki->ki_filp->f_mode & FMODE_NOWAIT))
                        return -EOPNOTSUPP;
 -              kiocb_flags |= IOCB_NOWAIT | IOCB_NOIO;
 +              kiocb_flags |= IOCB_NOIO;
        }
 -      if (flags & RWF_HIPRI)
 -              kiocb_flags |= IOCB_HIPRI;
 -      if (flags & RWF_DSYNC)
 -              kiocb_flags |= IOCB_DSYNC;
 +      kiocb_flags |= (__force int) (flags & RWF_SUPPORTED);
        if (flags & RWF_SYNC)
 -              kiocb_flags |= (IOCB_DSYNC | IOCB_SYNC);
 -      if (flags & RWF_APPEND)
 -              kiocb_flags |= IOCB_APPEND;
 +              kiocb_flags |= IOCB_DSYNC;
  
        ki->ki_flags |= kiocb_flags;
        return 0;
@@@ -3504,6 -3475,15 +3465,6 @@@ extern int vfs_fadvise(struct file *fil
  extern int generic_fadvise(struct file *file, loff_t offset, loff_t len,
                           int advice);
  
 -#if defined(CONFIG_IO_URING)
 -extern struct sock *io_uring_get_socket(struct file *file);
 -#else
 -static inline struct sock *io_uring_get_socket(struct file *file)
 -{
 -      return NULL;
 -}
 -#endif
 -
  int vfs_ioc_setflags_prepare(struct inode *inode, unsigned int oldflags,
                             unsigned int flags);
  
diff --combined kernel/module.c
index c075a18103fbf66646baccabfe351c5e13b9573c,9c578e44abe79e45406f0af7a1b4d96701004534..9d9f2400d94ef8d8aca65c8547deab9a90d4ee28
@@@ -18,6 -18,7 +18,7 @@@
  #include <linux/fs.h>
  #include <linux/sysfs.h>
  #include <linux/kernel.h>
+ #include <linux/kernel_read_file.h>
  #include <linux/slab.h>
  #include <linux/vmalloc.h>
  #include <linux/elf.h>
@@@ -3013,7 -3014,7 +3014,7 @@@ static int copy_module_from_user(const 
        if (info->len < sizeof(*(info->hdr)))
                return -ENOEXEC;
  
-       err = security_kernel_load_data(LOADING_MODULE);
+       err = security_kernel_load_data(LOADING_MODULE, true);
        if (err)
                return err;
  
                return -ENOMEM;
  
        if (copy_chunked_from_user(info->hdr, umod, info->len) != 0) {
-               vfree(info->hdr);
-               return -EFAULT;
+               err = -EFAULT;
+               goto out;
        }
  
-       return 0;
+       err = security_kernel_post_load_data((char *)info->hdr, info->len,
+                                            LOADING_MODULE, "init_module");
+ out:
+       if (err)
+               vfree(info->hdr);
+       return err;
  }
  
  static void free_copy(struct load_info *info)
@@@ -3274,11 -3281,6 +3281,11 @@@ static int find_module_sections(struct 
        mod->kprobe_blacklist = section_objs(info, "_kprobe_blacklist",
                                                sizeof(unsigned long),
                                                &mod->num_kprobe_blacklist);
 +#endif
 +#ifdef CONFIG_HAVE_STATIC_CALL_INLINE
 +      mod->static_call_sites = section_objs(info, ".static_call_sites",
 +                                            sizeof(*mod->static_call_sites),
 +                                            &mod->num_static_call_sites);
  #endif
        mod->extable = section_objs(info, "__ex_table",
                                    sizeof(*mod->extable), &mod->num_exentries);
@@@ -3797,13 -3799,9 +3804,13 @@@ static int prepare_coming_module(struc
        if (err)
                return err;
  
 -      blocking_notifier_call_chain(&module_notify_list,
 -                                   MODULE_STATE_COMING, mod);
 -      return 0;
 +      err = blocking_notifier_call_chain_robust(&module_notify_list,
 +                      MODULE_STATE_COMING, MODULE_STATE_GOING, mod);
 +      err = notifier_to_errno(err);
 +      if (err)
 +              klp_module_going(mod);
 +
 +      return err;
  }
  
  static int unknown_module_param_cb(char *param, char *val, const char *modname,
@@@ -4043,8 -4041,7 +4050,7 @@@ SYSCALL_DEFINE3(init_module, void __use
  SYSCALL_DEFINE3(finit_module, int, fd, const char __user *, uargs, int, flags)
  {
        struct load_info info = { };
-       loff_t size;
-       void *hdr;
+       void *hdr = NULL;
        int err;
  
        err = may_init_module();
                      |MODULE_INIT_IGNORE_VERMAGIC))
                return -EINVAL;
  
-       err = kernel_read_file_from_fd(fd, &hdr, &size, INT_MAX,
+       err = kernel_read_file_from_fd(fd, 0, &hdr, INT_MAX, NULL,
                                       READING_MODULE);
-       if (err)
+       if (err < 0)
                return err;
        info.hdr = hdr;
-       info.len = size;
+       info.len = err;
  
        return load_module(&info, uargs, flags);
  }
diff --combined kernel/trace/trace.c
index 25b72a73608a9949851d7b72cb7c242a266d1bf6,6048fba2f590349e054facd033949dd5ca210dd3..4c187740c0df3629c74470641224d37d5a2b3c76
@@@ -251,6 -251,145 +251,145 @@@ unsigned long long ns2usecs(u64 nsec
        return nsec;
  }
  
+ static void
+ trace_process_export(struct trace_export *export,
+              struct ring_buffer_event *event, int flag)
+ {
+       struct trace_entry *entry;
+       unsigned int size = 0;
+       if (export->flags & flag) {
+               entry = ring_buffer_event_data(event);
+               size = ring_buffer_event_length(event);
+               export->write(export, entry, size);
+       }
+ }
+ static DEFINE_MUTEX(ftrace_export_lock);
+ static struct trace_export __rcu *ftrace_exports_list __read_mostly;
+ static DEFINE_STATIC_KEY_FALSE(trace_function_exports_enabled);
+ static DEFINE_STATIC_KEY_FALSE(trace_event_exports_enabled);
+ static DEFINE_STATIC_KEY_FALSE(trace_marker_exports_enabled);
+ static inline void ftrace_exports_enable(struct trace_export *export)
+ {
+       if (export->flags & TRACE_EXPORT_FUNCTION)
+               static_branch_inc(&trace_function_exports_enabled);
+       if (export->flags & TRACE_EXPORT_EVENT)
+               static_branch_inc(&trace_event_exports_enabled);
+       if (export->flags & TRACE_EXPORT_MARKER)
+               static_branch_inc(&trace_marker_exports_enabled);
+ }
+ static inline void ftrace_exports_disable(struct trace_export *export)
+ {
+       if (export->flags & TRACE_EXPORT_FUNCTION)
+               static_branch_dec(&trace_function_exports_enabled);
+       if (export->flags & TRACE_EXPORT_EVENT)
+               static_branch_dec(&trace_event_exports_enabled);
+       if (export->flags & TRACE_EXPORT_MARKER)
+               static_branch_dec(&trace_marker_exports_enabled);
+ }
+ static void ftrace_exports(struct ring_buffer_event *event, int flag)
+ {
+       struct trace_export *export;
+       preempt_disable_notrace();
+       export = rcu_dereference_raw_check(ftrace_exports_list);
+       while (export) {
+               trace_process_export(export, event, flag);
+               export = rcu_dereference_raw_check(export->next);
+       }
+       preempt_enable_notrace();
+ }
+ static inline void
+ add_trace_export(struct trace_export **list, struct trace_export *export)
+ {
+       rcu_assign_pointer(export->next, *list);
+       /*
+        * We are entering export into the list but another
+        * CPU might be walking that list. We need to make sure
+        * the export->next pointer is valid before another CPU sees
+        * the export pointer included into the list.
+        */
+       rcu_assign_pointer(*list, export);
+ }
+ static inline int
+ rm_trace_export(struct trace_export **list, struct trace_export *export)
+ {
+       struct trace_export **p;
+       for (p = list; *p != NULL; p = &(*p)->next)
+               if (*p == export)
+                       break;
+       if (*p != export)
+               return -1;
+       rcu_assign_pointer(*p, (*p)->next);
+       return 0;
+ }
+ static inline void
+ add_ftrace_export(struct trace_export **list, struct trace_export *export)
+ {
+       ftrace_exports_enable(export);
+       add_trace_export(list, export);
+ }
+ static inline int
+ rm_ftrace_export(struct trace_export **list, struct trace_export *export)
+ {
+       int ret;
+       ret = rm_trace_export(list, export);
+       ftrace_exports_disable(export);
+       return ret;
+ }
+ int register_ftrace_export(struct trace_export *export)
+ {
+       if (WARN_ON_ONCE(!export->write))
+               return -1;
+       mutex_lock(&ftrace_export_lock);
+       add_ftrace_export(&ftrace_exports_list, export);
+       mutex_unlock(&ftrace_export_lock);
+       return 0;
+ }
+ EXPORT_SYMBOL_GPL(register_ftrace_export);
+ int unregister_ftrace_export(struct trace_export *export)
+ {
+       int ret;
+       mutex_lock(&ftrace_export_lock);
+       ret = rm_ftrace_export(&ftrace_exports_list, export);
+       mutex_unlock(&ftrace_export_lock);
+       return ret;
+ }
+ EXPORT_SYMBOL_GPL(unregister_ftrace_export);
  /* trace_flags holds trace_options default values */
  #define TRACE_DEFAULT_FLAGS                                           \
        (FUNCTION_DEFAULT_FLAGS |                                       \
@@@ -2699,6 -2838,8 +2838,8 @@@ void trace_event_buffer_commit(struct t
        if (static_key_false(&tracepoint_printk_key.key))
                output_printk(fbuffer);
  
+       if (static_branch_unlikely(&trace_event_exports_enabled))
+               ftrace_exports(fbuffer->event, TRACE_EXPORT_EVENT);
        event_trigger_unlock_commit_regs(fbuffer->trace_file, fbuffer->buffer,
                                    fbuffer->event, fbuffer->entry,
                                    fbuffer->flags, fbuffer->pc, fbuffer->regs);
@@@ -2742,129 -2883,6 +2883,6 @@@ trace_buffer_unlock_commit_nostack(stru
        __buffer_unlock_commit(buffer, event);
  }
  
- static void
- trace_process_export(struct trace_export *export,
-              struct ring_buffer_event *event)
- {
-       struct trace_entry *entry;
-       unsigned int size = 0;
-       entry = ring_buffer_event_data(event);
-       size = ring_buffer_event_length(event);
-       export->write(export, entry, size);
- }
- static DEFINE_MUTEX(ftrace_export_lock);
- static struct trace_export __rcu *ftrace_exports_list __read_mostly;
- static DEFINE_STATIC_KEY_FALSE(ftrace_exports_enabled);
- static inline void ftrace_exports_enable(void)
- {
-       static_branch_enable(&ftrace_exports_enabled);
- }
- static inline void ftrace_exports_disable(void)
- {
-       static_branch_disable(&ftrace_exports_enabled);
- }
- static void ftrace_exports(struct ring_buffer_event *event)
- {
-       struct trace_export *export;
-       preempt_disable_notrace();
-       export = rcu_dereference_raw_check(ftrace_exports_list);
-       while (export) {
-               trace_process_export(export, event);
-               export = rcu_dereference_raw_check(export->next);
-       }
-       preempt_enable_notrace();
- }
- static inline void
- add_trace_export(struct trace_export **list, struct trace_export *export)
- {
-       rcu_assign_pointer(export->next, *list);
-       /*
-        * We are entering export into the list but another
-        * CPU might be walking that list. We need to make sure
-        * the export->next pointer is valid before another CPU sees
-        * the export pointer included into the list.
-        */
-       rcu_assign_pointer(*list, export);
- }
- static inline int
- rm_trace_export(struct trace_export **list, struct trace_export *export)
- {
-       struct trace_export **p;
-       for (p = list; *p != NULL; p = &(*p)->next)
-               if (*p == export)
-                       break;
-       if (*p != export)
-               return -1;
-       rcu_assign_pointer(*p, (*p)->next);
-       return 0;
- }
- static inline void
- add_ftrace_export(struct trace_export **list, struct trace_export *export)
- {
-       if (*list == NULL)
-               ftrace_exports_enable();
-       add_trace_export(list, export);
- }
- static inline int
- rm_ftrace_export(struct trace_export **list, struct trace_export *export)
- {
-       int ret;
-       ret = rm_trace_export(list, export);
-       if (*list == NULL)
-               ftrace_exports_disable();
-       return ret;
- }
- int register_ftrace_export(struct trace_export *export)
- {
-       if (WARN_ON_ONCE(!export->write))
-               return -1;
-       mutex_lock(&ftrace_export_lock);
-       add_ftrace_export(&ftrace_exports_list, export);
-       mutex_unlock(&ftrace_export_lock);
-       return 0;
- }
- EXPORT_SYMBOL_GPL(register_ftrace_export);
- int unregister_ftrace_export(struct trace_export *export)
- {
-       int ret;
-       mutex_lock(&ftrace_export_lock);
-       ret = rm_ftrace_export(&ftrace_exports_list, export);
-       mutex_unlock(&ftrace_export_lock);
-       return ret;
- }
- EXPORT_SYMBOL_GPL(unregister_ftrace_export);
  void
  trace_function(struct trace_array *tr,
               unsigned long ip, unsigned long parent_ip, unsigned long flags,
        entry->parent_ip                = parent_ip;
  
        if (!call_filter_check_discard(call, entry, buffer, event)) {
-               if (static_branch_unlikely(&ftrace_exports_enabled))
-                       ftrace_exports(event);
+               if (static_branch_unlikely(&trace_function_exports_enabled))
+                       ftrace_exports(event, TRACE_EXPORT_FUNCTION);
                __buffer_unlock_commit(buffer, event);
        }
  }
@@@ -3546,15 -3564,13 +3564,15 @@@ struct trace_entry *trace_find_next_ent
        if (iter->ent && iter->ent != iter->temp) {
                if ((!iter->temp || iter->temp_size < iter->ent_size) &&
                    !WARN_ON_ONCE(iter->temp == static_temp_buf)) {
 -                      kfree(iter->temp);
 -                      iter->temp = kmalloc(iter->ent_size, GFP_KERNEL);
 -                      if (!iter->temp)
 +                      void *temp;
 +                      temp = kmalloc(iter->ent_size, GFP_KERNEL);
 +                      if (!temp)
                                return NULL;
 +                      kfree(iter->temp);
 +                      iter->temp = temp;
 +                      iter->temp_size = iter->ent_size;
                }
                memcpy(iter->temp, iter->ent, iter->ent_size);
 -              iter->temp_size = iter->ent_size;
                iter->ent = iter->temp;
        }
        entry = __find_next_entry(iter, ent_cpu, NULL, ent_ts);
@@@ -3784,14 -3800,14 +3802,14 @@@ unsigned long trace_total_entries(struc
  
  static void print_lat_help_header(struct seq_file *m)
  {
 -      seq_puts(m, "#                  _------=> CPU#            \n"
 -                  "#                 / _-----=> irqs-off        \n"
 -                  "#                | / _----=> need-resched    \n"
 -                  "#                || / _---=> hardirq/softirq \n"
 -                  "#                ||| / _--=> preempt-depth   \n"
 -                  "#                |||| /     delay            \n"
 -                  "#  cmd     pid   ||||| time  |   caller      \n"
 -                  "#     \\   /      |||||  \\    |   /         \n");
 +      seq_puts(m, "#                    _------=> CPU#            \n"
 +                  "#                   / _-----=> irqs-off        \n"
 +                  "#                  | / _----=> need-resched    \n"
 +                  "#                  || / _---=> hardirq/softirq \n"
 +                  "#                  ||| / _--=> preempt-depth   \n"
 +                  "#                  |||| /     delay            \n"
 +                  "#  cmd     pid     ||||| time  |   caller      \n"
 +                  "#     \\   /        |||||  \\    |   /         \n");
  }
  
  static void print_event_info(struct array_buffer *buf, struct seq_file *m)
@@@ -3812,26 -3828,26 +3830,26 @@@ static void print_func_help_header(stru
  
        print_event_info(buf, m);
  
 -      seq_printf(m, "#           TASK-PID   %s  CPU#   TIMESTAMP  FUNCTION\n", tgid ? "TGID     " : "");
 -      seq_printf(m, "#              | |     %s    |       |         |\n",      tgid ? "  |      " : "");
 +      seq_printf(m, "#           TASK-PID    %s CPU#     TIMESTAMP  FUNCTION\n", tgid ? "   TGID   " : "");
 +      seq_printf(m, "#              | |      %s   |         |         |\n",      tgid ? "     |    " : "");
  }
  
  static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file *m,
                                       unsigned int flags)
  {
        bool tgid = flags & TRACE_ITER_RECORD_TGID;
 -      const char *space = "          ";
 -      int prec = tgid ? 10 : 2;
 +      const char *space = "            ";
 +      int prec = tgid ? 12 : 2;
  
        print_event_info(buf, m);
  
 -      seq_printf(m, "#                          %.*s  _-----=> irqs-off\n", prec, space);
 -      seq_printf(m, "#                          %.*s / _----=> need-resched\n", prec, space);
 -      seq_printf(m, "#                          %.*s| / _---=> hardirq/softirq\n", prec, space);
 -      seq_printf(m, "#                          %.*s|| / _--=> preempt-depth\n", prec, space);
 -      seq_printf(m, "#                          %.*s||| /     delay\n", prec, space);
 -      seq_printf(m, "#           TASK-PID %.*sCPU#  ||||    TIMESTAMP  FUNCTION\n", prec, "   TGID   ");
 -      seq_printf(m, "#              | |   %.*s  |   ||||       |         |\n", prec, "     |    ");
 +      seq_printf(m, "#                            %.*s  _-----=> irqs-off\n", prec, space);
 +      seq_printf(m, "#                            %.*s / _----=> need-resched\n", prec, space);
 +      seq_printf(m, "#                            %.*s| / _---=> hardirq/softirq\n", prec, space);
 +      seq_printf(m, "#                            %.*s|| / _--=> preempt-depth\n", prec, space);
 +      seq_printf(m, "#                            %.*s||| /     delay\n", prec, space);
 +      seq_printf(m, "#           TASK-PID  %.*s CPU#  ||||   TIMESTAMP  FUNCTION\n", prec, "     TGID   ");
 +      seq_printf(m, "#              | |    %.*s   |   ||||      |         |\n", prec, "       |    ");
  }
  
  void
@@@ -6678,6 -6694,8 +6696,8 @@@ tracing_mark_write(struct file *filp, c
        } else
                entry->buf[cnt] = '\0';
  
+       if (static_branch_unlikely(&trace_marker_exports_enabled))
+               ftrace_exports(event, TRACE_EXPORT_MARKER);
        __buffer_unlock_commit(buffer, event);
  
        if (tt)
@@@ -9074,7 -9092,7 +9094,7 @@@ static int trace_module_notify(struct n
                break;
        }
  
 -      return 0;
 +      return NOTIFY_OK;
  }
  
  static struct notifier_block trace_module_nb = {
diff --combined security/selinux/hooks.c
index 2dabd58b126a72d679c0130940a4b8f44f1f75c0,dec654d52b686468b3b2e443cf7943a183e6d47f..6b1826fc3658e365915ed3b7d8c78942ee874d93
@@@ -24,6 -24,7 +24,7 @@@
  #include <linux/init.h>
  #include <linux/kd.h>
  #include <linux/kernel.h>
+ #include <linux/kernel_read_file.h>
  #include <linux/tracehook.h>
  #include <linux/errno.h>
  #include <linux/sched/signal.h>
@@@ -1978,7 -1979,7 +1979,7 @@@ static inline u32 file_to_av(struct fil
  }
  
  /*
 - * Convert a file to an access vector and include the correct open
 + * Convert a file to an access vector and include the correct
   * open permission.
   */
  static inline u32 open_file_to_av(struct file *file)
@@@ -3271,9 -3272,6 +3272,9 @@@ static int selinux_inode_removexattr(st
                return dentry_has_perm(current_cred(), dentry, FILE__SETATTR);
        }
  
 +      if (!selinux_initialized(&selinux_state))
 +              return 0;
 +
        /* No one is allowed to remove a SELinux security label.
           You can change the label, but all data must be labeled. */
        return -EACCES;
@@@ -3712,7 -3710,7 +3713,7 @@@ static int selinux_mmap_file(struct fil
                        return rc;
        }
  
 -      if (selinux_state.checkreqprot)
 +      if (checkreqprot_get(&selinux_state))
                prot = reqprot;
  
        return file_map_prot_check(file, prot,
@@@ -3726,7 -3724,7 +3727,7 @@@ static int selinux_file_mprotect(struc
        const struct cred *cred = current_cred();
        u32 sid = cred_sid(cred);
  
 -      if (selinux_state.checkreqprot)
 +      if (checkreqprot_get(&selinux_state))
                prot = reqprot;
  
        if (default_noexec &&
@@@ -4005,13 -4003,14 +4006,14 @@@ static int selinux_kernel_module_from_f
  }
  
  static int selinux_kernel_read_file(struct file *file,
-                                   enum kernel_read_file_id id)
+                                   enum kernel_read_file_id id,
+                                   bool contents)
  {
        int rc = 0;
  
        switch (id) {
        case READING_MODULE:
-               rc = selinux_kernel_module_from_file(file);
+               rc = selinux_kernel_module_from_file(contents ? file : NULL);
                break;
        default:
                break;
        return rc;
  }
  
- static int selinux_kernel_load_data(enum kernel_load_data_id id)
+ static int selinux_kernel_load_data(enum kernel_load_data_id id, bool contents)
  {
        int rc = 0;
  
@@@ -4441,7 -4440,7 +4443,7 @@@ static int selinux_skb_peerlbl_sid(stru
   *
   * If @skb_sid is valid then the user:role:type information from @sk_sid is
   * combined with the MLS information from @skb_sid in order to create
 - * @conn_sid.  If @skb_sid is not valid then then @conn_sid is simply a copy
 + * @conn_sid.  If @skb_sid is not valid then @conn_sid is simply a copy
   * of @sk_sid.  Returns zero on success, negative values on failure.
   *
   */
@@@ -5311,7 -5310,7 +5313,7 @@@ static int selinux_sctp_bind_connect(st
  
                        /* As selinux_sctp_bind_connect() is called by the
                         * SCTP protocol layer, the socket is already locked,
 -                       * therefore selinux_netlbl_socket_connect_locked() is
 +                       * therefore selinux_netlbl_socket_connect_locked()
                         * is called here. The situations handled are:
                         * sctp_connectx(3), sctp_sendmsg(3), sendmsg(2),
                         * whenever a new IP address is added or when a new
@@@ -7228,10 -7227,10 +7230,10 @@@ static __init int selinux_init(void
  
        memset(&selinux_state, 0, sizeof(selinux_state));
        enforcing_set(&selinux_state, selinux_enforcing_boot);
 -      selinux_state.checkreqprot = selinux_checkreqprot_boot;
 -      selinux_ss_init(&selinux_state.ss);
 +      checkreqprot_set(&selinux_state, selinux_checkreqprot_boot);
        selinux_avc_init(&selinux_state.avc);
        mutex_init(&selinux_state.status_lock);
 +      mutex_init(&selinux_state.policy_mutex);
  
        /* Set the security state for the initial task. */
        cred_init_security();
index e4675cfff7b2f9faf5f9e8dcb6c2b11163928046,76ddde509a08d325bac285e5771d86122e36485d..13f74499e46e71592fc8b594a7e021c5fb090199
@@@ -15,6 -15,7 +15,7 @@@
  #include <linux/of.h>
  #include <linux/soundwire/sdw.h>
  #include <linux/soundwire/sdw_type.h>
+ #include <linux/soundwire/sdw_registers.h>
  #include "max98373.h"
  #include "max98373-sdw.h"
  
@@@ -282,11 -283,13 +283,13 @@@ static const struct dev_pm_ops max98373
  static int max98373_read_prop(struct sdw_slave *slave)
  {
        struct sdw_slave_prop *prop = &slave->prop;
-       int nval, i, num_of_ports;
+       int nval, i;
        u32 bit;
        unsigned long addr;
        struct sdw_dpn_prop *dpn;
  
+       prop->scp_int1_mask = SDW_SCP_INT1_BUS_CLASH | SDW_SCP_INT1_PARITY;
        /* BITMAP: 00001000  Dataport 3 is active */
        prop->source_ports = BIT(3);
        /* BITMAP: 00000010  Dataport 1 is active */
        prop->clk_stop_timeout = 20;
  
        nval = hweight32(prop->source_ports);
-       num_of_ports = nval;
        prop->src_dpn_prop = devm_kcalloc(&slave->dev, nval,
                                          sizeof(*prop->src_dpn_prop),
                                          GFP_KERNEL);
  
        /* do this again for sink now */
        nval = hweight32(prop->sink_ports);
-       num_of_ports += nval;
        prop->sink_dpn_prop = devm_kcalloc(&slave->dev, nval,
                                           sizeof(*prop->sink_dpn_prop),
                                           GFP_KERNEL);
                i++;
        }
  
-       /* Allocate port_ready based on num_of_ports */
-       slave->port_ready = devm_kcalloc(&slave->dev, num_of_ports,
-                                        sizeof(*slave->port_ready),
-                                        GFP_KERNEL);
-       if (!slave->port_ready)
-               return -ENOMEM;
-       /* Initialize completion */
-       for (i = 0; i < num_of_ports; i++)
-               init_completion(&slave->port_ready[i]);
        /* set the timeout values */
        prop->clk_stop_timeout = 20;
  
@@@ -838,8 -828,8 +828,8 @@@ static int max98373_sdw_probe(struct sd
  
        /* Regmap Initialization */
        regmap = devm_regmap_init_sdw(slave, &max98373_sdw_regmap);
 -      if (!regmap)
 -              return -EINVAL;
 +      if (IS_ERR(regmap))
 +              return PTR_ERR(regmap);
  
        return max98373_init(slave, regmap);
  }
index 56e952a904a39d1dbb31393dce04c51e158c629e,c74685b016af1a259659b579201662263f03aad7..977be6f2b817404cd926709429c695af2fefd260
@@@ -118,11 -118,14 +118,14 @@@ static int rt1308_clock_config(struct d
  static int rt1308_read_prop(struct sdw_slave *slave)
  {
        struct sdw_slave_prop *prop = &slave->prop;
-       int nval, i, num_of_ports = 1;
+       int nval, i;
        u32 bit;
        unsigned long addr;
        struct sdw_dpn_prop *dpn;
  
+       prop->scp_int1_mask = SDW_SCP_INT1_BUS_CLASH | SDW_SCP_INT1_PARITY;
+       prop->quirks = SDW_SLAVE_QUIRKS_INVALID_INITIAL_PARITY;
        prop->paging_support = true;
  
        /* first we need to allocate memory for set bits in port lists */
  
        /* for sink */
        nval = hweight32(prop->sink_ports);
-       num_of_ports += nval;
        prop->sink_dpn_prop = devm_kcalloc(&slave->dev, nval,
                                                sizeof(*prop->sink_dpn_prop),
                                                GFP_KERNEL);
                i++;
        }
  
-       /* Allocate port_ready based on num_of_ports */
-       slave->port_ready = devm_kcalloc(&slave->dev, num_of_ports,
-                                       sizeof(*slave->port_ready),
-                                       GFP_KERNEL);
-       if (!slave->port_ready)
-               return -ENOMEM;
-       /* Initialize completion */
-       for (i = 0; i < num_of_ports; i++)
-               init_completion(&slave->port_ready[i]);
        /* set the timeout values */
        prop->clk_stop_timeout = 20;
  
@@@ -684,8 -675,8 +675,8 @@@ static int rt1308_sdw_probe(struct sdw_
  
        /* Regmap Initialization */
        regmap = devm_regmap_init_sdw(slave, &rt1308_sdw_regmap);
 -      if (!regmap)
 -              return -EINVAL;
 +      if (IS_ERR(regmap))
 +              return PTR_ERR(regmap);
  
        rt1308_sdw_init(&slave->dev, regmap, slave);
  
index 1d24bf0407182c9f33928af8d0e22a9cd3a9b61a,c6fd22058b628b37d60cf15c83b3d04c2f1e9797..77deda9fd9693f09ff82d7a5800e6645ee8372d9
@@@ -11,6 -11,7 +11,7 @@@
  #include <linux/mod_devicetable.h>
  #include <linux/soundwire/sdw.h>
  #include <linux/soundwire/sdw_type.h>
+ #include <linux/soundwire/sdw_registers.h>
  #include <linux/module.h>
  #include <linux/regmap.h>
  #include <sound/soc.h>
@@@ -333,11 -334,15 +334,15 @@@ static int rt700_update_status(struct s
  static int rt700_read_prop(struct sdw_slave *slave)
  {
        struct sdw_slave_prop *prop = &slave->prop;
-       int nval, i, num_of_ports = 1;
+       int nval, i;
        u32 bit;
        unsigned long addr;
        struct sdw_dpn_prop *dpn;
  
+       prop->scp_int1_mask = SDW_SCP_INT1_IMPL_DEF | SDW_SCP_INT1_BUS_CLASH |
+               SDW_SCP_INT1_PARITY;
+       prop->quirks = SDW_SLAVE_QUIRKS_INVALID_INITIAL_PARITY;
        prop->paging_support = false;
  
        /* first we need to allocate memory for set bits in port lists */
        prop->sink_ports = 0xA; /* BITMAP:  00001010 */
  
        nval = hweight32(prop->source_ports);
-       num_of_ports += nval;
        prop->src_dpn_prop = devm_kcalloc(&slave->dev, nval,
                                                sizeof(*prop->src_dpn_prop),
                                                GFP_KERNEL);
  
        /* do this again for sink now */
        nval = hweight32(prop->sink_ports);
-       num_of_ports += nval;
        prop->sink_dpn_prop = devm_kcalloc(&slave->dev, nval,
                                                sizeof(*prop->sink_dpn_prop),
                                                GFP_KERNEL);
                i++;
        }
  
-       /* Allocate port_ready based on num_of_ports */
-       slave->port_ready = devm_kcalloc(&slave->dev, num_of_ports,
-                                       sizeof(*slave->port_ready),
-                                       GFP_KERNEL);
-       if (!slave->port_ready)
-               return -ENOMEM;
-       /* Initialize completion */
-       for (i = 0; i < num_of_ports; i++)
-               init_completion(&slave->port_ready[i]);
        /* set the timeout values */
        prop->clk_stop_timeout = 20;
  
@@@ -452,8 -444,8 +444,8 @@@ static int rt700_sdw_probe(struct sdw_s
  
        /* Regmap Initialization */
        sdw_regmap = devm_regmap_init_sdw(slave, &rt700_sdw_regmap);
 -      if (!sdw_regmap)
 -              return -EINVAL;
 +      if (IS_ERR(sdw_regmap))
 +              return PTR_ERR(sdw_regmap);
  
        regmap = devm_regmap_init(&slave->dev, NULL,
                &slave->dev, &rt700_regmap);
index 7efff130a638c9fa9fa7ab8e2a21175a4dc1a733,10435d97f9abad8e91536079be614a8471fb6b9f..2eb115cf9d41a68b5cddab5f391c5f10d8e68674
@@@ -11,6 -11,7 +11,7 @@@
  #include <linux/mod_devicetable.h>
  #include <linux/soundwire/sdw.h>
  #include <linux/soundwire/sdw_type.h>
+ #include <linux/soundwire/sdw_registers.h>
  #include <linux/module.h>
  #include <linux/regmap.h>
  #include <sound/soc.h>
@@@ -337,11 -338,15 +338,15 @@@ static int rt711_update_status(struct s
  static int rt711_read_prop(struct sdw_slave *slave)
  {
        struct sdw_slave_prop *prop = &slave->prop;
-       int nval, i, num_of_ports = 1;
+       int nval, i;
        u32 bit;
        unsigned long addr;
        struct sdw_dpn_prop *dpn;
  
+       prop->scp_int1_mask = SDW_SCP_INT1_IMPL_DEF | SDW_SCP_INT1_BUS_CLASH |
+               SDW_SCP_INT1_PARITY;
+       prop->quirks = SDW_SLAVE_QUIRKS_INVALID_INITIAL_PARITY;
        prop->paging_support = false;
  
        /* first we need to allocate memory for set bits in port lists */
        prop->sink_ports = 0x8; /* BITMAP:  00001000 */
  
        nval = hweight32(prop->source_ports);
-       num_of_ports += nval;
        prop->src_dpn_prop = devm_kcalloc(&slave->dev, nval,
                                                sizeof(*prop->src_dpn_prop),
                                                GFP_KERNEL);
  
        /* do this again for sink now */
        nval = hweight32(prop->sink_ports);
-       num_of_ports += nval;
        prop->sink_dpn_prop = devm_kcalloc(&slave->dev, nval,
                                                sizeof(*prop->sink_dpn_prop),
                                                GFP_KERNEL);
                i++;
        }
  
-       /* Allocate port_ready based on num_of_ports */
-       slave->port_ready = devm_kcalloc(&slave->dev, num_of_ports,
-                                       sizeof(*slave->port_ready),
-                                       GFP_KERNEL);
-       if (!slave->port_ready)
-               return -ENOMEM;
-       /* Initialize completion */
-       for (i = 0; i < num_of_ports; i++)
-               init_completion(&slave->port_ready[i]);
        /* set the timeout values */
        prop->clk_stop_timeout = 20;
  
@@@ -452,8 -444,8 +444,8 @@@ static int rt711_sdw_probe(struct sdw_s
  
        /* Regmap Initialization */
        sdw_regmap = devm_regmap_init_sdw(slave, &rt711_sdw_regmap);
 -      if (!sdw_regmap)
 -              return -EINVAL;
 +      if (IS_ERR(sdw_regmap))
 +              return PTR_ERR(sdw_regmap);
  
        regmap = devm_regmap_init(&slave->dev, NULL,
                &slave->dev, &rt711_regmap);
index 68a36739f1b0d1cfb808b93e81c4b6833423bfc8,9fb14a0d7334511e7ed845a0b7ae7bb5d93a655b..6b8ea62d5178829cfd96e6ae5adaba0806e9b1bc
@@@ -12,6 -12,7 +12,7 @@@
  #include <linux/mod_devicetable.h>
  #include <linux/soundwire/sdw.h>
  #include <linux/soundwire/sdw_type.h>
+ #include <linux/soundwire/sdw_registers.h>
  #include <linux/module.h>
  #include <linux/of.h>
  #include <linux/regmap.h>
@@@ -431,11 -432,15 +432,15 @@@ static int rt715_update_status(struct s
  static int rt715_read_prop(struct sdw_slave *slave)
  {
        struct sdw_slave_prop *prop = &slave->prop;
-       int nval, i, num_of_ports = 1;
+       int nval, i;
        u32 bit;
        unsigned long addr;
        struct sdw_dpn_prop *dpn;
  
+       prop->scp_int1_mask = SDW_SCP_INT1_IMPL_DEF | SDW_SCP_INT1_BUS_CLASH |
+               SDW_SCP_INT1_PARITY;
+       prop->quirks = SDW_SLAVE_QUIRKS_INVALID_INITIAL_PARITY;
        prop->paging_support = false;
  
        /* first we need to allocate memory for set bits in port lists */
        prop->sink_ports = 0x0; /* BITMAP:  00000000 */
  
        nval = hweight32(prop->source_ports);
-       num_of_ports += nval;
        prop->src_dpn_prop = devm_kcalloc(&slave->dev, nval,
                                        sizeof(*prop->src_dpn_prop),
                                        GFP_KERNEL);
                i++;
        }
  
-       /* do this again for sink now */
-       nval = hweight32(prop->sink_ports);
-       num_of_ports += nval;
-       prop->sink_dpn_prop = devm_kcalloc(&slave->dev, nval,
-                                       sizeof(*prop->sink_dpn_prop),
-                                       GFP_KERNEL);
-       if (!prop->sink_dpn_prop)
-               return -ENOMEM;
-       dpn = prop->sink_dpn_prop;
-       i = 0;
-       addr = prop->sink_ports;
-       for_each_set_bit(bit, &addr, 32) {
-               dpn[i].num = bit;
-               dpn[i].simple_ch_prep_sm = true;
-               dpn[i].ch_prep_timeout = 10;
-               i++;
-       }
-       /* Allocate port_ready based on num_of_ports */
-       slave->port_ready = devm_kcalloc(&slave->dev, num_of_ports,
-                                       sizeof(*slave->port_ready),
-                                       GFP_KERNEL);
-       if (!slave->port_ready)
-               return -ENOMEM;
-       /* Initialize completion */
-       for (i = 0; i < num_of_ports; i++)
-               init_completion(&slave->port_ready[i]);
        /* set the timeout values */
        prop->clk_stop_timeout = 20;
  
@@@ -527,8 -501,8 +501,8 @@@ static int rt715_sdw_probe(struct sdw_s
  
        /* Regmap Initialization */
        sdw_regmap = devm_regmap_init_sdw(slave, &rt715_sdw_regmap);
 -      if (!sdw_regmap)
 -              return -EINVAL;
 +      if (IS_ERR(sdw_regmap))
 +              return PTR_ERR(sdw_regmap);
  
        regmap = devm_regmap_init(&slave->dev, NULL, &slave->dev,
                &rt715_regmap);
This page took 0.255125 seconds and 4 git commands to generate.