[TCWG CI] Regression caused by linux: Merge branch 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git: commit 47f623f2a4ed4a6b712cb361f96609e0ec6af7e5 Merge: 9cec3feb65f9 08e438e6296c Author: Stephen Rothwell sfr@canb.auug.org.au
Merge branch 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
Results regressed to # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1: -5 # build_abe qemu: -2 # linux_n_obj: 6879 # First few build errors in logs: # 00:01:43 make[1]: *** [modules-only.symvers] Error 1 # 00:01:43 make: *** [modules] Error 2
from # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1: -5 # build_abe qemu: -2 # linux_n_obj: 7718 # linux build successful: all # linux boot successful: boot
THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT.
This commit has regressed these CI configurations: - tcwg_kernel/gnu-release-aarch64-next-defconfig
First_bad build: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-de... Last_good build: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-de... Baseline build: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-de... Even more details: https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-de...
Reproduce builds: <cut> mkdir investigate-linux-47f623f2a4ed4a6b712cb361f96609e0ec6af7e5 cd investigate-linux-47f623f2a4ed4a6b712cb361f96609e0ec6af7e5
# Fetch scripts git clone https://git.linaro.org/toolchain/jenkins-scripts
# Fetch manifests and test.sh script mkdir -p artifacts/manifests curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-de... --fail curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-de... --fail curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_kernel-gnu-bisect-gnu-release-aarch64-next-de... --fail chmod +x artifacts/test.sh
# Reproduce the baseline build (build all pre-requisites) ./jenkins-scripts/tcwg_kernel-build.sh @@ artifacts/manifests/build-baseline.sh
# Save baseline build state (which is then restored in artifacts/test.sh) mkdir -p ./bisect rsync -a --del --delete-excluded --exclude /bisect/ --exclude /artifacts/ --exclude /linux/ ./ ./bisect/baseline/
cd linux
# Reproduce first_bad build git checkout --detach 47f623f2a4ed4a6b712cb361f96609e0ec6af7e5 ../artifacts/test.sh
# Reproduce last_good build git checkout --detach 9cec3feb65f946f7fa4225f8df965aacbe97fd8c ../artifacts/test.sh
cd .. </cut>
Full commit (up to 1000 lines): <cut> commit 47f623f2a4ed4a6b712cb361f96609e0ec6af7e5 Merge: 9cec3feb65f9 08e438e6296c Author: Stephen Rothwell sfr@canb.auug.org.au Date: Thu Oct 28 18:26:16 2021 +1100
Merge branch 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
# Conflicts: # drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c # drivers/gpu/drm/tegra/gem.c
.../ABI/testing/debugfs-driver-habanalabs | 6 + Documentation/ABI/testing/sysfs-bus-counter | 38 +- .../ABI/testing/sysfs-bus-fsi-devices-sbefifo | 10 + Documentation/ABI/testing/sysfs-bus-iio | 42 + .../ABI/testing/sysfs-bus-iio-chemical-sunrise-co2 | 38 + Documentation/ABI/testing/sysfs-bus-iio-scd30 | 34 - .../ABI/testing/sysfs-bus-iio-temperature-max31865 | 20 + .../testing/sysfs-bus-platform-devices-occ-hwmon | 13 + .../devicetree/bindings/iio/accel/adi,adxl313.yaml | 86 + .../devicetree/bindings/iio/accel/adi,adxl355.yaml | 88 + .../bindings/iio/accel/kionix,kxcjk1013.yaml | 3 + .../devicetree/bindings/iio/adc/adi,ad7949.yaml | 51 +- .../devicetree/bindings/iio/adc/adi,ad799x.yaml | 73 + .../bindings/iio/adc/aspeed,ast2600-adc.yaml | 100 + .../bindings/iio/adc/atmel,sama5d2-adc.yaml | 1 + .../bindings/iio/adc/nxp,imx8qxp-adc.yaml | 78 + .../devicetree/bindings/iio/adc/st,stm32-adc.yaml | 108 +- .../bindings/iio/chemical/senseair,sunrise.yaml | 55 + .../bindings/iio/chemical/sensirion,scd4x.yaml | 46 + .../bindings/iio/frequency/adi,adrf6780.yaml | 131 ++ .../bindings/iio/light/liteon,ltr501.yaml | 51 + .../iio/magnetometer/asahi-kasei,ak8975.yaml | 7 + .../bindings/iio/multiplexer/io-channel-mux.yaml | 13 +- .../bindings/iio/temperature/maxim,max31865.yaml | 52 + .../devicetree/bindings/vendor-prefixes.yaml | 4 + Documentation/driver-api/driver-model/devres.rst | 1 + Documentation/driver-api/generic-counter.rst | 363 +++- Documentation/userspace-api/ioctl/ioctl-number.rst | 1 + Documentation/virt/ne_overview.rst | 21 +- MAINTAINERS | 42 +- drivers/android/binder.c | 14 +- drivers/char/mem.c | 8 +- drivers/char/xillybus/xillybus.h | 31 +- drivers/char/xillybus/xillybus_core.c | 131 +- drivers/char/xillybus/xillybus_of.c | 86 +- drivers/char/xillybus/xillybus_pcie.c | 99 +- drivers/char/xillybus/xillyusb.c | 1 + drivers/comedi/drivers/vmk80xx.c | 28 +- drivers/counter/104-quad-8.c | 699 ++++--- drivers/counter/Kconfig | 6 +- drivers/counter/Makefile | 1 + drivers/counter/counter-chrdev.c | 573 ++++++ drivers/counter/counter-chrdev.h | 14 + drivers/counter/counter-core.c | 191 ++ drivers/counter/counter-sysfs.c | 959 ++++++++++ drivers/counter/counter-sysfs.h | 13 + drivers/counter/counter.c | 1496 --------------- drivers/counter/ftm-quaddec.c | 60 +- drivers/counter/intel-qep.c | 146 +- drivers/counter/interrupt-cnt.c | 62 +- drivers/counter/microchip-tcb-capture.c | 93 +- drivers/counter/stm32-lptimer-cnt.c | 212 +-- drivers/counter/stm32-timer-cnt.c | 195 +- drivers/counter/ti-eqep.c | 180 +- drivers/dma-buf/dma-buf.c | 34 +- drivers/fsi/fsi-occ.c | 218 ++- drivers/fsi/fsi-sbefifo.c | 28 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 + drivers/gpu/drm/armada/armada_gem.c | 2 + drivers/gpu/drm/drm_gem_framebuffer_helper.c | 3 + drivers/gpu/drm/drm_gem_shmem_helper.c | 2 + drivers/gpu/drm/drm_prime.c | 3 + drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 3 + drivers/gpu/drm/exynos/exynos_drm_gem.c | 3 + drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 3 + drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 2 + drivers/gpu/drm/tegra/gem.c | 3 + drivers/gpu/drm/vmwgfx/ttm_object.c | 3 + drivers/hwmon/occ/common.c | 30 +- drivers/hwmon/occ/common.h | 3 +- drivers/hwmon/occ/p8_i2c.c | 15 +- drivers/hwmon/occ/p9_sbe.c | 90 +- drivers/iio/accel/Kconfig | 62 + drivers/iio/accel/Makefile | 6 + drivers/iio/accel/adxl313.h | 54 + drivers/iio/accel/adxl313_core.c | 332 ++++ drivers/iio/accel/adxl313_i2c.c | 66 + drivers/iio/accel/adxl313_spi.c | 92 + drivers/iio/accel/adxl355.h | 21 + drivers/iio/accel/adxl355_core.c | 765 ++++++++ drivers/iio/accel/adxl355_i2c.c | 62 + drivers/iio/accel/adxl355_spi.c | 65 + drivers/iio/accel/adxl372.c | 1 + drivers/iio/accel/bma400.h | 2 +- drivers/iio/accel/bma400_core.c | 7 +- drivers/iio/accel/bma400_i2c.c | 4 +- drivers/iio/accel/bma400_spi.c | 4 +- drivers/iio/accel/bmc150-accel-core.c | 5 +- drivers/iio/accel/bmc150-accel-i2c.c | 4 +- drivers/iio/accel/bmc150-accel-spi.c | 4 +- drivers/iio/accel/bmc150-accel.h | 2 +- drivers/iio/accel/bmi088-accel-core.c | 4 +- drivers/iio/accel/bmi088-accel-spi.c | 4 +- drivers/iio/accel/bmi088-accel.h | 2 +- drivers/iio/accel/fxls8962af-core.c | 347 +++- drivers/iio/accel/kxsd9-i2c.c | 4 +- drivers/iio/accel/kxsd9-spi.c | 4 +- drivers/iio/accel/kxsd9.c | 4 +- drivers/iio/accel/kxsd9.h | 2 +- drivers/iio/accel/mma7455.h | 2 +- drivers/iio/accel/mma7455_core.c | 4 +- drivers/iio/accel/mma7455_i2c.c | 4 +- drivers/iio/accel/mma7455_spi.c | 4 +- drivers/iio/accel/mma7660.c | 2 +- drivers/iio/accel/sca3000.c | 3 +- drivers/iio/accel/st_accel_core.c | 31 +- drivers/iio/accel/st_accel_i2c.c | 23 +- drivers/iio/accel/st_accel_spi.c | 23 +- drivers/iio/adc/Kconfig | 18 +- drivers/iio/adc/Makefile | 1 + drivers/iio/adc/ab8500-gpadc.c | 22 +- drivers/iio/adc/ad7291.c | 70 +- drivers/iio/adc/ad7949.c | 254 ++- drivers/iio/adc/ad799x.c | 68 +- drivers/iio/adc/aspeed_adc.c | 598 +++++- drivers/iio/adc/at91-sama5d2_adc.c | 598 ++++-- drivers/iio/adc/axp288_adc.c | 28 +- drivers/iio/adc/berlin2-adc.c | 34 +- drivers/iio/adc/da9150-gpadc.c | 27 +- drivers/iio/adc/ep93xx_adc.c | 4 +- drivers/iio/adc/fsl-imx25-gcq.c | 55 +- drivers/iio/adc/imx7d_adc.c | 18 +- drivers/iio/adc/imx8qxp-adc.c | 494 +++++ drivers/iio/adc/intel_mrfld_adc.c | 24 +- drivers/iio/adc/lp8788_adc.c | 31 +- drivers/iio/adc/lpc18xx_adc.c | 75 +- drivers/iio/adc/max1027.c | 278 ++- drivers/iio/adc/max1118.c | 7 +- drivers/iio/adc/max1241.c | 17 +- drivers/iio/adc/max1363.c | 82 +- drivers/iio/adc/meson_saradc.c | 39 +- drivers/iio/adc/nau7802.c | 50 +- drivers/iio/adc/qcom-pm8xxx-xoadc.c | 9 +- drivers/iio/adc/rn5t618-adc.c | 13 +- drivers/iio/adc/rockchip_saradc.c | 31 +- drivers/iio/adc/stm32-adc-core.c | 1 + drivers/iio/adc/stm32-adc-core.h | 10 + drivers/iio/adc/stm32-adc.c | 422 ++++- drivers/iio/adc/ti-adc108s102.c | 11 +- drivers/iio/adc/ti-adc128s052.c | 33 +- drivers/iio/adc/ti-ads7950.c | 4 +- drivers/iio/adc/ti-ads8344.c | 27 +- drivers/iio/adc/twl6030-gpadc.c | 6 +- drivers/iio/adc/xilinx-xadc-core.c | 5 +- drivers/iio/adc/xilinx-xadc.h | 1 - drivers/iio/buffer/industrialio-triggered-buffer.c | 8 +- drivers/iio/buffer/kfifo_buf.c | 50 + drivers/iio/chemical/Kconfig | 24 + drivers/iio/chemical/Makefile | 2 + drivers/iio/chemical/scd4x.c | 696 +++++++ drivers/iio/chemical/sunrise_co2.c | 537 ++++++ .../iio/common/hid-sensors/hid-sensor-trigger.c | 5 +- drivers/iio/common/st_sensors/st_sensors_core.c | 48 +- drivers/iio/common/st_sensors/st_sensors_i2c.c | 1 - drivers/iio/common/st_sensors/st_sensors_spi.c | 1 - drivers/iio/common/st_sensors/st_sensors_trigger.c | 53 +- drivers/iio/dac/ad5064.c | 49 +- drivers/iio/dac/ad5380.c | 15 +- drivers/iio/dac/ad5446.c | 12 +- drivers/iio/dac/ad5592r-base.c | 4 +- drivers/iio/dac/ad5592r-base.h | 2 +- drivers/iio/dac/ad5592r.c | 4 +- drivers/iio/dac/ad5593r.c | 4 +- drivers/iio/dac/ad5686-spi.c | 4 +- drivers/iio/dac/ad5686.c | 4 +- drivers/iio/dac/ad5686.h | 2 +- drivers/iio/dac/ad5696-i2c.c | 4 +- drivers/iio/dac/ad5766.c | 42 + drivers/iio/dac/ad5770r.c | 2 +- drivers/iio/dac/ad7303.c | 47 +- drivers/iio/dac/ad8801.c | 11 +- drivers/iio/dac/ds4424.c | 9 +- drivers/iio/dac/lpc18xx_dac.c | 14 +- drivers/iio/dac/ltc1660.c | 7 +- drivers/iio/dac/max5821.c | 9 +- drivers/iio/dac/mcp4922.c | 7 +- drivers/iio/dac/stm32-dac-core.c | 18 +- drivers/iio/dac/ti-dac7311.c | 7 +- drivers/iio/frequency/Kconfig | 12 + drivers/iio/frequency/Makefile | 1 + drivers/iio/frequency/adrf6780.c | 527 ++++++ drivers/iio/gyro/Kconfig | 1 - drivers/iio/gyro/adis16080.c | 11 +- drivers/iio/gyro/mpu3050-core.c | 24 +- drivers/iio/gyro/st_gyro_core.c | 27 +- drivers/iio/gyro/st_gyro_i2c.c | 23 +- drivers/iio/gyro/st_gyro_spi.c | 23 +- drivers/iio/health/afe4403.c | 14 +- drivers/iio/health/afe4404.c | 8 +- drivers/iio/iio_core.h | 4 + drivers/iio/imu/adis.c | 17 +- drivers/iio/imu/adis16400.c | 20 +- drivers/iio/imu/adis16460.c | 18 +- drivers/iio/imu/adis16475.c | 19 +- drivers/iio/imu/adis_trigger.c | 4 + drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 2 +- drivers/iio/imu/inv_mpu6050/inv_mpu_magn.c | 36 +- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 4 +- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 22 +- drivers/iio/imu/st_lsm9ds0/st_lsm9ds0.h | 1 - drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c | 29 +- drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 6 - drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 6 - drivers/iio/industrialio-buffer.c | 173 +- drivers/iio/industrialio-core.c | 1 + drivers/iio/inkern.c | 17 + drivers/iio/light/cm3605.c | 29 +- drivers/iio/light/cm36651.c | 7 +- drivers/iio/light/gp2ap002.c | 24 +- drivers/iio/light/ltr501.c | 37 + drivers/iio/light/max44000.c | 17 +- drivers/iio/light/noa1305.c | 7 +- drivers/iio/magnetometer/Kconfig | 2 +- drivers/iio/magnetometer/ak8975.c | 35 + drivers/iio/magnetometer/hmc5843.h | 2 +- drivers/iio/magnetometer/hmc5843_core.c | 4 +- drivers/iio/magnetometer/hmc5843_i2c.c | 4 +- drivers/iio/magnetometer/hmc5843_spi.c | 4 +- drivers/iio/magnetometer/st_magn_core.c | 29 +- drivers/iio/magnetometer/st_magn_i2c.c | 23 +- drivers/iio/magnetometer/st_magn_spi.c | 23 +- drivers/iio/multiplexer/iio-mux.c | 7 +- drivers/iio/potentiometer/max5487.c | 7 +- drivers/iio/pressure/ms5611.h | 2 +- drivers/iio/pressure/ms5611_core.c | 4 +- drivers/iio/pressure/ms5611_i2c.c | 4 +- drivers/iio/pressure/ms5611_spi.c | 4 +- drivers/iio/pressure/st_pressure_core.c | 27 +- drivers/iio/pressure/st_pressure_i2c.c | 23 +- drivers/iio/pressure/st_pressure_spi.c | 23 +- drivers/iio/temperature/Kconfig | 10 + drivers/iio/temperature/Makefile | 1 + drivers/iio/temperature/ltc2983.c | 16 + drivers/iio/temperature/max31865.c | 349 ++++ drivers/infiniband/core/umem_dmabuf.c | 3 + drivers/interconnect/qcom/icc-rpm.c | 263 ++- drivers/interconnect/qcom/icc-rpm.h | 56 +- drivers/interconnect/qcom/msm8916.c | 1214 +++++++++++- drivers/interconnect/qcom/msm8939.c | 1283 ++++++++++++- drivers/interconnect/qcom/qcs404.c | 967 +++++++++- drivers/interconnect/qcom/sdm660.c | 1940 ++++++++++++++------ drivers/interconnect/samsung/Kconfig | 6 +- drivers/ipack/devices/ipoctal.c | 48 +- drivers/media/common/videobuf2/videobuf2-core.c | 1 + .../media/common/videobuf2/videobuf2-dma-contig.c | 1 + drivers/media/common/videobuf2/videobuf2-dma-sg.c | 1 + drivers/media/common/videobuf2/videobuf2-vmalloc.c | 1 + drivers/misc/ad525x_dpot-i2c.c | 3 +- drivers/misc/ad525x_dpot-spi.c | 3 +- drivers/misc/ad525x_dpot.c | 4 +- drivers/misc/ad525x_dpot.h | 2 +- drivers/misc/cardreader/rtsx_pcr.c | 2 +- drivers/misc/enclosure.c | 16 +- drivers/misc/fastrpc.c | 21 +- drivers/misc/genwqe/card_utils.c | 10 +- drivers/misc/habanalabs/Kconfig | 2 + drivers/misc/habanalabs/common/Makefile | 2 +- .../misc/habanalabs/common/command_submission.c | 105 +- drivers/misc/habanalabs/common/context.c | 8 +- drivers/misc/habanalabs/common/debugfs.c | 51 + drivers/misc/habanalabs/common/device.c | 159 +- drivers/misc/habanalabs/common/firmware_if.c | 28 +- drivers/misc/habanalabs/common/habanalabs.h | 64 +- drivers/misc/habanalabs/common/habanalabs_drv.c | 24 +- .../{gaudi/gaudi_hwmgr.c => common/hwmgr.c} | 38 +- drivers/misc/habanalabs/common/hwmon.c | 194 +- drivers/misc/habanalabs/common/irq.c | 5 +- drivers/misc/habanalabs/common/memory.c | 515 +++++- drivers/misc/habanalabs/common/mmu/mmu.c | 30 +- drivers/misc/habanalabs/common/sysfs.c | 6 +- drivers/misc/habanalabs/gaudi/Makefile | 2 +- drivers/misc/habanalabs/gaudi/gaudi.c | 22 +- drivers/misc/habanalabs/gaudi/gaudiP.h | 4 - drivers/misc/habanalabs/goya/goya.c | 13 +- drivers/misc/habanalabs/goya/goyaP.h | 1 - drivers/misc/habanalabs/goya/goya_hwmgr.c | 31 - drivers/misc/habanalabs/include/common/cpucp_if.h | 22 +- .../misc/habanalabs/include/common/hl_boot_if.h | 189 +- .../misc/habanalabs/include/gaudi/gaudi_fw_if.h | 10 +- .../misc/habanalabs/include/gaudi/gaudi_reg_map.h | 1 + drivers/misc/hisi_hikey_usb.c | 119 +- drivers/misc/lis3lv02d/lis3lv02d.c | 3 +- drivers/misc/lis3lv02d/lis3lv02d.h | 2 +- drivers/misc/lis3lv02d/lis3lv02d_spi.c | 4 +- drivers/misc/lkdtm/bugs.c | 77 + drivers/misc/lkdtm/core.c | 1 + drivers/misc/lkdtm/lkdtm.h | 1 + drivers/misc/mei/pci-txe.c | 4 +- drivers/misc/pvpanic/pvpanic-mmio.c | 9 +- drivers/misc/pvpanic/pvpanic-pci.c | 26 +- drivers/misc/pvpanic/pvpanic.c | 16 +- drivers/misc/tifm_7xx1.c | 2 +- drivers/misc/tifm_core.c | 8 +- drivers/most/most_usb.c | 5 +- drivers/mux/core.c | 38 +- drivers/nvmem/core.c | 174 +- drivers/nvmem/imx-ocotp.c | 25 + drivers/platform/x86/hp_accel.c | 3 +- drivers/soundwire/bus.c | 2 +- drivers/soundwire/debugfs.c | 2 +- drivers/soundwire/qcom.c | 27 + drivers/staging/iio/cdc/ad7746.c | 4 +- drivers/staging/iio/frequency/ad9832.c | 82 +- drivers/staging/media/tegra-vde/dmabuf-cache.c | 3 + drivers/tee/tee_shm.c | 3 + drivers/virt/acrn/hsm.c | 49 + drivers/virt/acrn/hypercall.h | 52 + drivers/virt/nitro_enclaves/Kconfig | 8 +- drivers/virt/nitro_enclaves/ne_misc_dev.c | 17 +- drivers/virt/nitro_enclaves/ne_pci_dev.c | 2 +- drivers/virt/nitro_enclaves/ne_pci_dev.h | 8 +- drivers/virtio/virtio_dma_buf.c | 1 + drivers/xen/gntdev-dmabuf.c | 3 + include/linux/counter.h | 715 ++++---- include/linux/counter_enum.h | 45 - include/linux/fsi-occ.h | 2 + include/linux/iio/buffer.h | 11 + include/linux/iio/buffer_impl.h | 11 + include/linux/iio/common/st_sensors.h | 13 - include/linux/iio/driver.h | 14 + include/linux/iio/iio-opaque.h | 4 + include/linux/iio/imu/adis.h | 2 + include/linux/iio/triggered_buffer.h | 11 +- include/linux/mfd/stm32-lptimer.h | 5 + include/linux/mfd/stm32-timers.h | 4 + include/linux/mux/consumer.h | 23 +- include/linux/mux/driver.h | 4 + include/linux/nvmem-provider.h | 5 + include/uapi/linux/acrn.h | 70 + include/uapi/linux/counter.h | 154 ++ include/uapi/linux/nitro_enclaves.h | 10 +- include/uapi/misc/habanalabs.h | 84 +- samples/kfifo/bytestream-example.c | 12 +- samples/kfifo/inttype-example.c | 12 +- samples/kfifo/record-example.c | 12 +- samples/nitro_enclaves/ne_ioctl_sample.c | 7 +- samples/vfio-mdev/mbochs.c | 1 + scripts/tags.sh | 6 +- tools/Makefile | 13 +- tools/counter/Build | 1 + tools/counter/Makefile | 53 + tools/counter/counter_example.c | 92 + tools/testing/selftests/lkdtm/config | 1 + tools/testing/selftests/lkdtm/run.sh | 10 +- tools/testing/selftests/lkdtm/tests.txt | 1 + 345 files changed, 19305 insertions(+), 6542 deletions(-)
diff --cc drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c index a45d0ec2c5b6,abb854281347..3b1987b8f43c --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c @@@ -12,13 -13,8 +13,15 @@@ #include "i915_gem_object.h" #include "i915_scatterlist.h"
+#if defined(CONFIG_X86) +#include <asm/smp.h> +#else +#define wbinvd_on_all_cpus() \ + pr_warn(DRIVER_NAME ": Missing cache flush in %s\n", __func__) +#endif + + MODULE_IMPORT_NS(DMA_BUF); + I915_SELFTEST_DECLARE(static bool force_different_devices;)
static struct drm_i915_gem_object *dma_buf_to_obj(struct dma_buf *buf) diff --cc drivers/gpu/drm/tegra/gem.c index 62fc7e8429d4,d38fd7e12b57..fce0e52973c2 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c @@@ -20,78 -21,60 +21,80 @@@ #include "drm.h" #include "gem.h"
+ MODULE_IMPORT_NS(DMA_BUF); + -static void tegra_bo_put(struct host1x_bo *bo) +static unsigned int sg_dma_count_chunks(struct scatterlist *sgl, unsigned int nents) { - struct tegra_bo *obj = host1x_to_tegra_bo(bo); + dma_addr_t next = ~(dma_addr_t)0; + unsigned int count = 0, i; + struct scatterlist *s; + + for_each_sg(sgl, s, nents, i) { + /* sg_dma_address(s) is only valid for entries that have sg_dma_len(s) != 0. */ + if (!sg_dma_len(s)) + continue; + + if (sg_dma_address(s) != next) { + next = sg_dma_address(s) + sg_dma_len(s); + count++; + } + }
- drm_gem_object_put(&obj->gem); + return count; }
-/* XXX move this into lib/scatterlist.c? */ -static int sg_alloc_table_from_sg(struct sg_table *sgt, struct scatterlist *sg, - unsigned int nents, gfp_t gfp_mask) +static inline unsigned int sgt_dma_count_chunks(struct sg_table *sgt) { - struct scatterlist *dst; - unsigned int i; - int err; - - err = sg_alloc_table(sgt, nents, gfp_mask); - if (err < 0) - return err; - - dst = sgt->sgl; + return sg_dma_count_chunks(sgt->sgl, sgt->nents); +}
- for (i = 0; i < nents; i++) { - sg_set_page(dst, sg_page(sg), sg->length, 0); - dst = sg_next(dst); - sg = sg_next(sg); - } +static void tegra_bo_put(struct host1x_bo *bo) +{ + struct tegra_bo *obj = host1x_to_tegra_bo(bo);
- return 0; + drm_gem_object_put(&obj->gem); }
-static struct sg_table *tegra_bo_pin(struct device *dev, struct host1x_bo *bo, - dma_addr_t *phys) +static struct host1x_bo_mapping *tegra_bo_pin(struct device *dev, struct host1x_bo *bo, + enum dma_data_direction direction) { struct tegra_bo *obj = host1x_to_tegra_bo(bo); - struct sg_table *sgt; + struct drm_gem_object *gem = &obj->gem; + struct host1x_bo_mapping *map; int err;
+ map = kzalloc(sizeof(*map), GFP_KERNEL); + if (!map) + return ERR_PTR(-ENOMEM); + + kref_init(&map->ref); + map->bo = host1x_bo_get(bo); + map->direction = direction; + map->dev = dev; + /* - * If we've manually mapped the buffer object through the IOMMU, make - * sure to return the IOVA address of our mapping. - * - * Similarly, for buffers that have been allocated by the DMA API the - * physical address can be used for devices that are not attached to - * an IOMMU. For these devices, callers must pass a valid pointer via - * the @phys argument. - * - * Imported buffers were also already mapped at import time, so the - * existing mapping can be reused. + * Imported buffers need special treatment to satisfy the semantics of DMA-BUF. */ - if (phys) { - *phys = obj->iova; - return NULL; + if (gem->import_attach) { + struct dma_buf *buf = gem->import_attach->dmabuf; + + map->attach = dma_buf_attach(buf, dev); + if (IS_ERR(map->attach)) { + err = PTR_ERR(map->attach); + goto free; + } + + map->sgt = dma_buf_map_attachment(map->attach, direction); + if (IS_ERR(map->sgt)) { + dma_buf_detach(buf, map->attach); + err = PTR_ERR(map->sgt); + goto free; + } + + err = sgt_dma_count_chunks(map->sgt); + map->size = gem->size; + + goto out; }
/* </cut>