Skip to contentSkip to conversation

Linux 5.4.273

DISCUSSION Sasha Levin 1 participant 2 messages Mar 26, 2024 Stable branch

lore
Share & tools
lore

Sasha Levin

author maintainer
#0 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

I'm announcing the release of the 5.4.273 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,
Sasha

- ------------

 Documentation/media/kapi/v4l2-dev.rst              |   4 +-
 .../zh_CN/video4linux/v4l2-framework.txt           |   4 +-
 Makefile                                           |   2 +-
 arch/arm/boot/dts/arm-realview-pb1176.dts          |   2 +-
 arch/arm/boot/dts/imx6dl-yapp4-common.dtsi         |  28 +-
 .../boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts    |  24 +
 arch/arm/crypto/sha256_glue.c                      |  13 +-
 arch/arm/crypto/sha512-glue.c                      |  12 +-
 .../boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts  |   1 +
 arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts       |   1 +
 arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi       | 783 +++++++++++----------
 arch/arm64/boot/dts/qcom/msm8996.dtsi              | 192 ++---
 arch/mips/include/asm/ptrace.h                     |   1 +
 arch/parisc/kernel/ftrace.c                        |   2 +-
 arch/powerpc/perf/hv-gpci.c                        |  29 +-
 arch/powerpc/platforms/embedded6xx/linkstation.c   |   3 -
 arch/powerpc/platforms/embedded6xx/mpc10x.h        |   3 +
 arch/s390/kernel/vtime.c                           |   4 +-
 arch/sparc/kernel/leon_pci_grpci1.c                |   2 +-
 arch/sparc/kernel/leon_pci_grpci2.c                |   2 +-
 arch/x86/tools/relocs.c                            |   8 +
 arch/x86/xen/smp.c                                 |  12 +
 block/opal_proto.h                                 |   1 +
 block/sed-opal.c                                   |   6 +-
 drivers/acpi/processor_idle.c                      |   2 +
 drivers/acpi/scan.c                                |   8 +-
 drivers/base/regmap/regmap.c                       |   2 +-
 drivers/block/aoe/aoecmd.c                         |  12 +-
 drivers/block/aoe/aoenet.c                         |   1 +
 drivers/block/nbd.c                                |   6 +
 drivers/bus/Kconfig                                |   5 +-
 drivers/clk/clk.c                                  |   3 +
 drivers/clk/hisilicon/clk-hi3519.c                 |   2 +-
 drivers/clk/qcom/dispcc-sdm845.c                   |   2 +
 drivers/clk/qcom/reset.c                           |  33 +-
 drivers/clk/qcom/reset.h                           |   2 +
 drivers/dma/Kconfig                                |  14 +-
 drivers/firewire/core-card.c                       |  14 +-
 drivers/gpu/drm/amd/amdgpu/atom.c                  |   2 +-
 .../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c  |   7 +-
 drivers/gpu/drm/mediatek/mtk_drm_crtc.c            |  12 +-
 drivers/gpu/drm/mediatek/mtk_dsi.c                 |  10 +-
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c   |   6 +-
 drivers/gpu/drm/radeon/ni.c                        |   2 +-
 drivers/gpu/drm/rockchip/inno_hdmi.c               |   4 +-
 drivers/gpu/drm/rockchip/rockchip_lvds.c           |   1 -
 drivers/gpu/drm/tegra/dsi.c                        |  49 +-
 drivers/gpu/drm/tegra/fb.c                         |   1 +
 drivers/gpu/drm/tegra/output.c                     |  16 +-
 drivers/gpu/host1x/mipi.c                          |   4 +-
 drivers/hid/hid-multitouch.c                       |   4 +
 drivers/infiniband/core/device.c                   |  37 +-
 drivers/infiniband/hw/mlx5/devx.c                  |   2 +-
 drivers/input/keyboard/gpio_keys_polled.c          |  10 +-
 drivers/iommu/amd_iommu_init.c                     |   3 +
 drivers/md/dm-crypt.c                              |   4 +-
 drivers/md/dm-raid.c                               |   4 +-
 drivers/md/dm-verity.h                             |   4 +-
 drivers/md/dm.c                                    |  26 +-
 drivers/media/common/v4l2-tpg/v4l2-tpg-core.c      |  52 +-
 drivers/media/dvb-core/dvbdev.c                    |   5 +
 drivers/media/dvb-frontends/stv0367.c              |  34 +-
 drivers/media/i2c/tc358743.c                       |   7 +-
 drivers/media/pci/bt8xx/bttv-driver.c              |   4 +-
 drivers/media/pci/cobalt/cobalt-v4l2.c             |   2 +-
 drivers/media/pci/cx18/cx18-streams.c              |  12 +-
 drivers/media/pci/cx23885/cx23885-417.c            |   2 +-
 drivers/media/pci/cx23885/cx23885-video.c          |   2 +-
 drivers/media/pci/cx25821/cx25821-video.c          |   2 +-
 drivers/media/pci/cx88/cx88-blackbird.c            |   2 +-
 drivers/media/pci/cx88/cx88-video.c                |   2 +-
 drivers/media/pci/dt3155/dt3155.c                  |   2 +-
 drivers/media/pci/intel/ipu3/ipu3-cio2.c           |   2 +-
 drivers/media/pci/ivtv/ivtv-streams.c              |  12 +-
 drivers/media/pci/meye/meye.c                      |   2 +-
 drivers/media/pci/saa7134/saa7134-core.c           |   2 +-
 drivers/media/pci/saa7134/saa7134-empress.c        |   2 +-
 drivers/media/pci/saa7146/hexium_gemini.c          |   2 +-
 drivers/media/pci/saa7146/hexium_orion.c           |   2 +-
 drivers/media/pci/saa7146/mxb.c                    |   2 +-
 drivers/media/pci/saa7164/saa7164-encoder.c        |   2 +-
 drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c     |   2 +-
 drivers/media/pci/solo6x10/solo6x10-v4l2.c         |   2 +-
 drivers/media/pci/sta2x11/sta2x11_vip.c            |   2 +-
 drivers/media/pci/ttpci/av7110_v4l.c               |   2 +-
 drivers/media/pci/ttpci/budget-av.c                |  10 +-
 drivers/media/pci/tw5864/tw5864-video.c            |   2 +-
 drivers/media/pci/tw68/tw68-video.c                |   2 +-
 drivers/media/pci/tw686x/tw686x-video.c            |   2 +-
 drivers/media/usb/em28xx/em28xx-cards.c            |   4 +
 drivers/media/usb/go7007/go7007-driver.c           |   8 +-
 drivers/media/usb/go7007/go7007-usb.c              |   4 +-
 drivers/media/usb/pvrusb2/pvrusb2-context.c        |  10 +-
 drivers/media/usb/pvrusb2/pvrusb2-dvb.c            |   6 +-
 drivers/media/usb/pvrusb2/pvrusb2-v4l2.c           |  11 +-
 drivers/media/v4l2-core/v4l2-dev.c                 |  68 +-
 drivers/media/v4l2-core/v4l2-ioctl.c               |  16 +-
 drivers/media/v4l2-core/v4l2-mem2mem.c             |  10 +-
 drivers/mfd/altera-sysmgr.c                        |   4 +-
 drivers/mfd/syscon.c                               |   4 +-
 drivers/mmc/host/wmt-sdmmc.c                       |   4 -
 drivers/mtd/maps/physmap-core.c                    |   2 +-
 drivers/mtd/nand/raw/lpc32xx_mlc.c                 |   5 +-
 drivers/net/ethernet/amazon/ena/ena_com.c          |   8 +-
 drivers/net/ethernet/amazon/ena/ena_netdev.c       |  20 +-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h    |   6 +-
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    |   5 +-
 drivers/net/ethernet/intel/igb/igb_main.c          | 112 ++-
 drivers/net/ethernet/marvell/octeontx2/af/cgx.c    |   2 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c    |  17 +-
 .../net/ethernet/netronome/nfp/flower/lag_conf.c   |   5 +
 drivers/net/usb/sr9800.c                           |   4 +-
 drivers/net/wireless/ath/ath10k/wmi-tlv.c          |   4 +
 drivers/net/wireless/broadcom/b43/b43.h            |  16 +
 drivers/net/wireless/broadcom/b43/dma.c            |   8 +-
 drivers/net/wireless/broadcom/b43/main.c           |  22 +-
 drivers/net/wireless/broadcom/b43/pio.c            |   6 +-
 .../broadcom/brcm80211/brcmsmac/phy/phy_cmn.c      |   3 +-
 .../broadcom/brcm80211/brcmsmac/phy_shim.c         |   5 +-
 .../broadcom/brcm80211/brcmsmac/phy_shim.h         |   2 +-
 drivers/net/wireless/marvell/libertas/cmd.c        |  13 +-
 drivers/net/wireless/marvell/mwifiex/debugfs.c     |   3 -
 drivers/pci/pcie/dpc.c                             |   2 +-
 drivers/pci/quirks.c                               |   1 +
 drivers/pci/switch/switchtec.c                     |   4 +-
 drivers/rtc/Kconfig                                |   3 +-
 drivers/scsi/bfa/bfa.h                             |   9 +-
 drivers/scsi/bfa/bfa_core.c                        |   4 +-
 drivers/scsi/bfa/bfa_ioc.h                         |   8 +-
 drivers/scsi/bfa/bfad_bsg.c                        |  11 +-
 drivers/scsi/csiostor/csio_defs.h                  |  18 +-
 drivers/scsi/csiostor/csio_lnode.c                 |   8 +-
 drivers/scsi/csiostor/csio_lnode.h                 |  13 -
 drivers/scsi/mpt3sas/mpt3sas_base.c                |   4 +-
 drivers/spi/spi-mt65xx.c                           |  22 +-
 drivers/staging/greybus/light.c                    |   8 +-
 drivers/staging/media/imx/imx-media-csc-scaler.c   |   1 +
 drivers/staging/wilc1000/wilc_hif.c                |  40 +-
 drivers/tty/serial/8250/8250_exar.c                |   5 +-
 drivers/tty/serial/max310x.c                       |   2 +-
 drivers/tty/serial/samsung.c                       |   5 +-
 drivers/tty/vt/vt.c                                |   2 +-
 drivers/usb/gadget/udc/net2272.c                   |   2 +-
 drivers/video/backlight/da9052_bl.c                |   1 +
 drivers/video/backlight/lm3630a_bl.c               |  15 +-
 drivers/video/backlight/lm3639_bl.c                |   1 +
 drivers/video/backlight/lp8788_bl.c                |   1 +
 drivers/watchdog/stm32_iwdg.c                      |   3 +
 fs/afs/dir.c                                       |  10 -
 fs/btrfs/block-rsv.c                               |   2 +-
 fs/btrfs/block-rsv.h                               |  16 +
 fs/fhandle.c                                       |   2 +-
 fs/io_uring.c                                      |  65 +-
 fs/nfs/nfsroot.c                                   |   4 +-
 fs/quota/dquot.c                                   | 226 +++---
 fs/select.c                                        |   2 +-
 include/drm/drm_fixed.h                            |   2 +-
 include/linux/filter.h                             |  24 +-
 include/linux/fs.h                                 |   6 +-
 include/linux/host1x.h                             |   3 +-
 include/linux/poll.h                               |   4 -
 include/linux/rcupdate.h                           |  31 +
 include/media/v4l2-dev.h                           |   6 +-
 kernel/bpf/cpumap.c                                |   3 +
 kernel/bpf/hashtab.c                               |  14 +-
 kernel/bpf/helpers.c                               |  18 +-
 kernel/bpf/stackmap.c                              |   9 +-
 kernel/time/timekeeping.c                          |  24 +-
 lib/test_blackhole_dev.c                           |   3 +-
 net/bluetooth/hci_core.c                           |   2 +-
 net/bluetooth/hci_event.c                          |   2 -
 net/bluetooth/rfcomm/core.c                        |   2 +-
 net/core/dev.c                                     |   2 +-
 net/core/scm.c                                     |   2 +-
 net/core/sock_diag.c                               |  10 +-
 net/hsr/hsr_framereg.c                             |   4 +
 net/hsr/hsr_main.c                                 |  15 +-
 net/ipv4/ip_tunnel.c                               |  15 +-
 net/ipv4/tcp.c                                     |   4 +-
 net/ipv4/udp.c                                     |   4 +-
 net/ipv6/fib6_rules.c                              |   6 +
 net/iucv/iucv.c                                    |   4 +-
 net/kcm/kcmsock.c                                  |   3 +-
 net/l2tp/l2tp_ppp.c                                |   4 +-
 net/netfilter/nf_tables_api.c                      |   2 +-
 net/packet/af_packet.c                             |   4 +-
 net/rds/send.c                                     |   5 +-
 net/sunrpc/addr.c                                  |   4 +-
 net/sunrpc/auth_gss/gss_rpc_xdr.c                  |  27 +-
 net/unix/garbage.c                                 |   2 +-
 net/unix/scm.c                                     |   4 +-
 net/x25/af_x25.c                                   |   4 +-
 samples/v4l/v4l2-pci-skeleton.c                    |   2 +-
 scripts/kconfig/lexer.l                            |   7 +-
 sound/core/seq/seq_midi.c                          |   8 +-
 sound/core/seq/seq_virmidi.c                       |   9 +-
 sound/soc/codecs/rt5645.c                          |  10 +
 sound/soc/codecs/wm8962.c                          |  29 +-
 sound/soc/intel/boards/bytcr_rt5640.c              |  12 +
 sound/soc/meson/axg-tdm-interface.c                |   4 +-
 sound/usb/stream.c                                 |   5 +-
 tools/perf/builtin-record.c                        |   2 +-
 tools/perf/util/evsel.c                            |   1 -
 tools/perf/util/stat-display.c                     |   2 +-
 tools/perf/util/thread_map.c                       |   2 +-
 tools/testing/selftests/net/tls.c                  |   8 +-
 206 files changed, 1642 insertions(+), 1307 deletions(-)

Alban Boyé (1):
ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 tablet

Alex Bee (1):
drm/rockchip: inno_hdmi: Fix video timing

Alexander Gordeev (1):
net/iucv: fix the allocation size of iucv_path_table array

Alexander Stein (1):
media: tc358743: register v4l2 async device only after successful setup

Alexei Starovoitov (2):
bpf: Add typecast to bpf helpers to help BTF generation
bpf: Factor out bpf_spin_lock into helpers.

Alexis Lothoré (2):
wifi: wilc1000: fix declarations ordering
wifi: wilc1000: fix RCU usage in connect path

Andy Shevchenko (1):
serial: 8250_exar: Don't remove GPIO device on suspend

AngeloGioacchino Del Regno (1):
drm/mediatek: dsi: Fix DSI RGB666 formats and definitions

Armin Wolf (1):
ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit()

Arnd Bergmann (8):
fs/select: rework stack allocation hack for clang
wifi: brcmsmac: avoid function pointer casts
media: pvrusb2: fix pvr2_stream_callback casts
crypto: arm/sha - fix function cast warnings
mtd: rawnand: lpc32xx_mlc: fix irq handler prototype
media: dvb-frontends: avoid stack overflow warnings with clang
scsi: csiostor: Avoid function pointer casts
scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn

Arthur Kiyanovski (1):
net: ena: cosmetic: fix line break issues

Baokun Li (1):
quota: simplify drop_dquot_ref()

Baruch Siach (1):
mtd: maps: physmap-core: fix flash size larger than 32-bit

Ben Wolsieffer (1):
watchdog: stm32_iwdg: initialize default timeout

Bjorn Andersson (4):
arm64: dts: qcom: db820c: Move non-soc entries out of /soc
arm64: dts: qcom: msm8996: Use node references in db820c
arm64: dts: qcom: msm8996: Move regulator consumers to db820c
arm64: dts: qcom: msm8996: Pad addresses

Breno Leitao (1):
net: blackhole_dev: fix build warning for ethh set but not used

Bryan O'Donoghue (1):
clk: Fix clk_core_get NULL dereference

Cai Huoqing (1):
drm/tegra: dsi: Make use of the helper function dev_err_probe()

Chen Ni (2):
sr9800: Add check for usbnet_get_endpoints drm/tegra: dsi: Add missing check for of_find_device_by_node

Christophe JAILLET (8):
mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe()
drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe() drm/tegra: output: Fix missing i2c_put_adapter() in the error handling paths of tegra_output_probe()
PCI: switchtec: Fix an error handling path in switchtec_pci_probe()
clk: hisilicon: hi3519: Release the correct number of gates in hi3519_clk_unregister()
net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr()
NFS: Fix an off by one in root_nfs_cat()

Chun-Yi Lee (1):
aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts

Colin Ian King (1):
usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin

Dan Carpenter (1):
staging: greybus: fix get_channel_from_mode() failure path

Daniel Thompson (3):
backlight: da9052: Fully initialize backlight_properties during probe
backlight: lm3639: Fully initialize backlight_properties during probe
backlight: lp8788: Fully initialize backlight_properties during probe

Daniil Dulov (2):
media: go7007: add check of return value of go7007_read_addr()
media: pvrusb2: remove redundant NULL check

David Howells (1):
afs: Revert "afs: Hide silly-rename files from userspace"

Duoming Zhou (1):
nfp: flower: handle acti_netdevs allocation failure

Edward Adam Davis (1):
media: pvrusb2: fix uaf in pvr2_context_set_notify

Eric Dumazet (3):
sock_diag: annotate data-races around sock_diag_handlers[family]
net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv()
packet: annotate data-races around ignore_outgoing

Fedor Pchelkin (1):
drm/tegra: put drm_gem_object ref on error in tegra_fb_create

Fei Shao (1):
spi: spi-mt65xx: Fix NULL pointer access in interrupt handler

Felix Maurer (1):
hsr: Handle failures in module init

Filipe Manana (1):
btrfs: fix data race at btrfs_use_block_rsv() when accessing block reserve

Gavrilov Ilia (5):
tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function
l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function
udp: fix incorrect parameter validation in the udp_lib_getsockopt() function
net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function net/x25: fix incorrect parameter validation in the x25_getsockopt() function

Geert Uytterhoeven (1):
ARM: dts: arm: realview: Fix development chip ROM compatible value

Greg Joyce (1):
block: sed-opal: handle empty atoms when parsing response

Hans Verkuil (2):
media: rename VFL_TYPE_GRABBER to _VIDEO
media: media/pci: rename VFL_TYPE_GRABBER to _VIDEO

Hans de Goede (1):
ASoC: rt5645: Make LattePanda board DMI match more precise

Harry Wentland (1):
drm: Don't treat 0 as -1 in drm_fixp2int_ceil

Hsin-Yi Wang (1):
drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip

Hugo Villeneuve (1):

      serial: max310x: fix syntax error in IRQ error message

Ian Rogers (1):
perf stat: Avoid metric-only segv

Ilpo Järvinen (1):
PCI/DPC: Print all TLP Prefixes, not just the first

Jakub Kicinski (1):
selftests: tls: use exact comparison in recv_partial

Jan Kara (1):
quota: Fix rcu annotations of inode dquot pointers

Jens Axboe (2):
io_uring/unix: drop usage of io_uring socket
io_uring: drop any code related to SCM_RIGHTS

Jerome Brunet (1):
ASoC: meson: axg-tdm-interface: fix mclk setup without mclk-fs

Jiaxun Yang (1):
MIPS: Clear Cause.BD in instruction_pointer_set

Jie Wang (1):
net: hns3: fix port duplex configure error in IMP reset

Jinjie Ruan (1):
wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir()

Jiri Slaby (SUSE) (1):

      tty: vt: fix 20 vs 0x20 typo in EScsiignore

Johan Carlsson (1):
ALSA: usb-audio: Stop parsing channels bits when all channels are found.

Jonas Dreßler (1):
Bluetooth: Remove superfluous call to hci_conn_check_pending()

Jörg Wedekind (1):
PCI: Mark 3ware-9650SE Root Port Extended Tags as broken

Kajol Jain (1):
powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks

Kamal Heib (1):
net: ena: Remove ena_select_queue

Kees Cook (1):
x86, relocs: Ignore relocations in .notes section

Konrad Dybcio (3):
clk: qcom: reset: Commonize the de/assert functions
clk: qcom: reset: Ensure write completion on reset de/assertion
clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times

Kuniyuki Iwashima (1):
af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc().

Kunwu Chan (1):
x86/xen: Add some null pointer checking to smp.c

Linu Cherian (1):
octeontx2-af: Use matching wake_up API variant in CGX command interface

Luca Weiss (2):
backlight: lm3630a: Initialize backlight_properties on init
backlight: lm3630a: Don't set bl->props.brightness in get_brightness

Lucas Stach (1):
media: imx: csc/scaler: fix v4l2_ctrl_handler memory leak

Luiz Augusto von Dentz (1):
Bluetooth: hci_core: Fix possible buffer overflow

Manuel Fombuena (1):

      HID: multitouch: Add required quirk for Synaptics 0xcddc device

Marek Vasut (1):

      regmap: Add missing map->bus check

Mario Limonciello (1):
iommu/amd: Mark interrupt as managed

Masahiro Yamada (1):
kconfig: fix infinite loop when expanding a macro at the end of file

Max Kellermann (1):
parisc/ftrace: add missing CONFIG_DYNAMIC_FTRACE check

Mete Durlu (1):
s390/vtime: fix average steal time calculation

Michael Ellerman (1):
powerpc/embedded6xx: Fix no previous prototype for avr_uart_send() etc.

Michael Klein (1):
ARM: dts: sun8i-h2-plus-bananapi-m2-zero: add regulator nodes vcc-dram and vcc1v2

Michal Vokáč (3):
ARM: dts: imx6dl-yapp4: Move phy reset into switch node
ARM: dts: imx6dl-yapp4: Fix typo in the QCA switch register address
ARM: dts: imx6dl-yapp4: Move the internal switch PHYs under the switch node

Mikulas Patocka (2):
dm-verity, dm-crypt: align "struct bvec_iter" correctly
dm: call the resume method on internal suspend

Ming Lei (1):
dm raid: fix false positive for requeue needed during reshape

Navid Emamdoost (1):
nbd: null check for nla_nest_start

Nikita Zhandarovich (3):
do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak
media: em28xx: annotate unchecked call to media_device_register() drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()

Pablo Neira Ayuso (1):
netfilter: nf_tables: do not compare internal table flags on updates

Paloma Arellano (1):
drm/msm/dpu: add division of drm_display_mode's hskew parameter

Peter Griffin (2):
mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref
mfd: altera-sysmgr: Call of_node_put() only when of_parse_phandle() takes a ref

Peter Hilber (3):
timekeeping: Fix cross-timestamp interpolation on counter wrap
timekeeping: Fix cross-timestamp interpolation corner case decision
timekeeping: Fix cross-timestamp interpolation for non-x86

Peter Robinson (2):
bus: tegra-aconnect: Update dependency to ARCH_TEGRA
dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA

Quentin Schulz (1):
drm/rockchip: lvds: do not overwrite error code

Rafael J. Wysocki (1):
ACPI: scan: Fix device check notification handling

Rafał Miłecki (1):
arm64: dts: mediatek: mt7622: add missing "device_type" to memory nodes

Rahul Rameshbabu (4):
wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled
wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled
wifi: b43: Stop correct queue in DMA worker when QoS is disabled
wifi: b43: Disable QoS for bcm4331

Randy Dunlap (1):
rtc: mt6397: select IRQ_DOMAIN instead of depending on it

Ranjan Kumar (1):
scsi: mpt3sas: Prevent sending diag_reset when the controller is ready

Robert Marko (1):
clk: qcom: reset: support resetting multiple bits

Ruud Bos (1):
igb: move PEROUT and EXTTS isr logic to separate functions

Sam Ravnborg (1):
sparc32: Fix section mismatch in leon_pci_grpci

Sasha Levin (1):

      Linux 5.4.273

Saurav Girepunje (2):
b43: dma: Fix use true/false for bool type variable
b43: main: Fix use true/false for bool type

Shifeng Li (1):
RDMA/device: Fix a race between mad_client and cm_client init

Shigeru Yoshida (1):
hsr: Fix uninit-value access in hsr_get_node()

Shiming Cheng (1):
ipv6: fib6_rules: flush route cache when rule is changed

Sowjanya Komatineni (1):
gpu: host1x: mipi: Update tegra_mipi_request() to be node based

Srinivasan Shanmugam (2):
drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()' drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int()

Stephan Gerhold (1):
clk: qcom: reset: Allow specifying custom reset delay

Stuart Henderson (3):
ASoC: wm8962: Enable oscillator if selecting WM8962_FLL_OSC
ASoC: wm8962: Enable both SPKOUTR_ENA and SPKOUTL_ENA in mono mode
ASoC: wm8962: Fix up incorrect error message in wm8962_set_fll

Subbaraya Sundeep (1):
octeontx2-af: Use separate handlers for interrupts

Takashi Iwai (1):
ALSA: seq: fix function cast warnings

Takashi Sakamoto (1):
firewire: core: use long bus reset on gap count error

Thinh Tran (1):
net/bnx2x: Prevent access to a freed page in page_pool

Toke Høiland-Jørgensen (2):
bpf: Fix hashtab overflow check on 32-bit arches
bpf: Fix stackmap overflow check on 32-bit arches

Tudor Ambarus (1):
tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT

Uwe Kleine-König (1):
Input: gpio_keys_polled - suppress deferred probe error for gpio

Vandana BN (1):
media: v4l2-core: correctly validate video and metadata ioctls

Vinicius Costa Gomes (1):
igb: Fix missing time sync events

Wang Jianjian (1):
quota: Fix potential NULL pointer dereference

Xingyuan Mo (1):
wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev()

Yan Zhai (2):
rcu: add a helper to report consolidated flavor QS
bpf: report RCU QS in cpumap kthread

Yang Jihong (3):
perf record: Fix possible incorrect free in record__switch_output() perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample() perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str()

Yewon Choi (1):
rds: introduce acquire/release ordering in acquire/release_in_xmit()

Yishai Hadas (1):
RDMA/mlx5: Relax DEVX access upon modify commands

Yonghong Song (1):
bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly

Yuxuan Hu (1):
Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security

Zhipeng Lu (7):
wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer()
SUNRPC: fix some memleaks in gssx_dec_option_array
media: v4l2-tpg: fix some memleaks in tpg_alloc
media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity
media: edia: dvbdev: fix a use-after-free
media: go7007: fix a memleak in go7007_load_encoder
media: ttpci: fix two memleaks in budget_av_attach

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE4n5dijQDou9mhzu83qZv95d3LNwFAmYDT8MACgkQ3qZv95d3 LNwK9RAAjTHuZCeyjfzq2wALHhpgjS8Y+RdvSgU/xzM1R+/DQHG7hk4HGYKpH+1N 4+STwwbKCtYBMRGX5FmJ0KHPCtRkait3QIYScyMyC60NdBtfeYK45aztRp5lSDqe aAx7NSwAr3zLocgoSrFKz3k3a/C8fvkF8jScjKd+hS/yNmMCtUbZj9GHn7q7Vjzh 0j9zNjAZPHOne6Qb/YRaEr37H6spDtUYCulYZBgl7H7WcIHiUjU8uDzvHSvsk+Z6 Fjt9mbhO+3SWXMOehSnNcV/SCMgFRcWeA7LlyT37CnZOEScP9anVA32kU3qODszv KT5UzgW1HmkhS1ntSL0RUCnReGcTzpYU0SBRW39kapOQDNsV0SXYya/BOqngQNHP NM7TmoCKMlHm6jnENwW7TYbK/T1rzFJkfi/Z4Y77rCKXEF5d6ESuoZmfbEb2I5Fw Ful8YKF40MqDTafZrvoz519Tdho1ElhM53/NHJvu9yFQKa+qT/G++sXVcqj1u3QR qLLr/J3fzHKntIiPIs8Nfn2AcC0WIqu324mZLx5sS3ZQsx1ODAfKCmOLxestDOIB kF8j8w+pewRP5oHtxQKK5amcLTFyLDFAJ55SvPNWsuls260VJ+7mFJ8mTIagXbuT rK8U3ANoas4JRw83n3XeihxVnQnanVMNVZ0HWKQLAhds8ab/cyw= =HSgE
-----END PGP SIGNATURE-----

author maintainer
#1 lore raw
Documentation/media/kapi/v4l2-dev.rst +2 -2
index 4c5a15c53dbfb..63c064837c008 100644
@@ -185,7 +185,7 @@ This will create the character device for you.
 
 .. code-block:: c
 
-	err = video_register_device(vdev, VFL_TYPE_GRABBER, -1);
+	err = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
 	if (err) {
 		video_device_release(vdev); /* or kfree(my_vdev); */
 		return err;
@@ -201,7 +201,7 @@ types exist:
 ========================== ====================	 ==============================
 :c:type:`vfl_devnode_type` Device name		 Usage
 ========================== ====================	 ==============================
-``VFL_TYPE_GRABBER``       ``/dev/videoX``       for video input/output devices
+``VFL_TYPE_VIDEO``         ``/dev/videoX``       for video input/output devices
 ``VFL_TYPE_VBI``           ``/dev/vbiX``         for vertical blank data (i.e.
 						 closed captions, teletext)
 ``VFL_TYPE_RADIO``         ``/dev/radioX``       for radio tuners
Documentation/translations/zh_CN/video4linux/v4l2-framework.txt +2 -2
index 66c7c568bd866..9c39ee58ea507 100644
@@ -649,7 +649,7 @@ video_device注册
 
 接下来你需要注册视频设备:这会为你创建一个字符设备。
 
-	err = video_register_device(vdev, VFL_TYPE_GRABBER, -1);
+	err = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
 	if (err) {
 		video_device_release(vdev); /* or kfree(my_vdev); */
 		return err;
@@ -660,7 +660,7 @@ video_device注册
 
 注册哪种设备是根据类型(type)参数。存在以下类型:
 
-VFL_TYPE_GRABBER: 用于视频输入/输出设备的 videoX
+VFL_TYPE_VIDEO: 用于视频输入/输出设备的 videoX
 VFL_TYPE_VBI: 用于垂直消隐数据的 vbiX (例如,隐藏式字幕,图文电视)
 VFL_TYPE_RADIO: 用于广播调谐器的 radioX
 
Makefile +1 -1
index 184b31e84b99c..bcf56ce1a7f8f 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 272
+SUBLEVEL = 273
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm/boot/dts/arm-realview-pb1176.dts +1 -1
index 2625ce66f8e7e..673c6e5b2f565 100644
@@ -435,7 +435,7 @@
 
 		/* Direct-mapped development chip ROM */
 		pb1176_rom@10200000 {
-			compatible = "direct-mapped";
+			compatible = "mtd-rom";
 			reg = <0x10200000 0x4000>;
 			bank-width = <1>;
 		};
arch/arm/boot/dts/imx6dl-yapp4-common.dtsi +17 -11
index ce4a5a8074422..68af441e78948 100644
@@ -96,8 +96,6 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet>;
 	phy-mode = "rgmii-id";
-	phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
-	phy-reset-duration = <20>;
 	phy-supply = <&sw2_reg>;
 	status = "okay";
 
@@ -110,17 +108,10 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		phy_port2: phy@1 {
-			reg = <1>;
-		};
-
-		phy_port3: phy@2 {
-			reg = <2>;
-		};
-
 		switch@10 {
 			compatible = "qca,qca8334";
-			reg = <10>;
+			reg = <0x10>;
+			reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
 
 			switch_ports: ports {
 				#address-cells = <1>;
@@ -141,15 +132,30 @@
 				port@2 {
 					reg = <2>;
 					label = "eth2";
+					phy-mode = "internal";
 					phy-handle = <&phy_port2>;
 				};
 
 				port@3 {
 					reg = <3>;
 					label = "eth1";
+					phy-mode = "internal";
 					phy-handle = <&phy_port3>;
 				};
 			};
+
+			mdio {
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				phy_port2: ethernet-phy@1 {
+					reg = <1>;
+				};
+
+				phy_port3: ethernet-phy@2 {
+					reg = <2>;
+				};
+			};
 		};
 	};
 };
arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts +24 -0
index 4c6704e4c57ec..74d5732c412ba 100644
@@ -62,6 +62,30 @@
 		states = <1100000 0>, <1300000 1>;
 	};
 
+	reg_vcc_dram: vcc-dram {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc-dram";
+		regulator-min-microvolt = <1500000>;
+		regulator-max-microvolt = <1500000>;
+		regulator-always-on;
+		regulator-boot-on;
+		enable-active-high;
+		gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
+		vin-supply = <&reg_vcc5v0>;
+	};
+
+	reg_vcc1v2: vcc1v2 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc1v2";
+		regulator-min-microvolt = <1200000>;
+		regulator-max-microvolt = <1200000>;
+		regulator-always-on;
+		regulator-boot-on;
+		enable-active-high;
+		gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
+		vin-supply = <&reg_vcc5v0>;
+	};
+
 	wifi_pwrseq: wifi_pwrseq {
 		compatible = "mmc-pwrseq-simple";
 		reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
arch/arm/crypto/sha256_glue.c +5 -8
index 215497f011f23..cb3be0c15a044 100644
@@ -25,8 +25,8 @@
 
 #include "sha256_glue.h"
 
-asmlinkage void sha256_block_data_order(u32 *digest, const void *data,
-					unsigned int num_blks);
+asmlinkage void sha256_block_data_order(struct sha256_state *state,
+					const u8 *data, int num_blks);
 
 int crypto_sha256_arm_update(struct shash_desc *desc, const u8 *data,
 			     unsigned int len)
@@ -34,23 +34,20 @@ int crypto_sha256_arm_update(struct shash_desc *desc, const u8 *data,
 	/* make sure casting to sha256_block_fn() is safe */
 	BUILD_BUG_ON(offsetof(struct sha256_state, state) != 0);
 
-	return sha256_base_do_update(desc, data, len,
-				(sha256_block_fn *)sha256_block_data_order);
+	return sha256_base_do_update(desc, data, len, sha256_block_data_order);
 }
 EXPORT_SYMBOL(crypto_sha256_arm_update);
 
 static int crypto_sha256_arm_final(struct shash_desc *desc, u8 *out)
 {
-	sha256_base_do_finalize(desc,
-				(sha256_block_fn *)sha256_block_data_order);
+	sha256_base_do_finalize(desc, sha256_block_data_order);
 	return sha256_base_finish(desc, out);
 }
 
 int crypto_sha256_arm_finup(struct shash_desc *desc, const u8 *data,
 			    unsigned int len, u8 *out)
 {
-	sha256_base_do_update(desc, data, len,
-			      (sha256_block_fn *)sha256_block_data_order);
+	sha256_base_do_update(desc, data, len, sha256_block_data_order);
 	return crypto_sha256_arm_final(desc, out);
 }
 EXPORT_SYMBOL(crypto_sha256_arm_finup);
arch/arm/crypto/sha512-glue.c +5 -7
index 8775aa42bbbe8..1a16b98ec1085 100644
@@ -25,27 +25,25 @@ MODULE_ALIAS_CRYPTO("sha512");
 MODULE_ALIAS_CRYPTO("sha384-arm");
 MODULE_ALIAS_CRYPTO("sha512-arm");
 
-asmlinkage void sha512_block_data_order(u64 *state, u8 const *src, int blocks);
+asmlinkage void sha512_block_data_order(struct sha512_state *state,
+					u8 const *src, int blocks);
 
 int sha512_arm_update(struct shash_desc *desc, const u8 *data,
 		      unsigned int len)
 {
-	return sha512_base_do_update(desc, data, len,
-		(sha512_block_fn *)sha512_block_data_order);
+	return sha512_base_do_update(desc, data, len, sha512_block_data_order);
 }
 
 static int sha512_arm_final(struct shash_desc *desc, u8 *out)
 {
-	sha512_base_do_finalize(desc,
-		(sha512_block_fn *)sha512_block_data_order);
+	sha512_base_do_finalize(desc, sha512_block_data_order);
 	return sha512_base_finish(desc, out);
 }
 
 int sha512_arm_finup(struct shash_desc *desc, const u8 *data,
 		     unsigned int len, u8 *out)
 {
-	sha512_base_do_update(desc, data, len,
-		(sha512_block_fn *)sha512_block_data_order);
+	sha512_base_do_update(desc, data, len, sha512_block_data_order);
 	return sha512_arm_final(desc, out);
 }
 
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +1 -0
index 7b095378c96cd..eec9ec1db682a 100644
@@ -71,6 +71,7 @@
 
 	memory@40000000 {
 		reg = <0 0x40000000 0 0x40000000>;
+		device_type = "memory";
 	};
 
 	reg_1p8v: regulator-1p8v {
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +1 -0
index f586c1ee4a59e..ee57fccd489a3 100644
@@ -57,6 +57,7 @@
 
 	memory@40000000 {
 		reg = <0 0x40000000 0 0x20000000>;
+		device_type = "memory";
 	};
 
 	reg_1p8v: regulator-1p8v {
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi +407 -376

838 lines not on this page · raw message

arch/arm64/boot/dts/qcom/msm8996.dtsi +74 -118

482 lines not on this page · raw message

arch/mips/include/asm/ptrace.h +1 -0
index 1e76774b36ddf..2849a9b65a055 100644
@@ -60,6 +60,7 @@ static inline void instruction_pointer_set(struct pt_regs *regs,
                                            unsigned long val)
 {
 	regs->cp0_epc = val;
+	regs->cp0_cause &= ~CAUSEF_BD;
 }
 
 /* Query offset/name of register from its name/offset */
arch/parisc/kernel/ftrace.c +1 -1
index b836fc61a24f4..f3a5c5e480cf0 100644
@@ -80,7 +80,7 @@ void notrace __hot ftrace_function_trampoline(unsigned long parent,
 #endif
 }
 
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
+#if defined(CONFIG_DYNAMIC_FTRACE) && defined(CONFIG_FUNCTION_GRAPH_TRACER)
 int ftrace_enable_ftrace_graph_caller(void)
 {
 	return 0;
arch/powerpc/perf/hv-gpci.c +27 -2
index ac3f3df57fe39..e85f1962be024 100644
@@ -153,6 +153,20 @@ static unsigned long single_gpci_request(u32 req, u32 starting_index,
 
 	ret = plpar_hcall_norets(H_GET_PERF_COUNTER_INFO,
 			virt_to_phys(arg), HGPCI_REQ_BUFFER_SIZE);
+
+	/*
+	 * ret value as 'H_PARAMETER' with detail_rc as 'GEN_BUF_TOO_SMALL',
+	 * specifies that the current buffer size cannot accommodate
+	 * all the information and a partial buffer returned.
+	 * Since in this function we are only accessing data for a given starting index,
+	 * we don't need to accommodate whole data and can get required count by
+	 * accessing first entry data.
+	 * Hence hcall fails only incase the ret value is other than H_SUCCESS or
+	 * H_PARAMETER with detail_rc value as GEN_BUF_TOO_SMALL(0x1B).
+	 */
+	if (ret == H_PARAMETER && be32_to_cpu(arg->params.detail_rc) == 0x1B)
+		ret = 0;
+
 	if (ret) {
 		pr_devel("hcall failed: 0x%lx\n", ret);
 		goto out;
@@ -217,6 +231,7 @@ static int h_gpci_event_init(struct perf_event *event)
 {
 	u64 count;
 	u8 length;
+	unsigned long ret;
 
 	/* Not our event */
 	if (event->attr.type != event->pmu->type)
@@ -247,13 +262,23 @@ static int h_gpci_event_init(struct perf_event *event)
 	}
 
 	/* check if the request works... */
-	if (single_gpci_request(event_get_request(event),
+	ret = single_gpci_request(event_get_request(event),
 				event_get_starting_index(event),
 				event_get_secondary_index(event),
 				event_get_counter_info_version(event),
 				event_get_offset(event),
 				length,
-				&count)) {
+				&count);
+
+	/*
+	 * ret value as H_AUTHORITY implies that partition is not permitted to retrieve
+	 * performance information, and required to set
+	 * "Enable Performance Information Collection" option.
+	 */
+	if (ret == H_AUTHORITY)
+		return -EPERM;
+
+	if (ret) {
 		pr_devel("gpci hcall failed\n");
 		return -EINVAL;
 	}
arch/powerpc/platforms/embedded6xx/linkstation.c +0 -3
index f514d5d28cd4f..3f3821eb4c36b 100644
@@ -97,9 +97,6 @@ static void __init linkstation_init_IRQ(void)
 	mpic_init(mpic);
 }
 
-extern void avr_uart_configure(void);
-extern void avr_uart_send(const char);
-
 static void __noreturn linkstation_restart(char *cmd)
 {
 	local_irq_disable();
arch/powerpc/platforms/embedded6xx/mpc10x.h +3 -0
index 5ad12023e5628..ebc258fa4858d 100644
@@ -156,4 +156,7 @@ int mpc10x_disable_store_gathering(struct pci_controller *hose);
 /* For MPC107 boards that use the built-in openpic */
 void mpc10x_set_openpic(void);
 
+void avr_uart_configure(void);
+void avr_uart_send(const char c);
+
 #endif	/* __PPC_KERNEL_MPC10X_H */
arch/s390/kernel/vtime.c +2 -2
index 6e60cc2443b2e..2c99de1cc92cb 100644
@@ -214,13 +214,13 @@ void vtime_flush(struct task_struct *tsk)
 		virt_timer_expire();
 
 	steal = S390_lowcore.steal_timer;
-	avg_steal = S390_lowcore.avg_steal_timer / 2;
+	avg_steal = S390_lowcore.avg_steal_timer;
 	if ((s64) steal > 0) {
 		S390_lowcore.steal_timer = 0;
 		account_steal_time(cputime_to_nsecs(steal));
 		avg_steal += steal;
 	}
-	S390_lowcore.avg_steal_timer = avg_steal;
+	S390_lowcore.avg_steal_timer = avg_steal / 2;
 }
 
 /*
arch/sparc/kernel/leon_pci_grpci1.c +1 -1
index e6935d0ac1ec9..c32590bdd3120 100644
@@ -696,7 +696,7 @@ static int grpci1_of_probe(struct platform_device *ofdev)
 	return err;
 }
 
-static const struct of_device_id grpci1_of_match[] __initconst = {
+static const struct of_device_id grpci1_of_match[] = {
 	{
 	 .name = "GAISLER_PCIFBRG",
 	 },
arch/sparc/kernel/leon_pci_grpci2.c +1 -1
index ca22f93d90454..dd06abc61657f 100644
@@ -887,7 +887,7 @@ static int grpci2_of_probe(struct platform_device *ofdev)
 	return err;
 }
 
-static const struct of_device_id grpci2_of_match[] __initconst = {
+static const struct of_device_id grpci2_of_match[] = {
 	{
 	 .name = "GAISLER_GRPCI2",
 	 },
arch/x86/tools/relocs.c +8 -0
index 1c3a1962cade6..0043fd374a62f 100644
@@ -596,6 +596,14 @@ static void print_absolute_relocs(void)
 		if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) {
 			continue;
 		}
+		/*
+		 * Do not perform relocations in .notes section; any
+		 * values there are meant for pre-boot consumption (e.g.
+		 * startup_xen).
+		 */
+		if (sec_applies->shdr.sh_type == SHT_NOTE) {
+			continue;
+		}
 		sh_symtab  = sec_symtab->symtab;
 		sym_strtab = sec_symtab->link->strtab;
 		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) {
arch/x86/xen/smp.c +12 -0
index a1cc855c539c1..a76ba342a6695 100644
@@ -65,6 +65,8 @@ int xen_smp_intr_init(unsigned int cpu)
 	char *resched_name, *callfunc_name, *debug_name;
 
 	resched_name = kasprintf(GFP_KERNEL, "resched%d", cpu);
+	if (!resched_name)
+		goto fail_mem;
 	per_cpu(xen_resched_irq, cpu).name = resched_name;
 	rc = bind_ipi_to_irqhandler(XEN_RESCHEDULE_VECTOR,
 				    cpu,
@@ -77,6 +79,8 @@ int xen_smp_intr_init(unsigned int cpu)
 	per_cpu(xen_resched_irq, cpu).irq = rc;
 
 	callfunc_name = kasprintf(GFP_KERNEL, "callfunc%d", cpu);
+	if (!callfunc_name)
+		goto fail_mem;
 	per_cpu(xen_callfunc_irq, cpu).name = callfunc_name;
 	rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_VECTOR,
 				    cpu,
@@ -90,6 +94,9 @@ int xen_smp_intr_init(unsigned int cpu)
 
 	if (!xen_fifo_events) {
 		debug_name = kasprintf(GFP_KERNEL, "debug%d", cpu);
+		if (!debug_name)
+			goto fail_mem;
+
 		per_cpu(xen_debug_irq, cpu).name = debug_name;
 		rc = bind_virq_to_irqhandler(VIRQ_DEBUG, cpu,
 					     xen_debug_interrupt,
@@ -101,6 +108,9 @@ int xen_smp_intr_init(unsigned int cpu)
 	}
 
 	callfunc_name = kasprintf(GFP_KERNEL, "callfuncsingle%d", cpu);
+	if (!callfunc_name)
+		goto fail_mem;
+
 	per_cpu(xen_callfuncsingle_irq, cpu).name = callfunc_name;
 	rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_SINGLE_VECTOR,
 				    cpu,
@@ -114,6 +124,8 @@ int xen_smp_intr_init(unsigned int cpu)
 
 	return 0;
 
+ fail_mem:
+	rc = -ENOMEM;
  fail:
 	xen_smp_intr_free(cpu);
 	return rc;
block/opal_proto.h +1 -0
index 5532412d567c0..354b4e93bf63e 100644
@@ -65,6 +65,7 @@ enum opal_response_token {
 #define SHORT_ATOM_BYTE  0xBF
 #define MEDIUM_ATOM_BYTE 0xDF
 #define LONG_ATOM_BYTE   0xE3
+#define EMPTY_ATOM_BYTE  0xFF
 
 #define OPAL_INVAL_PARAM 12
 #define OPAL_MANUFACTURED_INACTIVE 0x08
block/sed-opal.c +5 -1
index 401d33ae01580..1a08762515291 100644
@@ -893,16 +893,20 @@ static int response_parse(const u8 *buf, size_t length,
 			token_length = response_parse_medium(iter, pos);
 		else if (pos[0] <= LONG_ATOM_BYTE) /* long atom */
 			token_length = response_parse_long(iter, pos);
+		else if (pos[0] == EMPTY_ATOM_BYTE) /* empty atom */
+			token_length = 1;
 		else /* TOKEN */
 			token_length = response_parse_token(iter, pos);
 
 		if (token_length < 0)
 			return token_length;
 
+		if (pos[0] != EMPTY_ATOM_BYTE)
+			num_entries++;
+
 		pos += token_length;
 		total -= token_length;
 		iter++;
-		num_entries++;
 	}
 
 	resp->num = num_entries;
drivers/acpi/processor_idle.c +2 -0
index 0ea5e677f00ee..0aca77cb8301c 100644
@@ -1531,6 +1531,8 @@ int acpi_processor_power_exit(struct acpi_processor *pr)
 		acpi_processor_registered--;
 		if (acpi_processor_registered == 0)
 			cpuidle_unregister_driver(&acpi_idle_driver);
+
+		kfree(dev);
 	}
 
 	pr->flags.power_setup_done = 0;
drivers/acpi/scan.c +2 -6
index 5d4be80ee6cb4..629e6044f6233 100644
@@ -322,18 +322,14 @@ static int acpi_scan_device_check(struct acpi_device *adev)
 		 * again).
 		 */
 		if (adev->handler) {
-			dev_warn(&adev->dev, "Already enumerated\n");
-			return -EALREADY;
+			dev_dbg(&adev->dev, "Already enumerated\n");
+			return 0;
 		}
 		error = acpi_bus_scan(adev->handle);
 		if (error) {
 			dev_warn(&adev->dev, "Namespace scan failure\n");
 			return error;
 		}
-		if (!adev->handler) {
-			dev_warn(&adev->dev, "Enumeration failure\n");
-			error = -ENODEV;
-		}
 	} else {
 		error = acpi_scan_device_not_present(adev);
 	}
drivers/base/regmap/regmap.c +1 -1
index 6f580883c1973..aa9c6e0ff878d 100644
@@ -1648,7 +1648,7 @@ static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg,
 				 map->format.reg_bytes +
 				 map->format.pad_bytes +
 				 val_len);
-	else if (map->bus->gather_write)
+	else if (map->bus && map->bus->gather_write)
 		ret = map->bus->gather_write(map->bus_context, map->work_buf,
 					     map->format.reg_bytes +
 					     map->format.pad_bytes,
drivers/block/aoe/aoecmd.c +6 -6
index 3cf9bc5d8d959..3d5117be57f9f 100644
@@ -420,13 +420,16 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff_head *qu
 	rcu_read_lock();
 	for_each_netdev_rcu(&init_net, ifp) {
 		dev_hold(ifp);
-		if (!is_aoe_netif(ifp))
-			goto cont;
+		if (!is_aoe_netif(ifp)) {
+			dev_put(ifp);
+			continue;
+		}
 
 		skb = new_skb(sizeof *h + sizeof *ch);
 		if (skb == NULL) {
 			printk(KERN_INFO "aoe: skb alloc failure\n");
-			goto cont;
+			dev_put(ifp);
+			continue;
 		}
 		skb_put(skb, sizeof *h + sizeof *ch);
 		skb->dev = ifp;
@@ -441,9 +444,6 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff_head *qu
 		h->major = cpu_to_be16(aoemajor);
 		h->minor = aoeminor;
 		h->cmd = AOECMD_CFG;
-
-cont:
-		dev_put(ifp);
 	}
 	rcu_read_unlock();
 }
drivers/block/aoe/aoenet.c +1 -0
index 63773a90581dd..1e66c7a188a12 100644
@@ -64,6 +64,7 @@ tx(int id) __must_hold(&txlock)
 			pr_warn("aoe: packet could not be sent on %s.  %s\n",
 				ifp ? ifp->name : "netif",
 				"consider increasing tx_queue_len");
+		dev_put(ifp);
 		spin_lock_irq(&txlock);
 	}
 	return 0;
drivers/block/nbd.c +6 -0
index 37994a7a1b6f4..f2d847ffcbc75 100644
@@ -2313,6 +2313,12 @@ static int nbd_genl_status(struct sk_buff *skb, struct genl_info *info)
 	}
 
 	dev_list = nla_nest_start_noflag(reply, NBD_ATTR_DEVICE_LIST);
+	if (!dev_list) {
+		nlmsg_free(reply);
+		ret = -EMSGSIZE;
+		goto out;
+	}
+
 	if (index == -1) {
 		ret = idr_for_each(&nbd_index_idr, &status_cb, reply);
 		if (ret) {
drivers/bus/Kconfig +3 -2
index 47c2bb444ab4a..072dc40e29a69 100644
@@ -136,11 +136,12 @@ config SUNXI_RSB
 
 config TEGRA_ACONNECT
 	tristate "Tegra ACONNECT Bus Driver"
-	depends on ARCH_TEGRA_210_SOC
+	depends on ARCH_TEGRA
 	depends on OF && PM
 	help
 	  Driver for the Tegra ACONNECT bus which is used to interface with
-	  the devices inside the Audio Processing Engine (APE) for Tegra210.
+	  the devices inside the Audio Processing Engine (APE) for
+	  Tegra210 and later.
 
 config TEGRA_GMI
 	tristate "Tegra Generic Memory Interface bus driver"
drivers/clk/clk.c +3 -0
index 661d456fb0adf..67051ca60920a 100644
@@ -425,6 +425,9 @@ static struct clk_core *clk_core_get(struct clk_core *core, u8 p_index)
 	if (IS_ERR(hw))
 		return ERR_CAST(hw);
 
+	if (!hw)
+		return NULL;
+
 	return hw->core;
 }
 
drivers/clk/hisilicon/clk-hi3519.c +1 -1
index ad0c7f350cf03..60d8a27a90824 100644
@@ -130,7 +130,7 @@ static void hi3519_clk_unregister(struct platform_device *pdev)
 	of_clk_del_provider(pdev->dev.of_node);
 
 	hisi_clk_unregister_gate(hi3519_gate_clks,
-				ARRAY_SIZE(hi3519_mux_clks),
+				ARRAY_SIZE(hi3519_gate_clks),
 				crg->clk_data);
 	hisi_clk_unregister_mux(hi3519_mux_clks,
 				ARRAY_SIZE(hi3519_mux_clks),
drivers/clk/qcom/dispcc-sdm845.c +2 -0
index 0cc4909b5dbef..cb7a2d9247b04 100644
@@ -569,6 +569,8 @@ static struct clk_branch disp_cc_mdss_vsync_clk = {
 
 static struct gdsc mdss_gdsc = {
 	.gdscr = 0x3000,
+	.en_few_wait_val = 0x6,
+	.en_rest_wait_val = 0x5,
 	.pd = {
 		.name = "mdss_gdsc",
 	},
drivers/clk/qcom/reset.c +18 -15
index 819d194be8f7b..5a44dc8bd25f2 100644
@@ -13,14 +13,16 @@
 
 static int qcom_reset(struct reset_controller_dev *rcdev, unsigned long id)
 {
+	struct qcom_reset_controller *rst = to_qcom_reset_controller(rcdev);
+
 	rcdev->ops->assert(rcdev, id);
-	udelay(1);
+	udelay(rst->reset_map[id].udelay ?: 1); /* use 1 us as default */
 	rcdev->ops->deassert(rcdev, id);
 	return 0;
 }
 
-static int
-qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id)
+static int qcom_reset_set_assert(struct reset_controller_dev *rcdev,
+				 unsigned long id, bool assert)
 {
 	struct qcom_reset_controller *rst;
 	const struct qcom_reset_map *map;
@@ -28,23 +30,24 @@ qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id)
 
 	rst = to_qcom_reset_controller(rcdev);
 	map = &rst->reset_map[id];
-	mask = BIT(map->bit);
+	mask = map->bitmask ? map->bitmask : BIT(map->bit);
+
+	regmap_update_bits(rst->regmap, map->reg, mask, assert ? mask : 0);
+
+	/* Read back the register to ensure write completion, ignore the value */
+	regmap_read(rst->regmap, map->reg, &mask);
 
-	return regmap_update_bits(rst->regmap, map->reg, mask, mask);
+	return 0;
 }
 
-static int
-qcom_reset_deassert(struct reset_controller_dev *rcdev, unsigned long id)
+static int qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id)
 {
-	struct qcom_reset_controller *rst;
-	const struct qcom_reset_map *map;
-	u32 mask;
-
-	rst = to_qcom_reset_controller(rcdev);
-	map = &rst->reset_map[id];
-	mask = BIT(map->bit);
+	return qcom_reset_set_assert(rcdev, id, true);
+}
 
-	return regmap_update_bits(rst->regmap, map->reg, mask, 0);
+static int qcom_reset_deassert(struct reset_controller_dev *rcdev, unsigned long id)
+{
+	return qcom_reset_set_assert(rcdev, id, false);
 }
 
 const struct reset_control_ops qcom_reset_ops = {
drivers/clk/qcom/reset.h +2 -0
index 2a08b5e282c77..9a47c838d9b1b 100644
@@ -11,6 +11,8 @@
 struct qcom_reset_map {
 	unsigned int reg;
 	u8 bit;
+	u8 udelay;
+	u32 bitmask;
 };
 
 struct regmap;
drivers/dma/Kconfig +7 -7
index 66aad9dbd58c5..a7c156ce2c298 100644
@@ -582,16 +582,16 @@ config TEGRA20_APB_DMA
 
 config TEGRA210_ADMA
 	tristate "NVIDIA Tegra210 ADMA support"
-	depends on (ARCH_TEGRA_210_SOC || COMPILE_TEST)
+	depends on (ARCH_TEGRA || COMPILE_TEST)
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
 	help
-	  Support for the NVIDIA Tegra210 ADMA controller driver. The
-	  DMA controller has multiple DMA channels and is used to service
-	  various audio clients in the Tegra210 audio processing engine
-	  (APE). This DMA controller transfers data from memory to
-	  peripheral and vice versa. It does not support memory to
-	  memory data transfer.
+	  Support for the NVIDIA Tegra210/Tegra186/Tegra194/Tegra234 ADMA
+	  controller driver. The DMA controller has multiple DMA channels
+	  and is used to service various audio clients in the Tegra210
+	  audio processing engine (APE). This DMA controller transfers
+	  data from memory to peripheral and vice versa. It does not
+	  support memory to memory data transfer.
 
 config TIMB_DMA
 	tristate "Timberdale FPGA DMA support"
drivers/firewire/core-card.c +13 -1
index be195ba834632..d446a72629414 100644
@@ -500,7 +500,19 @@ static void bm_work(struct work_struct *work)
 		fw_notice(card, "phy config: new root=%x, gap_count=%d\n",
 			  new_root_id, gap_count);
 		fw_send_phy_config(card, new_root_id, generation, gap_count);
-		reset_bus(card, true);
+		/*
+		 * Where possible, use a short bus reset to minimize
+		 * disruption to isochronous transfers. But in the event
+		 * of a gap count inconsistency, use a long bus reset.
+		 *
+		 * As noted in 1394a 8.4.6.2, nodes on a mixed 1394/1394a bus
+		 * may set different gap counts after a bus reset. On a mixed
+		 * 1394/1394a bus, a short bus reset can get doubled. Some
+		 * nodes may treat the double reset as one bus reset and others
+		 * may treat it as two, causing a gap count inconsistency
+		 * again. Using a long bus reset prevents this.
+		 */
+		reset_bus(card, card->gap_count != 0);
 		/* Will allocate broadcast channel after the reset. */
 		goto out;
 	}
drivers/gpu/drm/amd/amdgpu/atom.c +1 -1
index cae426c7c0863..e1503b52519a0 100644
@@ -308,7 +308,7 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx, uint8_t attr,
 				DEBUG("IMM 0x%02X\n", val);
 			return val;
 		}
-		return 0;
+		break;
 	case ATOM_ARG_PLL:
 		idx = U8(*ptr);
 		(*ptr)++;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +5 -2
index c4c99bc7f2890..3059739695d8c 100644
@@ -1470,6 +1470,9 @@ dcn10_set_output_transfer_func(struct pipe_ctx *pipe_ctx,
 {
 	struct dpp *dpp = pipe_ctx->plane_res.dpp;
 
+	if (!stream)
+		return false;
+
 	if (dpp == NULL)
 		return false;
 
@@ -1492,8 +1495,8 @@ dcn10_set_output_transfer_func(struct pipe_ctx *pipe_ctx,
 	} else
 		dpp->funcs->dpp_program_regamma_pwl(dpp, NULL, OPP_REGAMMA_BYPASS);
 
-	if (stream != NULL && stream->ctx != NULL &&
-			stream->out_transfer_func != NULL) {
+	if (stream->ctx &&
+	    stream->out_transfer_func) {
 		log_tf(stream->ctx,
 				stream->out_transfer_func,
 				dpp->regamma_params.hw_points_num);
drivers/gpu/drm/mediatek/mtk_drm_crtc.c +7 -5
index f370d41b3d041..9bbad33500691 100644
@@ -73,11 +73,13 @@ static void mtk_drm_crtc_finish_page_flip(struct mtk_drm_crtc *mtk_crtc)
 	struct drm_crtc *crtc = &mtk_crtc->base;
 	unsigned long flags;
 
-	spin_lock_irqsave(&crtc->dev->event_lock, flags);
-	drm_crtc_send_vblank_event(crtc, mtk_crtc->event);
-	drm_crtc_vblank_put(crtc);
-	mtk_crtc->event = NULL;
-	spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
+	if (mtk_crtc->event) {
+		spin_lock_irqsave(&crtc->dev->event_lock, flags);
+		drm_crtc_send_vblank_event(crtc, mtk_crtc->event);
+		drm_crtc_vblank_put(crtc);
+		mtk_crtc->event = NULL;
+		spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
+	}
 }
 
 static void mtk_drm_finish_page_flip(struct mtk_drm_crtc *mtk_crtc)
drivers/gpu/drm/mediatek/mtk_dsi.c +5 -5
index e82705a33acfd..9af900076dee4 100644
@@ -64,8 +64,8 @@
 #define DSI_PS_WC			0x3fff
 #define DSI_PS_SEL			(3 << 16)
 #define PACKED_PS_16BIT_RGB565		(0 << 16)
-#define LOOSELY_PS_18BIT_RGB666		(1 << 16)
-#define PACKED_PS_18BIT_RGB666		(2 << 16)
+#define PACKED_PS_18BIT_RGB666		(1 << 16)
+#define LOOSELY_PS_24BIT_RGB666		(2 << 16)
 #define PACKED_PS_24BIT_RGB888		(3 << 16)
 
 #define DSI_VSA_NL		0x20
@@ -321,10 +321,10 @@ static void mtk_dsi_ps_control_vact(struct mtk_dsi *dsi)
 		ps_bpp_mode |= PACKED_PS_24BIT_RGB888;
 		break;
 	case MIPI_DSI_FMT_RGB666:
-		ps_bpp_mode |= PACKED_PS_18BIT_RGB666;
+		ps_bpp_mode |= LOOSELY_PS_24BIT_RGB666;
 		break;
 	case MIPI_DSI_FMT_RGB666_PACKED:
-		ps_bpp_mode |= LOOSELY_PS_18BIT_RGB666;
+		ps_bpp_mode |= PACKED_PS_18BIT_RGB666;
 		break;
 	case MIPI_DSI_FMT_RGB565:
 		ps_bpp_mode |= PACKED_PS_16BIT_RGB565;
@@ -375,7 +375,7 @@ static void mtk_dsi_ps_control(struct mtk_dsi *dsi)
 		dsi_tmp_buf_bpp = 3;
 		break;
 	case MIPI_DSI_FMT_RGB666:
-		tmp_reg = LOOSELY_PS_18BIT_RGB666;
+		tmp_reg = LOOSELY_PS_24BIT_RGB666;
 		dsi_tmp_buf_bpp = 3;
 		break;
 	case MIPI_DSI_FMT_RGB666_PACKED:
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c +4 -2
index b9c84fb4d4a1f..311863a05a6fa 100644
@@ -258,12 +258,14 @@ static void dpu_encoder_phys_vid_setup_timing_engine(
 		mode.htotal >>= 1;
 		mode.hsync_start >>= 1;
 		mode.hsync_end >>= 1;
+		mode.hskew >>= 1;
 
 		DPU_DEBUG_VIDENC(phys_enc,
-			"split_role %d, halve horizontal %d %d %d %d\n",
+			"split_role %d, halve horizontal %d %d %d %d %d\n",
 			phys_enc->split_role,
 			mode.hdisplay, mode.htotal,
-			mode.hsync_start, mode.hsync_end);
+			mode.hsync_start, mode.hsync_end,
+			mode.hskew);
 	}
 
 	drm_mode_to_intf_timing_params(phys_enc, &mode, &timing_params);
drivers/gpu/drm/radeon/ni.c +1 -1
index 410f626a39d43..1fa48853b54e4 100644
@@ -826,7 +826,7 @@ int ni_init_microcode(struct radeon_device *rdev)
 			err = 0;
 		} else if (rdev->smc_fw->size != smc_req_size) {
 			pr_err("ni_mc: Bogus length %zu in firmware \"%s\"\n",
-			       rdev->mc_fw->size, fw_name);
+			       rdev->smc_fw->size, fw_name);
 			err = -EINVAL;
 		}
 	}
drivers/gpu/drm/rockchip/inno_hdmi.c +2 -2
index f2e2cc66f4897..95888e64bd8bc 100644
@@ -401,7 +401,7 @@ static int inno_hdmi_config_video_timing(struct inno_hdmi *hdmi,
 	hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HBLANK_L, value & 0xFF);
 	hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HBLANK_H, (value >> 8) & 0xFF);
 
-	value = mode->hsync_start - mode->hdisplay;
+	value = mode->htotal - mode->hsync_start;
 	hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDELAY_L, value & 0xFF);
 	hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDELAY_H, (value >> 8) & 0xFF);
 
@@ -416,7 +416,7 @@ static int inno_hdmi_config_video_timing(struct inno_hdmi *hdmi,
 	value = mode->vtotal - mode->vdisplay;
 	hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VBLANK, value & 0xFF);
 
-	value = mode->vsync_start - mode->vdisplay;
+	value = mode->vtotal - mode->vsync_start;
 	hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VDELAY, value & 0xFF);
 
 	value = mode->vsync_end - mode->vsync_start;
drivers/gpu/drm/rockchip/rockchip_lvds.c +0 -1
index 64aefa8568963..aa8212c721b10 100644
@@ -366,7 +366,6 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
 		goto err_put_port;
 	} else if (ret) {
 		DRM_DEV_ERROR(dev, "failed to find panel and bridge node\n");
-		ret = -EPROBE_DEFER;
 		goto err_put_port;
 	}
 	if (lvds->panel)
drivers/gpu/drm/tegra/dsi.c +32 -17

98 lines not on this page · raw message

drivers/gpu/drm/tegra/fb.c +1 -0
index e34325c83d28e..361e67e4cd984 100644
@@ -155,6 +155,7 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
 
 		if (gem->size < size) {
 			err = -EINVAL;
+			drm_gem_object_put(gem);
 			goto unreference;
 		}
 
drivers/gpu/drm/tegra/output.c +12 -4
index bdcaa4c7168cf..806249c0b7e85 100644
@@ -127,8 +127,10 @@ int tegra_output_probe(struct tegra_output *output)
 						       GPIOD_IN,
 						       "HDMI hotplug detect");
 	if (IS_ERR(output->hpd_gpio)) {
-		if (PTR_ERR(output->hpd_gpio) != -ENOENT)
-			return PTR_ERR(output->hpd_gpio);
+		if (PTR_ERR(output->hpd_gpio) != -ENOENT) {
+			err = PTR_ERR(output->hpd_gpio);
+			goto put_i2c;
+		}
 
 		output->hpd_gpio = NULL;
 	}
@@ -137,7 +139,7 @@ int tegra_output_probe(struct tegra_output *output)
 		err = gpiod_to_irq(output->hpd_gpio);
 		if (err < 0) {
 			dev_err(output->dev, "gpiod_to_irq(): %d\n", err);
-			return err;
+			goto put_i2c;
 		}
 
 		output->hpd_irq = err;
@@ -150,7 +152,7 @@ int tegra_output_probe(struct tegra_output *output)
 		if (err < 0) {
 			dev_err(output->dev, "failed to request IRQ#%u: %d\n",
 				output->hpd_irq, err);
-			return err;
+			goto put_i2c;
 		}
 
 		output->connector.polled = DRM_CONNECTOR_POLL_HPD;
@@ -168,6 +170,12 @@ int tegra_output_probe(struct tegra_output *output)
 		return -ENOMEM;
 
 	return 0;
+
+put_i2c:
+	if (output->ddc)
+		i2c_put_adapter(output->ddc);
+
+	return err;
 }
 
 void tegra_output_remove(struct tegra_output *output)
drivers/gpu/host1x/mipi.c +2 -2
index e00809d996a29..762d349ad00f1 100644
@@ -206,9 +206,9 @@ static int tegra_mipi_power_down(struct tegra_mipi *mipi)
 	return 0;
 }
 
-struct tegra_mipi_device *tegra_mipi_request(struct device *device)
+struct tegra_mipi_device *tegra_mipi_request(struct device *device,
+					     struct device_node *np)
 {
-	struct device_node *np = device->of_node;
 	struct tegra_mipi_device *dev;
 	struct of_phandle_args args;
 	int err;
drivers/hid/hid-multitouch.c +4 -0
index c37399f61c67b..c3810e7140a55 100644
@@ -2090,6 +2090,10 @@ static const struct hid_device_id mt_devices[] = {
 		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
 			USB_VENDOR_ID_SYNAPTICS, 0xcd7e) },
 
+	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
+		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+			USB_VENDOR_ID_SYNAPTICS, 0xcddc) },
+
 	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
 		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
 			USB_VENDOR_ID_SYNAPTICS, 0xce08) },
drivers/infiniband/core/device.c +22 -15
index a12ee8ef27a89..c7c3b9bae938c 100644
@@ -1700,7 +1700,7 @@ static int assign_client_id(struct ib_client *client)
 {
 	int ret;
 
-	down_write(&clients_rwsem);
+	lockdep_assert_held(&clients_rwsem);
 	/*
 	 * The add/remove callbacks must be called in FIFO/LIFO order. To
 	 * achieve this we assign client_ids so they are sorted in
@@ -1709,14 +1709,11 @@ static int assign_client_id(struct ib_client *client)
 	client->client_id = highest_client_id;
 	ret = xa_insert(&clients, client->client_id, client, GFP_KERNEL);
 	if (ret)
-		goto out;
+		return ret;
 
 	highest_client_id++;
 	xa_set_mark(&clients, client->client_id, CLIENT_REGISTERED);
-
-out:
-	up_write(&clients_rwsem);
-	return ret;
+	return 0;
 }
 
 static void remove_client_id(struct ib_client *client)
@@ -1746,25 +1743,35 @@ int ib_register_client(struct ib_client *client)
 {
 	struct ib_device *device;
 	unsigned long index;
+	bool need_unreg = false;
 	int ret;
 
 	refcount_set(&client->uses, 1);
 	init_completion(&client->uses_zero);
+
+	/*
+	 * The devices_rwsem is held in write mode to ensure that a racing
+	 * ib_register_device() sees a consisent view of clients and devices.
+	 */
+	down_write(&devices_rwsem);
+	down_write(&clients_rwsem);
 	ret = assign_client_id(client);
 	if (ret)
-		return ret;
+		goto out;
 
-	down_read(&devices_rwsem);
+	need_unreg = true;
 	xa_for_each_marked (&devices, index, device, DEVICE_REGISTERED) {
 		ret = add_client_context(device, client);
-		if (ret) {
-			up_read(&devices_rwsem);
-			ib_unregister_client(client);
-			return ret;
-		}
+		if (ret)
+			goto out;
 	}
-	up_read(&devices_rwsem);
-	return 0;
+	ret = 0;
+out:
+	up_write(&clients_rwsem);
+	up_write(&devices_rwsem);
+	if (need_unreg && ret)
+		ib_unregister_client(client);
+	return ret;
 }
 EXPORT_SYMBOL(ib_register_client);
 
drivers/infiniband/hw/mlx5/devx.c +1 -1
index 26cc7bbcdfe6a..7a3b56c150799 100644
@@ -2811,7 +2811,7 @@ DECLARE_UVERBS_NAMED_METHOD(
 	MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
 	UVERBS_ATTR_IDR(MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE,
 			UVERBS_IDR_ANY_OBJECT,
-			UVERBS_ACCESS_WRITE,
+			UVERBS_ACCESS_READ,
 			UA_MANDATORY),
 	UVERBS_ATTR_PTR_IN(
 		MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN,
drivers/input/keyboard/gpio_keys_polled.c +4 -6
index 465eecfa6b3f0..825fff00e4f88 100644
@@ -325,12 +325,10 @@ static int gpio_keys_polled_probe(struct platform_device *pdev)
 
 			error = devm_gpio_request_one(dev, button->gpio,
 					flags, button->desc ? : DRV_NAME);
-			if (error) {
-				dev_err(dev,
-					"unable to claim gpio %u, err=%d\n",
-					button->gpio, error);
-				return error;
-			}
+			if (error)
+				return dev_err_probe(dev, error,
+						     "unable to claim gpio %u\n",
+						     button->gpio);
 
 			bdata->gpiod = gpio_to_desc(button->gpio);
 			if (!bdata->gpiod) {
drivers/iommu/amd_iommu_init.c +3 -0
index 4a9feff340da7..15e25f712f393 100644
@@ -1745,6 +1745,9 @@ static int __init iommu_init_pci(struct amd_iommu *iommu)
 	/* Prevent binding other PCI device drivers to IOMMU devices */
 	iommu->dev->match_driver = false;
 
+	/* ACPI _PRT won't have an IRQ for IOMMU */
+	iommu->dev->irq_managed = 1;
+
 	pci_read_config_dword(iommu->dev, cap_ptr + MMIO_CAP_HDR_OFFSET,
 			      &iommu->cap);
 	pci_read_config_dword(iommu->dev, cap_ptr + MMIO_RANGE_OFFSET,
drivers/md/dm-crypt.c +2 -2
index 6b4fb4e7506f8..6866aa2aade3b 100644
@@ -46,11 +46,11 @@
 struct convert_context {
 	struct completion restart;
 	struct bio *bio_in;
-	struct bio *bio_out;
 	struct bvec_iter iter_in;
+	struct bio *bio_out;
 	struct bvec_iter iter_out;
-	u64 cc_sector;
 	atomic_t cc_pending;
+	u64 cc_sector;
 	union {
 		struct skcipher_request *req;
 		struct aead_request *req_aead;
drivers/md/dm-raid.c +2 -2
index 9f05ae2b90191..1ccd765fad938 100644
@@ -3343,14 +3343,14 @@ static int raid_map(struct dm_target *ti, struct bio *bio)
 	struct mddev *mddev = &rs->md;
 
 	/*
-	 * If we're reshaping to add disk(s)), ti->len and
+	 * If we're reshaping to add disk(s), ti->len and
 	 * mddev->array_sectors will differ during the process
 	 * (ti->len > mddev->array_sectors), so we have to requeue
 	 * bios with addresses > mddev->array_sectors here or
 	 * there will occur accesses past EOD of the component
 	 * data images thus erroring the raid set.
 	 */
-	if (unlikely(bio_end_sector(bio) > mddev->array_sectors))
+	if (unlikely(bio_has_data(bio) && bio_end_sector(bio) > mddev->array_sectors))
 		return DM_MAPIO_REQUEUE;
 
 	md_handle_request(mddev, bio);
drivers/md/dm-verity.h +2 -2
index 74ad36b6dbf53..fee7c7a81ce4e 100644
@@ -73,11 +73,11 @@ struct dm_verity_io {
 	/* original value of bio->bi_end_io */
 	bio_end_io_t *orig_bi_end_io;
 
+	struct bvec_iter iter;
+
 	sector_t block;
 	unsigned n_blocks;
 
-	struct bvec_iter iter;
-
 	struct work_struct work;
 
 	/*
drivers/md/dm.c +20 -6
index 771167ee552cd..a7724ba45b437 100644
@@ -2809,6 +2809,9 @@ static void __dm_internal_suspend(struct mapped_device *md, unsigned suspend_fla
 
 static void __dm_internal_resume(struct mapped_device *md)
 {
+	int r;
+	struct dm_table *map;
+
 	BUG_ON(!md->internal_suspend_count);
 
 	if (--md->internal_suspend_count)
@@ -2817,12 +2820,23 @@ static void __dm_internal_resume(struct mapped_device *md)
 	if (dm_suspended_md(md))
 		goto done; /* resume from nested suspend */
 
-	/*
-	 * NOTE: existing callers don't need to call dm_table_resume_targets
-	 * (which may fail -- so best to avoid it for now by passing NULL map)
-	 */
-	(void) __dm_resume(md, NULL);
-
+	map = rcu_dereference_protected(md->map, lockdep_is_held(&md->suspend_lock));
+	r = __dm_resume(md, map);
+	if (r) {
+		/*
+		 * If a preresume method of some target failed, we are in a
+		 * tricky situation. We can't return an error to the caller. We
+		 * can't fake success because then the "resume" and
+		 * "postsuspend" methods would not be paired correctly, and it
+		 * would break various targets, for example it would cause list
+		 * corruption in the "origin" target.
+		 *
+		 * So, we fake normal suspend here, to make sure that the
+		 * "resume" and "postsuspend" methods will be paired correctly.
+		 */
+		DMERR("Preresume method failed: %d", r);
+		set_bit(DMF_SUSPENDED, &md->flags);
+	}
 done:
 	clear_bit(DMF_SUSPENDED_INTERNALLY, &md->flags);
 	smp_mb__after_atomic();
drivers/media/common/v4l2-tpg/v4l2-tpg-core.c +42 -10

80 lines not on this page · raw message

drivers/media/dvb-core/dvbdev.c +5 -0
index e7cd7b13fc28c..d4d903a9dc31e 100644
@@ -504,6 +504,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
 		dvbdevfops = kmemdup(template->fops, sizeof(*dvbdevfops), GFP_KERNEL);
 		if (!dvbdevfops) {
 			kfree(dvbdev);
+			*pdvbdev = NULL;
 			mutex_unlock(&dvbdev_register_lock);
 			return -ENOMEM;
 		}
@@ -512,6 +513,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
 		if (!new_node) {
 			kfree(dvbdevfops);
 			kfree(dvbdev);
+			*pdvbdev = NULL;
 			mutex_unlock(&dvbdev_register_lock);
 			return -ENOMEM;
 		}
@@ -545,6 +547,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
 		}
 		list_del (&dvbdev->list_head);
 		kfree(dvbdev);
+		*pdvbdev = NULL;
 		up_write(&minor_rwsem);
 		mutex_unlock(&dvbdev_register_lock);
 		return -EINVAL;
@@ -567,6 +570,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
 		dvb_media_device_free(dvbdev);
 		list_del (&dvbdev->list_head);
 		kfree(dvbdev);
+		*pdvbdev = NULL;
 		mutex_unlock(&dvbdev_register_lock);
 		return ret;
 	}
@@ -585,6 +589,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
 		dvb_media_device_free(dvbdev);
 		list_del (&dvbdev->list_head);
 		kfree(dvbdev);
+		*pdvbdev = NULL;
 		mutex_unlock(&dvbdev_register_lock);
 		return PTR_ERR(clsdev);
 	}
drivers/media/dvb-frontends/stv0367.c +8 -26
index 0bfca1174e9e7..8cbae8235b174 100644
@@ -118,50 +118,32 @@ static const s32 stv0367cab_RF_LookUp2[RF_LOOKUP_TABLE2_SIZE][RF_LOOKUP_TABLE2_S
 	}
 };
 
-static
-int stv0367_writeregs(struct stv0367_state *state, u16 reg, u8 *data, int len)
+static noinline_for_stack
+int stv0367_writereg(struct stv0367_state *state, u16 reg, u8 data)
 {
-	u8 buf[MAX_XFER_SIZE];
+	u8 buf[3] = { MSB(reg), LSB(reg), data };
 	struct i2c_msg msg = {
 		.addr = state->config->demod_address,
 		.flags = 0,
 		.buf = buf,
-		.len = len + 2
+		.len = 3,
 	};
 	int ret;
 
-	if (2 + len > sizeof(buf)) {
-		printk(KERN_WARNING
-		       "%s: i2c wr reg=%04x: len=%d is too big!\n",
-		       KBUILD_MODNAME, reg, len);
-		return -EINVAL;
-	}
-
-
-	buf[0] = MSB(reg);
-	buf[1] = LSB(reg);
-	memcpy(buf + 2, data, len);
-
 	if (i2cdebug)
 		printk(KERN_DEBUG "%s: [%02x] %02x: %02x\n", __func__,
-			state->config->demod_address, reg, buf[2]);
+			state->config->demod_address, reg, data);
 
 	ret = i2c_transfer(state->i2c, &msg, 1);
 	if (ret != 1)
 		printk(KERN_ERR "%s: i2c write error! ([%02x] %02x: %02x)\n",
-			__func__, state->config->demod_address, reg, buf[2]);
+			__func__, state->config->demod_address, reg, data);
 
 	return (ret != 1) ? -EREMOTEIO : 0;
 }
 
-static int stv0367_writereg(struct stv0367_state *state, u16 reg, u8 data)
-{
-	u8 tmp = data; /* see gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 */
-
-	return stv0367_writeregs(state, reg, &tmp, 1);
-}
-
-static u8 stv0367_readreg(struct stv0367_state *state, u16 reg)
+static noinline_for_stack
+u8 stv0367_readreg(struct stv0367_state *state, u16 reg)
 {
 	u8 b0[] = { 0, 0 };
 	u8 b1[] = { 0 };
drivers/media/i2c/tc358743.c +4 -3
index 76c443067ec2d..ef1460c61bea0 100644
@@ -2107,9 +2107,6 @@ static int tc358743_probe(struct i2c_client *client)
 	state->mbus_fmt_code = MEDIA_BUS_FMT_RGB888_1X24;
 
 	sd->dev = &client->dev;
-	err = v4l2_async_register_subdev(sd);
-	if (err < 0)
-		goto err_hdl;
 
 	mutex_init(&state->confctl_mutex);
 
@@ -2167,6 +2164,10 @@ static int tc358743_probe(struct i2c_client *client)
 	if (err)
 		goto err_work_queues;
 
+	err = v4l2_async_register_subdev(sd);
+	if (err < 0)
+		goto err_work_queues;
+
 	v4l2_info(sd, "%s found @ 0x%x (%s)\n", client->name,
 		  client->addr << 1, client->adapter->name);
 
drivers/media/pci/bt8xx/bttv-driver.c +2 -2
index a0be1ca89b29a..cdde56889fe2a 100644
@@ -2964,7 +2964,7 @@ static int bttv_open(struct file *file)
 
 	dprintk("open dev=%s\n", video_device_node_name(vdev));
 
-	if (vdev->vfl_type == VFL_TYPE_GRABBER) {
+	if (vdev->vfl_type == VFL_TYPE_VIDEO) {
 		type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
 	} else if (vdev->vfl_type == VFL_TYPE_VBI) {
 		type = V4L2_BUF_TYPE_VBI_CAPTURE;
@@ -3905,7 +3905,7 @@ static int bttv_register_video(struct bttv *btv)
 	if (no_overlay <= 0)
 		btv->video_dev.device_caps |= V4L2_CAP_VIDEO_OVERLAY;
 
-	if (video_register_device(&btv->video_dev, VFL_TYPE_GRABBER,
+	if (video_register_device(&btv->video_dev, VFL_TYPE_VIDEO,
 				  video_nr[btv->c.nr]) < 0)
 		goto err;
 	pr_info("%d: registered device %s\n",
drivers/media/pci/cobalt/cobalt-v4l2.c +1 -1
index c5207501d5e03..0ff37496c9ab7 100644
@@ -1272,7 +1272,7 @@ static int cobalt_node_register(struct cobalt *cobalt, int node)
 	video_set_drvdata(vdev, s);
 	ret = vb2_queue_init(q);
 	if (!s->is_audio && ret == 0)
-		ret = video_register_device(vdev, VFL_TYPE_GRABBER, -1);
+		ret = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
 	else if (!s->is_dummy)
 		ret = cobalt_alsa_init(s);
 
drivers/media/pci/cx18/cx18-streams.c +6 -6
index b79718519b9ba..3178df3c49224 100644
@@ -48,19 +48,19 @@ static struct {
 } cx18_stream_info[] = {
 	{	/* CX18_ENC_STREAM_TYPE_MPG */
 		"encoder MPEG",
-		VFL_TYPE_GRABBER, 0,
+		VFL_TYPE_VIDEO, 0,
 		PCI_DMA_FROMDEVICE,
 		V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE |
 		V4L2_CAP_AUDIO | V4L2_CAP_TUNER
 	},
 	{	/* CX18_ENC_STREAM_TYPE_TS */
 		"TS",
-		VFL_TYPE_GRABBER, -1,
+		VFL_TYPE_VIDEO, -1,
 		PCI_DMA_FROMDEVICE,
 	},
 	{	/* CX18_ENC_STREAM_TYPE_YUV */
 		"encoder YUV",
-		VFL_TYPE_GRABBER, CX18_V4L2_ENC_YUV_OFFSET,
+		VFL_TYPE_VIDEO, CX18_V4L2_ENC_YUV_OFFSET,
 		PCI_DMA_FROMDEVICE,
 		V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE |
 		V4L2_CAP_STREAMING | V4L2_CAP_AUDIO | V4L2_CAP_TUNER
@@ -74,13 +74,13 @@ static struct {
 	},
 	{	/* CX18_ENC_STREAM_TYPE_PCM */
 		"encoder PCM audio",
-		VFL_TYPE_GRABBER, CX18_V4L2_ENC_PCM_OFFSET,
+		VFL_TYPE_VIDEO, CX18_V4L2_ENC_PCM_OFFSET,
 		PCI_DMA_FROMDEVICE,
 		V4L2_CAP_TUNER | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE,
 	},
 	{	/* CX18_ENC_STREAM_TYPE_IDX */
 		"encoder IDX",
-		VFL_TYPE_GRABBER, -1,
+		VFL_TYPE_VIDEO, -1,
 		PCI_DMA_FROMDEVICE,
 	},
 	{	/* CX18_ENC_STREAM_TYPE_RAD */
@@ -434,7 +434,7 @@ static int cx18_reg_dev(struct cx18 *cx, int type)
 	name = video_device_node_name(&s->video_dev);
 
 	switch (vfl_type) {
-	case VFL_TYPE_GRABBER:
+	case VFL_TYPE_VIDEO:
 		CX18_INFO("Registered device %s for %s (%d x %d.%02d kB)\n",
 			  name, s->name, cx->stream_buffers[type],
 			  cx->stream_buf_size[type] / 1024,
drivers/media/pci/cx23885/cx23885-417.c +1 -1
index 2327fe6126102..434677bd4ad17 100644
@@ -1545,7 +1545,7 @@ int cx23885_417_register(struct cx23885_dev *dev)
 	if (dev->tuner_type != TUNER_ABSENT)
 		dev->v4l_device->device_caps |= V4L2_CAP_TUNER;
 	err = video_register_device(dev->v4l_device,
-		VFL_TYPE_GRABBER, -1);
+		VFL_TYPE_VIDEO, -1);
 	if (err < 0) {
 		pr_info("%s: can't register mpeg device\n", dev->name);
 		return err;
drivers/media/pci/cx23885/cx23885-video.c +1 -1
index f56b271db8bea..90224a9947022 100644
@@ -1304,7 +1304,7 @@ int cx23885_video_register(struct cx23885_dev *dev)
 				      V4L2_CAP_AUDIO | V4L2_CAP_VIDEO_CAPTURE;
 	if (dev->tuner_type != TUNER_ABSENT)
 		dev->video_dev->device_caps |= V4L2_CAP_TUNER;
-	err = video_register_device(dev->video_dev, VFL_TYPE_GRABBER,
+	err = video_register_device(dev->video_dev, VFL_TYPE_VIDEO,
 				    video_nr[dev->nr]);
 	if (err < 0) {
 		pr_info("%s: can't register video device\n",
drivers/media/pci/cx25821/cx25821-video.c +1 -1
index a10261da0db6e..1b80c990cb946 100644
@@ -757,7 +757,7 @@ int cx25821_video_register(struct cx25821_dev *dev)
 		snprintf(vdev->name, sizeof(vdev->name), "%s #%d", dev->name, i);
 		video_set_drvdata(vdev, chan);
 
-		err = video_register_device(vdev, VFL_TYPE_GRABBER,
+		err = video_register_device(vdev, VFL_TYPE_VIDEO,
 					    video_nr[dev->nr]);
 
 		if (err < 0)
drivers/media/pci/cx88/cx88-blackbird.c +1 -1
index d3da7f4297af8..fa4ca002ed191 100644
@@ -1138,7 +1138,7 @@ static int blackbird_register_video(struct cx8802_dev *dev)
 				    V4L2_CAP_VIDEO_CAPTURE;
 	if (dev->core->board.tuner_type != UNSET)
 		dev->mpeg_dev.device_caps |= V4L2_CAP_TUNER;
-	err = video_register_device(&dev->mpeg_dev, VFL_TYPE_GRABBER, -1);
+	err = video_register_device(&dev->mpeg_dev, VFL_TYPE_VIDEO, -1);
 	if (err < 0) {
 		pr_info("can't register mpeg device\n");
 		return err;
drivers/media/pci/cx88/cx88-video.c +1 -1
index 547e18da1ad7d..151ffb5fd4042 100644
@@ -1452,7 +1452,7 @@ static int cx8800_initdev(struct pci_dev *pci_dev,
 				     V4L2_CAP_VIDEO_CAPTURE;
 	if (core->board.tuner_type != UNSET)
 		dev->video_dev.device_caps |= V4L2_CAP_TUNER;
-	err = video_register_device(&dev->video_dev, VFL_TYPE_GRABBER,
+	err = video_register_device(&dev->video_dev, VFL_TYPE_VIDEO,
 				    video_nr[core->nr]);
 	if (err < 0) {
 		pr_err("can't register video device\n");
drivers/media/pci/dt3155/dt3155.c +1 -1
index 7480f0d3ad0fa..82581aa5a2a39 100644
@@ -550,7 +550,7 @@ static int dt3155_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 					IRQF_SHARED, DT3155_NAME, pd);
 	if (err)
 		goto err_iounmap;
-	err = video_register_device(&pd->vdev, VFL_TYPE_GRABBER, -1);
+	err = video_register_device(&pd->vdev, VFL_TYPE_VIDEO, -1);
 	if (err)
 		goto err_free_irq;
 	dev_info(&pdev->dev, "/dev/video%i is ready\n", pd->vdev.minor);
drivers/media/pci/intel/ipu3/ipu3-cio2.c +1 -1
index 9c0d117e093b1..385b20b22ac35 100644
@@ -1651,7 +1651,7 @@ static int cio2_queue_init(struct cio2_device *cio2, struct cio2_queue *q)
 	vdev->queue = &q->vbq;
 	vdev->device_caps = V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_STREAMING;
 	video_set_drvdata(vdev, cio2);
-	r = video_register_device(vdev, VFL_TYPE_GRABBER, -1);
+	r = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
 	if (r) {
 		dev_err(&cio2->pci_dev->dev,
 			"failed to register video device (%d)\n", r);
drivers/media/pci/ivtv/ivtv-streams.c +6 -6
index 200d2100dbffd..f9de5d1605fe3 100644
@@ -99,7 +99,7 @@ static struct {
 } ivtv_stream_info[] = {
 	{	/* IVTV_ENC_STREAM_TYPE_MPG */
 		"encoder MPG",
-		VFL_TYPE_GRABBER, 0,
+		VFL_TYPE_VIDEO, 0,
 		PCI_DMA_FROMDEVICE, 0,
 		V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_TUNER |
 			V4L2_CAP_AUDIO | V4L2_CAP_READWRITE,
@@ -107,7 +107,7 @@ static struct {
 	},
 	{	/* IVTV_ENC_STREAM_TYPE_YUV */
 		"encoder YUV",
-		VFL_TYPE_GRABBER, IVTV_V4L2_ENC_YUV_OFFSET,
+		VFL_TYPE_VIDEO, IVTV_V4L2_ENC_YUV_OFFSET,
 		PCI_DMA_FROMDEVICE, 0,
 		V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_TUNER |
 			V4L2_CAP_AUDIO | V4L2_CAP_READWRITE,
@@ -123,7 +123,7 @@ static struct {
 	},
 	{	/* IVTV_ENC_STREAM_TYPE_PCM */
 		"encoder PCM",
-		VFL_TYPE_GRABBER, IVTV_V4L2_ENC_PCM_OFFSET,
+		VFL_TYPE_VIDEO, IVTV_V4L2_ENC_PCM_OFFSET,
 		PCI_DMA_FROMDEVICE, 0,
 		V4L2_CAP_TUNER | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE,
 		&ivtv_v4l2_enc_fops
@@ -137,7 +137,7 @@ static struct {
 	},
 	{	/* IVTV_DEC_STREAM_TYPE_MPG */
 		"decoder MPG",
-		VFL_TYPE_GRABBER, IVTV_V4L2_DEC_MPG_OFFSET,
+		VFL_TYPE_VIDEO, IVTV_V4L2_DEC_MPG_OFFSET,
 		PCI_DMA_TODEVICE, 0,
 		V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE,
 		&ivtv_v4l2_dec_fops
@@ -158,7 +158,7 @@ static struct {
 	},
 	{	/* IVTV_DEC_STREAM_TYPE_YUV */
 		"decoder YUV",
-		VFL_TYPE_GRABBER, IVTV_V4L2_DEC_YUV_OFFSET,
+		VFL_TYPE_VIDEO, IVTV_V4L2_DEC_YUV_OFFSET,
 		PCI_DMA_TODEVICE, 0,
 		V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE,
 		&ivtv_v4l2_dec_fops
@@ -315,7 +315,7 @@ static int ivtv_reg_dev(struct ivtv *itv, int type)
 	name = video_device_node_name(&s->vdev);
 
 	switch (vfl_type) {
-	case VFL_TYPE_GRABBER:
+	case VFL_TYPE_VIDEO:
 		IVTV_INFO("Registered device %s for %s (%d kB)\n",
 			name, s->name, itv->options.kilobytes[type]);
 		break;
drivers/media/pci/meye/meye.c +1 -1
index 0e61c81356ef5..c42e48bc5c1cb 100644
@@ -1711,7 +1711,7 @@ static int meye_probe(struct pci_dev *pcidev, const struct pci_device_id *ent)
 	v4l2_ctrl_handler_setup(&meye.hdl);
 	meye.vdev.ctrl_handler = &meye.hdl;
 
-	if (video_register_device(&meye.vdev, VFL_TYPE_GRABBER,
+	if (video_register_device(&meye.vdev, VFL_TYPE_VIDEO,
 				  video_nr) < 0) {
 		v4l2_err(v4l2_dev, "video_register_device failed\n");
 		goto outvideoreg;
drivers/media/pci/saa7134/saa7134-core.c +1 -1
index 2d582c02adbf9..e4623ed2f8319 100644
@@ -1214,7 +1214,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
 	if (saa7134_no_overlay <= 0)
 		dev->video_dev->device_caps |= V4L2_CAP_VIDEO_OVERLAY;
 
-	err = video_register_device(dev->video_dev,VFL_TYPE_GRABBER,
+	err = video_register_device(dev->video_dev,VFL_TYPE_VIDEO,
 				    video_nr[dev->nr]);
 	if (err < 0) {
 		pr_info("%s: can't register video device\n",
drivers/media/pci/saa7134/saa7134-empress.c +1 -1
index e2666d1c68964..141ee18ed827e 100644
@@ -294,7 +294,7 @@ static int empress_init(struct saa7134_dev *dev)
 		dev->empress_dev->device_caps |= V4L2_CAP_TUNER;
 
 	video_set_drvdata(dev->empress_dev, dev);
-	err = video_register_device(dev->empress_dev,VFL_TYPE_GRABBER,
+	err = video_register_device(dev->empress_dev,VFL_TYPE_VIDEO,
 				    empress_nr[dev->nr]);
 	if (err < 0) {
 		pr_info("%s: can't register video device\n",
drivers/media/pci/saa7146/hexium_gemini.c +1 -1
index 86d4e2abed82a..3947701cd6c7e 100644
@@ -294,7 +294,7 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
 	vv_data.vid_ops.vidioc_enum_input = vidioc_enum_input;
 	vv_data.vid_ops.vidioc_g_input = vidioc_g_input;
 	vv_data.vid_ops.vidioc_s_input = vidioc_s_input;
-	ret = saa7146_register_device(&hexium->video_dev, dev, "hexium gemini", VFL_TYPE_GRABBER);
+	ret = saa7146_register_device(&hexium->video_dev, dev, "hexium gemini", VFL_TYPE_VIDEO);
 	if (ret < 0) {
 		pr_err("cannot register capture v4l2 device. skipping.\n");
 		saa7146_vv_release(dev);
drivers/media/pci/saa7146/hexium_orion.c +1 -1
index 31388597386aa..2eb4bee16b71f 100644
@@ -368,7 +368,7 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
 	vv_data.vid_ops.vidioc_enum_input = vidioc_enum_input;
 	vv_data.vid_ops.vidioc_g_input = vidioc_g_input;
 	vv_data.vid_ops.vidioc_s_input = vidioc_s_input;
-	if (0 != saa7146_register_device(&hexium->video_dev, dev, "hexium orion", VFL_TYPE_GRABBER)) {
+	if (0 != saa7146_register_device(&hexium->video_dev, dev, "hexium orion", VFL_TYPE_VIDEO)) {
 		pr_err("cannot register capture v4l2 device. skipping.\n");
 		return -1;
 	}
drivers/media/pci/saa7146/mxb.c +1 -1
index 58fe4c1619eeb..bf0b9b0914cd5 100644
@@ -714,7 +714,7 @@ static int mxb_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data
 	vv_data.vid_ops.vidioc_g_register = vidioc_g_register;
 	vv_data.vid_ops.vidioc_s_register = vidioc_s_register;
 #endif
-	if (saa7146_register_device(&mxb->video_dev, dev, "mxb", VFL_TYPE_GRABBER)) {
+	if (saa7146_register_device(&mxb->video_dev, dev, "mxb", VFL_TYPE_VIDEO)) {
 		ERR("cannot register capture v4l2 device. skipping.\n");
 		saa7146_vv_release(dev);
 		return -1;
drivers/media/pci/saa7164/saa7164-encoder.c +1 -1
index df494644b5b64..1d1d32e043f16 100644
@@ -1087,7 +1087,7 @@ int saa7164_encoder_register(struct saa7164_port *port)
 	v4l2_ctrl_handler_setup(hdl);
 	video_set_drvdata(port->v4l_device, port);
 	result = video_register_device(port->v4l_device,
-		VFL_TYPE_GRABBER, -1);
+		VFL_TYPE_VIDEO, -1);
 	if (result < 0) {
 		printk(KERN_INFO "%s: can't register mpeg device\n",
 			dev->name);
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c +1 -1
index 476d7f3b32d63..cbf85231b708f 100644
@@ -1304,7 +1304,7 @@ static struct solo_enc_dev *solo_enc_alloc(struct solo_dev *solo_dev,
 	solo_enc->vfd->queue = &solo_enc->vidq;
 	solo_enc->vfd->lock = &solo_enc->lock;
 	video_set_drvdata(solo_enc->vfd, solo_enc);
-	ret = video_register_device(solo_enc->vfd, VFL_TYPE_GRABBER, nr);
+	ret = video_register_device(solo_enc->vfd, VFL_TYPE_VIDEO, nr);
 	if (ret < 0)
 		goto vdev_release;
 
drivers/media/pci/solo6x10/solo6x10-v4l2.c +1 -1
index 78792067e920f..54434f3c428d0 100644
@@ -692,7 +692,7 @@ int solo_v4l2_init(struct solo_dev *solo_dev, unsigned nr)
 	while (erase_off(solo_dev))
 		/* Do nothing */;
 
-	ret = video_register_device(solo_dev->vfd, VFL_TYPE_GRABBER, nr);
+	ret = video_register_device(solo_dev->vfd, VFL_TYPE_VIDEO, nr);
 	if (ret < 0)
 		goto fail;
 
drivers/media/pci/sta2x11/sta2x11_vip.c +1 -1
index fd3de3bb0c89b..798574cfad35e 100644
@@ -1069,7 +1069,7 @@ static int sta2x11_vip_init_one(struct pci_dev *pdev,
 	vip->video_dev.lock = &vip->v4l_lock;
 	video_set_drvdata(&vip->video_dev, vip);
 
-	ret = video_register_device(&vip->video_dev, VFL_TYPE_GRABBER, -1);
+	ret = video_register_device(&vip->video_dev, VFL_TYPE_VIDEO, -1);
 	if (ret)
 		goto vrelease;
 
drivers/media/pci/ttpci/av7110_v4l.c +1 -1
index f3d6c3cdb8721..cabe006658ddb 100644
@@ -831,7 +831,7 @@ int av7110_init_v4l(struct av7110 *av7110)
 	if (FW_VERSION(av7110->arm_app) < 0x2623)
 		vv_data->capabilities &= ~V4L2_CAP_SLICED_VBI_OUTPUT;
 
-	if (saa7146_register_device(&av7110->v4l_dev, dev, "av7110", VFL_TYPE_GRABBER)) {
+	if (saa7146_register_device(&av7110->v4l_dev, dev, "av7110", VFL_TYPE_VIDEO)) {
 		ERR("cannot register capture device. skipping\n");
 		saa7146_vv_release(dev);
 		return -ENODEV;
drivers/media/pci/ttpci/budget-av.c +6 -4
index e2d482af23677..3766c7aa96f44 100644
@@ -1462,7 +1462,8 @@ static int budget_av_attach(struct saa7146_dev *dev, struct saa7146_pci_extensio
 		budget_av->has_saa7113 = 1;
 		err = saa7146_vv_init(dev, &vv_data);
 		if (err != 0) {
-			/* fixme: proper cleanup here */
+			ttpci_budget_deinit(&budget_av->budget);
+			kfree(budget_av);
 			ERR("cannot init vv subsystem\n");
 			return err;
 		}
@@ -1470,10 +1471,11 @@ static int budget_av_attach(struct saa7146_dev *dev, struct saa7146_pci_extensio
 		vv_data.vid_ops.vidioc_g_input = vidioc_g_input;
 		vv_data.vid_ops.vidioc_s_input = vidioc_s_input;
 
-		if ((err = saa7146_register_device(&budget_av->vd, dev, "knc1", VFL_TYPE_GRABBER))) {
-			/* fixme: proper cleanup here */
-			ERR("cannot register capture v4l2 device\n");
+		if ((err = saa7146_register_device(&budget_av->vd, dev, "knc1", VFL_TYPE_VIDEO))) {
 			saa7146_vv_release(dev);
+			ttpci_budget_deinit(&budget_av->budget);
+			kfree(budget_av);
+			ERR("cannot register capture v4l2 device\n");
 			return err;
 		}
 
drivers/media/pci/tw5864/tw5864-video.c +1 -1
index 656142c7a2cc7..a65114e7ca346 100644
@@ -1162,7 +1162,7 @@ static int tw5864_video_input_init(struct tw5864_input *input, int video_nr)
 	input->gop = GOP_SIZE;
 	input->frame_interval = 1;
 
-	ret = video_register_device(&input->vdev, VFL_TYPE_GRABBER, video_nr);
+	ret = video_register_device(&input->vdev, VFL_TYPE_VIDEO, video_nr);
 	if (ret)
 		goto free_v4l2_hdl;
 
drivers/media/pci/tw68/tw68-video.c +1 -1
index 2fb82d50c53e5..10986fcd66a55 100644
@@ -962,7 +962,7 @@ int tw68_video_init2(struct tw68_dev *dev, int video_nr)
 	dev->vdev.lock = &dev->lock;
 	dev->vdev.queue = &dev->vidq;
 	video_set_drvdata(&dev->vdev, dev);
-	return video_register_device(&dev->vdev, VFL_TYPE_GRABBER, video_nr);
+	return video_register_device(&dev->vdev, VFL_TYPE_VIDEO, video_nr);
 }
 
 /*
drivers/media/pci/tw686x/tw686x-video.c +1 -1
index 9be8c6e4fb693..1ced2b0ddb241 100644
@@ -1282,7 +1282,7 @@ int tw686x_video_init(struct tw686x_dev *dev)
 		vc->device = vdev;
 		video_set_drvdata(vdev, vc);
 
-		err = video_register_device(vdev, VFL_TYPE_GRABBER, -1);
+		err = video_register_device(vdev, VFL_TYPE_VIDEO, -1);
 		if (err < 0)
 			goto error;
 		vc->num = vdev->num;
drivers/media/usb/em28xx/em28xx-cards.c +4 -0
index 5ae13ee9272d5..252e463cc13b4 100644
@@ -3989,6 +3989,10 @@ static int em28xx_usb_probe(struct usb_interface *intf,
 	 * topology will likely change after the load of the em28xx subdrivers.
 	 */
 #ifdef CONFIG_MEDIA_CONTROLLER
+	/*
+	 * No need to check the return value, the device will still be
+	 * usable without media controller API.
+	 */
 	retval = media_device_register(dev->media_dev);
 #endif
 
drivers/media/usb/go7007/go7007-driver.c +5 -3
index b9302d77d6c83..8ee0d5ea84157 100644
@@ -80,7 +80,7 @@ static int go7007_load_encoder(struct go7007 *go)
 	const struct firmware *fw_entry;
 	char fw_name[] = "go7007/go7007fw.bin";
 	void *bounce;
-	int fw_len, rv = 0;
+	int fw_len;
 	u16 intr_val, intr_data;
 
 	if (go->boot_fw == NULL) {
@@ -109,9 +109,11 @@ static int go7007_load_encoder(struct go7007 *go)
 	    go7007_read_interrupt(go, &intr_val, &intr_data) < 0 ||
 			(intr_val & ~0x1) != 0x5a5a) {
 		v4l2_err(go, "error transferring firmware\n");
-		rv = -1;
+		kfree(go->boot_fw);
+		go->boot_fw = NULL;
+		return -1;
 	}
-	return rv;
+	return 0;
 }
 
 MODULE_FIRMWARE("go7007/go7007fw.bin");
drivers/media/usb/go7007/go7007-usb.c +3 -1
index f889c9d740cd1..1cfe8371511d0 100644
@@ -1198,7 +1198,9 @@ static int go7007_usb_probe(struct usb_interface *intf,
 				u16 channel;
 
 				/* read channel number from GPIO[1:0] */
-				go7007_read_addr(go, 0x3c81, &channel);
+				if (go7007_read_addr(go, 0x3c81, &channel))
+					goto allocfail;
+
 				channel &= 0x3;
 				go->board_id = GO7007_BOARDID_ADLINK_MPG24;
 				usb->board = board = &board_adlink_mpg24;
drivers/media/usb/pvrusb2/pvrusb2-context.c +5 -5
index 1764674de98bc..73c95ba2328a4 100644
@@ -90,8 +90,10 @@ static void pvr2_context_destroy(struct pvr2_context *mp)
 }
 
 
-static void pvr2_context_notify(struct pvr2_context *mp)
+static void pvr2_context_notify(void *ptr)
 {
+	struct pvr2_context *mp = ptr;
+
 	pvr2_context_set_notify(mp,!0);
 }
 
@@ -106,9 +108,7 @@ static void pvr2_context_check(struct pvr2_context *mp)
 		pvr2_trace(PVR2_TRACE_CTXT,
 			   "pvr2_context %p (initialize)", mp);
 		/* Finish hardware initialization */
-		if (pvr2_hdw_initialize(mp->hdw,
-					(void (*)(void *))pvr2_context_notify,
-					mp)) {
+		if (pvr2_hdw_initialize(mp->hdw, pvr2_context_notify, mp)) {
 			mp->video_stream.stream =
 				pvr2_hdw_get_video_stream(mp->hdw);
 			/* Trigger interface initialization.  By doing this
@@ -267,9 +267,9 @@ static void pvr2_context_exit(struct pvr2_context *mp)
 void pvr2_context_disconnect(struct pvr2_context *mp)
 {
 	pvr2_hdw_disconnect(mp->hdw);
-	mp->disconnect_flag = !0;
 	if (!pvr2_context_shutok())
 		pvr2_context_notify(mp);
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/media/usb/pvrusb2/pvrusb2-dvb.c +4 -2
index 6954584526a32..1b768e7466721 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/pvrusb2/pvrusb2-v4l2.c +4 -7
index eaa08c7999d4f..f8da501689c32 100644

Lines of this file are not shown. View the raw message.

drivers/media/v4l2-core/v4l2-dev.c +42 -26

68 lines not on this page · raw message

drivers/media/v4l2-core/v4l2-ioctl.c +13 -3
index 3012e8ecffb94..682ba53b1a7a7 100644

Lines of this file are not shown. View the raw message.

drivers/media/v4l2-core/v4l2-mem2mem.c +8 -2
index d56837c04a81a..b374c9fab4b9e 100644

Lines of this file are not shown. View the raw message.

drivers/mfd/altera-sysmgr.c +3 -1
index d2a13a547a3ca..5610a5d9fad12 100644

Lines of this file are not shown. View the raw message.

drivers/mfd/syscon.c +3 -1
index 660723276481c..9ec90ce12f4d7 100644

Lines of this file are not shown. View the raw message.

drivers/mmc/host/wmt-sdmmc.c +0 -4
index b1e4199f82920..345b3c50f27dd 100644

Lines of this file are not shown. View the raw message.

drivers/mtd/maps/physmap-core.c +1 -1
index e4f72b2df8039..fa7e1c0b70c64 100644

Lines of this file are not shown. View the raw message.

drivers/mtd/nand/raw/lpc32xx_mlc.c +3 -2
index 78b31f845c50a..a7d0a76eee7f4 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/amazon/ena/ena_com.c +3 -5
index 9225733f4fece..29700fee42e9d 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/amazon/ena/ena_netdev.c +1 -19
index 2e5348ec2a2e9..8e2e0c3bee0b9 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h +3 -3
index 3f63ffd7561bf..d17731cae8634 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +4 -1
index 6b2d54c972b7c..f5956977fe39a 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/igb/igb_main.c +55 -57

112 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/af/cgx.c +1 -1
index 54e9f6dc24ea0..910ed148e827e 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/marvell/octeontx2/af/rvu.c +14 -3
index 02b4620f7368a..9c6307186505a 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/netronome/nfp/flower/lag_conf.c +5 -0
index 63907aeb3884e..3167f9675ae0f 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/sr9800.c +3 -1
index 681e0def6356b..a5332e99102a5 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ath/ath10k/wmi-tlv.c +4 -0
index 315d20f5c8eb1..ee1c86bb5078b 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/b43/b43.h +16 -0
index 67b4bac048e58..c0d8fc0b22fb2 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/b43/dma.c +4 -4
index 72bf07540da39..19624133b64ad 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/b43/main.c +12 -10
index 3432dfe1ddb47..e466324a1fd24 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/b43/pio.c +3 -3
index 69f8b46c90157..468fd647d0a08 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c +2 -1
index 2441714169de1..849c8109b3982 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c +2 -3
index a0de5db0cd646..b723817915365 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h +1 -1
index dd8774717adee..27d0934e600ed 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/marvell/libertas/cmd.c +11 -2
index a4d9dd73b2588..db9a852fa58a3 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/marvell/mwifiex/debugfs.c +0 -3
index e4cb7ce1c8b85..a6f4655b301d6 100644

Lines of this file are not shown. View the raw message.

drivers/pci/pcie/dpc.c +1 -1
index a32ec3487a8d0..d5734a83606fb 100644

Lines of this file are not shown. View the raw message.

drivers/pci/quirks.c +1 -0
index 821e71a45849c..3bc7058404156 100644

Lines of this file are not shown. View the raw message.

drivers/pci/switch/switchtec.c +3 -1
index 0037f368f62b9..0b83252358527 100644

Lines of this file are not shown. View the raw message.

drivers/rtc/Kconfig +2 -1
index 0ad8d84aeb339..22638878c9819 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/bfa/bfa.h +8 -1
index 7bd2ba1ad4d11..f30fe324e6ecc 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/bfa/bfa_core.c +1 -3
index 0f554ebb8f2c6..09819f076699f 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/bfa/bfa_ioc.h +6 -2
index 933a1c3890ff5..5e568d6d7b261 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/bfa/bfad_bsg.c +4 -7
index a76c968dbac59..9f5964944d787 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/csiostor/csio_defs.h +16 -2
index c38017b4af982..e50e93e7fe5a1 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/csiostor/csio_lnode.c +4 -4
index c3bf590f5d685..47803268b138f 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/csiostor/csio_lnode.h +0 -13
index 372a67d122d38..607698a0f0631 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/mpt3sas/mpt3sas_base.c +3 -1
index e72f1dbc91f7f..04fa7337cb1ef 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-mt65xx.c +12 -10
index 29d44f5d5212c..8105b458d12f7 100644

Lines of this file are not shown. View the raw message.

drivers/staging/greybus/light.c +4 -4
index d2672b65c3f49..e59bb27236b9f 100644

Lines of this file are not shown. View the raw message.

drivers/staging/media/imx/imx-media-csc-scaler.c +1 -0
index a15d970adb983..135e1e64c2443 100644

Lines of this file are not shown. View the raw message.

drivers/staging/wilc1000/wilc_hif.c +26 -14
index 221e3d93db148..22e02fd068b4d 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/8250/8250_exar.c +1 -4
index 93367dea4d8a5..0dfe9ceb032a5 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/max310x.c +1 -1
index 2f88eae8a55a1..5570fd3b84e15 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/samsung.c +2 -3
index 24f9bd9101662..78d97dbfc18a8 100644

Lines of this file are not shown. View the raw message.

drivers/tty/vt/vt.c +1 -1
index e00ebda492198..171e643cf200e 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/udc/net2272.c +1 -1
index 5980540a8fff2..de7757260d6cc 100644

Lines of this file are not shown. View the raw message.

drivers/video/backlight/da9052_bl.c +1 -0
index 882359dd288c0..aa00379392a0f 100644

Lines of this file are not shown. View the raw message.

drivers/video/backlight/lm3630a_bl.c +5 -10
index 8096202fbe5d5..8d22ba62d78b0 100644

Lines of this file are not shown. View the raw message.

drivers/video/backlight/lm3639_bl.c +1 -0
index 48c04155a5f9d..bb617f4673e94 100644

Lines of this file are not shown. View the raw message.

drivers/video/backlight/lp8788_bl.c +1 -0
index ba42f3fe0c739..d9b95dbd40d30 100644

Lines of this file are not shown. View the raw message.

drivers/watchdog/stm32_iwdg.c +3 -0
index 25188d6bbe152..16dd1aab7c676 100644

Lines of this file are not shown. View the raw message.

fs/afs/dir.c +0 -10
index 1ada9b9cb21ec..43f5b972fcead 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/block-rsv.c +1 -1
index 36ef3228bac86..63205d2f4d84c 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/block-rsv.h +16 -0
index d1428bb73fc5a..69770360917cb 100644

Lines of this file are not shown. View the raw message.

fs/fhandle.c +1 -1
index 01263ffbc4c08..9a5f153c8919e 100644

Lines of this file are not shown. View the raw message.

fs/io_uring.c +8 -57

65 lines not on this page · raw message

fs/nfs/nfsroot.c +2 -2
index effaa4247b912..c0f2e1751c33e 100644

Lines of this file are not shown. View the raw message.

fs/quota/dquot.c +101 -125

226 lines not on this page · raw message

fs/select.c +1 -1
index 7716d9d5be1e8..f405dc5adf3ca 100644

Lines of this file are not shown. View the raw message.

include/drm/drm_fixed.h +1 -1
index 553210c02ee0f..627efa56e59fb 100644

Lines of this file are not shown. View the raw message.

include/linux/filter.h +14 -10
index 440014875acf4..0bec300b2e516 100644

Lines of this file are not shown. View the raw message.

include/linux/fs.h +3 -3
index e009b52ab6b0d..272f261894b17 100644

Lines of this file are not shown. View the raw message.

include/linux/host1x.h +2 -1
index e6eea45e11549..0b9d59807e5e2 100644

Lines of this file are not shown. View the raw message.

include/linux/poll.h +0 -4
index 1cdc32b1f1b08..7e0fdcf905d2e 100644

Lines of this file are not shown. View the raw message.

include/linux/rcupdate.h +31 -0
index c75b38ba4a728..bc4b5c905a602 100644

Lines of this file are not shown. View the raw message.

include/media/v4l2-dev.h +4 -2
index 48531e57cc5a8..5e7c0f8acd054 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/cpumap.c +3 -0
index a367fc8503933..19be747f4e5ab 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/hashtab.c +9 -5
index f1dec90f3a522..34c4f709b1ede 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/helpers.c +14 -4
index a77d2814cac5d..9bfb4685d0684 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/stackmap.c +6 -3
index 811071c227f11..bd8516d967453 100644

Lines of this file are not shown. View the raw message.

kernel/time/timekeeping.c +12 -12
index 105dd0b663291..c202dbd87860c 100644

Lines of this file are not shown. View the raw message.

lib/test_blackhole_dev.c +1 -2
index 4c40580a99a36..f247089d63c08 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/hci_core.c +1 -1
index 289fb28529f8c..c60204b639ab7 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/hci_event.c +0 -2
index 32793d22ba61c..2125421ad7465 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/rfcomm/core.c +1 -1
index 2db9e285215c5..596fa3172642b 100644

Lines of this file are not shown. View the raw message.

net/core/dev.c +1 -1
index 5e043e6f09476..4f39d97209811 100644

Lines of this file are not shown. View the raw message.

net/core/scm.c +1 -1
index 5525c14f33f1e..a442bf63cd480 100644

Lines of this file are not shown. View the raw message.

net/core/sock_diag.c +5 -5
index c13ffbd33d8d6..315a5200d170b 100644

Lines of this file are not shown. View the raw message.

net/hsr/hsr_framereg.c +4 -0
index 783e741491ec3..1a0f447113f24 100644

Lines of this file are not shown. View the raw message.

net/hsr/hsr_main.c +11 -4
index 9e389accbfc7e..ea627e532aab8 100644

Lines of this file are not shown. View the raw message.

net/ipv4/ip_tunnel.c +14 -1
index ba1decf81fe32..906c37c7f80d5 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp.c +2 -2
index 8d7933989de0e..8ebcff40bc5ac 100644

Lines of this file are not shown. View the raw message.

net/ipv4/udp.c +2 -2
index a6f982b2d32af..3b3f944798850 100644

Lines of this file are not shown. View the raw message.

net/ipv6/fib6_rules.c +6 -0
index 1727269396523..cdc8a49d7fc34 100644

Lines of this file are not shown. View the raw message.

net/iucv/iucv.c +2 -2
index 392f8ddf97191..8b5b8cc93ff8b 100644

Lines of this file are not shown. View the raw message.

net/kcm/kcmsock.c +2 -1
index 8a8ea7e6774d5..920b0ebf1cb80 100644

Lines of this file are not shown. View the raw message.

net/l2tp/l2tp_ppp.c +2 -2
index c54cb59593ef8..7d3c782e5ab1e 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_tables_api.c +1 -1
index c5dbb950822fd..2d372d5fcbfaa 100644

Lines of this file are not shown. View the raw message.

net/packet/af_packet.c +2 -2
index 451f9c43b34b8..9fc020fd7ecc1 100644

Lines of this file are not shown. View the raw message.

net/rds/send.c +2 -3
index 6c2c5667e3a39..c0cebf4b4fe56 100644

Lines of this file are not shown. View the raw message.

net/sunrpc/addr.c +2 -2
index 0d4a2bb09589c..be2fc88f5bde1 100644

Lines of this file are not shown. View the raw message.

net/sunrpc/auth_gss/gss_rpc_xdr.c +19 -8
index 2ff7b7083ebab..e265b8d38aa14 100644

Lines of this file are not shown. View the raw message.

net/unix/garbage.c +1 -1
index dc27635403932..9121a4d5436d5 100644

Lines of this file are not shown. View the raw message.

net/unix/scm.c +1 -3
index e881a6e78af53..51b623de3be5f 100644

Lines of this file are not shown. View the raw message.

net/x25/af_x25.c +2 -2
index 43dd489ad6db9..851096110b4d4 100644

Lines of this file are not shown. View the raw message.

samples/v4l/v4l2-pci-skeleton.c +1 -1
index f6a551bd57ef1..3fa6582b4a689 100644

Lines of this file are not shown. View the raw message.

scripts/kconfig/lexer.l +5 -2
index 6354c905b006f..3bf90d01c39f9 100644

Lines of this file are not shown. View the raw message.

sound/core/seq/seq_midi.c +7 -1
index 6825940ea2cf8..a741d1ae6639a 100644

Lines of this file are not shown. View the raw message.

sound/core/seq/seq_virmidi.c +8 -1
index 77d7037d1476f..82396b8c885a5 100644

Lines of this file are not shown. View the raw message.

sound/soc/codecs/rt5645.c +10 -0
index 88093e58dd845..c78d5833c9cd9 100644

Lines of this file are not shown. View the raw message.

sound/soc/codecs/wm8962.c +19 -10
index c384ca3681e9b..15828ae62f9de 100644

Lines of this file are not shown. View the raw message.

sound/soc/intel/boards/bytcr_rt5640.c +12 -0
index df3b370fe7292..c740dec00f83b 100644

Lines of this file are not shown. View the raw message.

sound/soc/meson/axg-tdm-interface.c +2 -2
index f5a431b8de6c3..34aff050caf25 100644

Lines of this file are not shown. View the raw message.

sound/usb/stream.c +4 -1
index d35684e5f07f0..967f05d7e205f 100644

Lines of this file are not shown. View the raw message.

tools/perf/builtin-record.c +1 -1
index a9891c9fe94d5..9c03f67398cb2 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/evsel.c +0 -1
index 9dd9e3f4ef591..cd1eddf0ab371 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/stat-display.c +1 -1
index e18c26501a7fe..70612ec583f35 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/thread_map.c +1 -1
index c9bfe4696943b..cee7fc3b5bb0c 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/tls.c +4 -4
index 837206dbe5d6e..81bb3cc6704f8 100644

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.