Linux 4.19.178
Greg Kroah-Hartman
maintainerI'm announcing the release of the 4.19.178 kernel.
All users of the 4.19 kernel series must upgrade.
The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/filesystems/seq_file.txt | 6 Makefile | 2 arch/arm/boot/compressed/head.S | 4 arch/arm/boot/dts/armada-388-helios4.dts | 28 arch/arm/boot/dts/aspeed-g4.dtsi | 1 arch/arm/boot/dts/aspeed-g5.dtsi | 1 arch/arm/boot/dts/exynos3250-artik5.dtsi | 2 arch/arm/boot/dts/exynos3250-monk.dts | 2 arch/arm/boot/dts/exynos3250-rinato.dts | 2 arch/arm/boot/dts/exynos5250-spring.dts | 2 arch/arm/boot/dts/exynos5420-arndale-octa.dts | 2 arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 2 arch/arm/boot/dts/omap443x.dtsi | 2 arch/arm64/Kconfig | 2 arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts | 5 arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi | 1 arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 6 arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi | 2 arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 2 arch/arm64/boot/dts/mediatek/mt7622.dtsi | 2 arch/arm64/boot/dts/nvidia/tegra210.dtsi | 1 arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 arch/arm64/crypto/sha1-ce-glue.c | 1 arch/arm64/crypto/sha2-ce-glue.c | 2 arch/arm64/crypto/sha3-ce-glue.c | 4 arch/arm64/crypto/sha512-ce-glue.c | 2 arch/arm64/kernel/cpufeature.c | 2 arch/arm64/kernel/head.S | 1 arch/arm64/kernel/probes/uprobes.c | 2 arch/mips/kernel/vmlinux.lds.S | 1 arch/mips/lantiq/irq.c | 2 arch/mips/mm/c-r4k.c | 2 arch/powerpc/Kconfig | 2 arch/powerpc/kernel/head_8xx.S | 2 arch/powerpc/kvm/powerpc.c | 8 arch/powerpc/platforms/pseries/dlpar.c | 7 arch/sparc/Kconfig | 2 arch/sparc/lib/memset.S | 1 arch/x86/kernel/reboot.c | 29 arch/x86/mm/pat.c | 3 block/bfq-iosched.c | 1 block/blk-core.c | 1 block/blk-mq-sysfs.c | 12 block/blk-settings.c | 12 block/blk-sysfs.c | 49 - block/blk-wbt.c | 2 block/blk.h | 2 block/elevator.c | 30 certs/blacklist.c | 2 crypto/ecdh_helper.c | 3 drivers/acpi/acpi_configfs.c | 7 drivers/acpi/property.c | 44 - drivers/amba/bus.c | 20 drivers/ata/ahci_brcm.c | 14 drivers/auxdisplay/ht16k33.c | 3 drivers/base/regmap/regmap-sdw.c | 4 drivers/block/floppy.c | 27 drivers/bluetooth/btqcomsmd.c | 27 drivers/char/hw_random/timeriomem-rng.c | 2 drivers/char/random.c | 2 drivers/char/tpm/tpm_tis_core.c | 50 - drivers/clk/meson/clk-pll.c | 2 drivers/clk/qcom/gcc-msm8998.c | 100 +- drivers/clk/sunxi-ng/ccu-sun50i-h6.c | 10 drivers/clocksource/mxs_timer.c | 5 drivers/cpufreq/brcmstb-avs-cpufreq.c | 24 drivers/cpufreq/intel_pstate.c | 5 drivers/crypto/bcm/cipher.c | 2 drivers/crypto/bcm/cipher.h | 4 drivers/crypto/bcm/util.c | 2 drivers/crypto/chelsio/chtls/chtls_cm.h | 3 drivers/crypto/sunxi-ss/sun4i-ss-cipher.c | 125 +- drivers/crypto/talitos.c | 28 drivers/crypto/talitos.h | 1 drivers/dma/fsldma.c | 6 drivers/dma/hsu/pci.c | 21 drivers/dma/owl-dma.c | 1 drivers/gpio/gpio-pcf857x.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 2 drivers/gpu/drm/amd/display/dc/dce/dce_transform.c | 8 drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c | 22 drivers/gpu/drm/gma500/psb_drv.c | 2 drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.c | 2 drivers/hid/hid-core.c | 9 drivers/hid/wacom_wac.c | 7 drivers/hv/channel_mgmt.c | 3 drivers/i2c/busses/i2c-brcmstb.c | 2 drivers/infiniband/core/user_mad.c | 17 drivers/infiniband/hw/mlx5/devx.c | 4 drivers/infiniband/sw/rxe/rxe_net.c | 5 drivers/infiniband/sw/rxe/rxe_recv.c | 11 drivers/input/joydev.c | 7 drivers/input/joystick/xpad.c | 1 drivers/input/serio/i8042-x86ia64io.h | 4 drivers/input/touchscreen/elo.c | 4 drivers/input/touchscreen/raydium_i2c_ts.c | 3 drivers/input/touchscreen/sur40.c | 1 drivers/md/dm-core.h | 4 drivers/md/dm-crypt.c | 1 drivers/md/dm-era-target.c | 93 +- drivers/md/dm.c | 60 + drivers/media/i2c/ov5670.c | 3 drivers/media/pci/cx25821/cx25821-core.c | 4 drivers/media/pci/intel/ipu3/ipu3-cio2.c | 2 drivers/media/pci/saa7134/saa7134-empress.c | 5 drivers/media/platform/pxa_camera.c | 3 drivers/media/platform/qcom/camss/camss-video.c | 1 drivers/media/platform/vsp1/vsp1_drv.c | 4 drivers/media/tuners/qm1d1c0042.c | 4 drivers/media/usb/dvb-usb-v2/lmedm04.c | 2 drivers/media/usb/em28xx/em28xx-core.c | 6 drivers/media/usb/tm6000/tm6000-dvb.c | 4 drivers/media/usb/uvc/uvc_v4l2.c | 18 drivers/memory/ti-aemif.c | 8 drivers/mfd/bd9571mwv.c | 6 drivers/mfd/wm831x-auxadc.c | 3 drivers/misc/aspeed-lpc-snoop.c | 30 drivers/misc/cardreader/rts5227.c | 5 drivers/misc/eeprom/eeprom_93xx46.c | 1 drivers/misc/vmw_vmci/vmci_queue_pair.c | 5 drivers/mmc/host/renesas_sdhi_internal_dmac.c | 4 drivers/mmc/host/sdhci-esdhc-imx.c | 3 drivers/mmc/host/usdhi6rol0.c | 4 drivers/mtd/spi-nor/cadence-quadspi.c | 2 drivers/mtd/spi-nor/hisi-sfc.c | 4 drivers/net/ethernet/amd/xgbe/xgbe-common.h | 14 drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 1 drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 3 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 39 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 3 drivers/net/ethernet/chelsio/cxgb4/sge.c | 11 drivers/net/ethernet/ibm/ibmvnic.c | 16 drivers/net/ethernet/intel/i40e/i40e_main.c | 41 drivers/net/ethernet/intel/i40e/i40e_txrx.c | 9 drivers/net/ethernet/marvell/mvneta.c | 9 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 1 drivers/net/ethernet/realtek/r8169.c | 4 drivers/net/ethernet/sun/sunvnet_common.c | 23 drivers/net/gtp.c | 5 drivers/net/usb/qmi_wwan.c | 1 drivers/net/vxlan.c | 11 drivers/net/wireless/ath/ath10k/snoc.c | 5 drivers/net/wireless/ath/ath9k/debug.c | 5 drivers/net/wireless/broadcom/b43/phy_n.c | 2 drivers/net/xen-netback/interface.c | 8 drivers/nvdimm/dimm_devs.c | 18 drivers/of/fdt.c | 12 drivers/pci/controller/dwc/pcie-qcom.c | 4 drivers/pci/syscall.c | 10 drivers/power/reset/at91-sama5d2_shdwc.c | 2 drivers/pwm/pwm-rockchip.c | 1 drivers/regulator/axp20x-regulator.c | 7 drivers/regulator/s5m8767.c | 8 drivers/rtc/Kconfig | 1 drivers/scsi/bnx2fc/Kconfig | 1 drivers/spi/spi-atmel.c | 2 drivers/spi/spi-pxa2xx-pci.c | 27 drivers/spi/spi-s3c24xx-fiq.S | 9 drivers/spi/spi-stm32.c | 4 drivers/staging/gdm724x/gdm_usb.c | 10 drivers/staging/mt7621-dma/Makefile | 2 drivers/staging/mt7621-dma/hsdma-mt7621.c | 771 ++++++++++++++++++ drivers/staging/mt7621-dma/mtk-hsdma.c | 771 ------------------ drivers/staging/rtl8188eu/os_dep/usb_intf.c | 1 drivers/staging/rtl8723bs/os_dep/wifi_regd.c | 2 drivers/target/iscsi/cxgbit/cxgbit_target.c | 3 drivers/usb/core/quirks.c | 9 drivers/usb/dwc2/hcd.c | 15 drivers/usb/dwc2/hcd_intr.c | 14 drivers/usb/dwc3/gadget.c | 19 drivers/usb/gadget/function/u_audio.c | 17 drivers/usb/musb/musb_core.c | 31 drivers/usb/serial/ftdi_sio.c | 5 drivers/usb/serial/mos7720.c | 4 drivers/usb/serial/mos7840.c | 4 drivers/usb/serial/option.c | 3 drivers/video/fbdev/Kconfig | 2 drivers/watchdog/mei_wdt.c | 1 fs/affs/namei.c | 4 fs/btrfs/ctree.c | 7 fs/btrfs/free-space-cache.c | 6 fs/btrfs/relocation.c | 4 fs/cifs/connect.c | 1 fs/ext4/namei.c | 7 fs/f2fs/file.c | 7 fs/f2fs/inline.c | 4 fs/gfs2/lock_dlm.c | 8 fs/isofs/dir.c | 1 fs/isofs/namei.c | 1 fs/jffs2/summary.c | 3 fs/jfs/jfs_dmap.c | 2 fs/ntfs/inode.c | 6 fs/ocfs2/cluster/heartbeat.c | 8 fs/pstore/platform.c | 4 fs/quota/quota_v2.c | 11 include/acpi/acexcep.h | 10 include/asm-generic/vmlinux.lds.h | 7 include/linux/blkdev.h | 2 include/linux/device-mapper.h | 5 include/linux/filter.h | 2 include/linux/icmpv6.h | 48 + include/linux/ipv6.h | 2 include/linux/kexec.h | 5 include/linux/key.h | 1 include/linux/rmap.h | 3 include/net/icmp.h | 10 include/net/tcp.h | 9 kernel/bpf/bpf_lru_list.c | 7 kernel/debug/kdb/kdb_private.h | 2 kernel/jump_label.c | 26 kernel/kexec_file.c | 5 kernel/module.c | 21 kernel/printk/printk_safe.c | 16 kernel/seccomp.c | 2 kernel/tracepoint.c | 80 + mm/hugetlb.c | 4 mm/memory.c | 16 net/bluetooth/a2mp.c | 3 net/bluetooth/hci_core.c | 6 net/core/filter.c | 13 net/ipv4/icmp.c | 34 net/ipv6/icmp.c | 19 net/ipv6/ip6_icmp.c | 46 - net/mac80211/mesh_hwmp.c | 2 net/qrtr/tun.c | 12 net/xfrm/xfrm_interface.c | 6 scripts/Makefile | 9 scripts/recordmcount.pl | 6 security/commoncap.c | 12 security/integrity/ima/ima_kexec.c | 3 security/integrity/ima/ima_mok.c | 5 security/keys/key.c | 2 security/keys/trusted.c | 2 sound/pci/hda/patch_realtek.c | 11 sound/soc/codecs/cpcap.c | 12 sound/soc/codecs/cs42l56.c | 3 sound/usb/pcm.c | 2 tools/perf/tests/sample-parsing.c | 2 tools/perf/util/event.c | 2 tools/perf/util/intel-pt-decoder/intel-pt-decoder.c | 3 242 files changed, 2306 insertions(+), 1498 deletions(-)
Adrian Hunter (1):
perf intel-pt: Fix missing CYC processing in PSB
Al Viro (1):
sparc32: fix a user-triggerable oops in clear_user()
Alain Volmat (1):
spi: stm32: properly handle 0 byte transfer
Alexander Lobakin (1):
MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section
Alexander Usyskin (1):
watchdog: mei_wdt: request stop on unregister
Amey Narkhede (1):
staging: gdm724x: Fix DMA from stack
Andre Przywara (5):
arm64: dts: allwinner: A64: properly connect USB PHY to port 0
arm64: dts: allwinner: Drop non-removable from SoPine/LTS SD card
arm64: dts: allwinner: A64: Limit MMC2 bus frequency to 150 MHz
clk: sunxi-ng: h6: Fix CEC clock
clk: sunxi-ng: h6: Fix clock divider range on some clocks
Andrea Parri (Microsoft) (1):
Drivers: hv: vmbus: Avoid use-after-free in vmbus_onoffer_rescind()
Andrii Nakryiko (1):
bpf: Avoid warning when re-casting __bpf_call_base into __bpf_call_base_args
Andy Shevchenko (1):
spi: pxa2xx: Fix the controller numbering for Wildcat Point
AngeloGioacchino Del Regno (1):
clk: qcom: gcc-msm8998: Fix Alpha PLL type for all GPLLs
Ansuel Smith (1):
PCI: qcom: Use PHY_REFCLK_USE_PAD only for ipq8064
Ard Biesheuvel (1):
crypto: arm64/sha - add missing module aliases
Arnaldo Carvalho de Melo (1):
perf tools: Fix DSO filtering when not finding a map for a sampled address
Arnd Bergmann (1):
ARM: s3c: fix fiq for clang IAS
Aswath Govindraju (2):
misc: eeprom_93xx46: Fix module alias to enable module autoprobe
misc: eeprom_93xx46: Add module alias to avoid breaking support for non device tree users
Ayush Sawal (1):
cxgb4/chtls/cxgbit: Keeping the max ofld immediate data size same in cxgb4 and ulds
Bard Liao (1):
regmap: sdw: use _no_pm functions in regmap_read/write
Bartosz Golaszewski (1):
rtc: s5m: select REGMAP_I2C
Bob Pearson (2):
RDMA/rxe: Fix coding error in rxe_recv.c
RDMA/rxe: Correct skb on loopback path
Bob Peterson (1):
gfs2: Don't skip dlm unlock if glock has an lvb
Chao Yu (1):
f2fs: fix out-of-repair __setattr_copy()
Chen Yu (1):
cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if available
Chen-Yu Tsai (1):
staging: rtl8723bs: wifi_regd.c: Fix incorrect number of regulatory rules
Chenyang Li (1):
drm/amdgpu: Fix macro name _AMDGPU_TRACE_H_ in preprocessor if condition
Christoph Schemmel (1):
NET: usb: qmi_wwan: Adding support for Cinterion MV31
Christophe JAILLET (9):
Bluetooth: btqcomsmd: Fix a resource leak in error handling paths in the probe function
cpufreq: brcmstb-avs-cpufreq: Free resources in error path
cpufreq: brcmstb-avs-cpufreq: Fix resource leaks in ->remove()
media: vsp1: Fix an error handling path in the probe function
media: cx25821: Fix a bug when reallocating some dma memory
dmaengine: fsldma: Fix a resource leak in the remove function
dmaengine: fsldma: Fix a resource leak in an error handling path of the probe function
dmaengine: owl-dma: Fix a resource leak in the remove function
mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe
Christophe Leroy (3):
crypto: talitos - Work around SEC6 ERRATA (AES-CTR mode data size error) powerpc/47x: Disable 256k page size
powerpc/8xx: Fix software emulation interrupt
Christopher William Snowhill (1):
Bluetooth: Fix initializing response id after clearing struct
Chuhong Yuan (1):
net/mlx4_core: Add missed mlx4_free_cmd_mailbox()
Claudiu Beznea (1):
power: reset: at91-sama5d2_shdwc: fix wkupdbc mask
Colin Ian King (3):
mac80211: fix potential overflow when multiplying to u32 integers
b43: N-PHY: Fix the update of coef for the PHY revision >= 3case fs/jfs: fix potential integer overflow on shift of a int
Corentin Labbe (3):
crypto: sun4i-ss - fix kmap usage
crypto: sun4i-ss - checking sg length is not sufficient
crypto: sun4i-ss - handle BigEndian for cipher
Cédric Le Goater (1):
KVM: PPC: Make the VMX instruction emulation routines static
Dan Carpenter (11):
gma500: clean up error handling in init
media: camss: missing error code in msm_video_register()
ASoC: cs42l56: fix up error handling in probe
drm/amdgpu: Prevent shift wrapping in amdgpu_read_mask()
mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq()
Input: sur40 - fix an error code in sur40_probe()
Input: elo - fix an error code in elo_connect()
ocfs2: fix a use after free on error
Input: joydev - prevent potential read overflow in ioctl
USB: serial: mos7840: fix error code in mos7840_write()
USB: serial: mos7720: fix error code in mos7720_write()
Dan Williams (1):
libnvdimm/dimm: Avoid race between probe and available_slots_show()
Daniele Alessandrelli (1):
crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key()
David Howells (1):
certs: Fix blacklist flag type confusion
Dinghao Liu (3):
media: em28xx: Fix use-after-free in em28xx_alloc_urbs
media: media/pci: Fix memleak in empress_init
media: tm6000: Fix memleak in tm6000_start_stream
Edwin Peer (1):
bnxt_en: reverse order of TX disable and carrier off
Eric Biggers (1):
random: fix the RNDRESEEDCRNG ioctl
Eric Dumazet (2):
tcp: fix SO_RCVLOWAT related hangs under mem pressure
ipv6: icmp6: avoid indirect call for icmpv6_send()
Eric W. Biederman (1):
capabilities: Don't allow writing ambiguous v3 file capabilities
Fangrui Song (1):
module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols
Ferry Toth (1):
dmaengine: hsu: disable spurious interrupt
Filipe Manana (1):
btrfs: fix extent buffer leak on failure to copy root
Florian Fainelli (1):
ata: ahci_brcm: Add back regulators management
Frank Li (1):
mmc: sdhci-esdhc-imx: fix kernel panic when remove module
Frank Wunderlich (1):
dts64: mt7622: fix slow sd card access
Geert Uytterhoeven (1):
auxdisplay: ht16k33: Fix refresh rate handling
Greg Kroah-Hartman (1):
Linux 4.19.178
Guenter Roeck (3):
usb: dwc2: Do not update data length if it is 0 on inbound transfers
usb: dwc2: Abort transaction after errors with unknown reason
usb: dwc2: Make "trimming xfer length" a debug message
He Zhe (1):
arm64: uprobe: Return EOPNOTSUPP for AARCH32 instruction probing
Heiner Kallweit (2):
PCI: Align checking of syscall user config accessors
r8169: fix jumbo packet handling on RTL8168e
Ilya Lipnitskiy (1):
staging/mt7621-dma: mtk-hsdma.c->hsdma-mt7621.c
Jack Pham (1):
usb: gadget: u_audio: Free requests only after callback
Jacopo Mondi (1):
media: i2c: ov5670: Fix PIXEL_RATE minimum value
Jae Hyun Yoo (1):
soc: aspeed: snoop: Add clock control logic
James Bottomley (2):
tpm_tis: Fix check_locality for correct locality acquisition
tpm_tis: Clean up locality release
Jan Henrik Weinstock (1):
hwrng: timeriomem - Fix cooldown period calculation
Jan Kara (2):
bfq: Avoid false bfq queue merging
quota: Fix memory leak when handling corrupted quota file
Jarkko Sakkinen (1):
KEYS: trusted: Fix migratable=1 failing
Jason A. Donenfeld (6):
icmp: introduce helper for nat'd source address in network device context
icmp: allow icmpv6_ndo_send to work with CONFIG_IPV6=n
gtp: use icmp_ndo_send helper
sunvnet: use icmp_ndo_send helper
xfrm: interface: use icmp_ndo_send helper
net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending
Jason Gerecke (1):
HID: wacom: Ignore attempts to overwrite the touch_max value from HID
Jesper Dangaard Brouer (1):
bpf: Fix bpf_fib_lookup helper MTU check for SKB ctx
Jialin Zhang (1):
drm/gma500: Fix error return code in psb_driver_load()
Jiri Bohac (1):
pstore: Fix typo in compression option name
Jiri Kosina (1):
floppy: reintroduce O_NDELAY fix
Jiri Olsa (1):
crypto: bcm - Rename struct device_private to bcm_device_private
Joe Perches (1):
media: lmedm04: Fix misuse of comma
Johan Hovold (2):
USB: quirks: sort quirk entries
USB: serial: ftdi_sio: fix FTX sub-integer prescaler
John Wang (1):
ARM: dts: aspeed: Add LCLK to lpc-snoop
Jorgen Hansen (1):
VMCI: Use set_page_dirty_lock() when unregistering guest memory
Josef Bacik (2):
btrfs: abort the transaction if we fail to inc ref in btrfs_copy_root
btrfs: fix reloc root leak with 0 ref reloc roots on recovery
Juergen Gross (1):
xen/netback: fix spurious event detection for common event case
KarimAllah Ahmed (1):
fdt: Properly handle "no-map" field in the memory region
Konrad Dybcio (1):
drm/msm/dsi: Correct io_start for MSM8994 (20nm PHY)
Krzysztof Kozlowski (9):
ARM: dts: exynos: correct PMIC interrupt trigger level on Artik 5
ARM: dts: exynos: correct PMIC interrupt trigger level on Monk
ARM: dts: exynos: correct PMIC interrupt trigger level on Rinato
ARM: dts: exynos: correct PMIC interrupt trigger level on Spring
ARM: dts: exynos: correct PMIC interrupt trigger level on Arndale Octa
ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid XU3 family
arm64: dts: exynos: correct PMIC interrupt trigger level on TM2
arm64: dts: exynos: correct PMIC interrupt trigger level on Espresso
regulator: s5m8767: Drop regulators OF node reference
Lakshmi Ramasubramanian (2):
ima: Free IMA measurement buffer on error
ima: Free IMA measurement buffer after kexec syscall
Laurent Pinchart (1):
media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values
Lech Perczak (1):
USB: serial: option: update interface mapping for ZTE P685M
Leon Romanovsky (1):
ipv6: silence compilation warning for non-IPV6 builds
Lijun Pan (2):
ibmvnic: add memory barrier to protect long term buffer
ibmvnic: skip send_request_unmap for timeout reset
Linus Lüssing (1):
ath9k: fix data bus crash when setting nf_override via debugfs
Luo Meng (1):
media: qm1d1c0042: fix error return code in qm1d1c0042_init()
Marc Zyngier (1):
arm64: Add missing ISB after invalidating TLB in __primary_switch
Marco Elver (1):
bpf_lru_list: Read double-checked variable once without lock
Marcos Paulo de Souza (1):
Input: i8042 - add ASUS Zenbook Flip to noselftest list
Mario Kleiner (1):
drm/amd/display: Fix 10/12 bpc setup in DCE output bit depth reduction.
Martin Blumenstingl (1):
clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL
Martin Kaiser (1):
staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table
Mateusz Palczewski (3):
i40e: Add zero-initialization of AQ command structures
i40e: Fix overwriting flow control settings during driver loading
i40e: Fix add TC filter for IPv6
Maxim Kiselev (1):
gpio: pcf857x: Fix missing first interrupt
Maxime Chevallier (1):
net: mvneta: Remove per-cpu queue mapping for Armada 3700
Maxime Ripard (1):
i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition
Maximilian Luz (1):
ACPICA: Fix exception code class checks
Miaohe Lin (3):
mm/memory.c: fix potential pte_unmap_unlock pte error mm/hugetlb: fix potential double free in hugetlb_register_node() error path mm/rmap: fix potential pte_unmap on an not mapped pte
Mike Kravetz (1):
hugetlb: fix copy_huge_page_from_user contig page struct assumption
Mikulas Patocka (2):
blk-settings: align max_sectors on "logical_block_size" boundary
dm: fix deadlock when swapping to encrypted device
Ming Lei (4):
block: add helper for checking if queue is registered
block: split .sysfs_lock into two locks
block: fix race between switching elevator and removing queues
block: don't release queue's sysfs lock during switching elevator
Muchun Song (1):
printk: fix deadlock when kernel panic
Namhyung Kim (1):
perf test: Fix unaligned access in sample parsing test
Nathan Chancellor (2):
MIPS: c-r4k: Fix section mismatch for loongson2_sc_init
MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0
Nathan Lynch (1):
powerpc/pseries/dlpar: handle ibm, configure-connector delay status
NeilBrown (2):
seq_file: document how per-entry resources are managed.
x86: fix seq_file iteration for pat/memtype.c
Nick Desaulniers (1):
vmlinux.lds.h: add DWARF v5 sections
Nicolas Boichat (1):
of/fdt: Make sure no-map does not remove already reserved regions
Nikos Tsironis (7):
dm era: Recover committed writeset after crash
dm era: Verify the data block size hasn't changed
dm era: Fix bitset memory leaks
dm era: Use correct value size in equality function of writeset tree dm era: Reinitialize bitset cache before digesting a new writeset dm era: only resize metadata in preresume
dm era: Update in-core bitset after committing the metadata
Olivier Crête (1):
Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox Series X|S
Pan Bian (8):
Bluetooth: drop HCI device reference before return
Bluetooth: Put HCI device if inquiry procedure interrupts
memory: ti-aemif: Drop child node when jumping out loop
regulator: axp20x: Fix reference cout leak
spi: atmel: Put allocated master before return
isofs: release buffer head before return
mtd: spi-nor: hisi-sfc: Put child node np on error path fs/affs: release old buffer head on error path
Paul Cercueil (2):
usb: musb: Fix runtime PM race in musb_queue_resume_work
seccomp: Add missing return in non-void function
Pavel Machek (1):
media: ipu3-cio2: Fix mbus_code processing in cio2_subdev_set_fmt()
PeiSen Hou (1):
ALSA: hda/realtek: modify EAPD in the ALC886
Peter Zijlstra (2):
jump_label/lockdep: Assert we hold the hotplug lock for _cpuslocked() operations locking/static_key: Fix false positive warnings on concurrent dec/inc
Pratyush Yadav (1):
spi: cadence-quadspi: Abort read if dummy cycles required are too many
Qinglang Miao (1):
ACPI: configfs: add missing check after configfs_register_default_group()
Rafael J. Wysocki (1):
ACPI: property: Fix fwnode string properties matching
Rakesh Pillai (1):
ath10k: Fix error handling in case of CE pipe init failure
Randy Dunlap (4):
fbdev: aty: SPARC64 requires FB_ATY_CT
HID: core: detect and skip invalid inputs to snto32()
sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set
scsi: bnx2fc: Fix Kconfig warning & CNIC build errors
Ricky Wu (1):
misc: rtsx: init of rts522a add OCP power off when no card is present
Rolf Eike Beer (2):
scripts: use pkg-config to locate libcrypto
scripts: set proper OpenSSL include dir also for sign-file
Rong Chen (1):
scripts/recordmcount.pl: support big endian for ARCH sh
Rosen Penev (2):
ARM: dts: armada388-helios4: assign pinctrl to LEDs
ARM: dts: armada388-helios4: assign pinctrl to each fan
Rustam Kovhaev (1):
ntfs: check for valid standard information attribute
Sabyrzhan Tasbolatov (1):
drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue
Sameer Pujar (1):
arm64: tegra: Add power-domain for Tegra210 HDA
Sean Christopherson (1):
x86/reboot: Force all cpus to exit VMX root if VMX is supported
Sebastian Reichel (1):
ASoC: cpcap: fix microphone timeslot mask
Shay Drory (2):
IB/umad: Return EIO in case of when device disassociated IB/umad: Return EPOLLERR in case of when device disassociated
Shyam Prasad N (1):
cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath.
Shyam Sundar S K (4):
net: amd-xgbe: Reset the PHY rx data path when mailbox command timeout
net: amd-xgbe: Fix NETDEV WATCHDOG transmit queue timeout warning
net: amd-xgbe: Reset link when the link never comes back
net: amd-xgbe: Fix network fluctuations when using 1G BELFUSE SFP
Simon South (1):
pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare()
Slawomir Laba (1):
i40e: Fix flow for IPv6 next header (extension header)
Stefan Ursella (1):
usb: quirks: add quirk to start video capture on ELMO L-12F document camera reliable
Steven Rostedt (VMware) (1):
tracepoint: Do not fail unregistering a probe due to memory failure
Sukadev Bhattiprolu (1):
ibmvnic: Set to CLOSED state even on error
Sumit Garg (1):
kdb: Make memory allocations more robust
Suzuki K Poulose (1):
arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55
Sylwester Dziedziuch (1):
i40e: Fix VFs not created
Taehee Yoo (1):
vxlan: move debug check after netdev unregister
Takashi Iwai (1):
ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode
Takeshi Misawa (1):
net: qrtr: Fix memory leak in qrtr_tun_open
Takeshi Saito (1):
mmc: renesas_sdhi_internal_dmac: Fix DMA buffer alignment from 8 to 128-bytes
Theodore Ts'o (1):
ext4: fix potential htree index checksum corruption
Thinh Nguyen (2):
usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1
usb: dwc3: gadget: Fix dep->interval for fullspeed interrupt
Tom Rix (3):
media: pxa_camera: declare variable when DEBUG is defined
jffs2: fix use after free in jffs2_sum_write_data() clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined
Tony Lindgren (1):
ARM: dts: Configure missing thermal interrupt for 4430
Uwe Kleine-König (1):
amba: Fix resource leak for drivers without .remove
Vincent Knecht (1):
arm64: dts: msm8916: Fix reserved and rfsa nodes unit address
Vladimir Murzin (1):
ARM: 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+ cores
Will McVicker (1):
HID: make arrays usage and value to be the same
Yi Chen (1):
f2fs: fix to avoid inconsistent quota data
Yishai Hadas (1):
RDMA/mlx5: Use the correct obj_id upon DEVX TIR creation
Yoshihiro Shimoda (1):
mfd: bd9571mwv: Use devm_mfd_add_devices()
Zhihao Cheng (1):
btrfs: clarify error returns values in __load_free_space_cache
jeffrey.lin (1):
Input: raydium_ts_i2c - do not send zero length
Greg Kroah-Hartman
maintainerDocumentation/filesystems/seq_file.txt +6 -0
@@ -192,6 +192,12 @@ between the calls to start() and stop(), so holding a lock during that time is a reasonable thing to do. The seq_file code will also avoid taking any other locks while the iterator is active. +The iterater value returned by start() or next() is guaranteed to be +passed to a subsequent next() or stop() call. This allows resources +such as locks that were taken to be reliably released. There is *no* +guarantee that the iterator will be passed to show(), though in practice +it often will be. + Formatted output
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 19 -SUBLEVEL = 177 +SUBLEVEL = 178 EXTRAVERSION = NAME = "People's Front"
arch/arm/boot/compressed/head.S +2 -2
@@ -1090,9 +1090,9 @@ __armv4_mmu_cache_off: __armv7_mmu_cache_off: mrc p15, 0, r0, c1, c0 #ifdef CONFIG_MMU - bic r0, r0, #0x000d + bic r0, r0, #0x0005 #else - bic r0, r0, #0x000c + bic r0, r0, #0x0004 #endif mcr p15, 0, r0, c1, c0 @ turn MMU and cache off mov r12, lr
arch/arm/boot/dts/armada-388-helios4.dts +22 -6
@@ -70,6 +70,9 @@ system-leds { compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&helios_system_led_pins>; + status-led { label = "helios4:green:status"; gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
@@ -86,6 +89,9 @@ io-leds { compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&helios_io_led_pins>; + sata1-led { label = "helios4:green:ata1"; gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
@@ -121,11 +127,15 @@ fan1: j10-pwm { compatible = "pwm-fan"; pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */ + pinctrl-names = "default"; + pinctrl-0 = <&helios_fan1_pins>; }; fan2: j17-pwm { compatible = "pwm-fan"; pwms = <&gpio1 23 40000>; /* Target freq:25 kHz */ + pinctrl-names = "default"; + pinctrl-0 = <&helios_fan2_pins>; }; usb2_phy: usb2-phy {
@@ -291,16 +301,22 @@ "mpp39", "mpp40"; marvell,function = "sd0"; }; - helios_led_pins: helios-led-pins { - marvell,pins = "mpp24", "mpp25", - "mpp49", "mpp50", + helios_system_led_pins: helios-system-led-pins { + marvell,pins = "mpp24", "mpp25"; + marvell,function = "gpio"; + }; + helios_io_led_pins: helios-io-led-pins { + marvell,pins = "mpp49", "mpp50", "mpp52", "mpp53", "mpp54"; marvell,function = "gpio"; }; - helios_fan_pins: helios-fan-pins { - marvell,pins = "mpp41", "mpp43", - "mpp48", "mpp55"; + helios_fan1_pins: helios_fan1_pins { + marvell,pins = "mpp41", "mpp43"; + marvell,function = "gpio"; + }; + helios_fan2_pins: helios_fan2_pins { + marvell,pins = "mpp48", "mpp55"; marvell,function = "gpio"; }; microsom_spi1_cs_pins: spi1-cs-pins {
arch/arm/boot/dts/aspeed-g4.dtsi +1 -0
@@ -312,6 +312,7 @@ compatible = "aspeed,ast2400-ibt-bmc"; reg = <0xc0 0x18>; interrupts = <8>; + clocks = <&syscon ASPEED_CLK_GATE_LCLK>; status = "disabled"; }; };
arch/arm/boot/dts/aspeed-g5.dtsi +1 -0
@@ -372,6 +372,7 @@ compatible = "aspeed,ast2500-ibt-bmc"; reg = <0xc0 0x18>; interrupts = <8>; + clocks = <&syscon ASPEED_CLK_GATE_LCLK>; status = "disabled"; }; };
arch/arm/boot/dts/exynos3250-artik5.dtsi +1 -1
@@ -68,7 +68,7 @@ s2mps14_pmic@66 { compatible = "samsung,s2mps14-pmic"; interrupt-parent = <&gpx3>; - interrupts = <5 IRQ_TYPE_NONE>; + interrupts = <5 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&s2mps14_irq>; reg = <0x66>;
arch/arm/boot/dts/exynos3250-monk.dts +1 -1
@@ -188,7 +188,7 @@ s2mps14_pmic@66 { compatible = "samsung,s2mps14-pmic"; interrupt-parent = <&gpx0>; - interrupts = <7 IRQ_TYPE_NONE>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; reg = <0x66>; wakeup-source;
arch/arm/boot/dts/exynos3250-rinato.dts +1 -1
@@ -253,7 +253,7 @@ s2mps14_pmic@66 { compatible = "samsung,s2mps14-pmic"; interrupt-parent = <&gpx0>; - interrupts = <7 IRQ_TYPE_NONE>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; reg = <0x66>; wakeup-source;
arch/arm/boot/dts/exynos5250-spring.dts +1 -1
@@ -108,7 +108,7 @@ compatible = "samsung,s5m8767-pmic"; reg = <0x66>; interrupt-parent = <&gpx3>; - interrupts = <2 IRQ_TYPE_NONE>; + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>; wakeup-source;
arch/arm/boot/dts/exynos5420-arndale-octa.dts +1 -1
@@ -84,7 +84,7 @@ reg = <0x66>; interrupt-parent = <&gpx3>; - interrupts = <2 IRQ_TYPE_EDGE_FALLING>; + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&s2mps11_irq>;
arch/arm/boot/dts/exynos5422-odroid-core.dtsi +1 -1
@@ -136,7 +136,7 @@ samsung,s2mps11-acokb-ground; interrupt-parent = <&gpx0>; - interrupts = <4 IRQ_TYPE_EDGE_FALLING>; + interrupts = <4 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&s2mps11_irq>;
arch/arm/boot/dts/omap443x.dtsi +2 -0
@@ -33,10 +33,12 @@ }; ocp { + /* 4430 has only gpio_86 tshut and no talert interrupt */ bandgap: bandgap@4a002260 { reg = <0x4a002260 0x4 0x4a00232C 0x4>; compatible = "ti,omap4430-bandgap"; + gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; #thermal-sensor-cells = <0>; };
arch/arm64/Kconfig +1 -1
@@ -473,7 +473,7 @@ config ARM64_ERRATUM_1024718 help This option adds work around for Arm Cortex-A55 Erratum 1024718. - Affected Cortex-A55 cores (r0p0, r0p1, r1p0) could cause incorrect + Affected Cortex-A55 cores (all revisions) could cause incorrect update of the hardware dirty bit when the DBM/AP bits are updated without a break-before-make. The work around is to disable the usage of hardware DBM locally on the affected cores. CPUs not affected by
arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts +1 -4
@@ -67,8 +67,6 @@ }; &ehci0 { - phys = <&usbphy 0>; - phy-names = "usb"; status = "okay"; };
@@ -107,6 +105,7 @@ pinctrl-0 = <&mmc2_pins>; vmmc-supply = <®_dcdc1>; vqmmc-supply = <®_eldo1>; + max-frequency = <200000000>; bus-width = <8>; non-removable; cap-mmc-hw-reset;
@@ -115,8 +114,6 @@ }; &ohci0 { - phys = <&usbphy 0>; - phy-names = "usb"; status = "okay"; };
arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi +0 -1
@@ -51,7 +51,6 @@ pinctrl-names = "default"; pinctrl-0 = <&mmc0_pins>; vmmc-supply = <®_dcdc1>; - non-removable; disable-wp; bus-width = <4>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +5 -1
@@ -264,7 +264,7 @@ resets = <&ccu RST_BUS_MMC2>; reset-names = "ahb"; interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; - max-frequency = <200000000>; + max-frequency = <150000000>; status = "disabled"; #address-cells = <1>; #size-cells = <0>;
@@ -312,6 +312,8 @@ <&ccu CLK_USB_OHCI0>; resets = <&ccu RST_BUS_OHCI0>, <&ccu RST_BUS_EHCI0>; + phys = <&usbphy 0>; + phy-names = "usb"; status = "disabled"; };
@@ -322,6 +324,8 @@ clocks = <&ccu CLK_BUS_OHCI0>, <&ccu CLK_USB_OHCI0>; resets = <&ccu RST_BUS_OHCI0>; + phys = <&usbphy 0>; + phy-names = "usb"; status = "disabled"; };
arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi +1 -1
@@ -378,7 +378,7 @@ s2mps13-pmic@66 { compatible = "samsung,s2mps13-pmic"; interrupt-parent = <&gpa0>; - interrupts = <7 IRQ_TYPE_NONE>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; reg = <0x66>; samsung,s2mps11-wrstbi-ground;
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +1 -1
@@ -85,7 +85,7 @@ s2mps15_pmic@66 { compatible = "samsung,s2mps15-pmic"; reg = <0x66>; - interrupts = <2 IRQ_TYPE_NONE>; + interrupts = <2 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&gpa0>; pinctrl-names = "default"; pinctrl-0 = <&pmic_irq>;
arch/arm64/boot/dts/mediatek/mt7622.dtsi +2 -0
@@ -641,6 +641,8 @@ clocks = <&pericfg CLK_PERI_MSDC30_1_PD>, <&topckgen CLK_TOP_AXI_SEL>; clock-names = "source", "hclk"; + resets = <&pericfg MT7622_PERI_MSDC1_SW_RST>; + reset-names = "hrst"; status = "disabled"; };
arch/arm64/boot/dts/nvidia/tegra210.dtsi +1 -0
@@ -826,6 +826,7 @@ <&tegra_car 128>, /* hda2hdmi */ <&tegra_car 111>; /* hda2codec_2x */ reset-names = "hda", "hda2hdmi", "hda2codec_2x"; + power-domains = <&pd_sor>; status = "disabled"; };
arch/arm64/boot/dts/qcom/msm8916.dtsi +2 -2
@@ -64,7 +64,7 @@ no-map; }; - reserved@8668000 { + reserved@86680000 { reg = <0x0 0x86680000 0x0 0x80000>; no-map; };
@@ -77,7 +77,7 @@ qcom,client-id = <1>; }; - rfsa@867e00000 { + rfsa@867e0000 { reg = <0x0 0x867e0000 0x0 0x20000>; no-map; };
arch/arm64/crypto/sha1-ce-glue.c +1 -0
@@ -21,6 +21,7 @@MODULE_DESCRIPTION ("SHA1 secure hash using ARMv8 Crypto Extensions" );MODULE_AUTHOR ("Ard Biesheuvel <[email protected]>" );MODULE_LICENSE ("GPL v2" ); +MODULE_ALIAS_CRYPTO ("sha1" );struct sha1_ce_state {struct sha1_state sst;
arch/arm64/crypto/sha2-ce-glue.c +2 -0
@@ -21,6 +21,8 @@MODULE_DESCRIPTION ("SHA-224/SHA-256 secure hash using ARMv8 Crypto Extensions" );MODULE_AUTHOR ("Ard Biesheuvel <[email protected]>" );MODULE_LICENSE ("GPL v2" ); +MODULE_ALIAS_CRYPTO ("sha224" ); +MODULE_ALIAS_CRYPTO ("sha256" );struct sha256_ce_state {struct sha256_state sst;
arch/arm64/crypto/sha3-ce-glue.c +4 -0
@@ -22,6 +22,10 @@MODULE_DESCRIPTION ("SHA3 secure hash using ARMv8 Crypto Extensions" );MODULE_AUTHOR ("Ard Biesheuvel <[email protected]>" );MODULE_LICENSE ("GPL v2" ); +MODULE_ALIAS_CRYPTO ("sha3-224" ); +MODULE_ALIAS_CRYPTO ("sha3-256" ); +MODULE_ALIAS_CRYPTO ("sha3-384" ); +MODULE_ALIAS_CRYPTO ("sha3-512" ); asmlinkage void sha3_ce_transform(u64 *st, const u8 *data, int blocks,int md_len);
arch/arm64/crypto/sha512-ce-glue.c +2 -0
@@ -22,6 +22,8 @@MODULE_DESCRIPTION ("SHA-384/SHA-512 secure hash using ARMv8 Crypto Extensions" );MODULE_AUTHOR ("Ard Biesheuvel <[email protected]>" );MODULE_LICENSE ("GPL v2" ); +MODULE_ALIAS_CRYPTO ("sha384" ); +MODULE_ALIAS_CRYPTO ("sha512" ); asmlinkage void sha512_ce_transform(struct sha512_state *sst, u8 const *src,int blocks);
arch/arm64/kernel/cpufeature.c +1 -1
@@ -1012,7 +1012,7 @@ static bool cpu_has_broken_dbm(void)/* List of CPUs which have broken DBM support. */ static const struct midr_range cpus[] = { #ifdef CONFIG_ARM64_ERRATUM_1024718 -MIDR_RANGE (MIDR_CORTEX_A55 ,0 ,0 ,1 ,0 ),// A55 r0p0 -r1p0 +MIDR_ALL_VERSIONS (MIDR_CORTEX_A55 ), #endif {}, };
arch/arm64/kernel/head.S +1 -0
@@ -867,6 +867,7 @@ __primary_switch: tlbi vmalle1 // Remove any stale TLB entries dsb nsh + isb msr sctlr_el1, x19 // re-enable the MMU isb
arch/arm64/kernel/probes/uprobes.c +1 -1
@@ -41,7 +41,7 @@ int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm,/* TODO: Currently we do not support AARCH32 instruction probing */ if (mm->context.flags &MMCF_AARCH32 ) -return -ENOTSUPP ; +return -EOPNOTSUPP ;else if (!IS_ALIGNED (addr,AARCH64_INSN_SIZE ))return -EINVAL ;
arch/mips/kernel/vmlinux.lds.S +1 -0
@@ -93,6 +93,7 @@ SECTIONS INIT_TASK_DATA(THREAD_SIZE) NOSAVE_DATA + PAGE_ALIGNED_DATA(PAGE_SIZE) CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT) READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT) DATA_DATA
arch/mips/lantiq/irq.c +1 -1
@@ -244,7 +244,7 @@ static void ltq_hw_irq_handler(struct irq_desc *desc)generic_handle_irq (irq_linear_revmap (ltq_domain, hwirq));/* if this is a EBU irq, we need to ack it or get a deadlock */ -if ((irq ==LTQ_ICU_EBU_IRQ ) && (module ==0 ) &<Q_EBU_PCC_ISTAT ) +if (irq ==LTQ_ICU_EBU_IRQ && !module &<Q_EBU_PCC_ISTAT !=0 )ltq_ebu_w32 (ltq_ebu_r32 (LTQ_EBU_PCC_ISTAT ) |0x10 ,LTQ_EBU_PCC_ISTAT ); }
arch/mips/mm/c-r4k.c +1 -1
@@ -1673,7 +1673,7 @@ static int probe_scache(void)return 1 ; } -static void __init loongson2_sc_init (void ) +static void loongson2_sc_init (void ) {struct cpuinfo_mips *c = ¤t_cpu_data;
arch/powerpc/Kconfig +1 -1
@@ -709,7 +709,7 @@ config PPC_64K_PAGES config PPC_256K_PAGES bool "256k page size" - depends on 44x && !STDBINUTILS + depends on 44x && !STDBINUTILS && !PPC_47x help Make the page size 256k.
arch/powerpc/kernel/head_8xx.S +1 -1
@@ -269,7 +269,7 @@ SystemCall: /* On the MPC8xx, this is a software emulation interrupt. It occurs * for all unimplemented and illegal instructions. */ - EXCEPTION(0x1000, SoftEmu, program_check_exception, EXC_XFER_STD) + EXCEPTION(0x1000, SoftEmu, emulation_assist_interrupt, EXC_XFER_STD) . = 0x1100 /*
arch/powerpc/kvm/powerpc.c +4 -4
@@ -1497,7 +1497,7 @@ int kvmppc_handle_vmx_load(struct kvm_run *run, struct kvm_vcpu *vcpu,return emulated; } -int kvmppc_get_vmx_dword (struct kvm_vcpu *vcpu,int index,u64 *val) +static int kvmppc_get_vmx_dword (struct kvm_vcpu *vcpu,int index,u64 *val) {union kvmppc_one_reg reg;int vmx_offset =0 ;
@@ -1515,7 +1515,7 @@ int kvmppc_get_vmx_dword(struct kvm_vcpu *vcpu, int index, u64 *val)return result; } -int kvmppc_get_vmx_word (struct kvm_vcpu *vcpu,int index,u64 *val) +static int kvmppc_get_vmx_word (struct kvm_vcpu *vcpu,int index,u64 *val) {union kvmppc_one_reg reg;int vmx_offset =0 ;
@@ -1533,7 +1533,7 @@ int kvmppc_get_vmx_word(struct kvm_vcpu *vcpu, int index, u64 *val)return result; } -int kvmppc_get_vmx_hword (struct kvm_vcpu *vcpu,int index,u64 *val) +static int kvmppc_get_vmx_hword (struct kvm_vcpu *vcpu,int index,u64 *val) {union kvmppc_one_reg reg;int vmx_offset =0 ;
@@ -1551,7 +1551,7 @@ int kvmppc_get_vmx_hword(struct kvm_vcpu *vcpu, int index, u64 *val)return result; } -int kvmppc_get_vmx_byte (struct kvm_vcpu *vcpu,int index,u64 *val) +static int kvmppc_get_vmx_byte (struct kvm_vcpu *vcpu,int index,u64 *val) {union kvmppc_one_reg reg;int vmx_offset =0 ;
arch/powerpc/platforms/pseries/dlpar.c +3 -4
@@ -132,7 +132,6 @@ void dlpar_free_cc_nodes(struct device_node *dn)#define NEXT_PROPERTY 3#define PREV_PARENT 4#define MORE_MEMORY 5 -#define CALL_AGAIN -2#define ERR_CFG_USE -9003 struct device_node *dlpar_configure_connector(__be32 drc_index,
@@ -173,6 +172,9 @@ struct device_node *dlpar_configure_connector(__be32 drc_index,spin_unlock (&rtas_data_buf_lock); +if (rtas_busy_delay (rc)) +continue ; +switch (rc) {case COMPLETE :break ;
@@ -221,9 +223,6 @@ struct device_node *dlpar_configure_connector(__be32 drc_index, last_dn = last_dn->parent;break ; -case CALL_AGAIN : -break ; -case MORE_MEMORY :case ERR_CFG_USE :default :
arch/sparc/Kconfig +1 -1
@@ -554,7 +554,7 @@ config COMPAT bool depends on SPARC64 default y - select COMPAT_BINFMT_ELF + select COMPAT_BINFMT_ELF if BINFMT_ELF select HAVE_UID16 select ARCH_WANT_OLD_COMPAT_IPC select COMPAT_OLD_SIGACTION
arch/sparc/lib/memset.S +1 -0
@@ -142,6 +142,7 @@ __bzero: ZERO_LAST_BLOCKS(%o0, 0x48, %g2) ZERO_LAST_BLOCKS(%o0, 0x08, %g2) 13: + EXT(12b, 13b, 21f) be 8f andcc %o1, 4, %g0
arch/x86/kernel/reboot.c +10 -19
@@ -538,29 +538,20 @@ static void emergency_vmx_disable_all(void)local_irq_disable ();/* -* We need to disable VMX on all CPUs before rebooting, otherwise -* we risk hanging up the machine, because the CPU ignore INIT -* signals when VMX is enabled. +* Disable VMX on all CPUs before rebooting, otherwise we risk hanging +* the machine, because the CPU blocks INIT when it's in VMX root. * -* We can't take any locks and we may be on an inconsistent -* state, so we use NMIs as IPIs to tell the other CPUs to disable -* VMX and halt. +* We can't take any locks and we may be on an inconsistent state, so +* use NMIs as IPIs to tell the other CPUs to exit VMX root and halt. * -* For safety, we will avoid running the nmi_shootdown_cpus() -* stuff unnecessarily, but we don't have a way to check -* if other CPUs have VMX enabled. So we will call it only if the -* CPU we are running on has VMX enabled. -* -* We will miss cases where VMX is not enabled on all CPUs. This -* shouldn't do much harm because KVM always enable VMX on all -* CPUs anyway. But we can miss it on the small window where KVM -* is still enabling VMX. +* Do the NMI shootdown even if VMX if off on _this_ CPU, as that +* doesn't prevent a different CPU from being in VMX root operation. */ -if (cpu_has_vmx () &&cpu_vmx_enabled ()) { -/* Disable VMX on this CPU. */ -cpu_vmxoff (); +if (cpu_has_vmx ()) { +/* Safely force _this_ CPU out of VMX root operation. */ +__cpu_emergency_vmxoff (); -/* Halt and disable VMX on the other CPUs */ +/* Halt and exit VMX root operation on the other CPUs. */ nmi_shootdown_cpus (vmxoff_nmi); }
arch/x86/mm/pat.c +2 -1
@@ -1131,12 +1131,14 @@ static void *memtype_seq_start(struct seq_file *seq, loff_t *pos)static void *memtype_seq_next (struct seq_file *seq,void *v,loff_t *pos) { +kfree (v); ++*pos;return memtype_get_idx (*pos); }static void memtype_seq_stop (struct seq_file *seq,void *v) { +kfree (v); }static int memtype_seq_show (struct seq_file *seq,void *v)
@@ -1145,7 +1147,6 @@ static int memtype_seq_show(struct seq_file *seq, void *v)seq_printf (seq,"%s @ 0x%Lx-0x%Lx\n" ,cattr_name (print_entry->type), print_entry->start, print_entry->end); -kfree (print_entry);return 0 ; }
block/bfq-iosched.c +1 -0
@@ -2478,6 +2478,7 @@ static void __bfq_set_in_service_queue(struct bfq_data *bfqd, } bfqd->in_service_queue = bfqq; + bfqd->in_serv_last_pos =0 ; }/*
block/blk-core.c +1 -0
@@ -1059,6 +1059,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id,mutex_init (&q->blk_trace_mutex);#endif mutex_init (&q->sysfs_lock); +mutex_init (&q->sysfs_dir_lock);spin_lock_init (&q->__queue_lock);if (!q->mq_ops)
block/blk-mq-sysfs.c +6 -6
@@ -264,7 +264,7 @@ void blk_mq_unregister_dev(struct device *dev, struct request_queue *q)struct blk_mq_hw_ctx *hctx;int i; -lockdep_assert_held (&q->sysfs_lock); +lockdep_assert_held (&q->sysfs_dir_lock);queue_for_each_hw_ctx (q, hctx, i)blk_mq_unregister_hctx (hctx);
@@ -312,7 +312,7 @@ int __blk_mq_register_dev(struct device *dev, struct request_queue *q)int ret, i;WARN_ON_ONCE (!q->kobj.parent); -lockdep_assert_held (&q->sysfs_lock); +lockdep_assert_held (&q->sysfs_dir_lock); ret =kobject_add (&q->mq_kobj,kobject_get (&dev->kobj),"%s" ,"mq" );if (ret <0 )
@@ -358,7 +358,7 @@ void blk_mq_sysfs_unregister(struct request_queue *q)struct blk_mq_hw_ctx *hctx;int i; -mutex_lock (&q->sysfs_lock); +mutex_lock (&q->sysfs_dir_lock);if (!q->mq_sysfs_init_done) goto unlock;
@@ -366,7 +366,7 @@ void blk_mq_sysfs_unregister(struct request_queue *q)blk_mq_unregister_hctx (hctx); unlock: -mutex_unlock (&q->sysfs_lock); +mutex_unlock (&q->sysfs_dir_lock); }int blk_mq_sysfs_register (struct request_queue *q)
@@ -374,7 +374,7 @@ int blk_mq_sysfs_register(struct request_queue *q)struct blk_mq_hw_ctx *hctx;int i, ret =0 ; -mutex_lock (&q->sysfs_lock); +mutex_lock (&q->sysfs_dir_lock);if (!q->mq_sysfs_init_done) goto unlock;
@@ -385,7 +385,7 @@ int blk_mq_sysfs_register(struct request_queue *q) } unlock: -mutex_unlock (&q->sysfs_lock); +mutex_unlock (&q->sysfs_dir_lock);return ret; }
block/blk-settings.c +12 -0
@@ -513,6 +513,14 @@ void blk_queue_io_opt(struct request_queue *q, unsigned int opt) }EXPORT_SYMBOL (blk_queue_io_opt); +static unsigned int blk_round_down_sectors (unsigned int sectors,unsigned int lbs) +{ + sectors =round_down (sectors, lbs >>SECTOR_SHIFT ); +if (sectors <PAGE_SIZE >>SECTOR_SHIFT ) + sectors =PAGE_SIZE >>SECTOR_SHIFT ; +return sectors; +} +/** * blk_queue_stack_limits - inherit underlying queue limits for stacked drivers * @t: the stacking driver (top)
@@ -639,6 +647,10 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, ret =-1 ; } + t->max_sectors =blk_round_down_sectors (t->max_sectors, t->logical_block_size); + t->max_hw_sectors =blk_round_down_sectors (t->max_hw_sectors, t->logical_block_size); + t->max_dev_sectors =blk_round_down_sectors (t->max_dev_sectors, t->logical_block_size); +/* Discard alignment and granularity */ if (b->discard_granularity) { alignment =queue_limit_discard_alignment (b, start);
block/blk-sysfs.c +32 -17
112 lines not on this page · raw message
block/blk-wbt.c +1 -1
@@ -708,7 +708,7 @@ void wbt_enable_default(struct request_queue *q)return ;/* Queue not registered? Maybe shutting down... */ -if (!test_bit (QUEUE_FLAG_REGISTERED , &q->queue_flags)) +if (!blk_queue_registered (q))return ; if ((q->mq_ops && IS_ENABLED(CONFIG_BLK_WBT_MQ)) ||
block/blk.h +1 -1
@@ -244,7 +244,7 @@ int elevator_init_mq(struct request_queue *q);int elevator_switch_mq (struct request_queue *q,struct elevator_type *new_e);void elevator_exit (struct request_queue *,struct elevator_queue *); -int elv_register_queue (struct request_queue *q); +int elv_register_queue (struct request_queue *q,bool uevent);void elv_unregister_queue (struct request_queue *q);struct hd_struct *__disk_get_part (struct gendisk *disk,int partno);
block/elevator.c +20 -10
@@ -833,13 +833,16 @@ static struct kobj_type elv_ktype = { .release = elevator_release, }; -int elv_register_queue (struct request_queue *q) +/* +* elv_register_queue is called from either blk_register_queue or +* elevator_switch, elevator switch is prevented from being happen +* in the two paths, so it is safe to not hold q->sysfs_lock. +*/ +int elv_register_queue (struct request_queue *q,bool uevent) {struct elevator_queue *e = q->elevator;int error; -lockdep_assert_held (&q->sysfs_lock); - error =kobject_add (&e->kobj, &q->kobj,"%s" ,"iosched" );if (!error) {struct elv_fs_entry *attr = e->type->elevator_attrs;
@@ -850,7 +853,9 @@ int elv_register_queue(struct request_queue *q) attr++; } } -kobject_uevent (&e->kobj,KOBJ_ADD ); +if (uevent) +kobject_uevent (&e->kobj,KOBJ_ADD ); + e->registered =1 ;if (!e->uses_mq && e->type->ops.sq.elevator_registered_fn) e->type->ops.sq.elevator_registered_fn (q);
@@ -858,15 +863,19 @@ int elv_register_queue(struct request_queue *q)return error; } +/* +* elv_unregister_queue is called from either blk_unregister_queue or +* elevator_switch, elevator switch is prevented from being happen +* in the two paths, so it is safe to not hold q->sysfs_lock. +*/ void elv_unregister_queue (struct request_queue *q) { -lockdep_assert_held (&q->sysfs_lock); -if (q) {struct elevator_queue *e = q->elevator;kobject_uevent (&e->kobj,KOBJ_REMOVE );kobject_del (&e->kobj); + e->registered =0 ;/* Re-enable throttling in case elevator disabled it */ wbt_enable_default (q);
@@ -942,6 +951,7 @@ int elevator_switch_mq(struct request_queue *q,if (q->elevator) {if (q->elevator->registered)elv_unregister_queue (q); +ioc_clear_queue (q);elevator_exit (q, q->elevator); }
@@ -951,7 +961,7 @@ int elevator_switch_mq(struct request_queue *q, goto out;if (new_e) { - ret =elv_register_queue (q); + ret =elv_register_queue (q, true);if (ret) {elevator_exit (q, q->elevator); goto out;
@@ -1047,7 +1057,7 @@ static int elevator_switch(struct request_queue *q, struct elevator_type *new_e)if (err) goto fail_init; - err =elv_register_queue (q); + err =elv_register_queue (q, true);if (err) goto fail_register;
@@ -1067,7 +1077,7 @@ static int elevator_switch(struct request_queue *q, struct elevator_type *new_e)/* switch failed, restore and re-register old elevator */ if (old) { q->elevator = old; -elv_register_queue (q); +elv_register_queue (q, true);blk_queue_bypass_end (q); }
@@ -1083,7 +1093,7 @@ static int __elevator_change(struct request_queue *q, const char *name)struct elevator_type *e;/* Make sure queue is not in the middle of being removed */ -if (!test_bit (QUEUE_FLAG_REGISTERED , &q->queue_flags)) +if (!blk_queue_registered (q))return -ENOENT ;/*
certs/blacklist.c +1 -1
@@ -157,7 +157,7 @@ static int __init blacklist_init(void)KEY_USR_VIEW |KEY_USR_READ |KEY_USR_SEARCH ,KEY_ALLOC_NOT_IN_QUOTA | -KEY_FLAG_KEEP , +KEY_ALLOC_SET_KEEP , NULL, NULL);if (IS_ERR (blacklist_keyring))panic ("Can't allocate system blacklist keyring\n" );
crypto/ecdh_helper.c +3 -0
@@ -71,6 +71,9 @@ int crypto_ecdh_decode_key(const char *buf, unsigned int len,if (secret.type !=CRYPTO_KPP_SECRET_TYPE_ECDH )return -EINVAL ; +if (unlikely (len < secret.len)) +return -EINVAL ; + ptr =ecdh_unpack_data (¶ms->curve_id, ptr,sizeof (params->curve_id)); ptr =ecdh_unpack_data (¶ms->key_size, ptr,sizeof (params->key_size));if (secret.len !=crypto_ecdh_key_len (params))
drivers/acpi/acpi_configfs.c +6 -1
@@ -269,7 +269,12 @@ static int __init acpi_configfs_init(void) acpi_table_group =configfs_register_default_group (root,"table" , &acpi_tables_type); -return PTR_ERR_OR_ZERO (acpi_table_group); +if (IS_ERR (acpi_table_group)) { +configfs_unregister_subsystem (&acpi_configfs); +return PTR_ERR (acpi_table_group); + } + +return 0 ; }module_init (acpi_configfs_init);
drivers/acpi/property.c +33 -11
87 lines not on this page · raw message
drivers/amba/bus.c +12 -8
@@ -284,10 +284,11 @@ static int amba_remove(struct device *dev) {struct amba_device *pcdev =to_amba_device (dev);struct amba_driver *drv =to_amba_driver (dev->driver); -int ret; +int ret =0 ;pm_runtime_get_sync (dev); - ret = drv->remove (pcdev); +if (drv->remove) + ret = drv->remove (pcdev);pm_runtime_put_noidle (dev);/* Undo the runtime PM settings in amba_probe() */
@@ -304,7 +305,9 @@ static int amba_remove(struct device *dev)static void amba_shutdown (struct device *dev) {struct amba_driver *drv =to_amba_driver (dev->driver); - drv->shutdown (to_amba_device (dev)); + +if (drv->shutdown) + drv->shutdown (to_amba_device (dev)); }/**
@@ -317,12 +320,13 @@ static void amba_shutdown(struct device *dev)*/ int amba_driver_register (struct amba_driver *drv) { - drv->drv.bus = &amba_bustype; +if (!drv->probe) +return -EINVAL ; -#define SETFN (fn) if (drv->fn) drv->drv.fn = amba_##fn -SETFN (probe); -SETFN (remove); -SETFN (shutdown); + drv->drv.bus = &amba_bustype; + drv->drv.probe = amba_probe; + drv->drv.remove = amba_remove; + drv->drv.shutdown = amba_shutdown;return driver_register (&drv->drv); }
drivers/ata/ahci_brcm.c +13 -1
@@ -370,6 +370,10 @@ static int brcm_ahci_resume(struct device *dev)if (ret)return ret; + ret =ahci_platform_enable_regulators (hpriv); +if (ret) + goto out_disable_clks; +brcm_sata_init (priv);brcm_sata_phys_enable (priv);brcm_sata_alpm_init (hpriv);
@@ -399,6 +403,8 @@ static int brcm_ahci_resume(struct device *dev)ahci_platform_disable_phys (hpriv); out_disable_phys:brcm_sata_phys_disable (priv); +ahci_platform_disable_regulators (hpriv); +out_disable_clks:ahci_platform_disable_clks (hpriv);return ret; }
@@ -471,6 +477,10 @@ static int brcm_ahci_probe(struct platform_device *pdev)if (ret) goto out_reset; + ret =ahci_platform_enable_regulators (hpriv); +if (ret) + goto out_disable_clks; +/* Must be first so as to configure endianness including that * of the standard AHCI register space. */
@@ -480,7 +490,7 @@ static int brcm_ahci_probe(struct platform_device *pdev) priv->port_mask =brcm_ahci_get_portmask (hpriv, priv);if (!priv->port_mask) { ret = -ENODEV ; - goto out_disable_clks; + goto out_disable_regulators; }/* Must be done before ahci_platform_enable_phys() */
@@ -505,6 +515,8 @@ static int brcm_ahci_probe(struct platform_device *pdev)ahci_platform_disable_phys (hpriv); out_disable_phys:brcm_sata_phys_disable (priv); +out_disable_regulators: +ahci_platform_disable_regulators (hpriv); out_disable_clks:ahci_platform_disable_clks (hpriv); out_reset:
drivers/auxdisplay/ht16k33.c +1 -2
@@ -117,8 +117,7 @@ static void ht16k33_fb_queue(struct ht16k33_priv *priv) {struct ht16k33_fbdev *fbdev = &priv->fbdev; -schedule_delayed_work (&fbdev->work, -msecs_to_jiffies (HZ / fbdev->refresh_rate)); +schedule_delayed_work (&fbdev->work,HZ / fbdev->refresh_rate); }/*
drivers/base/regmap/regmap-sdw.c +2 -2
@@ -12,7 +12,7 @@ static int regmap_sdw_write(void *context, unsigned int reg, unsigned int val)struct device *dev = context;struct sdw_slave *slave =dev_to_sdw_dev (dev); -return sdw_write (slave, reg, val); +return sdw_write_no_pm (slave, reg, val); }static int regmap_sdw_read (void *context,unsigned int reg,unsigned int *val)
@@ -21,7 +21,7 @@ static int regmap_sdw_read(void *context, unsigned int reg, unsigned int *val)struct sdw_slave *slave =dev_to_sdw_dev (dev);int read; - read =sdw_read (slave, reg); + read =sdw_read_no_pm (slave, reg);if (read <0 )return read;
drivers/block/floppy.c +14 -13
@@ -4074,21 +4074,22 @@ static int floppy_open(struct block_device *bdev, fmode_t mode)if (UFDCS ->rawcmd ==1 )UFDCS ->rawcmd =2 ; -if (!(mode &FMODE_NDELAY )) { -if (mode & (FMODE_READ |FMODE_WRITE )) { -UDRS ->last_checked =0 ; -clear_bit (FD_OPEN_SHOULD_FAIL_BIT , &UDRS ->flags); -check_disk_change (bdev); -if (test_bit (FD_DISK_CHANGED_BIT , &UDRS ->flags)) - goto out; -if (test_bit (FD_OPEN_SHOULD_FAIL_BIT , &UDRS ->flags)) - goto out; - } - res = -EROFS ; -if ((mode &FMODE_WRITE ) && - !test_bit (FD_DISK_WRITABLE_BIT , &UDRS ->flags)) +if (mode & (FMODE_READ |FMODE_WRITE )) { +UDRS ->last_checked =0 ; +clear_bit (FD_OPEN_SHOULD_FAIL_BIT , &UDRS ->flags); +check_disk_change (bdev); +if (test_bit (FD_DISK_CHANGED_BIT , &UDRS ->flags)) + goto out; +if (test_bit (FD_OPEN_SHOULD_FAIL_BIT , &UDRS ->flags)) goto out; } + + res = -EROFS ; + +if ((mode &FMODE_WRITE ) && + !test_bit (FD_DISK_WRITABLE_BIT , &UDRS ->flags)) + goto out; +mutex_unlock (&open_lock);mutex_unlock (&floppy_mutex);return 0 ;
drivers/bluetooth/btqcomsmd.c +19 -8
@@ -166,8 +166,10 @@ static int btqcomsmd_probe(struct platform_device *pdev) btq->cmd_channel =qcom_wcnss_open_channel (wcnss,"APPS_RIVA_BT_CMD" , btqcomsmd_cmd_callback, btq); -if (IS_ERR (btq->cmd_channel)) -return PTR_ERR (btq->cmd_channel); +if (IS_ERR (btq->cmd_channel)) { + ret =PTR_ERR (btq->cmd_channel); + goto destroy_acl_channel; + }/* The local-bd-address property is usually injected by the * bootloader which has access to the allocated BD address.
@@ -179,8 +181,10 @@ static int btqcomsmd_probe(struct platform_device *pdev) } hdev =hci_alloc_dev (); -if (!hdev) -return -ENOMEM ; +if (!hdev) { + ret = -ENOMEM ; + goto destroy_cmd_channel; + }hci_set_drvdata (hdev, btq); btq->hdev = hdev;
@@ -194,14 +198,21 @@ static int btqcomsmd_probe(struct platform_device *pdev) hdev->set_bdaddr = qca_set_bdaddr_rome; ret =hci_register_dev (hdev); -if (ret <0 ) { -hci_free_dev (hdev); -return ret; - } +if (ret <0 ) + goto hci_free_dev;platform_set_drvdata (pdev, btq);return 0 ; + +hci_free_dev: +hci_free_dev (hdev); +destroy_cmd_channel: +rpmsg_destroy_ept (btq->cmd_channel); +destroy_acl_channel: +rpmsg_destroy_ept (btq->acl_channel); + +return ret; }static int btqcomsmd_remove (struct platform_device *pdev)
drivers/char/hw_random/timeriomem-rng.c +1 -1
@@ -72,7 +72,7 @@ static int timeriomem_rng_read(struct hwrng *hwrng, void *data,*/ if (retval >0 )usleep_range (period_us, - period_us +min (1 , period_us /100 )); + period_us +max (1 , period_us /100 )); *(u32 *)data =readl (priv->io_base); retval +=sizeof (u32);
drivers/char/random.c +1 -1
@@ -2071,7 +2071,7 @@ static long random_ioctl(struct file *f, unsigned int cmd, unsigned long arg)return -EPERM ;if (crng_init <2 )return -ENODATA ; -crng_reseed (&primary_crng,NULL ); +crng_reseed (&primary_crng, &input_pool); crng_global_init_time = jiffies -1 ;return 0 ;default :
drivers/char/tpm/tpm_tis_core.c +3 -47
68 lines not on this page · raw message
drivers/clk/meson/clk-pll.c +1 -1
@@ -197,7 +197,7 @@ static int meson_clk_pll_set_rate(struct clk_hw *hw, unsigned long rate,if (parent_rate ==0 || rate ==0 )return -EINVAL ; - old_rate = rate; + old_rate =clk_hw_get_rate (hw); pllt =meson_clk_get_pll_settings (rate, pll);if (!pllt)
drivers/clk/qcom/gcc-msm8998.c +50 -50
341 lines not on this page · raw message
drivers/clk/sunxi-ng/ccu-sun50i-h6.c +5 -5
@@ -223,7 +223,7 @@ static const char * const psi_ahb1_ahb2_parents[] = { "osc24M", "osc32k", static SUNXI_CCU_MP_WITH_MUX(psi_ahb1_ahb2_clk, "psi-ahb1-ahb2", psi_ahb1_ahb2_parents,0x510 , -0 ,5 ,/* M */ +0 ,2 ,/* M */ 8 ,2 ,/* P */ 24 ,2 ,/* mux */ 0);
@@ -232,19 +232,19 @@ static const char * const ahb3_apb1_apb2_parents[] = { "osc24M", "osc32k","psi-ahb1-ahb2" , "pll-periph0" }; static SUNXI_CCU_MP_WITH_MUX(ahb3_clk, "ahb3", ahb3_apb1_apb2_parents, 0x51c, -0 ,5 ,/* M */ +0 ,2 ,/* M */ 8 ,2 ,/* P */ 24 ,2 ,/* mux */ 0); static SUNXI_CCU_MP_WITH_MUX(apb1_clk, "apb1", ahb3_apb1_apb2_parents, 0x520, -0 ,5 ,/* M */ +0 ,2 ,/* M */ 8 ,2 ,/* P */ 24 ,2 ,/* mux */ 0); static SUNXI_CCU_MP_WITH_MUX(apb2_clk, "apb2", ahb3_apb1_apb2_parents, 0x524, -0 ,5 ,/* M */ +0 ,2 ,/* M */ 8 ,2 ,/* P */ 24 ,2 ,/* mux */ 0);
@@ -662,7 +662,7 @@ static struct ccu_mux hdmi_cec_clk = { .common = { .reg = 0xb10, - .features = CCU_FEATURE_VARIABLE_PREDIV, + .features = CCU_FEATURE_FIXED_PREDIV, .hw.init = CLK_HW_INIT_PARENTS("hdmi-cec", hdmi_cec_parents, &ccu_mux_ops,
drivers/clocksource/mxs_timer.c +1 -4
@@ -138,10 +138,7 @@ static void mxs_irq_clear(char *state)/* Clear pending interrupt */ timrot_irq_acknowledge (); - -#ifdef DEBUG - pr_info("%s: changing mode to %s\n", __func__, state) -#endif /* DEBUG */ +pr_debug ("%s: changing mode to %s\n" , __func__, state); }static int mxs_shutdown (struct clock_event_device *evt)
drivers/cpufreq/brcmstb-avs-cpufreq.c +17 -7
@@ -566,6 +566,16 @@ static int brcm_avs_prepare_init(struct platform_device *pdev)return ret; } +static void brcm_avs_prepare_uninit (struct platform_device *pdev) +{ +struct private_data *priv; + + priv =platform_get_drvdata (pdev); + +iounmap (priv->avs_intr_base); +iounmap (priv->base); +} +static int brcm_avs_cpufreq_init (struct cpufreq_policy *policy) {struct cpufreq_frequency_table *freq_table;
@@ -701,21 +711,21 @@ static int brcm_avs_cpufreq_probe(struct platform_device *pdev) brcm_avs_driver.driver_data = pdev; -return cpufreq_register_driver (&brcm_avs_driver); + ret =cpufreq_register_driver (&brcm_avs_driver); +if (ret) +brcm_avs_prepare_uninit (pdev); + +return ret; }static int brcm_avs_cpufreq_remove (struct platform_device *pdev) { -struct private_data *priv;int ret; ret =cpufreq_unregister_driver (&brcm_avs_driver); -if (ret) -return ret; +WARN_ON (ret); - priv =platform_get_drvdata (pdev); -iounmap (priv->base); -iounmap (priv->avs_intr_base); +brcm_avs_prepare_uninit (pdev);return 0 ; }
drivers/cpufreq/intel_pstate.c +3 -2
@@ -1420,11 +1420,9 @@ static void intel_pstate_max_within_limits(struct cpudata *cpu)static void intel_pstate_get_cpu_pstates (struct cpudata *cpu) { cpu->pstate.min_pstate = pstate_funcs.get_min (); - cpu->pstate.max_pstate = pstate_funcs.get_max (); cpu->pstate.max_pstate_physical = pstate_funcs.get_max_physical (); cpu->pstate.turbo_pstate = pstate_funcs.get_turbo (); cpu->pstate.scaling = pstate_funcs.get_scaling (); - cpu->pstate.max_freq = cpu->pstate.max_pstate * cpu->pstate.scaling;if (hwp_active && !hwp_mode_bdw) {unsigned int phy_max, current_max;
@@ -1432,9 +1430,12 @@ static void intel_pstate_get_cpu_pstates(struct cpudata *cpu)intel_pstate_get_hwp_max (cpu->cpu, &phy_max, ¤t_max); cpu->pstate.turbo_freq = phy_max * cpu->pstate.scaling; cpu->pstate.turbo_pstate = phy_max; + cpu->pstate.max_pstate =HWP_GUARANTEED_PERF (READ_ONCE (cpu->hwp_cap_cached)); }else { cpu->pstate.turbo_freq = cpu->pstate.turbo_pstate * cpu->pstate.scaling; + cpu->pstate.max_pstate = pstate_funcs.get_max (); } + cpu->pstate.max_freq = cpu->pstate.max_pstate * cpu->pstate.scaling;if (pstate_funcs.get_aperf_mperf_shift) cpu->aperf_mperf_shift = pstate_funcs.get_aperf_mperf_shift ();
drivers/crypto/bcm/cipher.c +1 -1
@@ -52,7 +52,7 @@/* ================= Device Structure ================== */ -struct device_private iproc_priv; +struct bcm_device_private iproc_priv;/* ==================== Parameters ===================== */
drivers/crypto/bcm/cipher.h +2 -2
@@ -431,7 +431,7 @@ struct spu_hw {u32 num_chan; }; -struct device_private { +struct bcm_device_private {struct platform_device *pdev;struct spu_hw spu;
@@ -478,6 +478,6 @@ struct device_private { struct mbox_chan **mbox; }; -extern struct device_private iproc_priv; +extern struct bcm_device_private iproc_priv;#endif
drivers/crypto/bcm/util.c +1 -1
@@ -400,7 +400,7 @@ char *spu_alg_name(enum spu_cipher_alg alg, enum spu_cipher_mode mode)static ssize_t spu_debugfs_read (struct file *filp,char __user *ubuf,size_t count,loff_t *offp) { -struct device_private *ipriv; +struct bcm_device_private *ipriv;char *buf;ssize_t ret, out_offset, out_count;int i;
drivers/crypto/chelsio/chtls/chtls_cm.h +0 -3
@@ -53,9 +53,6 @@#define MIN_RCV_WND (24 * 1024U)#define LOOPBACK (x) (((x) & htonl(0xff000000)) == htonl(0x7f000000)) -/* ulp_mem_io + ulptx_idata + payload + padding */ -#define MAX_IMM_ULPTX_WR_LEN (32 + 8 + 256 + 8) -/* for TX: a skb must have a headroom of at least TX_HEADER_LEN bytes */ #define TX_HEADER_LEN \ (sizeof(struct fw_ofld_tx_data_wr) + sizeof(struct sge_opaque_hdr))
drivers/crypto/sunxi-ss/sun4i-ss-cipher.c +73 -52
249 lines not on this page · raw message
drivers/crypto/talitos.c +16 -12
@@ -1066,11 +1066,12 @@ static void ipsec_esp_decrypt_hwauth_done(struct device *dev,*/ static int sg_to_link_tbl_offset (struct scatterlist *sg,int sg_count,unsigned int offset,int datalen,int elen, -struct talitos_ptr *link_tbl_ptr) +struct talitos_ptr *link_tbl_ptr,int align) {int n_sg = elen ? sg_count +1 : sg_count;int count =0 ;int cryptlen = datalen + elen; +int padding =ALIGN (cryptlen, align) - cryptlen;while (cryptlen && sg && n_sg--) {unsigned int len =sg_dma_len (sg);
@@ -1094,7 +1095,7 @@ static int sg_to_link_tbl_offset(struct scatterlist *sg, int sg_count, offset += datalen; }to_talitos_ptr (link_tbl_ptr + count, -sg_dma_address (sg) + offset, len,0 ); +sg_dma_address (sg) + offset,sg_next (sg) ? len : len + padding,0 );to_talitos_ptr_ext_set (link_tbl_ptr + count,0 ,0 ); count++; cryptlen -= len;
@@ -1117,10 +1118,11 @@ static int talitos_sg_map_ext(struct device *dev, struct scatterlist *src, unsigned int len, struct talitos_edesc *edesc, struct talitos_ptr *ptr, int sg_count, unsigned int offset, int tbl_off, int elen, - bool force) + bool force, int align) { struct talitos_private *priv = dev_get_drvdata(dev);bool is_sec1 =has_ftr_sec1 (priv); +int aligned_len =ALIGN (len, align);if (!src) {to_talitos_ptr (ptr,0 ,0 , is_sec1);
@@ -1128,22 +1130,22 @@ static int talitos_sg_map_ext(struct device *dev, struct scatterlist *src, }to_talitos_ptr_ext_set (ptr, elen, is_sec1);if (sg_count ==1 && !force) { -to_talitos_ptr (ptr,sg_dma_address (src) + offset, len, is_sec1); +to_talitos_ptr (ptr,sg_dma_address (src) + offset, aligned_len, is_sec1);return sg_count; }if (is_sec1) { -to_talitos_ptr (ptr, edesc->dma_link_tbl + offset, len, is_sec1); +to_talitos_ptr (ptr, edesc->dma_link_tbl + offset, aligned_len, is_sec1);return sg_count; } sg_count =sg_to_link_tbl_offset (src, sg_count, offset, len, elen, - &edesc->link_tbl[tbl_off]); + &edesc->link_tbl[tbl_off], align);if (sg_count ==1 && !force) {/* Only one segment now, so no link tbl needed*/ copy_talitos_ptr (ptr, &edesc->link_tbl[tbl_off], is_sec1);return sg_count; }to_talitos_ptr (ptr, edesc->dma_link_tbl + - tbl_off *sizeof (struct talitos_ptr ), len, is_sec1); + tbl_off *sizeof (struct talitos_ptr ), aligned_len, is_sec1);to_talitos_ptr_ext_or (ptr,DESC_PTR_LNKTBL_JUMP , is_sec1);return sg_count;
@@ -1155,7 +1157,7 @@ static int talitos_sg_map(struct device *dev, struct scatterlist *src, unsigned int offset, int tbl_off) {return talitos_sg_map_ext (dev, src, len, edesc, ptr, sg_count, offset, - tbl_off,0 , false); + tbl_off,0 , false,1 ); }/*
@@ -1224,7 +1226,7 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq, ret =talitos_sg_map_ext (dev, areq->src, cryptlen, edesc, &desc->ptr[4 ], sg_count, areq->assoclen, tbl_off, elen, - false); + false,1 );if (ret >1 ) { tbl_off += ret;
@@ -1244,7 +1246,7 @@ static int ipsec_esp(struct talitos_edesc *edesc, struct aead_request *areq, elen =0 ; ret =talitos_sg_map_ext (dev, areq->dst, cryptlen, edesc, &desc->ptr[5 ], sg_count, areq->assoclen, tbl_off, elen, - is_ipsec_esp && !encrypt); + is_ipsec_esp && !encrypt,1 ); tbl_off += ret;/* ICV data */
@@ -1554,6 +1556,8 @@ static int common_nonsnoop(struct talitos_edesc *edesc,bool sync_needed = false;struct talitos_private *priv =dev_get_drvdata (dev);bool is_sec1 =has_ftr_sec1 (priv); +bool is_ctr = (desc->hdr &DESC_HDR_SEL0_MASK ) ==DESC_HDR_SEL0_AESU && + (desc->hdr &DESC_HDR_MODE0_AESU_MASK ) ==DESC_HDR_MODE0_AESU_CTR ;/* first DWORD empty */
@@ -1574,8 +1578,8 @@ static int common_nonsnoop(struct talitos_edesc *edesc,/* * cipher in */ - sg_count =talitos_sg_map (dev, areq->src, cryptlen, edesc, - &desc->ptr[3 ], sg_count,0 ,0 ); + sg_count =talitos_sg_map_ext (dev, areq->src, cryptlen, edesc, &desc->ptr[3 ], + sg_count,0 ,0 ,0 , false, is_ctr ?16 :1 );if (sg_count >1 ) sync_needed = true;
drivers/crypto/talitos.h +1 -0
@@ -377,6 +377,7 @@ static inline bool has_ftr_sec1(struct talitos_private *priv)/* primary execution unit mode (MODE0) and derivatives */ #define DESC_HDR_MODE0_ENCRYPT cpu_to_be32(0x00100000) +#define DESC_HDR_MODE0_AESU_MASK cpu_to_be32(0x00600000)#define DESC_HDR_MODE0_AESU_CBC cpu_to_be32(0x00200000)#define DESC_HDR_MODE0_AESU_CTR cpu_to_be32(0x00600000)#define DESC_HDR_MODE0_DEU_CBC cpu_to_be32(0x00400000)
drivers/dma/fsldma.c +6 -0
@@ -1218,6 +1218,7 @@ static int fsldma_of_probe(struct platform_device *op) {struct fsldma_device *fdev;struct device_node *child; +unsigned int i;int err; fdev =kzalloc (sizeof (*fdev),GFP_KERNEL );
@@ -1296,6 +1297,10 @@ static int fsldma_of_probe(struct platform_device *op)return 0 ; out_free_fdev: +for (i =0 ; i <FSL_DMA_MAX_CHANS_PER_DEVICE ; i++) { +if (fdev->chan[i]) +fsl_dma_chan_remove (fdev->chan[i]); + }irq_dispose_mapping (fdev->irq);iounmap (fdev->regs); out_free:
@@ -1318,6 +1323,7 @@ static int fsldma_of_remove(struct platform_device *op)if (fdev->chan[i])fsl_dma_chan_remove (fdev->chan[i]); } +irq_dispose_mapping (fdev->irq);iounmap (fdev->regs);kfree (fdev);
drivers/dma/hsu/pci.c +11 -10
@@ -29,22 +29,12 @@static irqreturn_t hsu_pci_irq (int irq,void *dev) {struct hsu_dma_chip *chip = dev; -struct pci_dev *pdev =to_pci_dev (chip->dev);u32 dmaisr;u32 status;unsigned short i;int ret =0 ;int err; -/* -* On Intel Tangier B0 and Anniedale the interrupt line, disregarding -* to have different numbers, is shared between HSU DMA and UART IPs. -* Thus on such SoCs we are expecting that IRQ handler is called in -* UART driver only. -*/ -if (pdev->device ==PCI_DEVICE_ID_INTEL_MRFLD_HSU_DMA ) -return IRQ_HANDLED ; - dmaisr =readl (chip->regs +HSU_PCI_DMAISR );for (i =0 ; i < chip->hsu->nr_channels; i++) {if (dmaisr &0x1 ) {
@@ -108,6 +98,17 @@ static int hsu_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)if (ret) goto err_register_irq; +/* +* On Intel Tangier B0 and Anniedale the interrupt line, disregarding +* to have different numbers, is shared between HSU DMA and UART IPs. +* Thus on such SoCs we are expecting that IRQ handler is called in +* UART driver only. Instead of handling the spurious interrupt +* from HSU DMA here and waste CPU time and delay HSU UART interrupt +* handling, disable the interrupt entirely. +*/ +if (pdev->device ==PCI_DEVICE_ID_INTEL_MRFLD_HSU_DMA ) +disable_irq_nosync (chip->irq); +pci_set_drvdata (pdev, chip);return 0 ;
drivers/dma/owl-dma.c +1 -0
@@ -932,6 +932,7 @@ static int owl_dma_remove(struct platform_device *pdev)owl_dma_free (od);clk_disable_unprepare (od->clk); +dma_pool_destroy (od->lli_pool);return 0 ; }
drivers/gpio/gpio-pcf857x.c +1 -1
@@ -357,7 +357,7 @@ static int pcf857x_probe(struct i2c_client *client,* reset state. Otherwise it flags pins to be driven low. */ gpio->out = ~n_latch; - gpio->status = gpio->out; + gpio->status = gpio->read (gpio->client); status =devm_gpiochip_add_data (&client->dev, &gpio->chip, gpio);if (status <0 )
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +3 -3
@@ -617,7 +617,7 @@ static ssize_t amdgpu_get_pp_dpm_sclk(struct device *dev,static ssize_t amdgpu_read_mask (const char *buf,size_t count,uint32_t *mask) {int ret; -long level; +unsigned long level;char *sub_str =NULL ;char *tmp;char buf_cpy[AMDGPU_MASK_BUF_MAX +1 ];
@@ -633,8 +633,8 @@ static ssize_t amdgpu_read_mask(const char *buf, size_t count, uint32_t *mask)while (tmp[0 ]) { sub_str =strsep (&tmp, delimiter);if (strlen (sub_str)) { - ret =kstrtol (sub_str,0 , &level); -if (ret) + ret =kstrtoul (sub_str,0 , &level); +if (ret || level >31 )return -EINVAL ; *mask |=1 << level; }else
drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h +1 -1
@@ -21,7 +21,7 @@* */ -#if !defined(_AMDGPU_TRACE_H) || defined(TRACE_HEADER_MULTI_READ ) +#if !defined(_AMDGPU_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ )#define _AMDGPU_TRACE_H_#include <linux/stringify.h>
drivers/gpu/drm/amd/display/dc/dce/dce_transform.c +4 -4
@@ -429,12 +429,12 @@ static void set_clamp( clamp_max =0x3FC0 ;break ;case COLOR_DEPTH_101010 : -/* 10bit MSB aligned on 14 bit bus '11 1111 1111 1100' */ - clamp_max =0x3FFC ; +/* 10bit MSB aligned on 14 bit bus '11 1111 1111 0000' */ + clamp_max =0x3FF0 ;break ;case COLOR_DEPTH_121212 : -/* 12bit MSB aligned on 14 bit bus '11 1111 1111 1111' */ - clamp_max =0x3FFF ; +/* 12bit MSB aligned on 14 bit bus '11 1111 1111 1100' */ + clamp_max =0x3FFC ;break ;default : clamp_max =0x3FC0 ;
drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c +13 -9
@@ -279,11 +279,8 @@ int oaktrail_hdmi_i2c_init(struct pci_dev *dev) hdmi_dev =pci_get_drvdata (dev); i2c_dev =kzalloc (sizeof (struct hdmi_i2c_dev ),GFP_KERNEL ); -if (i2c_dev ==NULL ) { -DRM_ERROR ("Can't allocate interface\n" ); - ret = -ENOMEM ; - goto exit; - } +if (!i2c_dev) +return -ENOMEM ; i2c_dev->adap = &oaktrail_hdmi_i2c_adapter; i2c_dev->status =I2C_STAT_INIT ;
@@ -300,16 +297,23 @@ int oaktrail_hdmi_i2c_init(struct pci_dev *dev) oaktrail_hdmi_i2c_adapter.name, hdmi_dev);if (ret) {DRM_ERROR ("Failed to request IRQ for I2C controller\n" ); - goto err; + goto free_dev; }/* Adapter registration */ ret =i2c_add_numbered_adapter (&oaktrail_hdmi_i2c_adapter); -return ret; +if (ret) { +DRM_ERROR ("Failed to add I2C adapter\n" ); + goto free_irq; + } -err: +return 0 ; + +free_irq: +free_irq (dev->irq, hdmi_dev); +free_dev:kfree (i2c_dev); -exit: +return ret; }
drivers/gpu/drm/gma500/psb_drv.c +2 -0
@@ -316,6 +316,8 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)if (ret) goto out_err; + ret = -ENOMEM ; + dev_priv->mmu =psb_mmu_driver_init (dev,1 ,0 ,0 );if (!dev_priv->mmu) goto out_err;
drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.c +1 -1
@@ -147,7 +147,7 @@ const struct msm_dsi_phy_cfg dsi_phy_20nm_cfgs = { .disable = dsi_20nm_phy_disable, .init = msm_dsi_phy_init_common, }, - .io_start = { 0xfd998300, 0xfd9a0300 }, + .io_start = { 0xfd998500, 0xfd9a0500 }, .num_dsi_phy = 2, };
drivers/hid/hid-core.c +6 -3
@@ -93,7 +93,7 @@ EXPORT_SYMBOL_GPL(hid_register_report);* Register a new field for this report. */ -static struct hid_field *hid_register_field (struct hid_report *report,unsigned usages,unsigned values) +static struct hid_field *hid_register_field (struct hid_report *report,unsigned usages) {struct hid_field *field;
@@ -104,7 +104,7 @@ static struct hid_field *hid_register_field(struct hid_report *report, unsigned field =kzalloc ((sizeof (struct hid_field ) + usages *sizeof (struct hid_usage ) + - values *sizeof (unsigned )),GFP_KERNEL ); + usages *sizeof (unsigned )),GFP_KERNEL );if (!field)return NULL ;
@@ -300,7 +300,7 @@ static int hid_add_field(struct hid_parser *parser, unsigned report_type, unsign usages =max_t (unsigned, parser->local.usage_index, parser->global.report_count); - field =hid_register_field (report, usages, parser->global.report_count); + field =hid_register_field (report, usages);if (!field)return 0 ;
@@ -1128,6 +1128,9 @@ EXPORT_SYMBOL_GPL(hid_open_report);static s32 snto32 (__u32 value,unsigned n) { +if (!value || !n) +return 0 ; +switch (n) {case 8 :return ((__s8 )value);case 16 :return ((__s16 )value);
drivers/hid/wacom_wac.c +6 -1
@@ -2557,7 +2557,12 @@ static void wacom_wac_finger_event(struct hid_device *hdev, wacom_wac->hid_data.tipswitch = value;break ;case HID_DG_CONTACTMAX : - features->touch_max = value; +if (!features->touch_max) { + features->touch_max = value; + }else { +hid_warn (hdev,"%s: ignoring attempt to overwrite non-zero touch_max " +"%d -> %d\n" , __func__, features->touch_max, value); + }return ; }
drivers/hv/channel_mgmt.c +1 -2
@@ -1001,8 +1001,7 @@ static void vmbus_onoffer_rescind(struct vmbus_channel_message_header *hdr)vmbus_device_unregister (channel->device_obj);put_device (dev); } - } -if (channel->primary_channel !=NULL ) { + }else if (channel->primary_channel !=NULL ) {/* * Sub-channel is being rescinded. Following is the channel * close sequence when initiated from the driveri (refer to
drivers/i2c/busses/i2c-brcmstb.c +1 -1
@@ -318,7 +318,7 @@ static int brcmstb_send_i2c_cmd(struct brcmstb_i2c_dev *dev, goto cmd_out; } -if ((CMD_RD ||CMD_WR ) && +if ((cmd ==CMD_RD || cmd ==CMD_WR ) &&bsc_readl (dev, iic_enable) &BSC_IIC_EN_NOACK_MASK ) { rc = -EREMOTEIO ; dev_dbg(dev->device, "controller received NOACK intr for %s\n",
drivers/infiniband/core/user_mad.c +16 -1
@@ -366,6 +366,11 @@ static ssize_t ib_umad_read(struct file *filp, char __user *buf,mutex_lock (&file->mutex); +if (file->agents_dead) { +mutex_unlock (&file->mutex); +return -EIO ; + } +while (list_empty (&file->recv_list)) {mutex_unlock (&file->mutex);
@@ -379,6 +384,11 @@ static ssize_t ib_umad_read(struct file *filp, char __user *buf,mutex_lock (&file->mutex); } +if (file->agents_dead) { +mutex_unlock (&file->mutex); +return -EIO ; + } + packet = list_entry(file->recv_list.next, struct ib_umad_packet, list);list_del (&packet->list);
@@ -508,7 +518,7 @@ static ssize_t ib_umad_write(struct file *filp, const char __user *buf, agent =__get_agent (file, packet->mad.hdr.id);if (!agent) { - ret = -EINVAL ; + ret = -EIO ; goto err_up; }
@@ -637,10 +647,14 @@ static __poll_t ib_umad_poll(struct file *filp, struct poll_table_struct *wait)/* we will always be able to post a MAD send */ __poll_t mask =EPOLLOUT |EPOLLWRNORM ; +mutex_lock (&file->mutex);poll_wait (filp, &file->recv_wait, wait);if (!list_empty (&file->recv_list)) mask |=EPOLLIN |EPOLLRDNORM ; +if (file->agents_dead) + mask =EPOLLERR ; +mutex_unlock (&file->mutex);return mask; }
@@ -1257,6 +1271,7 @@ static void ib_umad_kill_port(struct ib_umad_port *port)list_for_each_entry (file, &port->file_list, port_list) {mutex_lock (&file->mutex); file->agents_dead =1 ; +wake_up_interruptible (&file->recv_wait);mutex_unlock (&file->mutex);for (id =0 ; id <IB_UMAD_MAX_AGENTS ; ++id)
drivers/infiniband/hw/mlx5/devx.c +3 -1
@@ -572,7 +572,9 @@ static void devx_obj_build_destroy_cmd(void *in, void *out, void *din,MLX5_SET (general_obj_in_cmd_hdr, din, opcode,MLX5_CMD_OP_DESTROY_RQT );break ;case MLX5_CMD_OP_CREATE_TIR : -MLX5_SET (general_obj_in_cmd_hdr, din, opcode,MLX5_CMD_OP_DESTROY_TIR ); + *obj_id =MLX5_GET (create_tir_out, out, tirn); +MLX5_SET (destroy_tir_in, din, opcode,MLX5_CMD_OP_DESTROY_TIR ); +MLX5_SET (destroy_tir_in, din, tirn, *obj_id);break ;case MLX5_CMD_OP_CREATE_TIS :MLX5_SET (general_obj_in_cmd_hdr, din, opcode,MLX5_CMD_OP_DESTROY_TIS );
drivers/infiniband/sw/rxe/rxe_net.c +5 -0
@@ -500,6 +500,11 @@ int rxe_send(struct rxe_pkt_info *pkt, struct sk_buff *skb)void rxe_loopback (struct sk_buff *skb) { +if (skb->protocol ==htons (ETH_P_IP )) +skb_pull (skb,sizeof (struct iphdr )); +else +skb_pull (skb,sizeof (struct ipv6hdr )); +rxe_rcv (skb); }
drivers/infiniband/sw/rxe/rxe_recv.c +8 -3
@@ -36,21 +36,26 @@#include "rxe.h" #include "rxe_loc.h" +/* check that QP matches packet opcode type and is in a valid state */ static int check_type_state (struct rxe_dev *rxe,struct rxe_pkt_info *pkt,struct rxe_qp *qp) { +unsigned int pkt_type; +if (unlikely (!qp->valid)) goto err1; + pkt_type = pkt->opcode &0xe0 ; +switch (qp_type (qp)) {case IB_QPT_RC : -if (unlikely ((pkt->opcode &IB_OPCODE_RC ) !=0 )) { +if (unlikely (pkt_type !=IB_OPCODE_RC )) {pr_warn_ratelimited ("bad qp type\n" ); goto err1; }break ;case IB_QPT_UC : -if (unlikely (!(pkt->opcode &IB_OPCODE_UC ))) { +if (unlikely (pkt_type !=IB_OPCODE_UC )) {pr_warn_ratelimited ("bad qp type\n" ); goto err1; }
@@ -58,7 +63,7 @@ static int check_type_state(struct rxe_dev *rxe, struct rxe_pkt_info *pkt,case IB_QPT_UD :case IB_QPT_SMI :case IB_QPT_GSI : -if (unlikely (!(pkt->opcode &IB_OPCODE_UD ))) { +if (unlikely (pkt_type !=IB_OPCODE_UD )) {pr_warn_ratelimited ("bad qp type\n" ); goto err1; }
drivers/input/joydev.c +5 -2
@@ -460,7 +460,7 @@ static int joydev_handle_JSIOCSAXMAP(struct joydev *joydev,if (IS_ERR (abspam))return PTR_ERR (abspam); -for (i =0 ; i < joydev->nabs; i++) { +for (i =0 ; i < len && i < joydev->nabs; i++) {if (abspam[i] >ABS_MAX ) { retval = -EINVAL ; goto out;
@@ -484,6 +484,9 @@ static int joydev_handle_JSIOCSBTNMAP(struct joydev *joydev,int i;int retval =0 ; +if (len %sizeof (*keypam)) +return -EINVAL ; + len =min (len,sizeof (joydev->keypam));/* Validate the map. */
@@ -491,7 +494,7 @@ static int joydev_handle_JSIOCSBTNMAP(struct joydev *joydev,if (IS_ERR (keypam))return PTR_ERR (keypam); -for (i =0 ; i < joydev->nkey; i++) { +for (i =0 ; i < (len /2 ) && i < joydev->nkey; i++) {if (keypam[i] >KEY_MAX || keypam[i] <BTN_MISC ) { retval = -EINVAL ; goto out;
drivers/input/joystick/xpad.c +1 -0
@@ -319,6 +319,7 @@ static const struct xpad_device { { 0x1bad, 0xfd00, "Razer Onza TE", 0, XTYPE_XBOX360 }, { 0x1bad, 0xfd01, "Razer Onza", 0, XTYPE_XBOX360 }, { 0x20d6, 0x2001, "BDA Xbox Series X Wired Controller", 0, XTYPE_XBOXONE }, + { 0x20d6, 0x2009, "PowerA Enhanced Wired Controller for Xbox Series X|S", 0, XTYPE_XBOXONE }, { 0x20d6, 0x281f, "PowerA Wired Controller For Xbox 360", 0, XTYPE_XBOX360 }, { 0x2e24, 0x0652, "Hyperkin Duke X-Box One pad", 0, XTYPE_XBOXONE }, { 0x24c6, 0x5000, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
drivers/input/serio/i8042-x86ia64io.h +4 -0
@@ -592,6 +592,10 @@ static const struct dmi_system_id i8042_dmi_noselftest_table[] = { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), DMI_MATCH(DMI_CHASSIS_TYPE, "10"), /* Notebook */ }, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_CHASSIS_TYPE, "31"), /* Convertible Notebook */ + }, }, { } };
drivers/input/touchscreen/elo.c +3 -1
@@ -345,8 +345,10 @@ static int elo_connect(struct serio *serio, struct serio_driver *drv)switch (elo->id) {case 0 :/* 10-byte protocol */ -if (elo_setup_10 (elo)) +if (elo_setup_10 (elo)) { + err = -EIO ; goto fail3; + }break ;
drivers/input/touchscreen/raydium_i2c_ts.c +2 -1
@@ -419,6 +419,7 @@ static int raydium_i2c_write_object(struct i2c_client *client, enum raydium_bl_ack state) {int error; +static const u8 cmd[] = {0xFF ,0x39 }; error =raydium_i2c_send (client,RM_CMD_BOOT_WRT , data, len);if (error) {
@@ -427,7 +428,7 @@ static int raydium_i2c_write_object(struct i2c_client *client,return error; } - error =raydium_i2c_send (client,RM_CMD_BOOT_ACK ,NULL ,0 ); + error =raydium_i2c_send (client,RM_CMD_BOOT_ACK , cmd,sizeof (cmd));if (error) {dev_err (&client->dev,"Ack obj command failed: %d\n" , error);return error;
drivers/input/touchscreen/sur40.c +1 -0
@@ -778,6 +778,7 @@ static int sur40_probe(struct usb_interface *interface,dev_err (&interface->dev,"Unable to register video controls." );v4l2_ctrl_handler_free (&sur40->hdl); + error = sur40->hdl.error; goto err_unreg_v4l2; }
drivers/md/dm-core.h +4 -0
@@ -110,6 +110,10 @@ struct mapped_device {/* zero-length flush that will be cloned and submitted to targets */ struct bio flush_bio; +int swap_bios; +struct semaphore swap_bios_semaphore; +struct mutex swap_bios_lock; +struct dm_stats stats;struct kthread_worker kworker;
drivers/md/dm-crypt.c +1 -0
@@ -2852,6 +2852,7 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv)wake_up_process (cc->write_thread); ti->num_flush_bios =1 ; + ti->limit_swap_bios = true;return 0 ;
drivers/md/dm-era-target.c +60 -33
243 lines not on this page · raw message
drivers/md/dm.c +60 -0
118 lines not on this page · raw message
drivers/media/i2c/ov5670.c +2 -1
@@ -2081,7 +2081,8 @@ static int ov5670_init_controls(struct ov5670 *ov5670)/* By default, V4L2_CID_PIXEL_RATE is read only */ ov5670->pixel_rate =v4l2_ctrl_new_std (ctrl_hdlr, &ov5670_ctrl_ops, -V4L2_CID_PIXEL_RATE ,0 , +V4L2_CID_PIXEL_RATE , + link_freq_configs[0 ].pixel_rate, link_freq_configs[0 ].pixel_rate,1 , link_freq_configs[0 ].pixel_rate);
drivers/media/pci/cx25821/cx25821-core.c +3 -1
@@ -986,8 +986,10 @@ int cx25821_riscmem_alloc(struct pci_dev *pci,__le32 *cpu;dma_addr_t dma =0 ; -if (NULL != risc->cpu && risc->size < size) +if (risc->cpu && risc->size < size) {pci_free_consistent (pci, risc->size, risc->cpu, risc->dma); + risc->cpu =NULL ; + }if (NULL == risc->cpu) { cpu =pci_zalloc_consistent (pci, size, &dma);if (NULL == cpu)
drivers/media/pci/intel/ipu3/ipu3-cio2.c +1 -1
@@ -1290,7 +1290,7 @@ static int cio2_subdev_set_fmt(struct v4l2_subdev *sd, fmt->format.code = formats[0 ].mbus_code;for (i =0 ; i <ARRAY_SIZE (formats); i++) { -if (formats[i].mbus_code == fmt->format.code) { +if (formats[i].mbus_code == mbus_code) { fmt->format.code = mbus_code;break ; }
drivers/media/pci/saa7134/saa7134-empress.c +4 -1
@@ -293,8 +293,11 @@ static int empress_init(struct saa7134_dev *dev) q->lock = &dev->lock; q->dev = &dev->pci->dev; err =vb2_queue_init (q); -if (err) +if (err) { +video_device_release (dev->empress_dev); + dev->empress_dev =NULL ;return err; + } dev->empress_dev->queue = q;video_set_drvdata (dev->empress_dev, dev);
drivers/media/platform/pxa_camera.c +3 -0
@@ -1452,6 +1452,9 @@ static int pxac_vb2_prepare(struct vb2_buffer *vb)struct pxa_camera_dev *pcdev =vb2_get_drv_priv (vb->vb2_queue);struct pxa_buffer *buf =vb2_to_pxa_buffer (vb);int ret =0 ; +#ifdef DEBUG +int i; +#endif switch (pcdev->channels) {case 1 :
drivers/media/platform/qcom/camss/camss-video.c +1 -0
@@ -901,6 +901,7 @@ int msm_video_register(struct camss_video *video, struct v4l2_device *v4l2_dev, video->nformats =ARRAY_SIZE (formats_rdi_8x96); } }else { + ret = -EINVAL ; goto error_video_register; }
drivers/media/platform/vsp1/vsp1_drv.c +3 -1
@@ -882,8 +882,10 @@ static int vsp1_probe(struct platform_device *pdev) } done: -if (ret) +if (ret) {pm_runtime_disable (&pdev->dev); +rcar_fcp_put (vsp1->fcp); + }return ret; }
drivers/media/tuners/qm1d1c0042.c +3 -1
@@ -343,8 +343,10 @@ static int qm1d1c0042_init(struct dvb_frontend *fe)if (val == reg_initval[reg_index][0x00 ])break ; } -if (reg_index >=QM1D1C0042_NUM_REG_ROWS ) +if (reg_index >=QM1D1C0042_NUM_REG_ROWS ) { + ret = -EINVAL ; goto failed; + }memcpy (state->regs, reg_initval[reg_index],QM1D1C0042_NUM_REGS );usleep_range (2000 ,3000 );
drivers/media/usb/dvb-usb-v2/lmedm04.c +1 -1
@@ -436,7 +436,7 @@ static int lme2510_int_read(struct dvb_usb_adapter *adap) ep =usb_pipe_endpoint (d->udev, lme_int->lme_urb->pipe);if (usb_endpoint_type (&ep->desc) ==USB_ENDPOINT_XFER_BULK ) - lme_int->lme_urb->pipe =usb_rcvbulkpipe (d->udev,0xa ), + lme_int->lme_urb->pipe =usb_rcvbulkpipe (d->udev,0xa ); lme_int->lme_urb->transfer_flags |=URB_NO_TRANSFER_DMA_MAP ;
drivers/media/usb/em28xx/em28xx-core.c +1 -5
@@ -955,14 +955,10 @@ int em28xx_alloc_urbs(struct em28xx *dev, enum em28xx_mode mode, int xfer_bulk, usb_bufs->buf[i] =kzalloc (sb_size,GFP_KERNEL );if (!usb_bufs->buf[i]) { -em28xx_uninit_usb_xfer (dev, mode); -for (i--; i >=0 ; i--)kfree (usb_bufs->buf[i]); -kfree (usb_bufs->buf); - usb_bufs->buf =NULL ; - +em28xx_uninit_usb_xfer (dev, mode);return -ENOMEM ; }
drivers/media/usb/tm6000/tm6000-dvb.c +4 -0
@@ -149,6 +149,10 @@ static int tm6000_start_stream(struct tm6000_core *dev)if (ret <0 ) {printk (KERN_ERR "tm6000: error %i in %s during pipe reset\n" , ret, __func__); + +kfree (dvb->bulk_urb->transfer_buffer); +usb_free_urb (dvb->bulk_urb); + dvb->bulk_urb =NULL ;return ret; }else printk (KERN_ERR "tm6000: pipe resetted\n" );
drivers/media/usb/uvc/uvc_v4l2.c +9 -9
@@ -253,7 +253,9 @@ static int uvc_v4l2_try_format(struct uvc_streaming *stream, goto done;/* After the probe, update fmt with the values returned from -* negotiation with the device. +* negotiation with the device. Some devices return invalid bFormatIndex +* and bFrameIndex values, in which case we can only assume they have +* accepted the requested format as-is. */ for (i =0 ; i < stream->nformats; ++i) {if (probe->bFormatIndex == stream->format[i].index) {
@@ -262,11 +264,10 @@ static int uvc_v4l2_try_format(struct uvc_streaming *stream, } } -if (i == stream->nformats) { -uvc_trace (UVC_TRACE_FORMAT ,"Unknown bFormatIndex %u\n" , +if (i == stream->nformats) +uvc_trace (UVC_TRACE_FORMAT , +"Unknown bFormatIndex %u, using default\n" , probe->bFormatIndex); -return -EINVAL ; - }for (i =0 ; i < format->nframes; ++i) {if (probe->bFrameIndex == format->frame[i].bFrameIndex) {
@@ -275,11 +276,10 @@ static int uvc_v4l2_try_format(struct uvc_streaming *stream, } }
Lines of this file are not shown. View the raw message.
drivers/misc/vmw_vmci/vmci_queue_pair.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/mmc/host/renesas_sdhi_internal_dmac.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-common.h +14 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-drv.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +38 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/chelsio/cxgb4/sge.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +10 -31
41 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_txrx.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx4/resource_tracker.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/sun/sunvnet_common.c +4 -19
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43/phy_n.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/power/reset/at91-sama5d2_shdwc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/mt7621-dma/hsdma-mt7621.c new file +771 -0
771 lines not on this page · raw message
drivers/staging/mt7621-dma/mtk-hsdma.c deleted +0 -771
771 lines not on this page · raw message
drivers/staging/rtl8188eu/os_dep/usb_intf.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/os_dep/wifi_regd.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/target/iscsi/cxgbit/cxgbit_target.c +1 -2
Lines of this file are not shown. View the raw message.
include/linux/icmpv6.h +46 -2
48 lines not on this page · raw message
kernel/tracepoint.c +64 -16
80 lines not on this page · raw message
net/ipv6/ip6_icmp.c +41 -5
46 lines not on this page · raw message
tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +3 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.