Linux 5.4.268
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.268 kernel.
All users of the 5.4 kernel series must upgrade.
The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.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
------------
Makefile | 2 arch/arc/kernel/signal.c | 6 arch/arm/boot/dts/qcom-apq8064.dtsi | 2 arch/arm/mach-davinci/Kconfig | 1 arch/arm/mach-sunxi/mc_smp.c | 4 arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts | 2 arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 2 arch/mips/alchemy/devboards/db1200.c | 2 arch/mips/alchemy/devboards/db1550.c | 2 arch/mips/kernel/setup.c | 4 arch/powerpc/lib/Makefile | 2 arch/powerpc/perf/imc-pmu.c | 6 arch/powerpc/platforms/44x/Kconfig | 1 arch/powerpc/platforms/powernv/opal-irqchip.c | 2 arch/powerpc/platforms/powernv/opal-powercap.c | 6 arch/powerpc/platforms/powernv/opal-xscom.c | 5 arch/powerpc/platforms/pseries/hotplug-memory.c | 21 - arch/s390/include/asm/pci_io.h | 32 +- arch/s390/pci/pci_mmio.c | 12 arch/x86/kernel/kvmclock.c | 12 arch/x86/lib/misc.c | 2 crypto/af_alg.c | 14 + crypto/scompress.c | 6 drivers/acpi/acpi_lpit.c | 2 drivers/acpi/acpi_video.c | 12 drivers/acpi/property.c | 4 drivers/acpi/resource.c | 7 drivers/android/binder.c | 2 drivers/android/binder_alloc.c | 29 +- drivers/base/swnode.c | 3 drivers/bluetooth/btmtkuart.c | 11 drivers/clk/clk-si5341.c | 4 drivers/clk/rockchip/clk-rk3128.c | 2 drivers/clk/zynqmp/clk-mux-zynqmp.c | 2 drivers/crypto/ccp/ccp-ops.c | 5 drivers/crypto/sahara.c | 127 +++------- drivers/crypto/virtio/Kconfig | 1 drivers/crypto/virtio/virtio_crypto_common.h | 2 drivers/crypto/virtio/virtio_crypto_core.c | 26 +- drivers/edac/thunderx_edac.c | 10 drivers/firmware/ti_sci.c | 10 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 4 drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 4 drivers/gpu/drm/amd/amdgpu/si_dpm.c | 5 drivers/gpu/drm/bridge/tc358767.c | 2 drivers/gpu/drm/drm_crtc.c | 8 drivers/gpu/drm/drm_drv.c | 10 drivers/gpu/drm/exynos/exynos_drm_dma.c | 8 drivers/gpu/drm/exynos/exynos_hdmi.c | 2 drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c | 9 drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 4 drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmtu102.c | 2 drivers/gpu/drm/radeon/r100.c | 4 drivers/gpu/drm/radeon/r600_cs.c | 4 drivers/gpu/drm/radeon/radeon_display.c | 7 drivers/gpu/drm/radeon/radeon_vm.c | 8 drivers/gpu/drm/radeon/si.c | 4 drivers/gpu/drm/radeon/sumo_dpm.c | 4 drivers/gpu/drm/radeon/trinity_dpm.c | 4 drivers/hid/wacom_wac.c | 32 -- drivers/hwtracing/coresight/coresight-etm4x.h | 2 drivers/i2c/busses/i2c-s3c2410.c | 40 +-- drivers/infiniband/hw/mthca/mthca_cmd.c | 4 drivers/infiniband/hw/mthca/mthca_main.c | 2 drivers/input/joystick/xpad.c | 1 drivers/input/keyboard/atkbd.c | 50 +++ drivers/input/serio/i8042-x86ia64io.h | 8 drivers/media/dvb-core/dvbdev.c | 2 drivers/media/usb/cx231xx/cx231xx-core.c | 2 drivers/media/usb/pvrusb2/pvrusb2-context.c | 3 drivers/mmc/host/Kconfig | 5 drivers/mtd/mtd_blkdevs.c | 4 drivers/mtd/nand/raw/fsl_ifc_nand.c | 2 drivers/net/dsa/vitesse-vsc73xx-core.c | 2 drivers/net/ethernet/broadcom/tg3.c | 11 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c | 8 drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c | 2 drivers/net/ethernet/renesas/ravb_main.c | 2 drivers/net/phy/micrel.c | 1 drivers/net/wireless/marvell/libertas/Kconfig | 2 drivers/net/wireless/marvell/mwifiex/cfg80211.c | 2 drivers/net/wireless/marvell/mwifiex/fw.h | 1 drivers/net/wireless/marvell/mwifiex/ioctl.h | 1 drivers/net/wireless/marvell/mwifiex/uap_cmd.c | 8 drivers/net/wireless/realtek/rtlwifi/pci.c | 79 +----- drivers/net/wireless/realtek/rtlwifi/pci.h | 5 drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c | 20 - drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c | 16 - drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.h | 1 drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c | 6 drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.h | 1 drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c | 6 drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c | 66 +---- drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c | 20 - drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c | 20 - drivers/net/wireless/realtek/rtlwifi/rtl8723com/phy_common.c | 8 drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c | 19 - drivers/net/wireless/realtek/rtlwifi/wifi.h | 7 drivers/net/wireless/realtek/rtw88/mac80211.c | 4 drivers/net/xen-netback/netback.c | 44 ++- drivers/nvme/host/nvme.h | 5 drivers/nvme/target/tcp.c | 20 + drivers/of/base.c | 1 drivers/of/unittest-data/tests-phandle.dtsi | 10 drivers/of/unittest.c | 74 +++-- drivers/parport/parport_serial.c | 64 +++++ drivers/pci/controller/dwc/pci-keystone.c | 9 drivers/pinctrl/cirrus/Kconfig | 3 drivers/reset/hisilicon/hi6220_reset.c | 2 drivers/s390/block/scm_blk.c | 7 drivers/scsi/fnic/fnic_debugfs.c | 3 drivers/scsi/hisi_sas/hisi_sas_main.c | 4 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 drivers/spi/spi-sh-msiof.c | 17 + drivers/tty/serial/8250/8250_omap.c | 2 drivers/tty/serial/imx.c | 2 drivers/uio/uio.c | 7 drivers/usb/chipidea/core.c | 7 drivers/usb/dwc3/core.c | 39 --- drivers/usb/dwc3/ep0.c | 5 drivers/usb/mon/mon_bin.c | 7 drivers/usb/phy/phy-mxs-usb.c | 3 drivers/usb/typec/class.c | 4 drivers/video/fbdev/core/fb_defio.c | 6 drivers/watchdog/bcm2835_wdt.c | 3 drivers/watchdog/hpwdt.c | 2 drivers/watchdog/watchdog_dev.c | 3 fs/f2fs/namei.c | 2 fs/f2fs/xattr.c | 6 fs/gfs2/rgrp.c | 2 fs/jbd2/journal.c | 4 fs/nfs/blocklayout/blocklayout.c | 2 fs/nfs/nfs4proc.c | 3 fs/pstore/ram_core.c | 2 include/crypto/if_alg.h | 3 include/drm/drm_bridge.h | 2 include/net/bluetooth/hci_core.h | 1 include/uapi/linux/virtio_crypto.h | 1 init/do_mounts.c | 9 kernel/bpf/lpm_trie.c | 3 kernel/debug/kdb/kdb_main.c | 14 - kernel/dma/coherent.c | 4 kernel/time/tick-sched.c | 5 kernel/trace/ring_buffer.c | 6 kernel/trace/trace.c | 6 kernel/trace/trace_output.c | 6 lib/idr.c | 2 lib/test_ida.c | 40 +++ net/bluetooth/hci_conn.c | 8 net/bluetooth/hci_event.c | 11 net/core/neighbour.c | 9 net/ipv6/ip6_tunnel.c | 26 +- net/ncsi/internal.h | 9 net/ncsi/ncsi-netlink.c | 4 net/ncsi/ncsi-pkt.h | 7 net/ncsi/ncsi-rsp.c | 26 +- net/netfilter/ipvs/ip_vs_xmit.c | 4 net/netfilter/nf_tables_api.c | 3 net/netlabel/netlabel_calipso.c | 52 ++-- net/netlabel/netlabel_cipso_v4.c | 4 net/netlabel/netlabel_mgmt.c | 8 net/netlabel/netlabel_unlabeled.c | 10 net/netlabel/netlabel_user.h | 4 net/vmw_vsock/virtio_transport_common.c | 13 - security/apparmor/policy_unpack.c | 4 security/selinux/hooks.c | 7 sound/pci/hda/patch_realtek.c | 10 sound/pci/oxygen/oxygen_mixer.c | 2 sound/soc/atmel/sam9g20_wm8731.c | 61 ++++ sound/soc/codecs/cs35l33.c | 4 sound/soc/codecs/cs35l34.c | 4 sound/soc/codecs/cs43130.c | 6 sound/soc/codecs/da7219-aad.c | 2 sound/soc/codecs/nau8822.c | 9 sound/soc/codecs/rt5645.c | 10 sound/soc/intel/skylake/skl-pcm.c | 9 sound/soc/intel/skylake/skl-sst-ipc.c | 4 tools/perf/builtin-record.c | 23 + tools/perf/builtin-top.c | 22 + tools/perf/util/bpf-event.c | 11 tools/perf/util/bpf-event.h | 19 - tools/perf/util/env.c | 90 +++++-- tools/perf/util/env.h | 10 tools/perf/util/evlist.c | 21 - tools/perf/util/evlist.h | 2 tools/perf/util/genelf.c | 6 tools/perf/util/header.c | 8 tools/perf/util/top.h | 2 tools/testing/selftests/drivers/net/mlxsw/spectrum-2/tc_flower.sh | 52 ++++ tools/testing/selftests/net/fib_nexthop_multiprefix.sh | 4 tools/testing/selftests/powerpc/math/fpu_preempt.c | 9 tools/testing/selftests/powerpc/math/vmx_preempt.c | 10 192 files changed, 1277 insertions(+), 795 deletions(-)
Alex Deucher (1):
drm/amdgpu/debugfs: fix error code when smc register accessors are NULL
Amit Cohen (1):
mlxsw: spectrum_acl_erp: Fix error flow of pool allocation failure
Andrew Lunn (1):
net: netlabel: Fix kerneldoc warnings
Arnaldo Carvalho de Melo (3):
perf record: Move sb_evlist to 'struct record'
perf top: Move sb_evlist to 'struct perf_top'
perf bpf: Decouple creating the evlist from adding the SB event
Arnd Bergmann (3):
EDAC/thunderx: Fix possible out-of-bounds string access
wifi: libertas: stop selecting wext
ARM: davinci: always select CONFIG_CPU_ARM926T
Arseniy Krasnov (1):
virtio/vsock: fix logic which reduces credit update messages
Artem Chernyshev (1):
scsi: fnic: Return error if vmalloc() failed
Benjamin Coddington (1):
blocklayoutdriver: Fix reference leak of pnfs_device_node
Bhaskar Chowdhury (1):
ncsi: internal.h: Fix a spello
Cameron Williams (2):
parport: parport_serial: Add Brainboxes BAR details
parport: parport_serial: Add Brainboxes device IDs and geometry
Carlos Llamas (7):
binder: use EPOLLERR from eventpoll.h
binder: fix trivial typo of binder_free_buf_locked()
binder: fix comment on binder_alloc_new_buf() return value
binder: fix async space check for 0-sized buffers
binder: fix use-after-free in shinker's callback
binder: fix race between mmput() and do_exit()
binder: fix unused alloc->free_async_space
Chao Yu (1):
f2fs: fix to avoid dirent corruption
Charles Keepax (1):
pinctrl: lochnagar: Don't build on MIPS
Chengming Zhou (1):
crypto: scomp - fix req->dst buffer overflow
Chih-Kang Chang (1):
wifi: rtw88: fix RX filter in FIF_ALLMULTI flag
Christian A. Ehrhardt (1):
of: Fix double free in of_parse_phandle_with_args_map
Christoph Niedermaier (1):
serial: imx: Correct clock error message in function probe()
Christophe JAILLET (4):
firmware: ti_sci: Fix an off-by-one in ti_sci_debugfs_create()
MIPS: Alchemy: Fix an out-of-bound access in db1200_dev_setup()
MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup()
kdb: Fix a potential buffer overflow in kdb_local()
Claudiu Beznea (1):
net: phy: micrel: populate .soft_reset for KSZ9131
Colin Ian King (2):
x86/lib: Fix overflow when counting digits
rtlwifi: rtl8192de: make arrays static const, makes object smaller
Curtis Klein (1):
watchdog: set cdev owner before adding
Dan Carpenter (1):
media: dvbdev: drop refcount on error path in dvb_device_open()
Daniel Thompson (1):
kdb: Censor attempts to set PROMPT without ENABLE_MEM_READ
Dario Binacchi (1):
drm/bridge: Fix typo in post_disable() description
Dave Airlie (1):
nouveau/tu102: flush all pdbs on vmm flush
David Lin (2):
ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16
wifi: mwifiex: configure BSSID consistently when starting AP
David Rau (1):
ASoC: da7219: Support low DC impedance headset
Dinghao Liu (1):
crypto: ccp - fix memleak in ccp_init_dm_workarea
Dmitry Baryshkov (3):
ARM: dts: qcom: apq8064: correct XOADC register address drm/msm/mdp4: flush vblank event on disable drm/drv: propagate errors from drm_modeset_register_all()
Eric Biggers (1):
f2fs: explicitly null-terminate the xattr list
Eric Dumazet (1):
ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim()
Esther Shimanovich (1):
Input: i8042 - add nomux quirk for Acer P459-G2-M
Fedor Pchelkin (2):
apparmor: avoid crash when parsed profile name is empty
ipvs: avoid stat macros calls from preemptible context
Florian Lehner (1):
bpf, lpm: Fix check prefixlen before walking trie
Florian Westphal (1):
netfilter: nf_tables: mark newset as dead on transaction abort
Francesco Dolcini (1):
Bluetooth: btmtkuart: fix recv_buf() return value
Gavrilov Ilia (1):
calipso: fix memory leak in netlbl_calipso_add_pass()
Geert Uytterhoeven (1):
of: unittest: Fix of_count_phandle_with_args() expected value message
Gonglei (Arei) (1):
crypto: virtio - Handle dataq logic with tasklet
Greg Kroah-Hartman (2):
Revert "ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek" Linux 5.4.268
Guanghui Feng (1):
uio: Fix use-after-free in uio_open
Gui-Dong Han (1):
usb: mon: Fix atomicity violation in mon_bin_vma_fault
Hangbin Liu (1):
selftests/net: fix grep checking for fib_nexthop_multiprefix
Hans de Goede (3):
Input: atkbd - skip ATKBD_CMD_GETID in translated mode
ACPI: resource: Add another DMI match for the TongFang GMxXGxx
Input: atkbd - use ab83 as id when skipping the getid command
Heikki Krogerus (1):
Revert "usb: typec: class: fix typec_altmode_put_partner to put plugs"
Heiko Carstens (1):
tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug
Herbert Xu (1):
crypto: af_alg - Disallow multiple in-flight AIO requests
Ian Rogers (1):
perf env: Avoid recursively taking env->bpf_progs.lock
Ilpo Järvinen (2):
wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code
wifi: rtlwifi: Convert LNKCTL change to PCIe cap RMW accessors
Inki Dae (1):
drm/exynos: fix a wrong error checking
James Clark (1):
coresight: etm4x: Fix width of CCITMIN field
Jan Beulich (1):
xen-netback: don't produce zero-size SKB frags
Jani Nikula (1):
drm/crtc: fix uninitialized variable use
Jason Gerecke (1):
HID: wacom: Correct behavior when processing some confidence == false touches
Jay Buddhabhatti (1):
drivers: clk: zynqmp: calculate closest mux rate
Jerry Hoemann (1):
watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO
Jiri Olsa (1):
perf env: Add perf_env__numa_node()
Joakim Zhang (1):
dma-mapping: clear dev->dma_mem to NULL after freeing it
Joe Perches (1):
rtlwifi: Use ffs in <foo>_phy_calculate_bit_shift
Judy Hsiao (1):
neighbour: Don't let neigh_forced_gc() disable preemption for long
Kamil Duljas (2):
ASoC: Intel: Skylake: Fix mem leak in few functions
ASoC: Intel: Skylake: mem leak in skl register function
Keith Busch (1):
nvme: introduce helper function to get ctrl state
Kirill A. Shutemov (1):
x86/kvm: Do not try to disable kvmclock if it was not enabled
Konrad Dybcio (1):
drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
Krzysztof Kozlowski (2):
reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning
arm64: dts: qcom: sdm845-db845c: correct LED panic indicator
Kunwu Chan (5):
powerpc/powernv: Add a null pointer check to scom_debug_init_one() powerpc/powernv: Add a null pointer check in opal_event_init() powerpc/powernv: Add a null pointer check in opal_powercap_init() powerpc/imc-pmu: Add a null pointer check in update_events_in_group()
net: dsa: vsc73xx: Add null pointer check to vsc73xx_gpio_probe
Laurent Dufour (1):
powerpc/pseries/memhotplug: Quieten some DLPAR operations
Leon Romanovsky (1):
RDMA/usnic: Silence uninitialized symbol smatch warnings
Lin Ma (1):
net: qualcomm: rmnet: fix global oob in rmnet_policy
Linus Walleij (2):
ASoC: cs35l33: Fix GPIO name and drop legacy include
ASoC: cs35l34: Fix GPIO name and drop legacy include
Luca Weiss (1):
Input: xpad - add Razer Wolverine V2 support
Luiz Augusto von Dentz (1):
Bluetooth: Fix bogus check for re-auth no supported with non-ssp
Maciej Strozek (2):
ASoC: cs43130: Fix the position of const qualifier
ASoC: cs43130: Fix incorrect frame delay configuration
Marek Szyprowski (2):
i2c: s3c24xx: fix read transfers in polling mode
i2c: s3c24xx: fix transferring more than one message in polling mode
Masahiro Yamada (1):
powerpc: add crtsavres.o to always-y instead of extra-y
Matthew Wilcox (Oracle) (1):
ida: Fix crash in ida_free when the bitmap is empty
Maurizio Lombardi (3):
nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length
nvmet-tcp: fix a crash in nvmet_req_complete()
nvmet-tcp: Fix the H2C expected PDU len calculation
Michael Ellerman (1):
selftests/powerpc: Fix error handling in FPU/VMX preemption tests
Mickaël Salaün (1):
selinux: Fix error priority for bind with AF_UNSPEC on PF_INET6 socket
Nam Cao (1):
fbdev: flush deferred work in fb_deferred_io_fsync()
Namhyung Kim (1):
perf genelf: Set ELF program header addresses properly
Nathan Lynch (1):
powerpc/pseries/memhp: Fix access beyond end of drmem array
Nikita Kiryushin (2):
ACPI: video: check for error while searching for backlight device parent
ACPI: LPIT: Avoid u32 multiplication overflow
Nikita Yushchenko (1):
net: ravb: Fix dma_addr_t truncation in error case
Nikita Zhandarovich (3):
drm/radeon/r600_cs: Fix possible int overflows in r600_cs_check_reg() drm/radeon/r100: Fix integer overflow issues in r100_cs_track_check() drm/radeon: check return value of radeon_ring_lock()
Niklas Schnelle (1):
s390/pci: fix max size calculation in zpci_memcpy_toio()
Osama Muhammad (1):
gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump
Ovidiu Panait (9):
crypto: sahara - remove FLAGS_NEW_KEY logic
crypto: sahara - fix ahash selftest failure
crypto: sahara - fix processing requests with cryptlen < sg->length
crypto: sahara - fix error handling in sahara_hw_descriptor_create()
crypto: sahara - fix ahash reqsize
crypto: sahara - fix wait_for_completion_timeout() error handling
crypto: sahara - improve error handling in sahara_sha_process()
crypto: sahara - fix processing hash requests with req->nbytes < sg->length
crypto: sahara - do not resize req->src when doing hash operations
Pablo Neira Ayuso (1):
netfilter: nf_tables: skip dead set elements in netlink dump
Peter Delevoryas (1):
net/ncsi: Fix netlink major/minor version numbers
Peter Robinson (1):
mmc: sdhci_omap: Fix TI SoC dependencies
RD Babiera (1):
usb: typec: class: fix typec_altmode_put_partner to put plugs
Ram Muthiah (1):
crypto: virtio - don't use 'default m'
Randy Dunlap (1):
powerpc/44x: select I2C for CURRITUCK
Ricardo B. Marliere (1):
media: pvrusb2: fix use after free on context disconnection
Ronald Monthero (1):
mtd: rawnand: Increment IFC_TIMEOUT_MSECS for nand controller response
Sakari Ailus (2):
acpi: property: Let args be NULL in __acpi_node_get_property_reference software node: Let args be NULL in software_node_get_reference_args
Serge Semin (1):
mips: Fix incorrect max_low_pfn adjustment
Sergey Shtylyov (1):
pstore: ram_core: fix possible overflow in persistent_ram_init_ecc()
Shuming Fan (1):
ASoC: rt5650: add mutex to avoid the jack detection failure
Siddharth Vadapalli (1):
PCI: keystone: Fix race condition when initializing PHYs
Sjoerd Simons (1):
arm64: dts: armada-3720-turris-mox: set irq type for RTC
Stefan Berger (1):
rootfs: Fix support for rootfstype= when root= is given
Stefan Wahren (2):
ARM: sun9i: smp: fix return code check of of_property_match_string
watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling
Steven Rostedt (Google) (3):
tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing
tracing: Add size check when printing trace_marker output
ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI
Su Hui (10):
wifi: rtlwifi: rtl8821ae: phy: fix an undefined bitwise shift behavior
wifi: rtlwifi: add calculate_bit_shift()
wifi: rtlwifi: rtl8188ee: phy: using calculate_bit_shift()
wifi: rtlwifi: rtl8192c: using calculate_bit_shift()
wifi: rtlwifi: rtl8192cu: using calculate_bit_shift()
wifi: rtlwifi: rtl8192ce: using calculate_bit_shift()
wifi: rtlwifi: rtl8192de: using calculate_bit_shift()
wifi: rtlwifi: rtl8192ee: using calculate_bit_shift()
wifi: rtlwifi: rtl8192se: using calculate_bit_shift()
clk: si5341: fix an error code problem in si5341_output_clk_set_rate
Takashi Iwai (1):
ALSA: oxygen: Fix right channel of capture volume mixer
Thinh Nguyen (2):
Revert "usb: dwc3: Soft reset phy on probe for host"
Revert "usb: dwc3: don't reset device side if dwc3 was configured as host-only"
Thinh Tran (1):
net/tg3: fix race condition in tg3_reset_task()
Tiezhu Yang (1):
perf top: Skip side-band event setup if HAVE_LIBBPF_SUPPORT is not set
Tomi Valkeinen (1):
drm/bridge: tc358767: Fix return value on error case
Trond Myklebust (1):
NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT
Uttkarsh Aggarwal (1):
usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart
Uwe Kleine-König (1):
serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed
Vasiliy Kovalev (1):
ALSA: hda - Fix speaker and headset mic pin config for CHUWI CoreBook XPro
Vineet Gupta (1):
ARC: fix spare error
Vineeth Vijayan (1):
s390/scm: fix virtual vs physical address confusion
Weihao Li (1):
clk: rockchip: rk3128: Fix HCLK_OTG gate register
Wolfram Sang (1):
spi: sh-msiof: Enforce fixed DTDL for R-Car H3
Xiang Yang (1):
drm/exynos: fix a potential error pointer dereference
Xu Yang (2):
usb: phy: mxs: remove CONFIG_USB_OTG condition for mxs_phy_is_otg_host()
usb: chipidea: wait controller resume finished for wakeup irq
Yang Yingliang (1):
drm/radeon: check the alloc_workqueue return value in radeon_crtc_init()
Yihang Li (1):
scsi: hisi_sas: Replace with standard error code return value
Zhang Yi (1):
jbd2: correct the printing of write_flags in jbd2_write_superblock()
ZhaoLong Wang (1):
mtd: Fix gluebi NULL pointer dereference caused by ftl notifier
Zheng Yejian (1):
netlabel: remove unused parameter in netlbl_netlink_auditinfo()
Zhipeng Lu (6):
drm/radeon/dpm: fix a memleak in sumo_parse_power_table drm/radeon/trinity_dpm: fix a memleak in trinity_parse_power_table
media: cx231xx: fix a memleak in cx231xx_init_isoc drm/amd/pm: fix a double-free in si_dpm_init drivers/amd/pm: fix a use-after-free in kv_parse_power_table gpu/drm/radeon: fix two memleaks in radeon_vm_init
Ziqi Zhao (1):
drm/crtc: Fix uninit-value bug in drm_mode_setcrtc
wangyangxin (1):
crypto: virtio - Wait for tasklet to complete on device remove
zhenwei pi (1):
virtio_crypto: Introduce VIRTIO_CRYPTO_NOSPC
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 267 +SUBLEVEL = 268 EXTRAVERSION = NAME = Kleptomaniac Octopus
arch/arc/kernel/signal.c +3 -3
@@ -61,7 +61,7 @@ struct rt_sigframe {unsigned int sigret_magic; }; -static int save_arcv2_regs (struct sigcontext *mctx,struct pt_regs *regs) +static int save_arcv2_regs (struct sigcontext __user *mctx,struct pt_regs *regs) {int err =0 ;#ifndef CONFIG_ISA_ARCOMPACT
@@ -74,12 +74,12 @@ static int save_arcv2_regs(struct sigcontext *mctx, struct pt_regs *regs)#else v2abi.r58 = v2abi.r59 =0 ;#endif - err =__copy_to_user (&mctx->v2abi, &v2abi,sizeof (v2abi)); + err =__copy_to_user (&mctx->v2abi, (void const *)&v2abi,sizeof (v2abi));#endif return err; } -static int restore_arcv2_regs (struct sigcontext *mctx,struct pt_regs *regs) +static int restore_arcv2_regs (struct sigcontext __user *mctx,struct pt_regs *regs) {int err =0 ;#ifndef CONFIG_ISA_ARCOMPACT
arch/arm/boot/dts/qcom-apq8064.dtsi +1 -1
@@ -759,7 +759,7 @@ xoadc: xoadc@197 { compatible = "qcom,pm8921-adc"; - reg = <197>; + reg = <0x197>; interrupts-extended = <&pmicintc 78 IRQ_TYPE_EDGE_RISING>; #address-cells = <2>; #size-cells = <0>;
arch/arm/mach-davinci/Kconfig +1 -0
@@ -3,6 +3,7 @@ menuconfig ARCH_DAVINCI bool "TI DaVinci" depends on ARCH_MULTI_V5 + select CPU_ARM926T select DAVINCI_TIMER select ZONE_DMA select PM_GENERIC_DOMAINS if PM
arch/arm/mach-sunxi/mc_smp.c +2 -2
@@ -804,12 +804,12 @@ static int __init sunxi_mc_smp_init(void)for (i =0 ; i <ARRAY_SIZE (sunxi_mc_smp_data); i++) { ret =of_property_match_string (node,"enable-method" , sunxi_mc_smp_data[i].enable_method); -if (!ret) +if (ret >=0 )break ; }of_node_put (node); -if (ret) +if (ret <0 )return -ENODEV ; is_a83t = sunxi_mc_smp_data[i].is_a83t;
arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts +1 -1
@@ -127,7 +127,7 @@ compatible = "microchip,mcp7940x"; reg = <0x6f>; interrupt-parent = <&gpiosb>; - interrupts = <5 0>; /* GPIO2_5 */ + interrupts = <5 IRQ_TYPE_EDGE_FALLING>; /* GPIO2_5 */ }; };
arch/arm64/boot/dts/qcom/sdm845-db845c.dts +1 -1
@@ -53,8 +53,8 @@ user4 { label = "green:user4"; gpios = <&pm8998_gpio 13 GPIO_ACTIVE_HIGH>; - linux,default-trigger = "panic-indicator"; default-state = "off"; + panic-indicator; }; wlan {
arch/mips/alchemy/devboards/db1200.c +1 -1
@@ -847,7 +847,7 @@ int __init db1200_dev_setup(void)i2c_register_board_info (0 , db1200_i2c_devs,ARRAY_SIZE (db1200_i2c_devs));spi_register_board_info (db1200_spi_devs, -ARRAY_SIZE (db1200_i2c_devs)); +ARRAY_SIZE (db1200_spi_devs));/* SWITCHES: S6.8 I2C/SPI selector (OFF=I2C ON=SPI) * S6.7 AC97/I2S selector (OFF=AC97 ON=I2S)
arch/mips/alchemy/devboards/db1550.c +1 -1
@@ -588,7 +588,7 @@ int __init db1550_dev_setup(void)i2c_register_board_info (0 , db1550_i2c_devs,ARRAY_SIZE (db1550_i2c_devs));spi_register_board_info (db1550_spi_devs, -ARRAY_SIZE (db1550_i2c_devs)); +ARRAY_SIZE (db1550_spi_devs)); c =clk_get (NULL ,"psc0_intclk" );if (!IS_ERR (c)) {
arch/mips/kernel/setup.c +2 -2
@@ -362,11 +362,11 @@ static void __init bootmem_init(void)panic ("Incorrect memory mapping !!!" );if (max_pfn >PFN_DOWN (HIGHMEM_START )) { + max_low_pfn =PFN_DOWN (HIGHMEM_START );#ifdef CONFIG_HIGHMEM - highstart_pfn =PFN_DOWN (HIGHMEM_START ); + highstart_pfn = max_low_pfn; highend_pfn = max_pfn;#else - max_low_pfn =PFN_DOWN (HIGHMEM_START ); max_pfn = max_low_pfn;#endif }
arch/powerpc/lib/Makefile +1 -1
@@ -35,7 +35,7 @@ obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o # so it is only needed for modules, and only for older linkers which # do not support --save-restore-funcs ifeq ($(call ld-ifversion, -lt, 225000000, y),y) -extra-$(CONFIG_PPC64) += crtsavres.o +always-$(CONFIG_PPC64) += crtsavres.o endif obj-$(CONFIG_PPC_BOOK3S_64) += copyuser_power7.o copypage_power7.o \
arch/powerpc/perf/imc-pmu.c +6 -0
@@ -292,6 +292,8 @@ static int update_events_in_group(struct device_node *node, struct imc_pmu *pmu) attr_group->attrs = attrs; do { ev_val_str = kasprintf(GFP_KERNEL, "event=0x%x", pmu->events[i].value); + if (!ev_val_str) + continue; dev_str = device_str_attr_create(pmu->events[i].name, ev_val_str); if (!dev_str) continue;
@@ -299,6 +301,8 @@ static int update_events_in_group(struct device_node *node, struct imc_pmu *pmu) attrs[j++] = dev_str;if (pmu->events[i].scale) { ev_scale_str =kasprintf (GFP_KERNEL ,"%s.scale" , pmu->events[i].name); +if (!ev_scale_str) +continue ; dev_str =device_str_attr_create (ev_scale_str, pmu->events[i].scale);if (!dev_str)continue ;
@@ -308,6 +312,8 @@ static int update_events_in_group(struct device_node *node, struct imc_pmu *pmu)if (pmu->events[i].unit) { ev_unit_str =kasprintf (GFP_KERNEL ,"%s.unit" , pmu->events[i].name); +if (!ev_unit_str) +continue ; dev_str =device_str_attr_create (ev_unit_str, pmu->events[i].unit);if (!dev_str)continue ;
arch/powerpc/platforms/44x/Kconfig +1 -0
@@ -178,6 +178,7 @@ config ISS4xx config CURRITUCK bool "IBM Currituck (476fpe) Support" depends on PPC_47x + select I2C select SWIOTLB select 476FPE select FORCE_PCI
arch/powerpc/platforms/powernv/opal-irqchip.c +2 -0
@@ -278,6 +278,8 @@ int __init opal_event_init(void)else name =kasprintf (GFP_KERNEL ,"opal" ); +if (!name) +continue ;/* Install interrupt handler */ rc =request_irq (r->start, opal_interrupt, r->flags &IRQD_TRIGGER_MASK , name,NULL );
arch/powerpc/platforms/powernv/opal-powercap.c +6 -0
@@ -196,6 +196,12 @@ void __init opal_powercap_init(void) j =0 ; pcaps[i].pg.name =kasprintf (GFP_KERNEL ,"%pOFn" , node); +if (!pcaps[i].pg.name) { +kfree (pcaps[i].pattrs); +kfree (pcaps[i].pg.attrs); + goto out_pcaps_pattrs; + } +if (has_min) {powercap_add_attr (min,"powercap-min" , &pcaps[i].pattrs[j]);
arch/powerpc/platforms/powernv/opal-xscom.c +5 -0
@@ -165,6 +165,11 @@ static int scom_debug_init_one(struct dentry *root, struct device_node *dn, ent->chip = chip;snprintf (ent->name,16 ,"%08x" , chip); ent->path.data = (void *)kasprintf (GFP_KERNEL ,"%pOF" , dn); +if (!ent->path.data) { +kfree (ent); +return -ENOMEM ; + } + ent->path.size =strlen ((char *)ent->path.data); dir =debugfs_create_dir (ent->name, root);
arch/powerpc/platforms/pseries/hotplug-memory.c +11 -10
@@ -496,7 +496,7 @@ static int dlpar_memory_remove_by_index(u32 drc_index)int lmb_found;int rc; -pr_info ("Attempting to hot-remove LMB, drc index %x\n" , drc_index); +pr_debug ("Attempting to hot-remove LMB, drc index %x\n" , drc_index); lmb_found =0 ;for_each_drmem_lmb (lmb) {
@@ -510,14 +510,15 @@ static int dlpar_memory_remove_by_index(u32 drc_index) } } -if (!lmb_found) +if (!lmb_found) { +pr_debug ("Failed to look up LMB for drc index %x\n" , drc_index); rc = -EINVAL ; - -if (rc) -pr_info ("Failed to hot-remove memory at %llx\n" , - lmb->base_addr); -else -pr_info ("Memory at %llx was hot-removed\n" , lmb->base_addr); + }else if (rc) { +pr_debug ("Failed to hot-remove memory at %llx\n" , + lmb->base_addr); + }else { +pr_debug ("Memory at %llx was hot-removed\n" , lmb->base_addr); + }return rc; }
@@ -770,8 +771,8 @@ static int dlpar_memory_add_by_count(u32 lmbs_to_add)if (!drmem_lmb_reserved (lmb))continue ; -pr_info ("Memory at %llx (drc index %x) was hot-added\n" , - lmb->base_addr, lmb->drc_index); +pr_debug ("Memory at %llx (drc index %x) was hot-added\n" , + lmb->base_addr, lmb->drc_index);drmem_remove_lmb_reservation (lmb); } rc =0 ;
arch/s390/include/asm/pci_io.h +18 -14
@@ -11,6 +11,8 @@/* I/O size constraints */ #define ZPCI_MAX_READ_SIZE 8#define ZPCI_MAX_WRITE_SIZE 128 +#define ZPCI_BOUNDARY_SIZE (1 << 12) +#define ZPCI_BOUNDARY_MASK (ZPCI_BOUNDARY_SIZE - 1)/* I/O Map */ #define ZPCI_IOMAP_SHIFT 48
@@ -125,16 +127,18 @@ static inline int zpci_read_single(void *dst, const volatile void __iomem *src,int zpci_write_block (volatile void __iomem *dst,const void *src,unsigned long len); -static inline u8 zpci_get_max_write_size (u64 src,u64 dst,int len,int max) +static inline int zpci_get_max_io_size (u64 src,u64 dst,int len,int max) { -int count = len > max ? max : len, size =1 ; +int offset = dst &ZPCI_BOUNDARY_MASK ; +int size; -while (!(src &0x1 ) && !(dst &0x1 ) && ((size <<1 ) <= count)) { - dst = dst >>1 ; - src = src >>1 ; - size = size <<1 ; - } -return size; + size =min3 (len,ZPCI_BOUNDARY_SIZE - offset, max); +if (IS_ALIGNED (src,8 ) &&IS_ALIGNED (dst,8 ) &&IS_ALIGNED (size,8 )) +return size; + +if (size >=8 ) +return 8 ; +return rounddown_pow_of_two (size); } static inline int zpci_memcpy_fromio(void *dst,
@@ -144,9 +148,9 @@ static inline int zpci_memcpy_fromio(void *dst,int size, rc =0 ;while (n >0 ) { - size =zpci_get_max_write_size ((u64 __force ) src, - (u64 ) dst, n, -ZPCI_MAX_READ_SIZE ); + size =zpci_get_max_io_size ((u64 __force ) src, + (u64 ) dst, n, +ZPCI_MAX_READ_SIZE ); rc =zpci_read_single (dst, src, size);if (rc)break ;
@@ -166,9 +170,9 @@ static inline int zpci_memcpy_toio(volatile void __iomem *dst,return -EINVAL ;while (n >0 ) { - size =zpci_get_max_write_size ((u64 __force ) dst, - (u64 ) src, n, -ZPCI_MAX_WRITE_SIZE ); + size =zpci_get_max_io_size ((u64 __force ) dst, + (u64 ) src, n, +ZPCI_MAX_WRITE_SIZE );if (size >8 )/* main path */ rc =zpci_write_block (dst, src, size);else
arch/s390/pci/pci_mmio.c +6 -6
@@ -100,9 +100,9 @@ static inline int __memcpy_toio_inuser(void __iomem *dst, old_fs =enable_sacf_uaccess ();while (n >0 ) { - size =zpci_get_max_write_size ((u64 __force ) dst, - (u64 __force ) src, n, -ZPCI_MAX_WRITE_SIZE ); + size =zpci_get_max_io_size ((u64 __force ) dst, + (u64 __force ) src, n, +ZPCI_MAX_WRITE_SIZE );if (size >8 )/* main path */ rc =__pcistb_mio_inuser (dst, src, size, &status);else
@@ -250,9 +250,9 @@ static inline int __memcpy_fromio_inuser(void __user *dst, old_fs =enable_sacf_uaccess ();while (n >0 ) { - size =zpci_get_max_write_size ((u64 __force ) src, - (u64 __force ) dst, n, -ZPCI_MAX_READ_SIZE ); + size =zpci_get_max_io_size ((u64 __force ) src, + (u64 __force ) dst, n, +ZPCI_MAX_READ_SIZE ); rc =__pcilg_mio_inuser (dst, src, size, &status);if (rc)break ;
arch/x86/kernel/kvmclock.c +8 -4
@@ -24,8 +24,8 @@static int kvmclock__initdata =1 ;static int kvmclock_vsyscall__initdata =1 ; -static int msr_kvm_system_time__ro_after_init =MSR_KVM_SYSTEM_TIME ; -static int msr_kvm_wall_clock__ro_after_init =MSR_KVM_WALL_CLOCK ; +static int msr_kvm_system_time__ro_after_init ; +static int msr_kvm_wall_clock__ro_after_init ;static u64 kvm_sched_clock_offset__ro_after_init ;static int __init parse_no_kvmclock (char *arg)
@@ -189,7 +189,8 @@ static void kvm_setup_secondary_clock(void)void kvmclock_disable (void ) { -native_write_msr (msr_kvm_system_time,0 ,0 ); +if (msr_kvm_system_time) +native_write_msr (msr_kvm_system_time,0 ,0 ); }static void __init kvmclock_init_mem (void )
@@ -286,7 +287,10 @@ void __init kvmclock_init(void)if (kvm_para_has_feature (KVM_FEATURE_CLOCKSOURCE2 )) { msr_kvm_system_time =MSR_KVM_SYSTEM_TIME_NEW ; msr_kvm_wall_clock =MSR_KVM_WALL_CLOCK_NEW ; - }else if (!kvm_para_has_feature (KVM_FEATURE_CLOCKSOURCE )) { + }else if (kvm_para_has_feature (KVM_FEATURE_CLOCKSOURCE )) { + msr_kvm_system_time =MSR_KVM_SYSTEM_TIME ; + msr_kvm_wall_clock =MSR_KVM_WALL_CLOCK ; + }else {return ; }
arch/x86/lib/misc.c +1 -1
@@ -6,7 +6,7 @@*/ int num_digits (int val) { -int m =10 ; +long long m =10 ;int d =1 ;if (val <0 ) {
crypto/af_alg.c +13 -1
@@ -1029,9 +1029,13 @@ EXPORT_SYMBOL_GPL(af_alg_sendpage);void af_alg_free_resources (struct af_alg_async_req *areq) {struct sock *sk = areq->sk; +struct af_alg_ctx *ctx;af_alg_free_areq_sgls (areq);sock_kfree_s (sk, areq, areq->areqlen); + + ctx =alg_sk (sk)->private; + ctx->inflight = false; }EXPORT_SYMBOL_GPL (af_alg_free_resources);
@@ -1095,11 +1099,19 @@ EXPORT_SYMBOL_GPL(af_alg_poll);struct af_alg_async_req *af_alg_alloc_areq (struct sock *sk,unsigned int areqlen) { -struct af_alg_async_req *areq =sock_kmalloc (sk, areqlen,GFP_KERNEL ); +struct af_alg_ctx *ctx =alg_sk (sk)->private; +struct af_alg_async_req *areq; + +/* Only one AIO request can be in flight. */ +if (ctx->inflight) +return ERR_PTR (-EBUSY ); + areq =sock_kmalloc (sk, areqlen,GFP_KERNEL );if (unlikely (!areq))return ERR_PTR (-ENOMEM ); + ctx->inflight = true; + areq->areqlen = areqlen; areq->sk = sk; areq->last_rsgl =NULL ;
crypto/scompress.c +6 -0
@@ -124,6 +124,7 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)struct crypto_scomp *scomp = *tfm_ctx;void **ctx =acomp_request_ctx (req);struct scomp_scratch *scratch; +unsigned int dlen;int ret;if (!req->src || !req->slen || req->slen >SCOMP_SCRATCH_SIZE )
@@ -135,6 +136,8 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)if (!req->dlen || req->dlen >SCOMP_SCRATCH_SIZE ) req->dlen =SCOMP_SCRATCH_SIZE ; + dlen = req->dlen; + scratch =raw_cpu_ptr (&scomp_scratch);spin_lock (&scratch->lock);
@@ -152,6 +155,9 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir) ret = -ENOMEM ; goto out; } + }else if (req->dlen > dlen) { + ret = -ENOSPC ; + goto out; }scatterwalk_map_and_copy (scratch->dst, req->dst,0 , req->dlen,1 );
drivers/acpi/acpi_lpit.c +1 -1
@@ -98,7 +98,7 @@ static void lpit_update_residency(struct lpit_residency_info *info, struct acpi_lpit_native *lpit_native) { info->frequency = lpit_native->counter_frequency ? - lpit_native->counter_frequency : tsc_khz *1000 ; + lpit_native->counter_frequency :mul_u32_u32 (tsc_khz,1000U );if (!info->frequency) info->frequency =1 ;
drivers/acpi/acpi_video.c +6 -6
@@ -1784,12 +1784,12 @@ static void acpi_video_dev_register_backlight(struct acpi_video_device *device)return ; count++; -acpi_get_parent (device->dev->handle, &acpi_parent); - - pdev =acpi_get_pci_dev (acpi_parent); -if (pdev) { - parent = &pdev->dev; -pci_dev_put (pdev); +if (ACPI_SUCCESS (acpi_get_parent (device->dev->handle, &acpi_parent))) { + pdev =acpi_get_pci_dev (acpi_parent); +if (pdev) { + parent = &pdev->dev; +pci_dev_put (pdev); + } }memset (&props,0 ,sizeof (struct backlight_properties ));
drivers/acpi/property.c +4 -0
@@ -646,6 +646,7 @@ acpi_fwnode_get_named_child_node(const struct fwnode_handle *fwnode,* @index: Index of the reference to return * @num_args: Maximum number of arguments after each reference * @args: Location to store the returned reference with optional arguments +* (may be NULL) * * Find property with @name, verifify that it is a package containing at least * one object reference and if so, store the ACPI device object pointer to the
@@ -704,6 +705,9 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode,if (ret)return ret == -ENODEV ? -EINVAL : ret; +if (!args) +return 0 ; + args->fwnode =acpi_fwnode_handle (device); args->nargs =0 ;return 0 ;
drivers/acpi/resource.c +7 -0
@@ -455,6 +455,13 @@ static const struct dmi_system_id asus_laptop[] = { DMI_MATCH(DMI_BOARD_NAME, "B1402CVA"), }, }, + { +/* TongFang GMxXGxx sold as Eluktronics Inc. RP-15 */ + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"Eluktronics Inc." ), + DMI_MATCH(DMI_BOARD_NAME, "RP-15"), + }, + }, {/* TongFang GM6XGxX/TUXEDO Stellaris 16 Gen5 AMD */ .matches = {
drivers/android/binder.c +1 -1
@@ -5177,7 +5177,7 @@ static __poll_t binder_poll(struct file *filp, thread =binder_get_thread (proc);if (!thread) -return POLLERR ; +return EPOLLERR ;binder_inner_proc_lock (thread->proc); thread->looper |=BINDER_LOOPER_STATE_POLL ;
drivers/android/binder_alloc.c +16 -13
@@ -272,7 +272,7 @@ static int binder_update_page_range(struct binder_alloc *alloc, int allocate, }if (mm) {up_write (&mm->mmap_sem); -mmput (mm); +mmput_async (mm); }return 0 ;
@@ -305,7 +305,7 @@ static int binder_update_page_range(struct binder_alloc *alloc, int allocate, err_no_vma:if (mm) {up_write (&mm->mmap_sem); -mmput (mm); +mmput_async (mm); }return vma ? -ENOMEM : -ESRCH ; }
@@ -378,17 +378,17 @@ static struct binder_buffer *binder_alloc_new_buf_locked( alloc->pid, extra_buffers_size);return ERR_PTR (-EINVAL ); } -if (is_async && - alloc->free_async_space < size +sizeof (struct binder_buffer )) { + +/* Pad 0-size buffers so they get assigned unique addresses */ + size =max (size,sizeof (void *)); + +if (is_async && alloc->free_async_space < size) {binder_alloc_debug (BINDER_DEBUG_BUFFER_ALLOC ,"%d: binder_alloc_buf size %zd failed, no async space left\n" , alloc->pid, size);return ERR_PTR (-ENOSPC ); } -/* Pad 0-size buffers so they get assigned unique addresses */ - size =max (size,sizeof (void *)); -while (n) { buffer = rb_entry(n, struct binder_buffer, rb_node);BUG_ON (!buffer->free);
@@ -488,7 +488,7 @@ static struct binder_buffer *binder_alloc_new_buf_locked( buffer->async_transaction = is_async; buffer->extra_buffers_size = extra_buffers_size;if (is_async) { - alloc->free_async_space -= size +sizeof (struct binder_buffer ); + alloc->free_async_space -= size;binder_alloc_debug (BINDER_DEBUG_BUFFER_ALLOC_ASYNC ,"%d: binder_alloc_buf size %zd async free %zd\n" , alloc->pid, size, alloc->free_async_space);
@@ -515,7 +515,7 @@ static struct binder_buffer *binder_alloc_new_buf_locked(* is the sum of the three given sizes (each rounded up to * pointer-sized boundary) * -* Return: The allocated buffer or %NULL if error +* Return: The allocated buffer or %ERR_PTR(-errno) if error */ struct binder_buffer *binder_alloc_new_buf(struct binder_alloc *alloc, size_t data_size,
@@ -613,8 +613,7 @@ static void binder_free_buf_locked(struct binder_alloc *alloc,BUG_ON (buffer->user_data > alloc->buffer + alloc->buffer_size);if (buffer->async_transaction) { - alloc->free_async_space += buffer_size +sizeof (struct binder_buffer ); - + alloc->free_async_space += buffer_size;binder_alloc_debug (BINDER_DEBUG_BUFFER_ALLOC_ASYNC ,"%d: binder_free_buf size %zd async free %zd\n" , alloc->pid, size, alloc->free_async_space);
@@ -662,7 +661,7 @@ void binder_alloc_free_buf(struct binder_alloc *alloc,/* * We could eliminate the call to binder_alloc_clear_buf() * from binder_alloc_deferred_release() by moving this to -* binder_alloc_free_buf_locked(). However, that could +* binder_free_buf_locked(). However, that could * increase contention for the alloc mutex if clear_on_free * is used frequently for large buffers. The mutex is not * needed for correctness here.
@@ -953,7 +952,9 @@ enum lru_status binder_alloc_free_page(struct list_head *item, goto err_mmget;if (!down_read_trylock (&mm->mmap_sem)) goto err_down_read_mmap_sem_failed; - vma =binder_alloc_get_vma (alloc); + vma =find_vma (mm, page_addr); +if (vma && vma !=binder_alloc_get_vma (alloc)) + goto err_invalid_vma;list_lru_isolate (lru, item);spin_unlock (lock);
@@ -979,6 +980,8 @@ enum lru_status binder_alloc_free_page(struct list_head *item,mutex_unlock (&alloc->mutex);return LRU_REMOVED_RETRY ; +err_invalid_vma: +up_read (&mm->mmap_sem); err_down_read_mmap_sem_failed:mmput_async (mm); err_mmget:
drivers/base/swnode.c +3 -0
@@ -604,6 +604,9 @@ software_node_get_reference_args(const struct fwnode_handle *fwnode,if (nargs >NR_FWNODE_REFERENCE_ARGS )return -EINVAL ; +if (!args) +return 0 ; + args->fwnode =software_node_get (refnode); args->nargs = nargs;
drivers/bluetooth/btmtkuart.c +3 -8
@@ -471,7 +471,7 @@ mtk_stp_split(struct btmtkuart_dev *bdev, const unsigned char *data, int count,return data; } -static int btmtkuart_recv (struct hci_dev *hdev,const u8 *data,size_t count) +static void btmtkuart_recv (struct hci_dev *hdev,const u8 *data,size_t count) {struct btmtkuart_dev *bdev =hci_get_drvdata (hdev);const unsigned char *p_left = data, *p_h4;
@@ -510,25 +510,20 @@ static int btmtkuart_recv(struct hci_dev *hdev, const u8 *data, size_t count)bt_dev_err (bdev->hdev,"Frame reassembly failed (%d)" , err); bdev->rx_skb =NULL ; -return err; +return ; } sz_left -= sz_h4; p_left += sz_h4; } - -return 0 ; }static int btmtkuart_receive_buf (struct serdev_device *serdev,const u8 *data,size_t count) {struct btmtkuart_dev *bdev =serdev_device_get_drvdata (serdev); -int err; - err =btmtkuart_recv (bdev->hdev, data, count); -if (err <0 ) -return err; +btmtkuart_recv (bdev->hdev, data, count); bdev->hdev->stat.byte_rx += count;
drivers/clk/clk-si5341.c +1 -3
@@ -732,10 +732,8 @@ static int si5341_output_clk_set_rate(struct clk_hw *hw, unsigned long rate, r[0 ] = r_div ? (r_div &0xff ) :1 ; r[1 ] = (r_div >>8 ) &0xff ; r[2 ] = (r_div >>16 ) &0xff ; - err =regmap_bulk_write (output->data->regmap, +return regmap_bulk_write (output->data->regmap,SI5341_OUT_R_REG (output), r,3 ); - -return 0 ; }static int si5341_output_reparent (struct clk_si5341_output *output,u8 index)
drivers/clk/rockchip/clk-rk3128.c +1 -1
@@ -489,7 +489,7 @@ static struct rockchip_clk_branch common_clk_branches[] __initdata = {GATE (HCLK_I2S_2CH ,"hclk_i2s_2ch" ,"hclk_peri" ,0 ,RK2928_CLKGATE_CON (7 ),2 ,GFLAGS ),GATE (0 ,"hclk_usb_peri" ,"hclk_peri" ,CLK_IGNORE_UNUSED ,RK2928_CLKGATE_CON (9 ),13 ,GFLAGS ),GATE (HCLK_HOST2 ,"hclk_host2" ,"hclk_peri" ,0 ,RK2928_CLKGATE_CON (7 ),3 ,GFLAGS ), -GATE (HCLK_OTG ,"hclk_otg" ,"hclk_peri" ,0 ,RK2928_CLKGATE_CON (3 ),13 ,GFLAGS ), +GATE (HCLK_OTG ,"hclk_otg" ,"hclk_peri" ,0 ,RK2928_CLKGATE_CON (5 ),13 ,GFLAGS ),GATE (0 ,"hclk_peri_ahb" ,"hclk_peri" ,CLK_IGNORE_UNUSED ,RK2928_CLKGATE_CON (9 ),14 ,GFLAGS ),GATE (HCLK_SPDIF ,"hclk_spdif" ,"hclk_peri" ,0 ,RK2928_CLKGATE_CON (10 ),9 ,GFLAGS ), GATE(HCLK_TSP, "hclk_tsp", "hclk_peri", 0, RK2928_CLKGATE_CON(10), 12, GFLAGS),
drivers/clk/zynqmp/clk-mux-zynqmp.c +1 -1
@@ -85,7 +85,7 @@ static int zynqmp_clk_mux_set_parent(struct clk_hw *hw, u8 index)static const struct clk_ops zynqmp_clk_mux_ops = { .get_parent = zynqmp_clk_mux_get_parent, .set_parent = zynqmp_clk_mux_set_parent, - .determine_rate = __clk_mux_determine_rate, + .determine_rate = __clk_mux_determine_rate_closest, };static const struct clk_ops zynqmp_clk_mux_ro_ops = {
drivers/crypto/ccp/ccp-ops.c +4 -1
@@ -178,8 +178,11 @@ static int ccp_init_dm_workarea(struct ccp_dm_workarea *wa, wa->dma.address =dma_map_single (wa->dev, wa->address, len, dir); -if (dma_mapping_error (wa->dev, wa->dma.address)) +if (dma_mapping_error (wa->dev, wa->dma.address)) { +kfree (wa->address); + wa->address =NULL ;return -ENOMEM ; + } wa->dma.length = len; }
drivers/crypto/sahara.c +49 -78
277 lines not on this page · raw message
drivers/crypto/virtio/Kconfig +0 -1
@@ -5,7 +5,6 @@ config CRYPTO_DEV_VIRTIO select CRYPTO_AEAD select CRYPTO_BLKCIPHER select CRYPTO_ENGINE - default m help This driver provides support for virtio crypto device. If you choose 'M' here, this module will be called virtio_crypto.
drivers/crypto/virtio/virtio_crypto_common.h +2 -0
@@ -10,6 +10,7 @@#include <linux/virtio.h> #include <linux/crypto.h> #include <linux/spinlock.h> +#include <linux/interrupt.h> #include <crypto/aead.h> #include <crypto/aes.h> #include <crypto/engine.h>
@@ -27,6 +28,7 @@ struct data_queue {char name[32 ];struct crypto_engine *engine; +struct tasklet_struct done_task; };struct virtio_crypto {
drivers/crypto/virtio/virtio_crypto_core.c +16 -10
@@ -22,27 +22,28 @@ virtcrypto_clear_request(struct virtio_crypto_request *vc_req) } } -static void virtcrypto_dataq_callback (struct virtqueue *vq) +static void virtcrypto_done_task (unsigned long data) { -struct virtio_crypto *vcrypto = vq->vdev->priv; +struct data_queue *data_vq = (struct data_queue *)data; +struct virtqueue *vq = data_vq->vq;struct virtio_crypto_request *vc_req; -unsigned long flags;unsigned int len; -unsigned int qid = vq->index; -spin_lock_irqsave (&vcrypto->data_vq[qid].lock, flags);do {virtqueue_disable_cb (vq);while ((vc_req =virtqueue_get_buf (vq, &len)) !=NULL ) { -spin_unlock_irqrestore ( - &vcrypto->data_vq[qid].lock, flags);if (vc_req->alg_cb) vc_req->alg_cb (vc_req, len); -spin_lock_irqsave ( - &vcrypto->data_vq[qid].lock, flags); } }while (!virtqueue_enable_cb (vq)); -spin_unlock_irqrestore (&vcrypto->data_vq[qid].lock, flags); +} + +static void virtcrypto_dataq_callback (struct virtqueue *vq) +{ +struct virtio_crypto *vcrypto = vq->vdev->priv; +struct data_queue *dq = &vcrypto->data_vq[vq->index]; + +tasklet_schedule (&dq->done_task); }static int virtcrypto_find_vqs (struct virtio_crypto *vi)
@@ -99,6 +100,8 @@ static int virtcrypto_find_vqs(struct virtio_crypto *vi) ret = -ENOMEM ; goto err_engine; } +tasklet_init (&vi->data_vq[i].done_task, virtcrypto_done_task, + (unsigned long )&vi->data_vq[i]); }kfree (names);
@@ -431,11 +434,14 @@ static void virtcrypto_free_unused_reqs(struct virtio_crypto *vcrypto)static void virtcrypto_remove (struct virtio_device *vdev) {struct virtio_crypto *vcrypto = vdev->priv; +int i;dev_info (&vdev->dev,"Start virtcrypto_remove.\n" );if (virtcrypto_dev_started (vcrypto))virtcrypto_dev_stop (vcrypto); +for (i =0 ; i < vcrypto->max_data_queues; i++) +tasklet_kill (&vcrypto->data_vq[i].done_task); vdev->config->reset (vdev);virtcrypto_free_unused_reqs (vcrypto);virtcrypto_clear_crypto_engines (vcrypto);
drivers/edac/thunderx_edac.c +5 -5
@@ -1133,7 +1133,7 @@ static irqreturn_t thunderx_ocx_com_threaded_isr(int irq, void *irq_id)decode_register (other,OCX_OTHER_SIZE , ocx_com_errors, ctx->reg_com_int); -strncat (msg, other,OCX_MESSAGE_SIZE ); +strlcat (msg, other,OCX_MESSAGE_SIZE );for (lane =0 ; lane <OCX_RX_LANES ; lane++)if (ctx->reg_com_int &BIT (lane)) {
@@ -1142,12 +1142,12 @@ static irqreturn_t thunderx_ocx_com_threaded_isr(int irq, void *irq_id) lane, ctx->reg_lane_int[lane], lane, ctx->reg_lane_stat11[lane]); -strncat (msg, other,OCX_MESSAGE_SIZE ); +strlcat (msg, other,OCX_MESSAGE_SIZE );decode_register (other,OCX_OTHER_SIZE , ocx_lane_errors, ctx->reg_lane_int[lane]); -strncat (msg, other,OCX_MESSAGE_SIZE ); +strlcat (msg, other,OCX_MESSAGE_SIZE ); }if (ctx->reg_com_int &OCX_COM_INT_CE )
@@ -1217,7 +1217,7 @@ static irqreturn_t thunderx_ocx_lnk_threaded_isr(int irq, void *irq_id)decode_register (other,OCX_OTHER_SIZE , ocx_com_link_errors, ctx->reg_com_link_int); -strncat (msg, other,OCX_MESSAGE_SIZE ); +strlcat (msg, other,OCX_MESSAGE_SIZE );if (ctx->reg_com_link_int &OCX_COM_LINK_INT_UE )edac_device_handle_ue (ocx->edac_dev,0 ,0 , msg);
@@ -1896,7 +1896,7 @@ static irqreturn_t thunderx_l2c_threaded_isr(int irq, void *irq_id)decode_register (other,L2C_OTHER_SIZE , l2_errors, ctx->reg_int); -strncat (msg, other,L2C_MESSAGE_SIZE ); +strlcat (msg, other,L2C_MESSAGE_SIZE );if (ctx->reg_int & mask_ue)edac_device_handle_ue (l2c->edac_dev,0 ,0 , msg);
drivers/firmware/ti_sci.c +5 -5
@@ -179,7 +179,7 @@ static int ti_sci_debugfs_create(struct platform_device *pdev, {struct device *dev = &pdev->dev;struct resource *res; -char debug_name[50 ] ="ti_sci_debug@" ; +char debug_name[50 ];/* Debug region is optional */ res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
@@ -196,10 +196,10 @@ static int ti_sci_debugfs_create(struct platform_device *pdev,/* Setup NULL termination */ info->debug_buffer[info->debug_region_size] =0 ; - info->d =debugfs_create_file (strncat (debug_name,dev_name (dev), -sizeof (debug_name) - -sizeof ("ti_sci_debug@" )), -0444 ,NULL , info, &ti_sci_debug_fops); +snprintf (debug_name,sizeof (debug_name),"ti_sci_debug@%s" , +dev_name (dev)); + info->d =debugfs_create_file (debug_name,0444 ,NULL , info, + &ti_sci_debug_fops);if (IS_ERR (info->d))return PTR_ERR (info->d);
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +2 -2
@@ -393,7 +393,7 @@ static ssize_t amdgpu_debugfs_regs_smc_read(struct file *f, char __user *buf,int r;if (!adev->smc_rreg) -return -EPERM ; +return -EOPNOTSUPP ;if (size &0x3 || *pos &0x3 )return -EINVAL ;
@@ -435,7 +435,7 @@ static ssize_t amdgpu_debugfs_regs_smc_write(struct file *f, const char __user *int r;if (!adev->smc_wreg) -return -EPERM ; +return -EOPNOTSUPP ;if (size &0x3 || *pos &0x3 )return -EINVAL ;
drivers/gpu/drm/amd/amdgpu/kv_dpm.c +1 -3
@@ -2733,10 +2733,8 @@ static int kv_parse_power_table(struct amdgpu_device *adev) non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *) &non_clock_info_array->nonClockInfo[non_clock_array_index]; ps =kzalloc (sizeof (struct kv_ps ),GFP_KERNEL ); -if (ps ==NULL ) { -kfree (adev->pm.dpm.ps); +if (ps ==NULL )return -ENOMEM ; - } adev->pm.dpm.ps[i].ps_priv = ps; k =0 ; idx = (u8 *)&power_state->v2.clockInfoIndex[0 ];
drivers/gpu/drm/amd/amdgpu/si_dpm.c +2 -3
@@ -7349,10 +7349,9 @@ static int si_dpm_init(struct amdgpu_device *adev)kcalloc (4 ,sizeof (struct amdgpu_clock_voltage_dependency_entry ),GFP_KERNEL ); -if (!adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) { -amdgpu_free_extended_power_table (adev); +if (!adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries)return -ENOMEM ; - } + adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.count =4 ; adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[0 ].clk =0 ; adev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries[0 ].v =0 ;
drivers/gpu/drm/bridge/tc358767.c +1 -1
@@ -1574,7 +1574,7 @@ static int tc_probe(struct i2c_client *client, const struct i2c_device_id *id) }else {if (tc->hpd_pin <0 || tc->hpd_pin >1 ) {dev_err (dev,"failed to parse HPD number\n" ); -return ret; +return -EINVAL ; } }
drivers/gpu/drm/drm_crtc.c +4 -4
@@ -535,8 +535,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,struct drm_mode_set set;uint32_t __user *set_connectors_ptr;struct drm_modeset_acquire_ctx ctx; -int ret; -int i; +int ret, i, num_connectors =0 ;if (!drm_core_check_feature (dev,DRIVER_MODESET ))return -EOPNOTSUPP ;
@@ -694,6 +693,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, connector->name); connector_set[i] = connector; + num_connectors++; } }
@@ -702,7 +702,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, set.y = crtc_req->y; set.mode = mode; set.connectors = connector_set; - set.num_connectors = crtc_req->count_connectors; + set.num_connectors = num_connectors; set.fb = fb;if (drm_drv_uses_atomic_modeset (dev))
@@ -715,7 +715,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,drm_framebuffer_put (fb);if (connector_set) { -for (i =0 ; i < crtc_req->count_connectors; i++) { +for (i =0 ; i < num_connectors; i++) {if (connector_set[i])drm_connector_put (connector_set[i]); }
drivers/gpu/drm/drm_drv.c +8 -2
@@ -984,8 +984,11 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags) goto err_minors; } -if (drm_core_check_feature (dev,DRIVER_MODESET )) -drm_modeset_register_all (dev); +if (drm_core_check_feature (dev,DRIVER_MODESET )) { + ret =drm_modeset_register_all (dev); +if (ret) + goto err_unload; + } ret =0 ;
@@ -997,6 +1000,9 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags) goto out_unlock; +err_unload: +if (dev->driver->unload) + dev->driver->unload (dev); err_minors:remove_compat_control_link (dev);drm_minor_unregister (dev,DRM_MINOR_PRIMARY );
drivers/gpu/drm/exynos/exynos_drm_dma.c +3 -5
@@ -133,18 +133,16 @@ int exynos_drm_register_dma(struct drm_device *drm, struct device *dev,return 0 ;if (!priv->mapping) { -void *mapping; +void *mapping =NULL ;if (IS_ENABLED (CONFIG_ARM_DMA_USE_IOMMU )) mapping =arm_iommu_create_mapping (&platform_bus_type,EXYNOS_DEV_ADDR_START ,EXYNOS_DEV_ADDR_SIZE );else if (IS_ENABLED (CONFIG_IOMMU_DMA )) mapping =iommu_get_domain_for_dev (priv->dma_dev); -else - mapping =ERR_PTR (-ENODEV ); -if (IS_ERR (mapping)) -return PTR_ERR (mapping); +if (!mapping) +return -ENODEV ; priv->mapping = mapping; }
drivers/gpu/drm/exynos/exynos_hdmi.c +2 -0
@@ -1850,6 +1850,8 @@ static int hdmi_bind(struct device *dev, struct device *master, void *data)return ret; crtc =exynos_drm_crtc_get_by_type (drm_dev,EXYNOS_DISPLAY_TYPE_HDMI ); +if (IS_ERR (crtc)) +return PTR_ERR (crtc); crtc->pipe_clk = &hdata->phy_clk; ret =hdmi_create_connector (encoder);
drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c +9 -0
@@ -268,6 +268,7 @@ static void mdp4_crtc_atomic_disable(struct drm_crtc *crtc, {struct mdp4_crtc *mdp4_crtc =to_mdp4_crtc (crtc);struct mdp4_kms *mdp4_kms =get_kms (crtc); +unsigned long flags;DBG ("%s" , mdp4_crtc->name);
@@ -280,6 +281,14 @@ static void mdp4_crtc_atomic_disable(struct drm_crtc *crtc,mdp_irq_unregister (&mdp4_kms->base, &mdp4_crtc->err);mdp4_disable (mdp4_kms); +if (crtc->state->event && !crtc->state->active) { +WARN_ON (mdp4_crtc->event); +spin_lock_irqsave (&mdp4_kms->dev->event_lock, flags); +drm_crtc_send_vblank_event (crtc, crtc->state->event); + crtc->state->event =NULL ; +spin_unlock_irqrestore (&mdp4_kms->dev->event_lock, flags); + } + mdp4_crtc->enabled = false; }
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c +3 -1
@@ -464,7 +464,9 @@ static int dsi_phy_enable_resource(struct msm_dsi_phy *phy)struct device *dev = &phy->pdev->dev;int ret; -pm_runtime_get_sync (dev); + ret =pm_runtime_resume_and_get (dev); +if (ret) +return ret; ret =clk_prepare_enable (phy->ahb_clk);if (ret) {
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmtu102.c +1 -1
@@ -32,7 +32,7 @@ tu102_vmm_flush(struct nvkm_vmm *vmm, int depth) type =0x00000001 ;/* PAGE_ALL */ if (atomic_read (&vmm->engref[NVKM_SUBDEV_BAR ])) - type |=0x00000004 ;/* HUB_ONLY */ + type |=0x00000006 ;/* HUB_ONLY | ALL PDB (hack) */ mutex_lock (&subdev->mutex);
drivers/gpu/drm/radeon/r100.c +2 -2
@@ -2313,7 +2313,7 @@ int r100_cs_track_check(struct radeon_device *rdev, struct r100_cs_track *track)switch (prim_walk) {case 1 :for (i =0 ; i < track->num_arrays; i++) { - size = track->arrays[i].esize * track->max_indx *4 ; + size = track->arrays[i].esize * track->max_indx *4UL ;if (track->arrays[i].robj ==NULL ) {DRM_ERROR ("(PW %u) Vertex array %u no buffer " "bound\n" , prim_walk, i);
@@ -2332,7 +2332,7 @@ int r100_cs_track_check(struct radeon_device *rdev, struct r100_cs_track *track)break ;case 2 :for (i =0 ; i < track->num_arrays; i++) { - size = track->arrays[i].esize * (nverts -1 ) *4 ; + size = track->arrays[i].esize * (nverts -1 ) *4UL ;if (track->arrays[i].robj ==NULL ) {DRM_ERROR ("(PW %u) Vertex array %u no buffer " "bound\n" , prim_walk, i);
drivers/gpu/drm/radeon/r600_cs.c +2 -2
@@ -1278,7 +1278,7 @@ static int r600_cs_check_reg(struct radeon_cs_parser *p, u32 reg, u32 idx)return -EINVAL ; } tmp = (reg -CB_COLOR0_BASE ) /4 ; - track->cb_color_bo_offset[tmp] =radeon_get_ib_value (p, idx) <<8 ; + track->cb_color_bo_offset[tmp] = (u64 )radeon_get_ib_value (p, idx) <<8 ; ib[idx] += (u32)((reloc->gpu_offset >>8 ) &0xffffffff ); track->cb_color_base_last[tmp] = ib[idx]; track->cb_color_bo[tmp] = reloc->robj;
@@ -1305,7 +1305,7 @@ static int r600_cs_check_reg(struct radeon_cs_parser *p, u32 reg, u32 idx) "0x%04X\n", reg);return -EINVAL ; } - track->htile_offset =radeon_get_ib_value (p, idx) <<8 ; + track->htile_offset = (u64 )radeon_get_ib_value (p, idx) <<8 ; ib[idx] += (u32)((reloc->gpu_offset >>8 ) &0xffffffff ); track->htile_bo = reloc->robj; track->db_dirty = true;
drivers/gpu/drm/radeon/radeon_display.c +6 -1
@@ -682,11 +682,16 @@ static void radeon_crtc_init(struct drm_device *dev, int index)if (radeon_crtc ==NULL )return ; + radeon_crtc->flip_queue =alloc_workqueue ("radeon-crtc" ,WQ_HIGHPRI ,0 ); +if (!radeon_crtc->flip_queue) { +kfree (radeon_crtc); +return ; + } +drm_crtc_init (dev, &radeon_crtc->base, &radeon_crtc_funcs);drm_mode_crtc_set_gamma_size (&radeon_crtc->base,256 ); radeon_crtc->crtc_id = index; - radeon_crtc->flip_queue =alloc_workqueue ("radeon-crtc" ,WQ_HIGHPRI ,0 ); rdev->mode_info.crtcs[index] = radeon_crtc;if (rdev->family >=CHIP_BONAIRE ) {
drivers/gpu/drm/radeon/radeon_vm.c +6 -2
@@ -1206,13 +1206,17 @@ int radeon_vm_init(struct radeon_device *rdev, struct radeon_vm *vm) r =radeon_bo_create (rdev, pd_size, align, true,RADEON_GEM_DOMAIN_VRAM ,0 ,NULL ,NULL , &vm->page_directory); -if (r) +if (r) { +kfree (vm->page_tables); + vm->page_tables =NULL ;return r; - + } r =radeon_vm_clear_bo (rdev, vm->page_directory);if (r) {radeon_bo_unref (&vm->page_directory); vm->page_directory =NULL ; +kfree (vm->page_tables); + vm->page_tables =NULL ;return r; }
drivers/gpu/drm/radeon/si.c +4 -0
@@ -3616,6 +3616,10 @@ static int si_cp_start(struct radeon_device *rdev)for (i =RADEON_RING_TYPE_GFX_INDEX ; i <=CAYMAN_RING_TYPE_CP2_INDEX ; ++i) { ring = &rdev->ring[i]; r =radeon_ring_lock (rdev, ring,2 ); +if (r) { +DRM_ERROR ("radeon: cp failed to lock ring (%d).\n" , r); +return r; + }/* clear the compute context state */ radeon_ring_write (ring,PACKET3_COMPUTE (PACKET3_CLEAR_STATE ,0 ));
drivers/gpu/drm/radeon/sumo_dpm.c +3 -1
@@ -1493,8 +1493,10 @@ static int sumo_parse_power_table(struct radeon_device *rdev) non_clock_array_index = power_state->v2.nonClockInfoIndex; non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *) &non_clock_info_array->nonClockInfo[non_clock_array_index]; -if (!rdev->pm.power_state[i].clock_info) +if (!rdev->pm.power_state[i].clock_info) { +kfree (rdev->pm.dpm.ps);return -EINVAL ; + } ps =kzalloc (sizeof (struct sumo_ps ),GFP_KERNEL );if (ps ==NULL ) {kfree (rdev->pm.dpm.ps);
drivers/gpu/drm/radeon/trinity_dpm.c +3 -1
@@ -1771,8 +1771,10 @@ static int trinity_parse_power_table(struct radeon_device *rdev) non_clock_array_index = power_state->v2.nonClockInfoIndex; non_clock_info = (struct _ATOM_PPLIB_NONCLOCK_INFO *) &non_clock_info_array->nonClockInfo[non_clock_array_index]; -if (!rdev->pm.power_state[i].clock_info) +if (!rdev->pm.power_state[i].clock_info) { +kfree (rdev->pm.dpm.ps);return -EINVAL ; + } ps =kzalloc (sizeof (struct sumo_ps ),GFP_KERNEL );if (ps ==NULL ) {kfree (rdev->pm.dpm.ps);
drivers/hid/wacom_wac.c +4 -28
@@ -2612,8 +2612,8 @@ static void wacom_wac_finger_slot(struct wacom_wac *wacom_wac, {struct hid_data *hid_data = &wacom_wac->hid_data;bool mt = wacom_wac->features.touch_max >1 ; -bool prox = hid_data->tipswitch && -report_touch_events (wacom_wac); +bool touch_down = hid_data->tipswitch && hid_data->confidence; +bool prox = touch_down &&report_touch_events (wacom_wac);if (wacom_wac->shared->has_mute_touch_switch && !wacom_wac->shared->is_touch_on) {
@@ -2652,24 +2652,6 @@ static void wacom_wac_finger_slot(struct wacom_wac *wacom_wac, } } -static bool wacom_wac_slot_is_active (struct input_dev *dev,int key) -{ -struct input_mt *mt = dev->mt; -struct input_mt_slot *s; - -if (!mt) -return false; - -for (s = mt->slots; s != mt->slots + mt->num_slots; s++) { -if (s->key == key && -input_mt_get_value (s,ABS_MT_TRACKING_ID ) >=0 ) { -return true; - } - } - -return false; -} -static void wacom_wac_finger_event (struct hid_device *hdev,struct hid_field *field,struct hid_usage *usage,__s32 value) {
@@ -2717,14 +2699,8 @@ static void wacom_wac_finger_event(struct hid_device *hdev, }if (usage->usage_index +1 == field->report_count) { -if (equivalent_usage == wacom_wac->hid_data.last_slot_field) { -bool touch_removed =wacom_wac_slot_is_active (wacom_wac->touch_input, - wacom_wac->hid_data.id) && !wacom_wac->hid_data.tipswitch; - -if (wacom_wac->hid_data.confidence || touch_removed) { -wacom_wac_finger_slot (wacom_wac, wacom_wac->touch_input); - } - } +if (equivalent_usage == wacom_wac->hid_data.last_slot_field) +wacom_wac_finger_slot (wacom_wac, wacom_wac->touch_input); } }
drivers/hwtracing/coresight/coresight-etm4x.h +1 -1
@@ -361,7 +361,7 @@ struct etmv4_drvdata {u8 ctxid_size;u8 vmid_size;u8 ccsize; -u8 ccitmin; +u16 ccitmin;u8 s_ex_level;u8 ns_ex_level;u8 q_support;
drivers/i2c/busses/i2c-s3c2410.c +21 -19
@@ -223,8 +223,17 @@ static bool is_ack(struct s3c24xx_i2c *i2c)int tries;for (tries =50 ; tries; --tries) { -if (readl (i2c->regs +S3C2410_IICCON ) - &S3C2410_IICCON_IRQPEND ) { +unsigned long tmp =readl (i2c->regs +S3C2410_IICCON ); + +if (!(tmp &S3C2410_IICCON_ACKEN )) { +/* +* Wait a bit for the bus to stabilize, +* delay estimated experimentally. +*/ +usleep_range (100 ,200 ); +return true; + } +if (tmp &S3C2410_IICCON_IRQPEND ) {if (!(readl (i2c->regs +S3C2410_IICSTAT ) &S3C2410_IICSTAT_LASTBIT ))return true;
@@ -277,16 +286,6 @@ static void s3c24xx_i2c_message_start(struct s3c24xx_i2c *i2c, stat |=S3C2410_IICSTAT_START ;writel (stat, i2c->regs +S3C2410_IICSTAT ); - -if (i2c->quirks &QUIRK_POLL ) { -while ((i2c->msg_num !=0 ) &&is_ack (i2c)) { -i2c_s3c_irq_nextbyte (i2c, stat); - stat =readl (i2c->regs +S3C2410_IICSTAT ); - -if (stat &S3C2410_IICSTAT_ARBITR ) -dev_err (i2c->dev,"deal with arbitration loss\n" ); - } - } }static inline void s3c24xx_i2c_stop (struct s3c24xx_i2c *i2c,int ret)
@@ -694,7 +693,7 @@ static void s3c24xx_i2c_wait_idle(struct s3c24xx_i2c *i2c)static int s3c24xx_i2c_doxfer (struct s3c24xx_i2c *i2c,struct i2c_msg *msgs,int num) { -unsigned long timeout; +unsigned long timeout =0 ;int ret; ret =s3c24xx_i2c_set_master (i2c);
@@ -714,16 +713,19 @@ static int s3c24xx_i2c_doxfer(struct s3c24xx_i2c *i2c,s3c24xx_i2c_message_start (i2c, msgs);if (i2c->quirks &QUIRK_POLL ) { - ret = i2c->msg_idx; +while ((i2c->msg_num !=0 ) &&is_ack (i2c)) { +unsigned long stat =readl (i2c->regs +S3C2410_IICSTAT ); -if (ret != num) -dev_dbg (i2c->dev,"incomplete xfer (%d)\n" , ret); +i2c_s3c_irq_nextbyte (i2c, stat); - goto out; + stat =readl (i2c->regs +S3C2410_IICSTAT ); +if (stat &S3C2410_IICSTAT_ARBITR ) +dev_err (i2c->dev,"deal with arbitration loss\n" ); + } + }else { + timeout =wait_event_timeout (i2c->wait, i2c->msg_num ==0 ,HZ *5 ); } - timeout =wait_event_timeout (i2c->wait, i2c->msg_num ==0 ,HZ *5 ); - ret = i2c->msg_idx;/*
drivers/infiniband/hw/mthca/mthca_cmd.c +2 -2
@@ -635,7 +635,7 @@ void mthca_free_mailbox(struct mthca_dev *dev, struct mthca_mailbox *mailbox)int mthca_SYS_EN (struct mthca_dev *dev) { -u64 out; +u64 out =0 ;int ret; ret =mthca_cmd_imm (dev,0 , &out,0 ,0 ,CMD_SYS_EN ,CMD_TIME_CLASS_D );
@@ -1955,7 +1955,7 @@ int mthca_WRITE_MGM(struct mthca_dev *dev, int index,int mthca_MGID_HASH (struct mthca_dev *dev,struct mthca_mailbox *mailbox,u16 *hash) { -u64 imm; +u64 imm =0 ;int err; err = mthca_cmd_imm(dev, mailbox->dma, &imm, 0, 0, CMD_MGID_HASH,
drivers/infiniband/hw/mthca/mthca_main.c +1 -1
@@ -382,7 +382,7 @@ static int mthca_init_icm(struct mthca_dev *mdev, struct mthca_init_hca_param *init_hca, u64 icm_size) { -u64 aux_pages; +u64 aux_pages =0 ;int err; err =mthca_SET_ICM_SIZE (mdev, icm_size, &aux_pages);
drivers/input/joystick/xpad.c +1 -0
@@ -266,6 +266,7 @@ static const struct xpad_device { { 0x146b, 0x0604, "Bigben Interactive DAIJA Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, { 0x1532, 0x0a00, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, { 0x1532, 0x0a03, "Razer Wildcat", 0, XTYPE_XBOXONE }, + { 0x1532, 0x0a29, "Razer Wolverine V2", 0, XTYPE_XBOXONE }, { 0x15e4, 0x3f00, "Power A Mini Pro Elite", 0, XTYPE_XBOX360 }, { 0x15e4, 0x3f0a, "Xbox Airflo wired controller", 0, XTYPE_XBOX360 }, { 0x15e4, 0x3f10, "Batarang Xbox 360 controller", 0, XTYPE_XBOX360 },
drivers/input/keyboard/atkbd.c +45 -5
74 lines not on this page · raw message
drivers/input/serio/i8042-x86ia64io.h +8 -0
@@ -351,6 +351,14 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = { }, .driver_data = (void *)(SERIO_QUIRK_DRITEK) }, + { +/* Acer TravelMate P459-G2-M */ + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"Acer" ), + DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate P459-G2-M"), + }, + .driver_data = (void *)(SERIO_QUIRK_NOMUX ) + }, {/* Amoi M636/A737 */ .matches = {
drivers/media/dvb-core/dvbdev.c +2 -0
@@ -114,6 +114,8 @@ static int dvb_device_open(struct inode *inode, struct file *file) err = file->f_op->open (inode, file);up_read (&minor_rwsem);mutex_unlock (&dvbdev_mutex); +if (err) +dvb_device_put (dvbdev);return err; } fail:
drivers/media/usb/cx231xx/cx231xx-core.c +2 -0
@@ -1028,6 +1028,7 @@ int cx231xx_init_isoc(struct cx231xx *dev, int max_packets,if (!dev->video_mode.isoc_ctl.urb) {dev_err (dev->dev,"cannot alloc memory for usb buffers\n" ); +kfree (dma_q->p_left_data);return -ENOMEM ; }
@@ -1037,6 +1038,7 @@ int cx231xx_init_isoc(struct cx231xx *dev, int max_packets,dev_err (dev->dev,"cannot allocate memory for usbtransfer\n" );kfree (dev->video_mode.isoc_ctl.urb); +kfree (dma_q->p_left_data);return -ENOMEM ; }
drivers/media/usb/pvrusb2/pvrusb2-context.c +2 -1
@@ -268,7 +268,8 @@ void pvr2_context_disconnect(struct pvr2_context *mp) {pvr2_hdw_disconnect (mp->hdw); mp->disconnect_flag = !0 ; -pvr2_context_notify (mp); +if (!pvr2_context_shutok ()) +pvr2_context_notify (mp); }
drivers/mmc/host/Kconfig +3 -2
@@ -996,13 +996,14 @@ config MMC_SDHCI_XENON config MMC_SDHCI_OMAP tristate "TI SDHCI Controller Support" + depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST depends on MMC_SDHCI_PLTFM && OF select THERMAL imply TI_SOC_THERMAL help This selects the Secure Digital Host Controller Interface (SDHCI) - support present in TI's DRA7 SOCs. The controller supports - SD/MMC/SDIO devices. + support present in TI's Keystone/OMAP2+/DRA7 SOCs. The controller + supports SD/MMC/SDIO devices. If you have a controller with this interface, say Y or M here.
drivers/mtd/mtd_blkdevs.c +2 -2
@@ -533,7 +533,7 @@ static void blktrans_notify_add(struct mtd_info *mtd) {struct mtd_blktrans_ops *tr; -if (mtd->type ==MTD_ABSENT ) +if (mtd->type ==MTD_ABSENT || mtd->type ==MTD_UBIVOLUME )return ;list_for_each_entry (tr, &blktrans_majors, list)
@@ -576,7 +576,7 @@ int register_mtd_blktrans(struct mtd_blktrans_ops *tr)list_add (&tr->list, &blktrans_majors);mtd_for_each_device (mtd) -if (mtd->type !=MTD_ABSENT ) +if (mtd->type !=MTD_ABSENT && mtd->type !=MTD_UBIVOLUME ) tr->add_mtd (tr, mtd);mutex_unlock (&mtd_table_mutex);
drivers/mtd/nand/raw/fsl_ifc_nand.c +1 -1
@@ -21,7 +21,7 @@#define ERR_BYTE 0xFF/* Value returned for read bytes when read failed */ -#define IFC_TIMEOUT_MSECS 500/* Maximum number of mSecs to wait +#define IFC_TIMEOUT_MSECS 1000/* Maximum timeout to wait for IFC NAND Machine */ struct fsl_ifc_ctrl ;
drivers/net/dsa/vitesse-vsc73xx-core.c +2 -0
@@ -1108,6 +1108,8 @@ static int vsc73xx_gpio_probe(struct vsc73xx *vsc) vsc->gc.label =devm_kasprintf (vsc->dev,GFP_KERNEL ,"VSC%04x" , vsc->chipid); +if (!vsc->gc.label) +return -ENOMEM ; vsc->gc.ngpio =4 ; vsc->gc.owner =THIS_MODULE ; vsc->gc.parent = vsc->dev;
drivers/net/ethernet/broadcom/tg3.c +10 -1
@@ -6460,6 +6460,14 @@ static void tg3_dump_state(struct tg3 *tp)int i;u32 *regs; +/* If it is a PCI error, all registers will be 0xffff, +* we don't dump them out, just report the error and return +*/ +if (tp->pdev->error_state != pci_channel_io_normal) { +netdev_err (tp->dev,"PCI channel ERROR!\n" ); +return ; + } + regs =kzalloc (TG3_REG_BLK_SIZE ,GFP_ATOMIC );if (!regs)return ;
@@ -11205,7 +11213,8 @@ static void tg3_reset_task(struct work_struct *work)rtnl_lock ();tg3_full_lock (tp,0 ); -if (tp->pcierr_recovery || !netif_running (tp->dev)) { +if (tp->pcierr_recovery || !netif_running (tp->dev) || + tp->pdev->error_state != pci_channel_io_normal) {tg3_flag_clear (tp,RESET_TASK_PENDING );tg3_full_unlock (tp);rtnl_unlock ();
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c +5 -3
@@ -301,6 +301,7 @@ mlxsw_sp_acl_erp_table_alloc(struct mlxsw_sp_acl_erp_core *erp_core, unsigned long *p_index) {unsigned int num_rows, entry_size; +unsigned long index;/* We only allow allocations of entire rows */ if (num_erps % erp_core->num_erp_banks !=0 )
@@ -309,10 +310,11 @@ mlxsw_sp_acl_erp_table_alloc(struct mlxsw_sp_acl_erp_core *erp_core, entry_size = erp_core->erpt_entries_size[region_type]; num_rows = num_erps / erp_core->num_erp_banks; - *p_index =gen_pool_alloc (erp_core->erp_tables, num_rows * entry_size); -if (*p_index ==0 ) + index =gen_pool_alloc (erp_core->erp_tables, num_rows * entry_size); +if (!index)return -ENOBUFS ; - *p_index -=MLXSW_SP_ACL_ERP_GENALLOC_OFFSET ; + + *p_index = index -MLXSW_SP_ACL_ERP_GENALLOC_OFFSET ;return 0 ; }
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +1 -1
@@ -375,7 +375,7 @@ static int rmnet_fill_info(struct sk_buff *skb, const struct net_device *dev)struct rtnl_link_ops rmnet_link_ops__read_mostly = { .kind ="rmnet" , - .maxtype = __IFLA_RMNET_MAX, + .maxtype =IFLA_RMNET_MAX , .priv_size =sizeof (struct rmnet_priv ), .setup = rmnet_vnd_setup, .validate = rmnet_rtnl_validate,
drivers/net/ethernet/renesas/ravb_main.c +1 -1
@@ -1497,7 +1497,7 @@ static netdev_tx_t ravb_start_xmit(struct sk_buff *skb, struct net_device *ndev)struct ravb_tstamp_skb *ts_skb;struct ravb_tx_desc *desc;unsigned long flags; -u32 dma_addr; +dma_addr_t dma_addr;void *buffer;u32 entry;u32 len;
drivers/net/phy/micrel.c +1 -0
@@ -1156,6 +1156,7 @@ static struct phy_driver ksphy_driver[] = {/* PHY_GBIT_FEATURES */ .driver_data = &ksz9021_type, .probe = kszphy_probe, + .soft_reset = genphy_soft_reset, .config_init = ksz9131_config_init, .read_status = genphy_read_status, .ack_interrupt = kszphy_ack_interrupt,
drivers/net/wireless/marvell/libertas/Kconfig +0 -2
@@ -2,8 +2,6 @@ config LIBERTAS tristate "Marvell 8xxx Libertas WLAN driver support" depends on CFG80211 - select WIRELESS_EXT - select WEXT_SPY select LIB80211 select FW_LOADER ---help---
drivers/net/wireless/marvell/mwifiex/cfg80211.c +2 -0
@@ -1984,6 +1984,8 @@ static int mwifiex_cfg80211_start_ap(struct wiphy *wiphy,mwifiex_set_sys_config_invalid_data (bss_cfg); +memcpy (bss_cfg->mac_addr, priv->curr_addr,ETH_ALEN ); +if (params->beacon_interval) bss_cfg->beacon_period = params->beacon_interval;if (params->dtim_period)
drivers/net/wireless/marvell/mwifiex/fw.h +1 -0
@@ -177,6 +177,7 @@ enum MWIFIEX_802_11_PRIVACY_FILTER {#define TLV_TYPE_STA_MAC_ADDR (PROPRIETARY_TLV_BASE_ID + 32)#define TLV_TYPE_BSSID (PROPRIETARY_TLV_BASE_ID + 35)#define TLV_TYPE_CHANNELBANDLIST (PROPRIETARY_TLV_BASE_ID + 42) +#define TLV_TYPE_UAP_MAC_ADDRESS (PROPRIETARY_TLV_BASE_ID + 43)#define TLV_TYPE_UAP_BEACON_PERIOD (PROPRIETARY_TLV_BASE_ID + 44)#define TLV_TYPE_UAP_DTIM_PERIOD (PROPRIETARY_TLV_BASE_ID + 45)#define TLV_TYPE_UAP_BCAST_SSID (PROPRIETARY_TLV_BASE_ID + 48)
drivers/net/wireless/marvell/mwifiex/ioctl.h +1 -0
@@ -119,6 +119,7 @@ struct mwifiex_uap_bss_param {u8 qos_info;u8 power_constraint;struct mwifiex_types_wmm_info wmm_info; +u8 mac_addr[ETH_ALEN ]; };enum {
drivers/net/wireless/marvell/mwifiex/uap_cmd.c +8 -0
@@ -479,6 +479,7 @@ void mwifiex_config_uap_11d(struct mwifiex_private *priv,static int mwifiex_uap_bss_param_prepare (u8 *tlv,void *cmd_buf,u16 *param_size) { +struct host_cmd_tlv_mac_addr *mac_tlv;struct host_cmd_tlv_dtim_period *dtim_period;struct host_cmd_tlv_beacon_period *beacon_period;struct host_cmd_tlv_ssid *ssid;
@@ -498,6 +499,13 @@ mwifiex_uap_bss_param_prepare(u8 *tlv, void *cmd_buf, u16 *param_size)int i;u16 cmd_size = *param_size; + mac_tlv = (struct host_cmd_tlv_mac_addr *)tlv; + mac_tlv->header.type =cpu_to_le16 (TLV_TYPE_UAP_MAC_ADDRESS ); + mac_tlv->header.len =cpu_to_le16 (ETH_ALEN ); +memcpy (mac_tlv->mac_addr, bss_cfg->mac_addr,ETH_ALEN ); + cmd_size +=sizeof (struct host_cmd_tlv_mac_addr ); + tlv +=sizeof (struct host_cmd_tlv_mac_addr ); +if (bss_cfg->ssid.ssid_len) { ssid = (struct host_cmd_tlv_ssid *)tlv; ssid->header.type =cpu_to_le16 (TLV_TYPE_UAP_SSID );
drivers/net/wireless/realtek/rtlwifi/pci.c +16 -63
152 lines not on this page · raw message
drivers/net/wireless/realtek/rtlwifi/pci.h +0 -5
@@ -236,11 +236,6 @@ struct mp_adapter {u16 pcibridge_vendorid;u16 pcibridge_deviceid; -u8 num4bytes; - -u8 pcibridge_pciehdr_offset; -u8 pcibridge_linkctrlreg; -bool amd_l1_patch; };
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c +4 -16
@@ -16,7 +16,6 @@ static u32 _rtl88e_phy_rf_serial_read(struct ieee80211_hw *hw,static void _rtl88e_phy_rf_serial_write (struct ieee80211_hw *hw,enum radio_path rfpath,u32 offset,u32 data); -static u32 _rtl88e_phy_calculate_bit_shift (u32 bitmask);static bool _rtl88e_phy_bb8188e_config_parafile (struct ieee80211_hw *hw);static bool _rtl88e_phy_config_mac_with_headerfile (struct ieee80211_hw *hw); static bool phy_config_bb_with_headerfile(struct ieee80211_hw *hw,
@@ -46,7 +45,7 @@ u32 rtl88e_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask)RT_TRACE (rtlpriv,COMP_RF ,DBG_TRACE ,"regaddr(%#x), bitmask(%#x)\n" , regaddr, bitmask); originalvalue =rtl_read_dword (rtlpriv, regaddr); - bitshift =_rtl88e_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); returnvalue = (originalvalue & bitmask) >> bitshift; RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
@@ -69,7 +68,7 @@ void rtl88e_phy_set_bb_reg(struct ieee80211_hw *hw,if (bitmask !=MASKDWORD ) { originalvalue =rtl_read_dword (rtlpriv, regaddr); - bitshift =_rtl88e_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = ((originalvalue & (~bitmask)) | (data << bitshift)); }
@@ -95,7 +94,7 @@ u32 rtl88e_phy_query_rf_reg(struct ieee80211_hw *hw, original_value =_rtl88e_phy_rf_serial_read (hw, rfpath, regaddr); - bitshift =_rtl88e_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); readback_value = (original_value & bitmask) >> bitshift;spin_unlock_irqrestore (&rtlpriv->locks.rf_lock, flags);
@@ -124,7 +123,7 @@ void rtl88e_phy_set_rf_reg(struct ieee80211_hw *hw, original_value =_rtl88e_phy_rf_serial_read (hw, rfpath, regaddr); - bitshift =_rtl88e_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = ((original_value & (~bitmask)) | (data << bitshift));
@@ -210,17 +209,6 @@ static void _rtl88e_phy_rf_serial_write(struct ieee80211_hw *hw, rfpath, pphyreg->rf3wire_offset, data_and_addr); } -static u32 _rtl88e_phy_calculate_bit_shift (u32 bitmask) -{ -u32 i; - -for (i =0 ; i <=31 ; i++) { -if (((bitmask >> i) &0x1 ) ==1 ) -break ; - } -return i; -} -bool rtl88e_phy_mac_config (struct ieee80211_hw *hw) {struct rtl_priv *rtlpriv =rtl_priv (hw);
drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c +2 -14
@@ -17,7 +17,7 @@ u32 rtl92c_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask)RT_TRACE (rtlpriv,COMP_RF ,DBG_TRACE ,"regaddr(%#x), bitmask(%#x)\n" , regaddr, bitmask); originalvalue =rtl_read_dword (rtlpriv, regaddr); - bitshift =_rtl92c_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); returnvalue = (originalvalue & bitmask) >> bitshift; RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
@@ -40,7 +40,7 @@ void rtl92c_phy_set_bb_reg(struct ieee80211_hw *hw,if (bitmask !=MASKDWORD ) { originalvalue =rtl_read_dword (rtlpriv, regaddr); - bitshift =_rtl92c_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = ((originalvalue & (~bitmask)) | (data << bitshift)); }
@@ -143,18 +143,6 @@ void _rtl92c_phy_rf_serial_write(struct ieee80211_hw *hw, }EXPORT_SYMBOL (_rtl92c_phy_rf_serial_write); -u32 _rtl92c_phy_calculate_bit_shift (u32 bitmask) -{ -u32 i; - -for (i =0 ; i <=31 ; i++) { -if (((bitmask >> i) &0x1 ) ==1 ) -break ; - } -return i; -} -EXPORT_SYMBOL (_rtl92c_phy_calculate_bit_shift); -static void _rtl92c_phy_bb_config_1t (struct ieee80211_hw *hw) {rtl_set_bbreg (hw,RFPGA0_TXINFO ,0x3 ,0x2 );
drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.h +0 -1
@@ -196,7 +196,6 @@ bool rtl92c_phy_set_rf_power_state(struct ieee80211_hw *hw,void rtl92ce_phy_set_rf_on (struct ieee80211_hw *hw);void rtl92c_phy_set_io (struct ieee80211_hw *hw);void rtl92c_bb_block_on (struct ieee80211_hw *hw); -u32 _rtl92c_phy_calculate_bit_shift (u32 bitmask);long _rtl92c_phy_txpwr_idx_to_dbm (struct ieee80211_hw *hw,enum wireless_mode wirelessmode,u8 txpwridx);
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c +3 -3
@@ -39,7 +39,7 @@ u32 rtl92c_phy_query_rf_reg(struct ieee80211_hw *hw, rfpath, regaddr); } - bitshift =_rtl92c_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); readback_value = (original_value & bitmask) >> bitshift;spin_unlock (&rtlpriv->locks.rf_lock);
@@ -110,7 +110,7 @@ void rtl92ce_phy_set_rf_reg(struct ieee80211_hw *hw, original_value =_rtl92c_phy_rf_serial_read (hw, rfpath, regaddr); - bitshift =_rtl92c_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = ((original_value & (~bitmask)) | (data << bitshift));
@@ -122,7 +122,7 @@ void rtl92ce_phy_set_rf_reg(struct ieee80211_hw *hw, original_value =_rtl92c_phy_fw_rf_serial_read (hw, rfpath, regaddr); - bitshift =_rtl92c_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = ((original_value & (~bitmask)) | (data << bitshift));
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.h +0 -1
@@ -94,7 +94,6 @@ u32 _rtl92c_phy_rf_serial_read(struct ieee80211_hw *hw, enum radio_path rfpath, u32 offset);u32 _rtl92c_phy_fw_rf_serial_read (struct ieee80211_hw *hw,enum radio_path rfpath,u32 offset); -u32 _rtl92c_phy_calculate_bit_shift (u32 bitmask);void _rtl92c_phy_rf_serial_write (struct ieee80211_hw *hw,enum radio_path rfpath,u32 offset,u32 data); void _rtl92c_phy_fw_rf_serial_write(struct ieee80211_hw *hw,
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c +3 -3
@@ -32,7 +32,7 @@ u32 rtl92cu_phy_query_rf_reg(struct ieee80211_hw *hw, original_value =_rtl92c_phy_fw_rf_serial_read (hw, rfpath, regaddr); } - bitshift =_rtl92c_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); readback_value = (original_value & bitmask) >> bitshift; RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "regaddr(%#x), rfpath(%#x), bitmask(%#x), original_value(%#x)\n",
@@ -56,7 +56,7 @@ void rtl92cu_phy_set_rf_reg(struct ieee80211_hw *hw, original_value =_rtl92c_phy_rf_serial_read (hw, rfpath, regaddr); - bitshift =_rtl92c_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = ((original_value & (~bitmask)) | (data << bitshift));
@@ -67,7 +67,7 @@ void rtl92cu_phy_set_rf_reg(struct ieee80211_hw *hw, original_value =_rtl92c_phy_fw_rf_serial_read (hw, rfpath, regaddr); - bitshift =_rtl92c_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = ((original_value & (~bitmask)) | (data << bitshift));
drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c +23 -43
119 lines not on this page · raw message
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c +4 -16
@@ -16,7 +16,6 @@ static u32 _rtl92ee_phy_rf_serial_read(struct ieee80211_hw *hw,static void _rtl92ee_phy_rf_serial_write (struct ieee80211_hw *hw,enum radio_path rfpath,u32 offset,u32 data); -static u32 _rtl92ee_phy_calculate_bit_shift (u32 bitmask);static bool _rtl92ee_phy_bb8192ee_config_parafile (struct ieee80211_hw *hw);static bool _rtl92ee_phy_config_mac_with_headerfile (struct ieee80211_hw *hw); static bool phy_config_bb_with_hdr_file(struct ieee80211_hw *hw,
@@ -46,7 +45,7 @@ u32 rtl92ee_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask)RT_TRACE (rtlpriv,COMP_RF ,DBG_TRACE ,"regaddr(%#x), bitmask(%#x)\n" , regaddr, bitmask); originalvalue =rtl_read_dword (rtlpriv, regaddr); - bitshift =_rtl92ee_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); returnvalue = (originalvalue & bitmask) >> bitshift; RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE,
@@ -68,7 +67,7 @@ void rtl92ee_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr,if (bitmask !=MASKDWORD ) { originalvalue =rtl_read_dword (rtlpriv, regaddr); - bitshift =_rtl92ee_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = ((originalvalue & (~bitmask)) | (data << bitshift)); }
@@ -93,7 +92,7 @@ u32 rtl92ee_phy_query_rf_reg(struct ieee80211_hw *hw,spin_lock_irqsave (&rtlpriv->locks.rf_lock, flags); original_value =_rtl92ee_phy_rf_serial_read (hw , rfpath, regaddr); - bitshift =_rtl92ee_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); readback_value = (original_value & bitmask) >> bitshift;spin_unlock_irqrestore (&rtlpriv->locks.rf_lock, flags);
@@ -121,7 +120,7 @@ void rtl92ee_phy_set_rf_reg(struct ieee80211_hw *hw,if (bitmask !=RFREG_OFFSET_MASK ) { original_value =_rtl92ee_phy_rf_serial_read (hw, rfpath, addr); - bitshift =_rtl92ee_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = (original_value & (~bitmask)) | (data << bitshift); }
@@ -204,17 +203,6 @@ static void _rtl92ee_phy_rf_serial_write(struct ieee80211_hw *hw, pphyreg->rf3wire_offset, data_and_addr); } -static u32 _rtl92ee_phy_calculate_bit_shift (u32 bitmask) -{ -u32 i; - -for (i =0 ; i <=31 ; i++) { -if (((bitmask >> i) &0x1 ) ==1 ) -break ; - } -return i; -} -bool rtl92ee_phy_mac_config (struct ieee80211_hw *hw) {return _rtl92ee_phy_config_mac_with_headerfile (hw);
drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c +4 -16
@@ -14,18 +14,6 @@#include "hw.h" #include "table.h" -static u32 _rtl92s_phy_calculate_bit_shift (u32 bitmask) -{ -u32 i; - -for (i =0 ; i <=31 ; i++) { -if (((bitmask >> i) &0x1 ) ==1 ) -break ; - } - -return i; -} -u32 rtl92s_phy_query_bb_reg (struct ieee80211_hw *hw,u32 regaddr,u32 bitmask) {struct rtl_priv *rtlpriv =rtl_priv (hw);
@@ -35,7 +23,7 @@ u32 rtl92s_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask) regaddr, bitmask); originalvalue =rtl_read_dword (rtlpriv, regaddr); - bitshift =_rtl92s_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); returnvalue = (originalvalue & bitmask) >> bitshift; RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "BBR MASK=0x%x Addr[0x%x]=0x%x\n",
@@ -57,7 +45,7 @@ void rtl92s_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask,if (bitmask !=MASKDWORD ) { originalvalue =rtl_read_dword (rtlpriv, regaddr); - bitshift =_rtl92s_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = ((originalvalue & (~bitmask)) | (data << bitshift)); }
@@ -165,7 +153,7 @@ u32 rtl92s_phy_query_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath, original_value =_rtl92s_phy_rf_serial_read (hw, rfpath, regaddr); - bitshift =_rtl92s_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); readback_value = (original_value & bitmask) >> bitshift;spin_unlock (&rtlpriv->locks.rf_lock);
@@ -196,7 +184,7 @@ void rtl92s_phy_set_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath,if (bitmask !=RFREG_OFFSET_MASK ) { original_value =_rtl92s_phy_rf_serial_read (hw, rfpath, regaddr); - bitshift =_rtl92s_phy_calculate_bit_shift (bitmask); + bitshift =calculate_bit_shift (bitmask); data = ((original_value & (~bitmask)) | (data << bitshift)); }
drivers/net/wireless/realtek/rtlwifi/rtl8723com/phy_common.c +2 -6
@@ -53,13 +53,9 @@ EXPORT_SYMBOL_GPL(rtl8723_phy_set_bb_reg);u32 rtl8723_phy_calculate_bit_shift (u32 bitmask) { -u32 i; +u32 i =ffs (bitmask); -for (i =0 ; i <=31 ; i++) { -if (((bitmask >> i) &0x1 ) ==1 ) -break ; - } -return i; +return i ? i -1 :32 ; }EXPORT_SYMBOL_GPL (rtl8723_phy_calculate_bit_shift);
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c +7 -12
@@ -27,7 +27,13 @@ static u32 _rtl8821ae_phy_rf_serial_read(struct ieee80211_hw *hw,static void _rtl8821ae_phy_rf_serial_write (struct ieee80211_hw *hw,enum radio_path rfpath,u32 offset,u32 data); -static u32 _rtl8821ae_phy_calculate_bit_shift (u32 bitmask); +static u32 _rtl8821ae_phy_calculate_bit_shift (u32 bitmask) +{ +if (WARN_ON_ONCE (!bitmask)) +return 0 ; + +return __ffs (bitmask); +}static bool _rtl8821ae_phy_bb8821a_config_parafile (struct ieee80211_hw *hw);/*static bool _rtl8812ae_phy_config_mac_with_headerfile(struct ieee80211_hw *hw);*/ static bool _rtl8821ae_phy_config_mac_with_headerfile (struct ieee80211_hw *hw);
@@ -274,17 +280,6 @@ static void _rtl8821ae_phy_rf_serial_write(struct ieee80211_hw *hw, rfpath, pphyreg->rf3wire_offset, data_and_addr); } -static u32 _rtl8821ae_phy_calculate_bit_shift (u32 bitmask) -{ -u32 i; - -for (i =0 ; i <=31 ; i++) { -if (((bitmask >> i) &0x1 ) ==1 ) -break ; - } -return i; -} -bool rtl8821ae_phy_mac_config (struct ieee80211_hw *hw) {bool rtstatus =0 ;
drivers/net/wireless/realtek/rtlwifi/wifi.h +7 -0
@@ -3230,4 +3230,11 @@ static inline struct ieee80211_sta *rtl_find_sta(struct ieee80211_hw *hw, return ieee80211_find_sta(mac->vif, mac_addr); } +static inline u32 calculate_bit_shift (u32 bitmask) +{ +if (WARN_ON_ONCE (!bitmask)) +return 0 ; + +return __ffs (bitmask); +}#endif
drivers/net/wireless/realtek/rtw88/mac80211.c +2 -2
@@ -206,9 +206,9 @@ static void rtw_ops_configure_filter(struct ieee80211_hw *hw,if (changed_flags &FIF_ALLMULTI ) {if (*new_flags &FIF_ALLMULTI ) - rtwdev->hal.rcr |=BIT_AM |BIT_AB ; + rtwdev->hal.rcr |=BIT_AM ;else - rtwdev->hal.rcr &= ~(BIT_AM |BIT_AB ); + rtwdev->hal.rcr &= ~(BIT_AM ); }if (changed_flags &FIF_FCSFAIL ) {if (*new_flags &FIF_FCSFAIL )
drivers/net/xen-netback/netback.c +38 -6
70 lines not on this page · raw message
drivers/nvme/host/nvme.h +5 -0
@@ -292,6 +292,11 @@ struct nvme_ctrl {struct nvme_fault_inject fault_inject; }; +static inline enum nvme_ctrl_state nvme_ctrl_state (struct nvme_ctrl *ctrl) +{ +return READ_ONCE (ctrl->state); +} +enum nvme_iopolicy {NVME_IOPOLICY_NUMA ,NVME_IOPOLICY_RR ,
drivers/nvme/target/tcp.c +17 -3
@@ -18,6 +18,7 @@#include "nvmet.h" #define NVMET_TCP_DEF_INLINE_DATA_SIZE (4 * PAGE_SIZE) +#define NVMET_TCP_MAXH2CDATA 0x400000/* 16M arbitrary limit */ #define NVMET_TCP_RECV_BUDGET 8#define NVMET_TCP_SEND_BUDGET 8
@@ -818,7 +819,7 @@ static int nvmet_tcp_handle_icreq(struct nvmet_tcp_queue *queue) icresp->hdr.pdo =0 ; icresp->hdr.plen =cpu_to_le32 (icresp->hdr.hlen); icresp->pfv =cpu_to_le16 (NVME_TCP_PFV_1_0 ); - icresp->maxdata =cpu_to_le32 (0x400000 );/* 16M arbitrary limit */ + icresp->maxdata =cpu_to_le32 (NVMET_TCP_MAXH2CDATA ); icresp->cpda =0 ;if (queue->hdr_digest) icresp->digest |=NVME_TCP_HDR_DIGEST_ENABLE ;
@@ -866,6 +867,7 @@ static int nvmet_tcp_handle_h2c_data_pdu(struct nvmet_tcp_queue *queue) {struct nvme_tcp_data_pdu *data = &queue->pdu.data;struct nvmet_tcp_cmd *cmd; +unsigned int exp_data_len;if (likely (queue->nr_cmds)) {if (unlikely (data->ttag >= queue->nr_cmds)) {
@@ -884,12 +886,24 @@ static int nvmet_tcp_handle_h2c_data_pdu(struct nvmet_tcp_queue *queue) data->ttag,le32_to_cpu (data->data_offset), cmd->rbytes_done);/* FIXME: use path and transport errors */ -nvmet_req_complete (&cmd->req, -NVME_SC_INVALID_FIELD |NVME_SC_DNR ); +nvmet_tcp_fatal_error (queue);return -EPROTO ; } + exp_data_len =le32_to_cpu (data->hdr.plen) - +nvmet_tcp_hdgst_len (queue) - +nvmet_tcp_ddgst_len (queue) - +sizeof (*data); + cmd->pdu_len =le32_to_cpu (data->data_length); +if (unlikely (cmd->pdu_len != exp_data_len || + cmd->pdu_len ==0 || + cmd->pdu_len >NVMET_TCP_MAXH2CDATA )) { +pr_err ("H2CData PDU len %u is invalid\n" , cmd->pdu_len); +/* FIXME: use proper transport errors */ +nvmet_tcp_fatal_error (queue); +return -EPROTO ; + } cmd->pdu_recv =0 ;nvmet_tcp_map_pdu_iovec (cmd); queue->cmd = cmd;
drivers/of/base.c +1 -0
@@ -1744,6 +1744,7 @@ int of_parse_phandle_with_args_map(const struct device_node *np, out_args->np = new;of_node_put (cur); cur = new; + new =NULL ; } put:of_node_put (cur);
drivers/of/unittest-data/tests-phandle.dtsi +9 -1
@@ -38,6 +38,13 @@ phandle-map-pass-thru = <0x0 0xf0>; }; + provider5: provider5 { + #phandle-cells = <2>; + phandle-map = <2 7 &provider4 2 3>; + phandle-map-mask = <0xff 0xf>; + phandle-map-pass-thru = <0x0 0xf0>; + }; + consumer-a { phandle-list = <&provider1 1>, <&provider2 2 0>,
@@ -64,7 +71,8 @@ <&provider4 4 0x100>, <&provider4 0 0x61>, <&provider0>, - <&provider4 19 0x20>; + <&provider4 19 0x20>, + <&provider5 2 7>; phandle-list-bad-phandle = <12345678 0 0>; phandle-list-bad-args = <&provider2 1 0>, <&provider4 0>;
drivers/of/unittest.c +43 -31
144 lines not on this page · raw message
drivers/parport/parport_serial.c +64 -0
88 lines not on this page · raw message
drivers/pci/controller/dwc/pci-keystone.c +9 -0
@@ -1305,7 +1305,16 @@ static int ks_pcie_probe(struct platform_device *pdev) goto err_link; } +/* Obtain references to the PHYs */ +for (i =0 ; i < num_lanes; i++) +phy_pm_runtime_get_sync (ks_pcie->phy[i]); + ret =ks_pcie_enable_phy (ks_pcie); + +/* Release references to the PHYs */ +for (i =0 ; i < num_lanes; i++) +phy_pm_runtime_put_sync (ks_pcie->phy[i]); +if (ret) {dev_err (dev,"failed to enable phy\n" ); goto err_link;
drivers/pinctrl/cirrus/Kconfig +2 -1
@@ -1,7 +1,8 @@ # SPDX-License-Identifier: GPL-2.0-only config PINCTRL_LOCHNAGAR tristate "Cirrus Logic Lochnagar pinctrl driver" - depends on MFD_LOCHNAGAR + # Avoid clash caused by MIPS defining RST, which is used in the driver + depends on MFD_LOCHNAGAR && !MIPS select GPIOLIB select PINMUX select PINCONF
drivers/reset/hisilicon/hi6220_reset.c +1 -1
@@ -104,7 +104,7 @@ static int hi6220_reset_probe(struct platform_device *pdev)if (!data)return -ENOMEM ; - type = (enum hi6220_reset_ctrl_type )of_device_get_match_data (dev); + type = (uintptr_t )of_device_get_match_data (dev); regmap =syscon_node_to_regmap (np);if (IS_ERR (regmap)) {
drivers/s390/block/scm_blk.c +4 -3
@@ -18,6 +18,7 @@#include <linux/genhd.h> #include <linux/slab.h> #include <linux/list.h> +#include <linux/io.h> #include <asm/eadm.h> #include "scm_blk.h"
@@ -131,7 +132,7 @@ static void scm_request_done(struct scm_request *scmrq)for (i =0 ; i < nr_requests_per_io && scmrq->request[i]; i++) { msb = &scmrq->aob->msb[i]; - aidaw = msb->data_addr; + aidaw = (u64 )phys_to_virt (msb->data_addr);if ((msb->flags &MSB_FLAG_IDA ) && aidaw &&IS_ALIGNED (aidaw,PAGE_SIZE ))
@@ -196,12 +197,12 @@ static int scm_request_prepare(struct scm_request *scmrq) msb->scm_addr = scmdev->address + ((u64 )blk_rq_pos (req) <<9 ); msb->oc = (rq_data_dir (req) ==READ ) ?MSB_OC_READ :MSB_OC_WRITE ; msb->flags |=MSB_FLAG_IDA ; - msb->data_addr = (u64 ) aidaw; + msb->data_addr = (u64 )virt_to_phys (aidaw);rq_for_each_segment (bv, req, iter) {WARN_ON (bv.bv_offset); msb->blk_count += bv.bv_len >>12 ; - aidaw->data_addr = (u64 )page_address (bv.bv_page); + aidaw->data_addr =virt_to_phys (page_address (bv.bv_page)); aidaw++; }
drivers/scsi/fnic/fnic_debugfs.c +2 -1
@@ -67,9 +67,10 @@ int fnic_debugfs_init(void) fc_trc_flag->fnic_trace =2 ; fc_trc_flag->fc_trace =3 ; fc_trc_flag->fc_clear =4 ; +return 0 ; } -return 0 ; +return -ENOMEM ; }/*
drivers/scsi/hisi_sas/hisi_sas_main.c +2 -2
@@ -1577,10 +1577,10 @@ static int hisi_sas_controller_reset(struct hisi_hba *hisi_hba)queue_work (hisi_hba->wq, &hisi_hba->debugfs_work);if (!hisi_hba->hw->soft_reset) -return -1 ; +return -ENOENT ;if (test_and_set_bit (HISI_SAS_RESET_BIT , &hisi_hba->flags)) -return -1 ; +return -EPERM ;dev_info (dev,"controller resetting...\n" );hisi_sas_controller_reset_prepare (hisi_hba);
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +1 -1
@@ -3365,7 +3365,7 @@ static int hisi_sas_v3_suspend(struct pci_dev *pdev, pm_message_t state) }if (test_and_set_bit (HISI_SAS_RESET_BIT , &hisi_hba->flags)) -return -1 ; +return -EPERM ;scsi_block_requests (shost);set_bit (HISI_SAS_REJECT_CMD_BIT , &hisi_hba->flags);
drivers/spi/spi-sh-msiof.c +17 -0
@@ -32,12 +32,15 @@#include <asm/unaligned.h> +#define SH_MSIOF_FLAG_FIXED_DTDL_200 BIT(0) +struct sh_msiof_chipdata {u32 bits_per_word_mask;u16 tx_fifo_size;u16 rx_fifo_size;u16 ctlr_flags;u16 min_div_pow; +u32 flags; };struct sh_msiof_spi_priv {
@@ -1072,6 +1075,16 @@ static const struct sh_msiof_chipdata rcar_gen3_data = { .min_div_pow = 1, }; +static const struct sh_msiof_chipdata rcar_r8a7795_data = { + .bits_per_word_mask =SPI_BPW_MASK (8 ) |SPI_BPW_MASK (16 ) | +SPI_BPW_MASK (24 ) |SPI_BPW_MASK (32 ), + .tx_fifo_size =64 , + .rx_fifo_size =64 , + .ctlr_flags =SPI_CONTROLLER_MUST_TX , + .min_div_pow =1 , + .flags =SH_MSIOF_FLAG_FIXED_DTDL_200 , +}; +static const struct of_device_id sh_msiof_match[] = { { .compatible ="renesas,sh-mobile-msiof" , .data = &sh_data }, { .compatible ="renesas,msiof-r8a7743" , .data = &rcar_gen2_data },
@@ -1082,6 +1095,7 @@ static const struct of_device_id sh_msiof_match[] = { { .compatible = "renesas,msiof-r8a7793", .data = &rcar_gen2_data }, { .compatible = "renesas,msiof-r8a7794", .data = &rcar_gen2_data }, { .compatible = "renesas,rcar-gen2-msiof", .data = &rcar_gen2_data }, + { .compatible = "renesas,msiof-r8a7795", .data = &rcar_r8a7795_data }, { .compatible = "renesas,msiof-r8a7796", .data = &rcar_gen3_data }, { .compatible = "renesas,rcar-gen3-msiof", .data = &rcar_gen3_data }, { .compatible = "renesas,sh-msiof", .data = &sh_data }, /* Deprecated */
@@ -1317,6 +1331,9 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)return -ENXIO ; } +if (chipdata->flags &SH_MSIOF_FLAG_FIXED_DTDL_200 ) + info->dtdl =200 ; +if (info->mode ==MSIOF_SPI_SLAVE ) ctlr =spi_alloc_slave (&pdev->dev,sizeof (struct sh_msiof_spi_priv ));
drivers/tty/serial/8250/8250_omap.c +1 -1
@@ -1278,7 +1278,7 @@ static int omap8250_remove(struct platform_device *pdev) err =pm_runtime_resume_and_get (&pdev->dev);if (err) -return err; +dev_err (&pdev->dev,"Failed to resume hardware\n" );pm_runtime_dont_use_autosuspend (&pdev->dev);pm_runtime_put_sync (&pdev->dev);
drivers/tty/serial/imx.c +1 -1
@@ -2277,7 +2277,7 @@ static int imx_uart_probe(struct platform_device *pdev)/* For register access, we only need to enable the ipg clock. */ ret =clk_prepare_enable (sport->clk_ipg);if (ret) { -dev_err (&pdev->dev,"failed to enable per clk: %d\n" , ret); +dev_err (&pdev->dev,"failed to enable ipg clk: %d\n" , ret);return ret; }
drivers/uio/uio.c +3 -4
@@ -464,13 +464,13 @@ static int uio_open(struct inode *inode, struct file *filep)mutex_lock (&minor_lock); idev =idr_find (&uio_idr,iminor (inode)); -mutex_unlock (&minor_lock);if (!idev) { ret = -ENODEV ; +mutex_unlock (&minor_lock); goto out; } -get_device (&idev->dev); +mutex_unlock (&minor_lock);if (!try_module_get (idev->owner)) { ret = -ENODEV ;
@@ -1024,9 +1024,8 @@ void uio_unregister_device(struct uio_info *info)wake_up_interruptible (&idev->wait);kill_fasync (&idev->async_queue,SIGIO ,POLL_HUP ); -device_unregister (&idev->dev); -uio_free_minor (minor); +device_unregister (&idev->dev);return ; }
drivers/usb/chipidea/core.c +7 -0
@@ -541,6 +541,13 @@ static irqreturn_t ci_irq_handler(int irq, void *data)u32 otgsc =0 ;if (ci->in_lpm) { +/* +* If we already have a wakeup irq pending there, +* let's just return to wait resume finished firstly. +*/ +if (ci->wakeup_int) +return IRQ_HANDLED ; +disable_irq_nosync (irq); ci->wakeup_int = true;pm_runtime_get (ci->dev);
drivers/usb/dwc3/core.c +1 -38
@@ -248,48 +248,11 @@ int dwc3_core_soft_reset(struct dwc3 *dwc)/* * We're resetting only the device side because, if we're in host mode, * XHCI driver will reset the host block. If dwc3 was configured for -* host-only mode or current role is host, then we can return early. +* host-only mode, then we can return early. */ if (dwc->current_dr_role ==DWC3_GCTL_PRTCAP_HOST )return 0 ; -/* -* If the dr_mode is host and the dwc->current_dr_role is not the -* corresponding DWC3_GCTL_PRTCAP_HOST, then the dwc3_core_init_mode -* isn't executed yet. Ensure the phy is ready before the controller -* updates the GCTL.PRTCAPDIR or other settings by soft-resetting -* the phy. -* -* Note: GUSB3PIPECTL[n] and GUSB2PHYCFG[n] are port settings where n -* is port index. If this is a multiport host, then we need to reset -* all active ports. -*/ -if (dwc->dr_mode ==USB_DR_MODE_HOST ) { -u32 usb3_port; -u32 usb2_port; - - usb3_port =dwc3_readl (dwc->regs,DWC3_GUSB3PIPECTL (0 )); - usb3_port |=DWC3_GUSB3PIPECTL_PHYSOFTRST ; -dwc3_writel (dwc->regs,DWC3_GUSB3PIPECTL (0 ), usb3_port); - - usb2_port =dwc3_readl (dwc->regs,DWC3_GUSB2PHYCFG (0 )); - usb2_port |=DWC3_GUSB2PHYCFG_PHYSOFTRST ; -dwc3_writel (dwc->regs,DWC3_GUSB2PHYCFG (0 ), usb2_port); - -/* Small delay for phy reset assertion */ -usleep_range (1000 ,2000 ); - - usb3_port &= ~DWC3_GUSB3PIPECTL_PHYSOFTRST ; -dwc3_writel (dwc->regs,DWC3_GUSB3PIPECTL (0 ), usb3_port); - - usb2_port &= ~DWC3_GUSB2PHYCFG_PHYSOFTRST ; -dwc3_writel (dwc->regs,DWC3_GUSB2PHYCFG (0 ), usb2_port); - -/* Wait for clock synchronization */ -msleep (50 ); -return 0 ; - } - reg =dwc3_readl (dwc->regs,DWC3_DCTL ); reg |=DWC3_DCTL_CSFTRST ;dwc3_writel (dwc->regs,DWC3_DCTL , reg);
drivers/usb/dwc3/ep0.c +4 -1
@@ -236,7 +236,10 @@ static void dwc3_ep0_stall_and_restart(struct dwc3 *dwc)struct dwc3_request *req; req =next_request (&dep->pending_list); -dwc3_gadget_giveback (dep, req, -ECONNRESET );
Lines of this file are not shown. View the raw message.
net/netlabel/netlabel_calipso.c +28 -24
52 lines not on this page · raw message
net/vmw_vsock/virtio_transport_common.c +10 -3
Lines of this file are not shown. View the raw message.
sound/soc/atmel/sam9g20_wm8731.c +61 -0
61 lines not on this page · raw message
tools/perf/util/env.c +72 -18
90 lines not on this page · raw message
tools/testing/selftests/drivers/net/mlxsw/spectrum-2/tc_flower.sh +51 -1
52 lines not on this page · raw message
tools/testing/selftests/net/fib_nexthop_multiprefix.sh +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/math/fpu_preempt.c +5 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/math/vmx_preempt.c +6 -4
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.