Skip to contentSkip to conversation

Linux 4.19.316

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jun 16, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 4.19.316 kernel.

All users of the 4.19 kernel series must upgrade.

The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

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

 Documentation/devicetree/bindings/sound/rt5645.txt     |    6 
 Makefile                                               |    2 
 arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi         |    2 
 arch/arm64/boot/dts/nvidia/tegra132-norrin.dts         |    4 
 arch/arm64/boot/dts/nvidia/tegra132.dtsi               |    2 
 arch/arm64/include/asm/asm-bug.h                       |    1 
 arch/arm64/kvm/guest.c                                 |    1 
 arch/m68k/kernel/entry.S                               |    4 
 arch/m68k/mac/misc.c                                   |   46 -
 arch/microblaze/kernel/Makefile                        |    1 
 arch/microblaze/kernel/cpu/cpuinfo-static.c            |    2 
 arch/parisc/kernel/parisc_ksyms.c                      |    1 
 arch/powerpc/include/asm/hvcall.h                      |    2 
 arch/powerpc/platforms/pseries/lpar.c                  |    6 
 arch/powerpc/platforms/pseries/lparcfg.c               |    6 
 arch/powerpc/sysdev/fsl_msi.c                          |    2 
 arch/sh/kernel/kprobes.c                               |    7 
 arch/sh/lib/checksum.S                                 |   67 --
 arch/sparc/include/asm/smp_64.h                        |    2 
 arch/sparc/include/uapi/asm/termbits.h                 |   10 
 arch/sparc/include/uapi/asm/termios.h                  |    9 
 arch/sparc/kernel/prom_64.c                            |    4 
 arch/sparc/kernel/setup_64.c                           |    1 
 arch/sparc/kernel/smp_64.c                             |   14 
 arch/um/drivers/line.c                                 |   14 
 arch/um/drivers/ubd_kern.c                             |    4 
 arch/um/include/asm/mmu.h                              |    2 
 arch/um/include/shared/skas/mm_id.h                    |    2 
 arch/x86/Kconfig.debug                                 |    5 
 arch/x86/kernel/apic/vector.c                          |    9 
 arch/x86/kernel/tsc_sync.c                             |    6 
 arch/x86/lib/x86-opcode-map.txt                        |    2 
 arch/x86/purgatory/Makefile                            |    3 
 arch/x86/tools/relocs.c                                |    9 
 drivers/acpi/acpica/Makefile                           |    1 
 drivers/android/binder.c                               |    4 
 drivers/ata/pata_legacy.c                              |    8 
 drivers/block/null_blk_main.c                          |    3 
 drivers/char/ppdev.c                                   |   21 
 drivers/crypto/bcm/spu2.c                              |    2 
 drivers/crypto/ccp/sp-platform.c                       |   59 -
 drivers/crypto/qat/qat_common/adf_aer.c                |   19 
 drivers/dma-buf/sync_debug.c                           |    4 
 drivers/dma/idma64.c                                   |    4 
 drivers/extcon/Kconfig                                 |    3 
 drivers/firmware/dmi-id.c                              |    7 
 drivers/firmware/raspberrypi.c                         |    7 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c      |    1 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c |    5 
 drivers/gpu/drm/arm/malidp_mw.c                        |    5 
 drivers/gpu/drm/mediatek/mtk_drm_gem.c                 |    3 
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c   |   12 
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c   |    9 
 drivers/hwtracing/intel_th/pci.c                       |    5 
 drivers/hwtracing/stm/core.c                           |   11 
 drivers/infiniband/hw/hns/hns_roce_hem.h               |   12 
 drivers/infiniband/ulp/ipoib/ipoib_vlan.c              |    8 
 drivers/input/misc/ims-pcu.c                           |    4 
 drivers/input/misc/pm8xxx-vibrator.c                   |    7 
 drivers/irqchip/irq-alpine-msi.c                       |    2 
 drivers/macintosh/adb-iop.c                            |   48 -
 drivers/macintosh/via-macii.c                          |  328 ++++------
 drivers/md/md-bitmap.c                                 |    6 
 drivers/md/raid5.c                                     |   15 
 drivers/media/cec/cec-adap.c                           |    3 
 drivers/media/cec/cec-api.c                            |    3 
 drivers/media/dvb-frontends/mxl5xx.c                   |   22 
 drivers/media/pci/ngene/ngene-core.c                   |    4 
 drivers/media/radio/radio-shark2.c                     |    2 
 drivers/media/usb/stk1160/stk1160-video.c              |   20 
 drivers/media/v4l2-core/v4l2-dev.c                     |    3 
 drivers/mmc/core/host.c                                |    3 
 drivers/mtd/nand/raw/nand_hynix.c                      |    2 
 drivers/net/ethernet/cisco/enic/enic_main.c            |   12 
 drivers/net/ethernet/cortina/gemini.c                  |   12 
 drivers/net/ethernet/freescale/fec_main.c              |   10 
 drivers/net/ethernet/freescale/fec_ptp.c               |   14 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c      |    2 
 drivers/net/ethernet/qlogic/qed/qed_main.c             |    9 
 drivers/net/ethernet/smsc/smc91x.h                     |    4 
 drivers/net/ipvlan/ipvlan_core.c                       |    4 
 drivers/net/usb/qmi_wwan.c                             |    3 
 drivers/net/usb/smsc95xx.c                             |  122 +--
 drivers/net/usb/sr9700.c                               |   10 
 drivers/net/vxlan.c                                    |    4 
 drivers/net/wireless/ath/ar5523/ar5523.c               |   14 
 drivers/net/wireless/ath/ath10k/core.c                 |    3 
 drivers/net/wireless/ath/ath10k/debugfs_sta.c          |    2 
 drivers/net/wireless/ath/ath10k/hw.h                   |    1 
 drivers/net/wireless/ath/ath10k/targaddrs.h            |    3 
 drivers/net/wireless/ath/ath10k/wmi.c                  |   26 
 drivers/net/wireless/ath/carl9170/usb.c                |   32 +
 drivers/net/wireless/marvell/mwl8k.c                   |    2 
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c  |   26 
 drivers/nvme/target/configfs.c                         |    8 
 drivers/power/supply/cros_usbpd-charger.c              |   11 
 drivers/s390/cio/trace.h                               |    2 
 drivers/s390/crypto/ap_bus.c                           |    2 
 drivers/scsi/bfa/bfad_debugfs.c                        |    4 
 drivers/scsi/hpsa.c                                    |    2 
 drivers/scsi/libsas/sas_expander.c                     |    3 
 drivers/scsi/qedf/qedf_debugfs.c                       |    2 
 drivers/scsi/ufs/ufs-qcom.h                            |   12 
 drivers/scsi/ufs/ufs.h                                 |   30 
 drivers/scsi/ufs/ufshcd.c                              |  185 ++---
 drivers/scsi/ufs/ufshci.h                              |   25 
 drivers/spi/spi.c                                      |    4 
 drivers/staging/greybus/arche-apb-ctrl.c               |    1 
 drivers/staging/greybus/arche-platform.c               |    9 
 drivers/staging/greybus/light.c                        |    8 
 drivers/staging/speakup/main.c                         |    2 
 drivers/tty/n_gsm.c                                    |    8 
 drivers/tty/serial/max3100.c                           |   22 
 drivers/tty/serial/sh-sci.c                            |   24 
 drivers/usb/gadget/function/u_audio.c                  |    2 
 drivers/video/fbdev/Kconfig                            |    4 
 drivers/video/fbdev/savage/savagefb_driver.c           |    5 
 drivers/video/fbdev/sh_mobile_lcdcfb.c                 |    2 
 drivers/video/fbdev/sis/init301.c                      |    3 
 drivers/virtio/virtio_pci_common.c                     |    4 
 fs/ecryptfs/keystore.c                                 |    4 
 fs/ext4/namei.c                                        |    2 
 fs/ext4/xattr.c                                        |    4 
 fs/f2fs/node.c                                         |    2 
 fs/f2fs/segment.c                                      |    6 
 fs/f2fs/super.c                                        |    4 
 fs/jffs2/xattr.c                                       |    3 
 fs/nfs/internal.h                                      |    4 
 fs/nfsd/nfs4state.c                                    |   11 
 fs/nilfs2/ioctl.c                                      |    2 
 fs/nilfs2/segment.c                                    |   63 +-
 include/linux/moduleparam.h                            |    2 
 include/net/dst_ops.h                                  |    2 
 include/net/neighbour.h                                |    2 
 include/net/netfilter/nf_tables.h                      |  132 +---
 include/net/sock.h                                     |   13 
 include/trace/events/asoc.h                            |    2 
 include/uapi/linux/netfilter/nf_tables.h               |    1 
 kernel/cgroup/cpuset.c                                 |    2 
 kernel/debug/kdb/kdb_io.c                              |   99 +--
 kernel/irq/cpuhotplug.c                                |   16 
 kernel/params.c                                        |   18 
 kernel/sched/topology.c                                |    9 
 kernel/trace/ring_buffer.c                             |    9 
 net/9p/client.c                                        |    2 
 net/ipv4/route.c                                       |   22 
 net/ipv4/tcp_dctcp.c                                   |   13 
 net/ipv6/route.c                                       |   29 
 net/ipv6/seg6.c                                        |    5 
 net/ipv6/seg6_hmac.c                                   |   42 -
 net/netfilter/nf_tables_api.c                          |  529 ++++++++++++++---
 net/netfilter/nfnetlink_queue.c                        |    2 
 net/netfilter/nft_chain_filter.c                       |    3 
 net/netfilter/nft_compat.c                             |   32 +
 net/netfilter/nft_dynset.c                             |   24 
 net/netfilter/nft_exthdr.c                             |   14 
 net/netfilter/nft_flow_offload.c                       |    5 
 net/netfilter/nft_nat.c                                |    5 
 net/netfilter/nft_rt.c                                 |    5 
 net/netfilter/nft_set_bitmap.c                         |    5 
 net/netfilter/nft_set_hash.c                           |  111 ++-
 net/netfilter/nft_set_rbtree.c                         |  387 ++++++++++--
 net/netfilter/nft_socket.c                             |    5 
 net/netfilter/nft_tproxy.c                             |    5 
 net/netrom/nr_route.c                                  |   19 
 net/nfc/nci/core.c                                     |   17 
 net/openvswitch/actions.c                              |    6 
 net/openvswitch/flow.c                                 |    3 
 net/packet/af_packet.c                                 |    3 
 net/sunrpc/auth_gss/svcauth_gss.c                      |   12 
 net/sunrpc/xprtsock.c                                  |   18 
 net/unix/af_unix.c                                     |    2 
 net/wireless/trace.h                                   |    4 
 net/xfrm/xfrm_policy.c                                 |   11 
 scripts/kconfig/symbol.c                               |    6 
 sound/core/timer.c                                     |   10 
 sound/soc/codecs/da7219-aad.c                          |    6 
 sound/soc/codecs/rt5645.c                              |   25 
 tools/lib/subcmd/parse-options.c                       |    8 
 tools/objtool/arch/x86/lib/x86-opcode-map.txt          |    2 
 tools/testing/selftests/kcmp/kcmp_test.c               |    8 
 181 files changed, 2155 insertions(+), 1304 deletions(-)

Aaron Conole (1):
openvswitch: Set the skbuff pkt_type for proper pmtud support.

Adrian Hunter (1):
x86/insn: Fix PUSH instruction in x86 instruction decoder opcode map

Al Viro (1):
parisc: add missing export of __cmpxchg_u8()

Aleksandr Burakov (1):
media: ngene: Add dvb_ca_en50221_init return value check

Aleksandr Mishin (1):
crypto: bcm - Fix pointer arithmetic

Alexander Shishkin (1):
intel_th: pci: Add Meteor Lake-S CPU support

Andre Edich (2):
smsc95xx: remove redundant function arguments
smsc95xx: use usbnet->driver_priv

Andrew Halaney (3):
scsi: ufs: qcom: Perform read back after writing reset bit
scsi: ufs: core: Perform read back after disabling interrupts
scsi: ufs: core: Perform read back after disabling UIC_COMMAND_COMPL

Andy Shevchenko (4):
serial: max3100: Lock port->lock when calling uart_handle_cts_change()
serial: max3100: Update uart_driver_registered on driver removal
serial: max3100: Fix bitwise types
spi: Don't mark message DMA mapped when no transfer in it is

Ard Biesheuvel (1):
x86/purgatory: Switch to the position-independent small code model

Arnd Bergmann (10):
nilfs2: fix out-of-range warning
crypto: ccp - drop platform ifdef checks
qed: avoid truncating work queue length
ACPI: disable -Wstringop-truncation
fbdev: shmobile: fix snprintf truncation powerpc/fsl-soc: hide unused const variable
fbdev: sisfb: hide unused variables
firmware: dmi-id: add a release callback function
greybus: arche-ctrl: move device table to its right location
Input: ims-pcu - fix printf string overflow

Baochen Qiang (1):
wifi: ath10k: poll service ready message before failing

Baokun Li (1):
ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find()

Bitterblue Smith (1):
wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU

Breno Leitao (1):
af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg

Brian Kubisiak (1):
ecryptfs: Fix buffer size for tag 66 packet

Bui Quang Minh (2):
scsi: bfa: Ensure the copied buf is NUL terminated
scsi: qedf: Ensure the copied buf is NUL terminated

Cai Xinchen (1):
fbdev: savage: Handle err return when savagefb_check_var failed

Carlos Llamas (1):
binder: fix max_thread type inconsistency

Carolina Jubran (1):
net/mlx5e: Use rx_missed_errors instead of rx_dropped for reporting buffer exhaustion

Chao Yu (1):
f2fs: fix to release node block count in error path of f2fs_new_node_page()

Chen Ni (1):
dmaengine: idma64: Add check for dma_set_max_seg_size

Chengchang Tang (1):
RDMA/hns: Use complete parentheses in macros

Chris Wulff (1):
usb: gadget: u_audio: Clear uac pointer when freed.

Christoph Hellwig (2):
scsi: ufs: cleanup struct utp_task_req_desc
scsi: ufs: add a low-level __ufshcd_issue_tm_cmd helper

Christophe JAILLET (1):
ppdev: Remove usage of the deprecated ida_simple_xx() API

Chuck Lever (2):
SUNRPC: Fix gss_free_in_token_pages()
SUNRPC: Fix loop termination condition in gss_free_in_token_pages()

Dan Carpenter (4):
speakup: Fix sizeof() vs ARRAY_SIZE() bug
wifi: mwl8k: initialize cmd->addr[] properly
stm class: Fix a double free in stm_register_device()
media: stk1160: fix bounds checking in stk1160_copy_video()

Daniel Borkmann (1):
vxlan: Fix regression when dropping packets due to invalid src addresses

Daniel J Blueman (1):
x86/tsc: Trust initial offset in architectural TSC-adjust MSRs

Daniel Starke (1):
tty: n_gsm: fix possible out-of-bounds in gsm0_receive()

Daniel Thompson (5):
kdb: Fix buffer overflow during tab-complete
kdb: Use format-strings rather than '\0' injection in kdb_read()
kdb: Fix console handling when editing and tab-completing commands
kdb: Merge identical case statements in kdb_read()
kdb: Use format-specifiers rather than memset() for padding in kdb_read()

Daniele Palmas (1):
net: usb: qmi_wwan: add Telit FN920C04 compositions

Derek Fang (2):
ASoC: rt5645: Fix the electric noise due to the CBJ contacts floating
ASoC: dt-bindings: rt5645: add cbj sleeve gpio property

Dmitry Baryshkov (1):
wifi: ath10k: populate board data for WCN3990

Dongli Zhang (1):
genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline

Duoming Zhou (1):
um: Fix return value in ubd_init()

Edward Liaw (1):
selftests/kcmp: remove unused open mode

Eric Dumazet (6):
net: usb: sr9700: stop lying about skb->truesize
net: usb: smsc95xx: stop lying about skb->truesize
netrom: fix possible dead-lock in nr_rt_ioctl()
af_packet: do not call packet_read_pending() from tpacket_destruct_skb()
netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()
net: fix __dst_negative_advice() race

Fenglin Wu (1):
Input: pm8xxx-vibrator - correct VIB_MAX_LEVELS calculation

Finn Thain (5):
macintosh/via-macii: Remove BUG_ON assertions macintosh/via-macii, macintosh/adb-iop: Clean up whitespace macintosh/via-macii: Fix "BUG: sleeping function called from invalid context" m68k/mac: Use '030 reset method on SE/30
m68k: mac: Fix reboot hang on Mac IIci

Florian Westphal (4):
netfilter: nf_tables: defer gc run if previous batch is still pending
netfilter: nftables: exthdr: fix 4-byte stack OOB write
netfilter: nf_tables: mark newset as dead on transaction abort
netfilter: nf_tables: set dormant flag on hook register failure

Gautam Menghani (1):
selftests/kcmp: Make the test output consistent and clear

Geert Uytterhoeven (2):
sh: kprobes: Merge arch_copy_kprobe() into arch_prepare_kprobe()
serial: sh-sci: Extract sci_dma_rx_chan_invalidate()

Greg Kroah-Hartman (1):

      Linux 4.19.316

Guenter Roeck (1):
Revert "sh: Handle calling csum_partial with misaligned data"

Guixiong Wei (1):
x86/boot: Ignore relocations in .notes sections in walk_relocs() too

Hangbin Liu (4):
ipv6: sr: add missing seg6_local_exit
ipv6: sr: fix incorrect unregister order
ipv6: sr: fix invalid unregister error path
ipv6: sr: fix memleak in seg6_hmac_init_algo

Hans Verkuil (3):
media: cec: cec-adap: always cancel work in cec_transmit_msg_fh
media: cec: cec-api: add locking in cec_release()
media: v4l2-core: hold videodev_lock until dev reg, finishes

Harald Freudenberger (1):
s390/ap: Fix crash in AP internal function modify_bitmap()

Herbert Xu (1):
crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak

Huai-Yuan Liu (2):
drm/arm/malidp: fix a possible null pointer dereference
ppdev: Add an error check in register_device

Ian Rogers (1):
libsubcmd: Fix parse-options memory leak

Ignat Korchagin (1):
netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()

Igor Artemiev (1):
wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class

Ilya Denisyev (1):
jffs2: prevent xattr node from overflowing the eraseblock

Ilya Maximets (1):
net: openvswitch: fix overwriting ct original tuple for ICMPv6

Jan Kara (1):
ext4: avoid excessive credit estimate in ext4_tmpfile()

Jeykumar Sankaran (1):
drm/msm/dpu: use kms stored hw mdp block

Jiangfeng Xiao (1):
arm64: asm-bug: Add .align 2 to the end of __BUG_ENTRY

Jiri Pirko (1):
virtio: delete vq in vp_find_vqs_msix() when request_irq() fails

Jorge Ramirez-Ortiz (1):
mmc: core: Do not force a retune before RPMB switch

Joshua Ashton (1):
drm/amd/display: Set color_mgmt_changed to true on unsuspend

Justin Green (1):
drm/mediatek: Add 0 size check to mtk_drm_gem_obj

Krzysztof Kozlowski (1):
arm64: tegra: Correct Tegra132 I2C alias

Kuniyuki Iwashima (1):
tcp: Fix shift-out-of-bounds in dctcp_update_alpha().

Laurent Pinchart (1):
firmware: raspberrypi: Use correct device for DMA mappings

Leon Romanovsky (1):
RDMA/IPoIB: Fix format truncation compilation errors

Linus Walleij (1):
net: ethernet: cortina: Locking fixes

Marc Zyngier (1):
KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode

Masahiro Yamada (2):
x86/kconfig: Select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y
kconfig: fix comparison to constant symbols, 'm', 'n'

Maxim Korotkov (1):
mtd: rawnand: hynix: fixed typo

Michael Schmitz (1):
m68k: Fix spinlock race in kernel thread creation

Michal Simek (2):
microblaze: Remove gcc flag for non existing early_printk.c file
microblaze: Remove early printk call from cpuinfo-static.c

Mike Gilbert (1):
sparc: move struct termio to asm/termios.h

Nathan Chancellor (2):
crypto: ccp - Remove forward declaration
media: mxl5xx: Move xpt structures off stack

NeilBrown (1):
nfsd: drop st_mutex before calling move_to_close_lru()

Nikita Zhandarovich (3):
wifi: carl9170: add a proper sanity check for endpoints
wifi: ar5523: enable proper endpoint verification net/9p: fix uninit-value in p9_client_rpc()

Pablo Neira Ayuso (34):
netfilter: nf_tables: pass context to nft_set_destroy()
netfilter: nftables: rename set element data activation/deactivation functions
netfilter: nf_tables: drop map element references from preparation phase
netfilter: nft_set_rbtree: allow loose matching of closing element in interval
netfilter: nft_set_rbtree: Switch to node list walk for overlap detection
netfilter: nft_set_rbtree: fix null deref on element insertion
netfilter: nft_set_rbtree: fix overlap expiration walk
netfilter: nf_tables: don't skip expired elements during walk
netfilter: nf_tables: GC transaction API to avoid race with control plane
netfilter: nf_tables: adapt set backend to use GC transaction API
netfilter: nf_tables: remove busy mark and gc batch API
netfilter: nf_tables: fix GC transaction races with netns and netlink event exit path
netfilter: nf_tables: GC transaction race with netns dismantle
netfilter: nf_tables: GC transaction race with abort path
netfilter: nft_set_rbtree: skip sync GC for new elements in this transaction
netfilter: nft_set_rbtree: use read spinlock to avoid datapath contention
netfilter: nft_set_hash: try later when GC hits EAGAIN on iteration
netfilter: nf_tables: fix memleak when more than 255 elements expired
netfilter: nf_tables: unregister flowtable hooks on netns exit
netfilter: nf_tables: double hook unregistration in netns path
netfilter: nftables: update table flags from the commit phase
netfilter: nf_tables: fix table flag updates
netfilter: nf_tables: disable toggling dormant table state more than once
netfilter: nf_tables: bogus EBUSY when deleting flowtable after flush (for 4.19)
netfilter: nft_dynset: fix timeouts later than 23 days
netfilter: nft_dynset: report EOPNOTSUPP on missing set feature
netfilter: nft_dynset: relax superfluous check on set updates
netfilter: nf_tables: skip dead set elements in netlink dump
netfilter: nf_tables: validate NFPROTO_* family
netfilter: nft_set_rbtree: skip end interval element from gc
netfilter: nf_tables: do not compare internal table flags on updates
netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout
netfilter: nf_tables: reject new basechain after table flag update
netfilter: nf_tables: discard table flag update with pending basechain deletion

Parthiban Veerasooran (1):
net: usb: smsc95xx: fix changing LED_SEL bit value updated from EEPROM

Peter Oberparleiter (1):
s390/cio: fix tracepoint subchannel type field

Petr Pavlu (1):
ring-buffer: Fix a race between readers and resize checks

Phil Sutter (1):
netfilter: nft_set_rbtree: Add missing expired checks

Pierre-Louis Bossart (1):
ASoC: da7219-aad: fix usage of device_get_named_child_node()

Qingfang DENG (1):
neighbour: fix unaligned access to pneigh_entry

Randy Dunlap (2):
fbdev: sh7760fb: allow modular build
extcon: max8997: select IRQ_DOMAIN instead of depending on it

Ricardo Ribalda (1):
media: radio-shark2: Avoid led_names truncations

Roberto Sassu (1):
um: Add winch to winch_handlers before registering winch IRQ

Roded Zats (1):
enic: Validate length of nl attributes in enic_set_vf_port

Rui Miguel Silva (1):
greybus: lights: check return of get_channel_from_mode

Ryosuke Yasuoka (2):
nfc: nci: Fix uninit-value in nci_rx_work
nfc: nci: Fix handling of zero-length payload packets in nci_rx_work()

Ryusuke Konishi (3):
nilfs2: fix unexpected freezing of nilfs_segctor_sync()
nilfs2: fix potential hang in nilfs_detach_log_writer()
nilfs2: fix use-after-free of timer for log writer thread

Sagi Grimberg (2):
params: lift param_set_uint_minmax to common code
nvmet: fix ns enable/disable possible hang

Sahitya Tummala (1):
f2fs: add error prints for debugging mount failure

Sam Ravnborg (1):
sparc64: Fix number of online CPUs

Sergey Shtylyov (2):
ata: pata_legacy: make legacy_exit() work again
nfs: fix undefined behavior in nfs_block_bits()

Shrikanth Hegde (1):
powerpc/pseries: Add failure related checks for h_get_mpp and h_get_ppp

Srinivasan Shanmugam (1):
drm/amd/display: Fix potential index out of bounds in color transformation function

Steven Rostedt (1):
ASoC: tracing: Export SND_SOC_DAPM_DIR_OUT to its value

Su Hui (1):
wifi: ath10k: Fix an error code problem in ath10k_dbg_sta_write_peer_debug_trigger()

Takashi Iwai (1):
ALSA: timer: Set lower bound of start tick time

Tetsuo Handa (2):
nfc: nci: Fix kcov check in nci_rx_work() dma-buf/sw-sync: don't enable IRQ from sync_print_obj()

Thorsten Blum (1):
net: smc91x: Fix m68k kernel compilation for ColdFire CPU

Tiwei Bie (1):
um: Fix the -Wmissing-prototypes warning for __switch_mm

Tzung-Bi Shih (1):
power: supply: cros_usbpd: provide ID table for avoiding fallback match

Valentin Schneider (1):
sched/topology: Don't set SD_BALANCE_WAKE on cpuset domain relax

Vitalii Bursov (1):
sched/fair: Allow disabling sched_balance_newidle with sched_relax_domain_level

Wei Fang (1):
net: fec: avoid lock evasion when reading pps_enable

Wolfram Sang (1):
serial: sh-sci: protect invalidating RXDMA on shutdown

Xiaolei Wang (1):
net:fec: Add fec_enet_deinit()

Xingui Yang (1):
scsi: libsas: Fix the failure of adding phy with zero-address to port

Yang Xiwen (1):

      arm64: dts: hi3798cv200: fix the size of GICR

Yu Kuai (2):
md: fix resync softlockup when bitmap size is less than array size md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING

Yue Haibing (1):

      ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound

Yuri Karpov (1):
scsi: hpsa: Fix allocation size for Scsi_Host private data

Zenghui Yu (1):
irqchip/alpine-msi: Fix off-by-one in allocation error path

Zhu Yanjun (2):
null_blk: Fix missing mutex_destroy() at module removal
null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION()

author maintainer
#1 lore raw
Documentation/devicetree/bindings/sound/rt5645.txt +6 -0
index a03f9a872a71..bfb2217a9a65 100644
@@ -16,6 +16,11 @@ Optional properties:
   a GPIO spec for the external headphone detect pin. If jd-mode = 0,
   we will get the JD status by getting the value of hp-detect-gpios.
 
+- cbj-sleeve-gpios:
+  a GPIO spec to control the external combo jack circuit to tie the sleeve/ring2
+  contacts to the ground or floating. It could avoid some electric noise from the
+  active speaker jacks.
+
 - realtek,in2-differential
   Boolean. Indicate MIC2 input are differential, rather than single-ended.
 
@@ -64,6 +69,7 @@ codec: rt5650@1a {
 	compatible = "realtek,rt5650";
 	reg = <0x1a>;
 	hp-detect-gpios = <&gpio 19 0>;
+	cbj-sleeve-gpios = <&gpio 20 0>;
 	interrupt-parent = <&gpio>;
 	interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
 	realtek,dmic-en = "true";
Makefile +1 -1
index 67d36496debd..a648d8216aad 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 4
 PATCHLEVEL = 19
-SUBLEVEL = 315
+SUBLEVEL = 316
 EXTRAVERSION =
 NAME = "People's Front"
 
arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi +1 -1
index 7c0fddd7c8cf..dae5ea55d523 100644
@@ -60,7 +60,7 @@
 	gic: interrupt-controller@f1001000 {
 		compatible = "arm,gic-400";
 		reg = <0x0 0xf1001000 0x0 0x1000>,  /* GICD */
-		      <0x0 0xf1002000 0x0 0x100>;   /* GICC */
+		      <0x0 0xf1002000 0x0 0x2000>;  /* GICC */
 		#address-cells = <0>;
 		#interrupt-cells = <3>;
 		interrupt-controller;
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts +2 -2
index a0385a386a3f..dc7bfc90d4c2 100644
@@ -9,8 +9,8 @@
 	compatible = "nvidia,norrin", "nvidia,tegra132", "nvidia,tegra124";
 
 	aliases {
-		rtc0 = "/i2c@7000d000/as3722@40";
-		rtc1 = "/rtc@7000e000";
+		rtc0 = &as3722;
+		rtc1 = &tegra_rtc;
 		serial0 = &uarta;
 	};
 
arch/arm64/boot/dts/nvidia/tegra132.dtsi +1 -1
index fa5a7c4bc807..d99ffa4acd58 100644
@@ -569,7 +569,7 @@
 		status = "disabled";
 	};
 
-	rtc@7000e000 {
+	tegra_rtc: rtc@7000e000 {
 		compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc";
 		reg = <0x0 0x7000e000 0x0 0x100>;
 		interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
arch/arm64/include/asm/asm-bug.h +1 -0
index b3552c4a405f..04e5be18acb1 100644
@@ -39,6 +39,7 @@
 	14470:	.long 14471f - 14470b;			\
 _BUGVERBOSE_LOCATION(__FILE__, __LINE__)		\
 		.short flags; 				\
+		.align 2;				\
 		.popsection;				\
 	14471:
 #else
arch/arm64/kvm/guest.c +1 -0
index b509afa05470..25ab5fb37393 100644
@@ -175,6 +175,7 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
 		case PSR_AA32_MODE_SVC:
 		case PSR_AA32_MODE_ABT:
 		case PSR_AA32_MODE_UND:
+		case PSR_AA32_MODE_SYS:
 			if (!vcpu_el1_is_32bit(vcpu))
 				return -EINVAL;
 			break;
arch/m68k/kernel/entry.S +3 -1
index 9a66657773be..417d8f0e8962 100644
@@ -425,7 +425,9 @@ resume:
 	movec	%a0,%dfc
 
 	/* restore status register */
-	movew	%a1@(TASK_THREAD+THREAD_SR),%sr
+	movew	%a1@(TASK_THREAD+THREAD_SR),%d0
+	oriw	#0x0700,%d0
+	movew	%d0,%sr
 
 	rts
 
arch/m68k/mac/misc.c +18 -28

64 lines not on this page · raw message

arch/microblaze/kernel/Makefile +0 -1
index dd71637437f4..8b9d52b194cb 100644
@@ -7,7 +7,6 @@ ifdef CONFIG_FUNCTION_TRACER
 # Do not trace early boot code and low level code
 CFLAGS_REMOVE_timer.o = -pg
 CFLAGS_REMOVE_intc.o = -pg
-CFLAGS_REMOVE_early_printk.o = -pg
 CFLAGS_REMOVE_ftrace.o = -pg
 CFLAGS_REMOVE_process.o = -pg
 endif
arch/microblaze/kernel/cpu/cpuinfo-static.c +1 -1
index 85dbda4a08a8..03da36dc6d9c 100644
@@ -18,7 +18,7 @@ static const char family_string[] = CONFIG_XILINX_MICROBLAZE0_FAMILY;
 static const char cpu_ver_string[] = CONFIG_XILINX_MICROBLAZE0_HW_VER;
 
 #define err_printk(x) \
-	early_printk("ERROR: Microblaze " x "-different for kernel and DTS\n");
+	pr_err("ERROR: Microblaze " x "-different for kernel and DTS\n");
 
 void __init set_cpuinfo_static(struct cpuinfo *ci, struct device_node *cpu)
 {
arch/parisc/kernel/parisc_ksyms.c +1 -0
index 7baa2265d439..e0d4b7d20f67 100644
@@ -34,6 +34,7 @@ EXPORT_SYMBOL(memset);
 #include <linux/atomic.h>
 EXPORT_SYMBOL(__xchg8);
 EXPORT_SYMBOL(__xchg32);
+EXPORT_SYMBOL(__cmpxchg_u8);
 EXPORT_SYMBOL(__cmpxchg_u32);
 EXPORT_SYMBOL(__cmpxchg_u64);
 #ifdef CONFIG_SMP
arch/powerpc/include/asm/hvcall.h +1 -1
index a0b17f9f1ea4..2bbf6c01a13d 100644
@@ -424,7 +424,7 @@ struct hvcall_mpp_data {
 	unsigned long backing_mem;
 };
 
-int h_get_mpp(struct hvcall_mpp_data *);
+long h_get_mpp(struct hvcall_mpp_data *mpp_data);
 
 struct hvcall_mpp_x_data {
 	unsigned long coalesced_bytes;
arch/powerpc/platforms/pseries/lpar.c +3 -3
index d660a90616cd..eebaf44e5508 100644
@@ -933,10 +933,10 @@ void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf)
  * h_get_mpp
  * H_GET_MPP hcall returns info in 7 parms
  */
-int h_get_mpp(struct hvcall_mpp_data *mpp_data)
+long h_get_mpp(struct hvcall_mpp_data *mpp_data)
 {
-	int rc;
-	unsigned long retbuf[PLPAR_HCALL9_BUFSIZE];
+	unsigned long retbuf[PLPAR_HCALL9_BUFSIZE] = {0};
+	long rc;
 
 	rc = plpar_hcall9(H_GET_MPP, retbuf);
 
arch/powerpc/platforms/pseries/lparcfg.c +3 -3
index d1b338b7dbde..3b82cfe22901 100644
@@ -114,8 +114,8 @@ struct hvcall_ppp_data {
  */
 static unsigned int h_get_ppp(struct hvcall_ppp_data *ppp_data)
 {
-	unsigned long rc;
-	unsigned long retbuf[PLPAR_HCALL9_BUFSIZE];
+	unsigned long retbuf[PLPAR_HCALL9_BUFSIZE] = {0};
+	long rc;
 
 	rc = plpar_hcall9(H_GET_PPP, retbuf);
 
@@ -161,7 +161,7 @@ static void parse_ppp_data(struct seq_file *m)
 	struct hvcall_ppp_data ppp_data;
 	struct device_node *root;
 	const __be32 *perf_level;
-	int rc;
+	long rc;
 
 	rc = h_get_ppp(&ppp_data);
 	if (rc)
arch/powerpc/sysdev/fsl_msi.c +2 -0
index 44aedb6b9f55..4c1fd9d93e58 100644
@@ -578,10 +578,12 @@ static const struct fsl_msi_feature ipic_msi_feature = {
 	.msiir_offset = 0x38,
 };
 
+#ifdef CONFIG_EPAPR_PARAVIRT
 static const struct fsl_msi_feature vmpic_msi_feature = {
 	.fsl_pic_ip = FSL_PIC_IP_VMPIC,
 	.msiir_offset = 0,
 };
+#endif
 
 static const struct of_device_id fsl_of_msi_ids[] = {
 	{
arch/sh/kernel/kprobes.c +1 -6
index 241e903dd3ee..89edac3f7c53 100644
@@ -47,17 +47,12 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)
 	if (OPCODE_RTE(opcode))
 		return -EFAULT;	/* Bad breakpoint */
 
+	memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
 	p->opcode = opcode;
 
 	return 0;
 }
 
-void __kprobes arch_copy_kprobe(struct kprobe *p)
-{
-	memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
-	p->opcode = *p->addr;
-}
-
 void __kprobes arch_arm_kprobe(struct kprobe *p)
 {
 	*p->addr = BREAKPOINT_INSTRUCTION;
arch/sh/lib/checksum.S +18 -49

120 lines not on this page · raw message

arch/sparc/include/asm/smp_64.h +0 -2
index e75783b6abc4..16ab904616a0 100644
@@ -47,7 +47,6 @@ void arch_send_call_function_ipi_mask(const struct cpumask *mask);
 int hard_smp_processor_id(void);
 #define raw_smp_processor_id() (current_thread_info()->cpu)
 
-void smp_fill_in_cpu_possible_map(void);
 void smp_fill_in_sib_core_maps(void);
 void cpu_play_dead(void);
 
@@ -77,7 +76,6 @@ void __cpu_die(unsigned int cpu);
 #define smp_fill_in_sib_core_maps() do { } while (0)
 #define smp_fetch_global_regs() do { } while (0)
 #define smp_fetch_global_pmu() do { } while (0)
-#define smp_fill_in_cpu_possible_map() do { } while (0)
 #define smp_init_cpu_poke() do { } while (0)
 #define scheduler_poke() do { } while (0)
 
arch/sparc/include/uapi/asm/termbits.h +0 -10
index ce5ad5d0f105..0614e179bccc 100644
@@ -13,16 +13,6 @@ typedef unsigned int    tcflag_t;
 typedef unsigned long   tcflag_t;
 #endif
 
-#define NCC 8
-struct termio {
-	unsigned short c_iflag;		/* input mode flags */
-	unsigned short c_oflag;		/* output mode flags */
-	unsigned short c_cflag;		/* control mode flags */
-	unsigned short c_lflag;		/* local mode flags */
-	unsigned char c_line;		/* line discipline */
-	unsigned char c_cc[NCC];	/* control characters */
-};
-
 #define NCCS 17
 struct termios {
 	tcflag_t c_iflag;		/* input mode flags */
arch/sparc/include/uapi/asm/termios.h +9 -0
index ee86f4093d83..cceb32260881 100644
@@ -40,5 +40,14 @@ struct winsize {
 	unsigned short ws_ypixel;
 };
 
+#define NCC 8
+struct termio {
+	unsigned short c_iflag;		/* input mode flags */
+	unsigned short c_oflag;		/* output mode flags */
+	unsigned short c_cflag;		/* control mode flags */
+	unsigned short c_lflag;		/* local mode flags */
+	unsigned char c_line;		/* line discipline */
+	unsigned char c_cc[NCC];	/* control characters */
+};
 
 #endif /* _UAPI_SPARC_TERMIOS_H */
arch/sparc/kernel/prom_64.c +3 -1
index baeaeed64993..4bc082187b0e 100644
@@ -479,7 +479,9 @@ static void *record_one_cpu(struct device_node *dp, int cpuid, int arg)
 	ncpus_probed++;
 #ifdef CONFIG_SMP
 	set_cpu_present(cpuid, true);
-	set_cpu_possible(cpuid, true);
+
+	if (num_possible_cpus() < nr_cpu_ids)
+		set_cpu_possible(cpuid, true);
 #endif
 	return NULL;
 }
arch/sparc/kernel/setup_64.c +0 -1
index 7944b3ca216a..55f69e009cf9 100644
@@ -690,7 +690,6 @@ void __init setup_arch(char **cmdline_p)
 
 	paging_init();
 	init_sparc64_elf_hwcap();
-	smp_fill_in_cpu_possible_map();
 	/*
 	 * Once the OF device tree and MDESC have been setup and nr_cpus has
 	 * been parsed, we know the list of possible cpus.  Therefore we can
arch/sparc/kernel/smp_64.c +0 -14
index a7d7b7ade42f..8746edf2e7df 100644
@@ -1213,20 +1213,6 @@ void __init smp_setup_processor_id(void)
 		xcall_deliver_impl = hypervisor_xcall_deliver;
 }
 
-void __init smp_fill_in_cpu_possible_map(void)
-{
-	int possible_cpus = num_possible_cpus();
-	int i;
-
-	if (possible_cpus > nr_cpu_ids)
-		possible_cpus = nr_cpu_ids;
-
-	for (i = 0; i < possible_cpus; i++)
-		set_cpu_possible(i, true);
-	for (; i < NR_CPUS; i++)
-		set_cpu_possible(i, false);
-}
-
 void smp_fill_in_sib_core_maps(void)
 {
 	unsigned int i;
arch/um/drivers/line.c +8 -6
index 7e524efed584..71e26488dfde 100644
@@ -683,24 +683,26 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_port *port,
 		goto cleanup;
 	}
 
-	*winch = ((struct winch) { .list  	= LIST_HEAD_INIT(winch->list),
-				   .fd  	= fd,
+	*winch = ((struct winch) { .fd  	= fd,
 				   .tty_fd 	= tty_fd,
 				   .pid  	= pid,
 				   .port 	= port,
 				   .stack	= stack });
 
+	spin_lock(&winch_handler_lock);
+	list_add(&winch->list, &winch_handlers);
+	spin_unlock(&winch_handler_lock);
+
 	if (um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt,
 			   IRQF_SHARED, "winch", winch) < 0) {
 		printk(KERN_ERR "register_winch_irq - failed to register "
 		       "IRQ\n");
+		spin_lock(&winch_handler_lock);
+		list_del(&winch->list);
+		spin_unlock(&winch_handler_lock);
 		goto out_free;
 	}
 
-	spin_lock(&winch_handler_lock);
-	list_add(&winch->list, &winch_handlers);
-	spin_unlock(&winch_handler_lock);
-
 	return;
 
  out_free:
arch/um/drivers/ubd_kern.c +2 -2
index 788c80abff5d..4a32df89a491 100644
@@ -1135,7 +1135,7 @@ static int __init ubd_init(void)
 
 	if (irq_req_buffer == NULL) {
 		printk(KERN_ERR "Failed to initialize ubd buffering\n");
-		return -1;
+		return -ENOMEM;
 	}
 	io_req_buffer = kmalloc_array(UBD_REQ_BUFFER_SIZE,
 				      sizeof(struct io_thread_req *),
@@ -1146,7 +1146,7 @@ static int __init ubd_init(void)
 
 	if (io_req_buffer == NULL) {
 		printk(KERN_ERR "Failed to initialize ubd buffering\n");
-		return -1;
+		return -ENOMEM;
 	}
 	platform_driver_register(&ubd_driver);
 	mutex_lock(&ubd_lock);
arch/um/include/asm/mmu.h +0 -2
index da705448590f..21fbe5454dbd 100644
@@ -15,8 +15,6 @@ typedef struct mm_context {
 	struct page *stub_pages[2];
 } mm_context_t;
 
-extern void __switch_mm(struct mm_id * mm_idp);
-
 /* Avoid tangled inclusion with asm/ldt.h */
 extern long init_new_ldt(struct mm_context *to_mm, struct mm_context *from_mm);
 extern void free_ldt(struct mm_context *mm);
arch/um/include/shared/skas/mm_id.h +2 -0
index 48dd0989ddaa..169482ec95f9 100644
@@ -14,4 +14,6 @@ struct mm_id {
 	unsigned long stack;
 };
 
+void __switch_mm(struct mm_id *mm_idp);
+
 #endif
arch/x86/Kconfig.debug +1 -4
index 687cd1a213d5..82170d6257b1 100644
@@ -376,6 +376,7 @@ config UNWINDER_ORC
 
 config UNWINDER_FRAME_POINTER
 	bool "Frame pointer unwinder"
+	select ARCH_WANT_FRAME_POINTERS
 	select FRAME_POINTER
 	---help---
 	  This option enables the frame pointer unwinder for unwinding kernel
@@ -403,7 +404,3 @@ config UNWINDER_GUESS
 	  overhead.
 
 endchoice
-
-config FRAME_POINTER
-	depends on !UNWINDER_ORC && !UNWINDER_GUESS
-	bool
arch/x86/kernel/apic/vector.c +6 -3
index dc7c759442f1..d5c4eda78935 100644
@@ -915,7 +915,8 @@ static void __send_cleanup_vector(struct apic_chip_data *apicd)
 		hlist_add_head(&apicd->clist, per_cpu_ptr(&cleanup_list, cpu));
 		apic->send_IPI(cpu, IRQ_MOVE_CLEANUP_VECTOR);
 	} else {
-		apicd->prev_vector = 0;
+		pr_warn("IRQ %u schedule cleanup for offline CPU %u\n", apicd->irq, cpu);
+		free_moved_vector(apicd);
 	}
 	raw_spin_unlock(&vector_lock);
 }
@@ -951,6 +952,7 @@ void irq_complete_move(struct irq_cfg *cfg)
  */
 void irq_force_complete_move(struct irq_desc *desc)
 {
+	unsigned int cpu = smp_processor_id();
 	struct apic_chip_data *apicd;
 	struct irq_data *irqd;
 	unsigned int vector;
@@ -975,10 +977,11 @@ void irq_force_complete_move(struct irq_desc *desc)
 		goto unlock;
 
 	/*
-	 * If prev_vector is empty, no action required.
+	 * If prev_vector is empty or the descriptor is neither currently
+	 * nor previously on the outgoing CPU no action required.
 	 */
 	vector = apicd->prev_vector;
-	if (!vector)
+	if (!vector || (apicd->cpu != cpu && apicd->prev_cpu != cpu))
 		goto unlock;
 
 	/*
arch/x86/kernel/tsc_sync.c +2 -4
index ec534f978867..4ca1c4381085 100644
@@ -151,11 +151,9 @@ bool tsc_store_and_check_tsc_adjust(bool bootcpu)
 	cur->warned = false;
 
 	/*
-	 * If a non-zero TSC value for socket 0 may be valid then the default
-	 * adjusted value cannot assumed to be zero either.
+	 * The default adjust value cannot be assumed to be zero on any socket.
 	 */
-	if (tsc_async_resets)
-		cur->adjusted = bootval;
+	cur->adjusted = bootval;
 
 	/*
 	 * Check whether this CPU is the first in a package to come up. In
arch/x86/lib/x86-opcode-map.txt +1 -1
index 5cb9f009f2be..996a3a250026 100644
@@ -148,7 +148,7 @@ AVXcode:
 65: SEG=GS (Prefix)
 66: Operand-Size (Prefix)
 67: Address-Size (Prefix)
-68: PUSH Iz (d64)
+68: PUSH Iz
 69: IMUL Gv,Ev,Iz
 6a: PUSH Ib (d64)
 6b: IMUL Gv,Ev,Ib
arch/x86/purgatory/Makefile +2 -1
index 00f104e341e5..e5138a7b580d 100644
@@ -30,7 +30,8 @@ KCOV_INSTRUMENT := n
 # make up the standalone purgatory.ro
 
 PURGATORY_CFLAGS_REMOVE := -mcmodel=kernel
-PURGATORY_CFLAGS := -mcmodel=large -ffreestanding -fno-zero-initialized-in-bss -g0
+PURGATORY_CFLAGS := -mcmodel=small -ffreestanding -fno-zero-initialized-in-bss -g0
+PURGATORY_CFLAGS += -fpic -fvisibility=hidden
 PURGATORY_CFLAGS += $(DISABLE_STACKLEAK_PLUGIN) -DDISABLE_BRANCH_PROFILING
 
 # Default KBUILD_CFLAGS can have -pg option set when FTRACE is enabled. That
arch/x86/tools/relocs.c +9 -0
index c7f1d1759c85..7470d88ae631 100644
@@ -672,6 +672,15 @@ static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
 		if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) {
 			continue;
 		}
+
+		/*
+		 * Do not perform relocations in .notes sections; 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++) {
drivers/acpi/acpica/Makefile +1 -0
index 8ce51f0f40ce..dec40cb81cc4 100644
@@ -5,6 +5,7 @@
 
 ccflags-y			:= -D_LINUX -DBUILDING_ACPICA
 ccflags-$(CONFIG_ACPI_DEBUG)	+= -DACPI_DEBUG_OUTPUT
+CFLAGS_tbfind.o 		+= $(call cc-disable-warning, stringop-truncation)
 
 # use acpi.o to put all files here into acpi.o modparam namespace
 obj-y	+= acpi.o
drivers/android/binder.c +2 -2
index 2232576cbe2b..4150f8751658 100644
@@ -540,7 +540,7 @@ struct binder_proc {
 	struct list_head todo;
 	struct binder_stats stats;
 	struct list_head delivered_death;
-	int max_threads;
+	u32 max_threads;
 	int requested_threads;
 	int requested_threads_started;
 	int tmp_ref;
@@ -4658,7 +4658,7 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 			goto err;
 		break;
 	case BINDER_SET_MAX_THREADS: {
-		int max_threads;
+		u32 max_threads;
 
 		if (copy_from_user(&max_threads, ubuf,
 				   sizeof(max_threads))) {
drivers/ata/pata_legacy.c +4 -4
index 591778024054..eee9a89d433f 100644
@@ -128,8 +128,6 @@ static int legacy_port[NR_HOST] = { 0x1f0, 0x170, 0x1e8, 0x168, 0x1e0, 0x160 };
 static struct legacy_probe probe_list[NR_HOST];
 static struct legacy_data legacy_data[NR_HOST];
 static struct ata_host *legacy_host[NR_HOST];
-static int nr_legacy_host;
-
 
 static int probe_all;		/* Set to check all ISA port ranges */
 static int ht6560a;		/* HT 6560A on primary 1, second 2, both 3 */
@@ -1253,9 +1251,11 @@ static __exit void legacy_exit(void)
 {
 	int i;
 
-	for (i = 0; i < nr_legacy_host; i++) {
+	for (i = 0; i < NR_HOST; i++) {
 		struct legacy_data *ld = &legacy_data[i];
-		ata_host_detach(legacy_host[i]);
+
+		if (legacy_host[i])
+			ata_host_detach(legacy_host[i]);
 		platform_device_unregister(ld->platform_dev);
 	}
 }
drivers/block/null_blk_main.c +3 -0
index 5553df736c72..216c03913dd6 100644
@@ -1967,10 +1967,13 @@ static void __exit null_exit(void)
 
 	if (g_queue_mode == NULL_Q_MQ && shared_tags)
 		blk_mq_free_tag_set(&tag_set);
+
+	mutex_destroy(&lock);
 }
 
 module_init(null_init);
 module_exit(null_exit);
 
 MODULE_AUTHOR("Jens Axboe <[email protected]>");
+MODULE_DESCRIPTION("multi queue aware block test driver");
 MODULE_LICENSE("GPL");
drivers/char/ppdev.c +14 -7
index 51faafd310a2..6422a184a58a 100644
@@ -300,28 +300,35 @@ static int register_device(int minor, struct pp_struct *pp)
 	if (!port) {
 		pr_warn("%s: no associated port!\n", name);
 		rc = -ENXIO;
-		goto err;
+		goto err_free_name;
+	}
+
+	index = ida_alloc(&ida_index, GFP_KERNEL);
+	if (index < 0) {
+		pr_warn("%s: failed to get index!\n", name);
+		rc = index;
+		goto err_put_port;
 	}
 
-	index = ida_simple_get(&ida_index, 0, 0, GFP_KERNEL);
 	memset(&ppdev_cb, 0, sizeof(ppdev_cb));
 	ppdev_cb.irq_func = pp_irq;
 	ppdev_cb.flags = (pp->flags & PP_EXCL) ? PARPORT_FLAG_EXCL : 0;
 	ppdev_cb.private = pp;
 	pdev = parport_register_dev_model(port, name, &ppdev_cb, index);
-	parport_put_port(port);
 
 	if (!pdev) {
 		pr_warn("%s: failed to register device!\n", name);
 		rc = -ENXIO;
-		ida_simple_remove(&ida_index, index);
-		goto err;
+		ida_free(&ida_index, index);
+		goto err_put_port;
 	}
 
 	pp->pdev = pdev;
 	pp->index = index;
 	dev_dbg(&pdev->dev, "registered pardevice\n");
-err:
+err_put_port:
+	parport_put_port(port);
+err_free_name:
 	kfree(name);
 	return rc;
 }
@@ -766,7 +773,7 @@ static int pp_release(struct inode *inode, struct file *file)
 
 	if (pp->pdev) {
 		parport_unregister_device(pp->pdev);
-		ida_simple_remove(&ida_index, pp->index);
+		ida_free(&ida_index, pp->index);
 		pp->pdev = NULL;
 		pr_debug(CHRDEV "%x: unregistered pardevice\n", minor);
 	}
drivers/crypto/bcm/spu2.c +1 -1
index bf7ac621c591..0f6023347cc8 100644
@@ -506,7 +506,7 @@ static void spu2_dump_omd(u8 *omd, u16 hash_key_len, u16 ciph_key_len,
 	if (hash_iv_len) {
 		packet_log("  Hash IV Length %u bytes\n", hash_iv_len);
 		packet_dump("  hash IV: ", ptr, hash_iv_len);
-		ptr += ciph_key_len;
+		ptr += hash_iv_len;
 	}
 
 	if (ciph_iv_len) {
drivers/crypto/ccp/sp-platform.c +23 -36

94 lines not on this page · raw message

drivers/crypto/qat/qat_common/adf_aer.c +5 -14
index 7242a1ee86de..3811ca0b6e0b 100644
@@ -139,8 +139,7 @@ static void adf_device_reset_worker(struct work_struct *work)
 	if (adf_dev_init(accel_dev) || adf_dev_start(accel_dev)) {
 		/* The device hanged and we can't restart it so stop here */
 		dev_err(&GET_DEV(accel_dev), "Restart device failed\n");
-		if (reset_data->mode == ADF_DEV_RESET_ASYNC ||
-		    completion_done(&reset_data->compl))
+		if (reset_data->mode == ADF_DEV_RESET_ASYNC)
 			kfree(reset_data);
 		WARN(1, "QAT: device restart failed. Device is unusable\n");
 		return;
@@ -148,16 +147,8 @@ static void adf_device_reset_worker(struct work_struct *work)
 	adf_dev_restarted_notify(accel_dev);
 	clear_bit(ADF_STATUS_RESTARTING, &accel_dev->status);
 
-	/*
-	 * The dev is back alive. Notify the caller if in sync mode
-	 *
-	 * If device restart will take a more time than expected,
-	 * the schedule_reset() function can timeout and exit. This can be
-	 * detected by calling the completion_done() function. In this case
-	 * the reset_data structure needs to be freed here.
-	 */
-	if (reset_data->mode == ADF_DEV_RESET_ASYNC ||
-	    completion_done(&reset_data->compl))
+	/* The dev is back alive. Notify the caller if in sync mode */
+	if (reset_data->mode == ADF_DEV_RESET_ASYNC)
 		kfree(reset_data);
 	else
 		complete(&reset_data->compl);
@@ -192,10 +183,10 @@ static int adf_dev_aer_schedule_reset(struct adf_accel_dev *accel_dev,
 		if (!timeout) {
 			dev_err(&GET_DEV(accel_dev),
 				"Reset device timeout expired\n");
+			cancel_work_sync(&reset_data->reset_work);
 			ret = -EFAULT;
-		} else {
-			kfree(reset_data);
 		}
+		kfree(reset_data);
 		return ret;
 	}
 	return 0;
drivers/dma-buf/sync_debug.c +2 -2
index c4c8ecb24aa9..cfe31e52d78d 100644
@@ -119,12 +119,12 @@ static void sync_print_obj(struct seq_file *s, struct sync_timeline *obj)
 
 	seq_printf(s, "%s: %d\n", obj->name, obj->value);
 
-	spin_lock_irq(&obj->lock);
+	spin_lock(&obj->lock); /* Caller already disabled IRQ. */
 	list_for_each(pos, &obj->pt_list) {
 		struct sync_pt *pt = container_of(pos, struct sync_pt, link);
 		sync_print_fence(s, &pt->base, false);
 	}
-	spin_unlock_irq(&obj->lock);
+	spin_unlock(&obj->lock);
 }
 
 static void sync_print_sync_file(struct seq_file *s,
drivers/dma/idma64.c +3 -1
index 920e98dc7113..b2fb42a4385c 100644
@@ -603,7 +603,9 @@ static int idma64_probe(struct idma64_chip *chip)
 
 	idma64->dma.dev = chip->sysdev;
 
-	dma_set_max_seg_size(idma64->dma.dev, IDMA64C_CTLH_BLOCK_TS_MASK);
+	ret = dma_set_max_seg_size(idma64->dma.dev, IDMA64C_CTLH_BLOCK_TS_MASK);
+	if (ret)
+		return ret;
 
 	ret = dma_async_device_register(&idma64->dma);
 	if (ret)
drivers/extcon/Kconfig +2 -1
index de15bf55895b..19a1e32c3a7e 100644
@@ -101,7 +101,8 @@ config EXTCON_MAX77843
 
 config EXTCON_MAX8997
 	tristate "Maxim MAX8997 EXTCON Support"
-	depends on MFD_MAX8997 && IRQ_DOMAIN
+	depends on MFD_MAX8997
+	select IRQ_DOMAIN
 	help
 	  If you say yes here you get support for the MUIC device of
 	  Maxim MAX8997 PMIC. The MAX8997 MUIC is a USB port accessory
drivers/firmware/dmi-id.c +6 -1
index 624a11cb07e2..3ddff56fec99 100644
@@ -161,9 +161,14 @@ static int dmi_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
 	return 0;
 }
 
+static void dmi_dev_release(struct device *dev)
+{
+	kfree(dev);
+}
+
 static struct class dmi_class = {
 	.name = "dmi",
-	.dev_release = (void(*)(struct device *)) kfree,
+	.dev_release = dmi_dev_release,
 	.dev_uevent = dmi_dev_uevent,
 };
 
drivers/firmware/raspberrypi.c +4 -3
index 44eb99807e33..ea3975b94d6a 100644
@@ -11,6 +11,7 @@
 
 #include <linux/dma-mapping.h>
 #include <linux/mailbox_client.h>
+#include <linux/mailbox_controller.h>
 #include <linux/module.h>
 #include <linux/of_platform.h>
 #include <linux/platform_device.h>
@@ -91,8 +92,8 @@ int rpi_firmware_property_list(struct rpi_firmware *fw,
 	if (size & 3)
 		return -EINVAL;
 
-	buf = dma_alloc_coherent(fw->cl.dev, PAGE_ALIGN(size), &bus_addr,
-				 GFP_ATOMIC);
+	buf = dma_alloc_coherent(fw->chan->mbox->dev, PAGE_ALIGN(size),
+				 &bus_addr, GFP_ATOMIC);
 	if (!buf)
 		return -ENOMEM;
 
@@ -120,7 +121,7 @@ int rpi_firmware_property_list(struct rpi_firmware *fw,
 		ret = -EINVAL;
 	}
 
-	dma_free_coherent(fw->cl.dev, PAGE_ALIGN(size), buf, bus_addr);
+	dma_free_coherent(fw->chan->mbox->dev, PAGE_ALIGN(size), buf, bus_addr);
 
 	return ret;
 }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -0
index 98d51bc20417..e4139723c473 100644
@@ -816,6 +816,7 @@ static int dm_resume(void *handle)
 			dc_stream_release(dm_new_crtc_state->stream);
 			dm_new_crtc_state->stream = NULL;
 		}
+		dm_new_crtc_state->base.color_mgmt_changed = true;
 	}
 
 	for_each_new_plane_in_state(dm->cached_state, plane, new_plane_state, i) {
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c +5 -0
index f8904f73f57b..67a3ba49234e 100644
@@ -315,6 +315,11 @@ bool cm_helper_translate_curve_to_hw_format(
 				i += increment) {
 			if (j == hw_points - 1)
 				break;
+			if (i >= TRANSFER_FUNC_POINTS) {
+				DC_LOG_ERROR("Index out of bounds: i=%d, TRANSFER_FUNC_POINTS=%d\n",
+					     i, TRANSFER_FUNC_POINTS);
+				return false;
+			}
 			rgb_resulted[j].red = output_tf->tf_pts.red[i];
 			rgb_resulted[j].green = output_tf->tf_pts.green[i];
 			rgb_resulted[j].blue = output_tf->tf_pts.blue[i];
drivers/gpu/drm/arm/malidp_mw.c +4 -1
index 7266d3c8b8f4..420efbdea76c 100644
@@ -69,7 +69,10 @@ static void malidp_mw_connector_reset(struct drm_connector *connector)
 		__drm_atomic_helper_connector_destroy_state(connector->state);
 
 	kfree(connector->state);
-	__drm_atomic_helper_connector_reset(connector, &mw_state->base);
+	connector->state = NULL;
+
+	if (mw_state)
+		__drm_atomic_helper_connector_reset(connector, &mw_state->base);
 }
 
 static enum drm_connector_status
drivers/gpu/drm/mediatek/mtk_drm_gem.c +3 -0
index b09a37a38e0a..079df67892df 100644
@@ -26,6 +26,9 @@ static struct mtk_drm_gem_obj *mtk_drm_gem_init(struct drm_device *dev,
 
 	size = round_up(size, PAGE_SIZE);
 
+	if (size == 0)
+		return ERR_PTR(-EINVAL);
+
 	mtk_gem_obj = kzalloc(sizeof(*mtk_gem_obj), GFP_KERNEL);
 	if (!mtk_gem_obj)
 		return ERR_PTR(-ENOMEM);
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c +1 -11
index 3084675ed425..c8c4612dc34d 100644
@@ -823,7 +823,6 @@ struct dpu_encoder_phys *dpu_encoder_phys_cmd_init(
 {
 	struct dpu_encoder_phys *phys_enc = NULL;
 	struct dpu_encoder_phys_cmd *cmd_enc = NULL;
-	struct dpu_hw_mdp *hw_mdp;
 	struct dpu_encoder_irq *irq;
 	int i, ret = 0;
 
@@ -836,14 +835,7 @@ struct dpu_encoder_phys *dpu_encoder_phys_cmd_init(
 		goto fail;
 	}
 	phys_enc = &cmd_enc->base;
-
-	hw_mdp = dpu_rm_get_mdp(&p->dpu_kms->rm);
-	if (IS_ERR_OR_NULL(hw_mdp)) {
-		ret = PTR_ERR(hw_mdp);
-		DPU_ERROR("failed to get mdptop\n");
-		goto fail_mdp_init;
-	}
-	phys_enc->hw_mdptop = hw_mdp;
+	phys_enc->hw_mdptop = p->dpu_kms->hw_mdp;
 	phys_enc->intf_idx = p->intf_idx;
 
 	dpu_encoder_phys_cmd_init_ops(&phys_enc->ops);
@@ -898,8 +890,6 @@ struct dpu_encoder_phys *dpu_encoder_phys_cmd_init(
 
 	return phys_enc;
 
-fail_mdp_init:
-	kfree(cmd_enc);
 fail:
 	return ERR_PTR(ret);
 }
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c +1 -8
index c9962a36b86b..15a1277fe354 100644
@@ -829,7 +829,6 @@ struct dpu_encoder_phys *dpu_encoder_phys_vid_init(
 	struct dpu_encoder_phys *phys_enc = NULL;
 	struct dpu_encoder_phys_vid *vid_enc = NULL;
 	struct dpu_rm_hw_iter iter;
-	struct dpu_hw_mdp *hw_mdp;
 	struct dpu_encoder_irq *irq;
 	int i, ret = 0;
 
@@ -846,13 +845,7 @@ struct dpu_encoder_phys *dpu_encoder_phys_vid_init(
 
 	phys_enc = &vid_enc->base;
 
-	hw_mdp = dpu_rm_get_mdp(&p->dpu_kms->rm);
-	if (IS_ERR_OR_NULL(hw_mdp)) {
-		ret = PTR_ERR(hw_mdp);
-		DPU_ERROR("failed to get mdptop\n");
-		goto fail;
-	}
-	phys_enc->hw_mdptop = hw_mdp;
+	phys_enc->hw_mdptop = p->dpu_kms->hw_mdp;
 	phys_enc->intf_idx = p->intf_idx;
 
 	/**
drivers/hwtracing/intel_th/pci.c +5 -0
index 6229f8e497fc..dbe8e5677680 100644
@@ -250,6 +250,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa76f),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Meteor Lake-S CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xae24),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Raptor Lake-S */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7a26),
drivers/hwtracing/stm/core.c +6 -5
index eeba421dc823..9bb85d20934a 100644
@@ -701,8 +701,11 @@ int stm_register_device(struct device *parent, struct stm_data *stm_data,
 		return -ENOMEM;
 
 	stm->major = register_chrdev(0, stm_data->name, &stm_fops);
-	if (stm->major < 0)
-		goto err_free;
+	if (stm->major < 0) {
+		err = stm->major;
+		vfree(stm);
+		return err;
+	}
 
 	device_initialize(&stm->dev);
 	stm->dev.devt = MKDEV(stm->major, 0);
@@ -746,10 +749,8 @@ int stm_register_device(struct device *parent, struct stm_data *stm_data,
 err_device:
 	unregister_chrdev(stm->major, stm_data->name);
 
-	/* matches device_initialize() above */
+	/* calls stm_device_release() */
 	put_device(&stm->dev);
-err_free:
-	vfree(stm);
 
 	return err;
 }
drivers/infiniband/hw/hns/hns_roce_hem.h +6 -6
index a94444db3045..265706811f23 100644
@@ -57,16 +57,16 @@ enum {
 	 (sizeof(struct scatterlist) + sizeof(void *)))
 
 #define check_whether_bt_num_3(type, hop_num) \
-	(type < HEM_TYPE_MTT && hop_num == 2)
+	((type) < HEM_TYPE_MTT && (hop_num) == 2)
 
 #define check_whether_bt_num_2(type, hop_num) \
-	((type < HEM_TYPE_MTT && hop_num == 1) || \
-	(type >= HEM_TYPE_MTT && hop_num == 2))
+	(((type) < HEM_TYPE_MTT && (hop_num) == 1) || \
+	((type) >= HEM_TYPE_MTT && (hop_num) == 2))
 
 #define check_whether_bt_num_1(type, hop_num) \
-	((type < HEM_TYPE_MTT && hop_num == HNS_ROCE_HOP_NUM_0) || \
-	(type >= HEM_TYPE_MTT && hop_num == 1) || \
-	(type >= HEM_TYPE_MTT && hop_num == HNS_ROCE_HOP_NUM_0))
+	(((type) < HEM_TYPE_MTT && (hop_num) == HNS_ROCE_HOP_NUM_0) || \
+	((type) >= HEM_TYPE_MTT && (hop_num) == 1) || \
+	((type) >= HEM_TYPE_MTT && (hop_num) == HNS_ROCE_HOP_NUM_0))
 
 enum {
 	 HNS_ROCE_HEM_PAGE_SHIFT = 12,
drivers/infiniband/ulp/ipoib/ipoib_vlan.c +6 -2
index 341753fbda54..fed44c01d65e 100644
@@ -179,8 +179,12 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey)
 
 	ppriv = ipoib_priv(pdev);
 
-	snprintf(intf_name, sizeof(intf_name), "%s.%04x",
-		 ppriv->dev->name, pkey);
+	/* If you increase IFNAMSIZ, update snprintf below
+	 * to allow longer names.
+	 */
+	BUILD_BUG_ON(IFNAMSIZ != 16);
+	snprintf(intf_name, sizeof(intf_name), "%.10s.%04x", ppriv->dev->name,
+		 pkey);
 
 	priv = ipoib_intf_alloc(ppriv->ca, ppriv->port, intf_name);
 	if (!priv) {
drivers/input/misc/ims-pcu.c +2 -2
index 3d51175c4d72..ceb42b17bb94 100644
@@ -47,8 +47,8 @@ struct ims_pcu_backlight {
 #define IMS_PCU_PART_NUMBER_LEN		15
 #define IMS_PCU_SERIAL_NUMBER_LEN	8
 #define IMS_PCU_DOM_LEN			8
-#define IMS_PCU_FW_VERSION_LEN		(9 + 1)
-#define IMS_PCU_BL_VERSION_LEN		(9 + 1)
+#define IMS_PCU_FW_VERSION_LEN		16
+#define IMS_PCU_BL_VERSION_LEN		16
 #define IMS_PCU_BL_RESET_REASON_LEN	(2 + 1)
 
 #define IMS_PCU_PCU_B_DEVICE_ID		5
drivers/input/misc/pm8xxx-vibrator.c +4 -3
index 27b3db154a33..97bf7d94e8c6 100644
@@ -22,7 +22,8 @@
 
 #define VIB_MAX_LEVEL_mV	(3100)
 #define VIB_MIN_LEVEL_mV	(1200)
-#define VIB_MAX_LEVELS		(VIB_MAX_LEVEL_mV - VIB_MIN_LEVEL_mV)
+#define VIB_PER_STEP_mV		(100)
+#define VIB_MAX_LEVELS		(VIB_MAX_LEVEL_mV - VIB_MIN_LEVEL_mV + VIB_PER_STEP_mV)
 
 #define MAX_FF_SPEED		0xff
 
@@ -126,10 +127,10 @@ static void pm8xxx_work_handler(struct work_struct *work)
 		vib->active = true;
 		vib->level = ((VIB_MAX_LEVELS * vib->speed) / MAX_FF_SPEED) +
 						VIB_MIN_LEVEL_mV;
-		vib->level /= 100;
+		vib->level /= VIB_PER_STEP_mV;
 	} else {
 		vib->active = false;
-		vib->level = VIB_MIN_LEVEL_mV / 100;
+		vib->level = VIB_MIN_LEVEL_mV / VIB_PER_STEP_mV;
 	}
 
 	pm8xxx_vib_set(vib, vib->active);
drivers/irqchip/irq-alpine-msi.c +1 -1
index 1819bb1d2723..aedbc4befcdf 100644
@@ -165,7 +165,7 @@ static int alpine_msix_middle_domain_alloc(struct irq_domain *domain,
 	return 0;
 
 err_sgi:
-	irq_domain_free_irqs_parent(domain, virq, i - 1);
+	irq_domain_free_irqs_parent(domain, virq, i);
 	alpine_msix_free_sgi(priv, sgi, nr_irqs);
 	return err;
 }
drivers/macintosh/adb-iop.c +28 -20

124 lines not on this page · raw message

drivers/macintosh/via-macii.c +147 -181

476 lines not on this page · raw message

drivers/md/md-bitmap.c +3 -3
index 7ca81e917aef..6cbf4a069652 100644
@@ -1358,7 +1358,7 @@ __acquires(bitmap->lock)
 	sector_t chunk = offset >> bitmap->chunkshift;
 	unsigned long page = chunk >> PAGE_COUNTER_SHIFT;
 	unsigned long pageoff = (chunk & PAGE_COUNTER_MASK) << COUNTER_BYTE_SHIFT;
-	sector_t csize;
+	sector_t csize = ((sector_t)1) << bitmap->chunkshift;
 	int err;
 
 	if (page >= bitmap->pages) {
@@ -1367,6 +1367,7 @@ __acquires(bitmap->lock)
 		 * End-of-device while looking for a whole page or
 		 * user set a huge number to sysfs bitmap_set_bits.
 		 */
+		*blocks = csize - (offset & (csize - 1));
 		return NULL;
 	}
 	err = md_bitmap_checkpage(bitmap, page, create, 0);
@@ -1375,8 +1376,7 @@ __acquires(bitmap->lock)
 	    bitmap->bp[page].map == NULL)
 		csize = ((sector_t)1) << (bitmap->chunkshift +
 					  PAGE_COUNTER_SHIFT);
-	else
-		csize = ((sector_t)1) << bitmap->chunkshift;
+
 	*blocks = csize - (offset & (csize - 1));
 
 	if (err < 0)
drivers/md/raid5.c +3 -12
index b98abe927d06..4e125c84be49 100644
@@ -44,7 +44,6 @@
  */
 
 #include <linux/blkdev.h>
-#include <linux/delay.h>
 #include <linux/kthread.h>
 #include <linux/raid/pq.h>
 #include <linux/async_tx.h>
@@ -6294,6 +6293,9 @@ static void raid5d(struct md_thread *thread)
 		int batch_size, released;
 		unsigned int offset;
 
+		if (test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags))
+			break;
+
 		released = release_stripe_list(conf, conf->temp_inactive_list);
 		if (released)
 			clear_bit(R5_DID_ALLOC, &conf->cache_state);
@@ -6330,18 +6332,7 @@ static void raid5d(struct md_thread *thread)
 			spin_unlock_irq(&conf->device_lock);
 			md_check_recovery(mddev);
 			spin_lock_irq(&conf->device_lock);
-
-			/*
-			 * Waiting on MD_SB_CHANGE_PENDING below may deadlock
-			 * seeing md_check_recovery() is needed to clear
-			 * the flag when using mdmon.
-			 */
-			continue;
 		}
-
-		wait_event_lock_irq(mddev->sb_wait,
-			!test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags),
-			conf->device_lock);
 	}
 	pr_debug("%d stripes handled\n", handled);
 
drivers/media/cec/cec-adap.c +1 -2
index 2f49c4db49b3..d73beb124694 100644
@@ -863,8 +863,7 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
 	 */
 	mutex_unlock(&adap->lock);
 	wait_for_completion_killable(&data->c);
-	if (!data->completed)
-		cancel_delayed_work_sync(&data->work);
+	cancel_delayed_work_sync(&data->work);
 	mutex_lock(&adap->lock);
 
 	/* Cancel the transmit if it was interrupted */
drivers/media/cec/cec-api.c +3 -0
index b2b3f779592f..d4c848c2f376 100644
@@ -660,6 +660,8 @@ static int cec_release(struct inode *inode, struct file *filp)
 		list_del(&data->xfer_list);
 	}
 	mutex_unlock(&adap->lock);
+
+	mutex_lock(&fh->lock);
 	while (!list_empty(&fh->msgs)) {
 		struct cec_msg_entry *entry =
 			list_first_entry(&fh->msgs, struct cec_msg_entry, list);
@@ -677,6 +679,7 @@ static int cec_release(struct inode *inode, struct file *filp)
 			kfree(entry);
 		}
 	}
+	mutex_unlock(&fh->lock);
 	kfree(fh);
 
 	cec_put_device(devnode);
drivers/media/dvb-frontends/mxl5xx.c +11 -11
index 295f37d5f10e..6bf0c7c94bb9 100644
@@ -1390,57 +1390,57 @@ static int config_ts(struct mxl *state, enum MXL_HYDRA_DEMOD_ID_E demod_id,
 	u32 nco_count_min = 0;
 	u32 clk_type = 0;
 
-	struct MXL_REG_FIELD_T xpt_sync_polarity[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_sync_polarity[MXL_HYDRA_DEMOD_MAX] = {
 		{0x90700010, 8, 1}, {0x90700010, 9, 1},
 		{0x90700010, 10, 1}, {0x90700010, 11, 1},
 		{0x90700010, 12, 1}, {0x90700010, 13, 1},
 		{0x90700010, 14, 1}, {0x90700010, 15, 1} };
-	struct MXL_REG_FIELD_T xpt_clock_polarity[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_clock_polarity[MXL_HYDRA_DEMOD_MAX] = {
 		{0x90700010, 16, 1}, {0x90700010, 17, 1},
 		{0x90700010, 18, 1}, {0x90700010, 19, 1},
 		{0x90700010, 20, 1}, {0x90700010, 21, 1},
 		{0x90700010, 22, 1}, {0x90700010, 23, 1} };
-	struct MXL_REG_FIELD_T xpt_valid_polarity[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_valid_polarity[MXL_HYDRA_DEMOD_MAX] = {
 		{0x90700014, 0, 1}, {0x90700014, 1, 1},
 		{0x90700014, 2, 1}, {0x90700014, 3, 1},
 		{0x90700014, 4, 1}, {0x90700014, 5, 1},
 		{0x90700014, 6, 1}, {0x90700014, 7, 1} };
-	struct MXL_REG_FIELD_T xpt_ts_clock_phase[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_ts_clock_phase[MXL_HYDRA_DEMOD_MAX] = {
 		{0x90700018, 0, 3}, {0x90700018, 4, 3},
 		{0x90700018, 8, 3}, {0x90700018, 12, 3},
 		{0x90700018, 16, 3}, {0x90700018, 20, 3},
 		{0x90700018, 24, 3}, {0x90700018, 28, 3} };
-	struct MXL_REG_FIELD_T xpt_lsb_first[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_lsb_first[MXL_HYDRA_DEMOD_MAX] = {
 		{0x9070000C, 16, 1}, {0x9070000C, 17, 1},
 		{0x9070000C, 18, 1}, {0x9070000C, 19, 1},
 		{0x9070000C, 20, 1}, {0x9070000C, 21, 1},
 		{0x9070000C, 22, 1}, {0x9070000C, 23, 1} };
-	struct MXL_REG_FIELD_T xpt_sync_byte[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_sync_byte[MXL_HYDRA_DEMOD_MAX] = {
 		{0x90700010, 0, 1}, {0x90700010, 1, 1},
 		{0x90700010, 2, 1}, {0x90700010, 3, 1},
 		{0x90700010, 4, 1}, {0x90700010, 5, 1},
 		{0x90700010, 6, 1}, {0x90700010, 7, 1} };
-	struct MXL_REG_FIELD_T xpt_enable_output[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_enable_output[MXL_HYDRA_DEMOD_MAX] = {
 		{0x9070000C, 0, 1}, {0x9070000C, 1, 1},
 		{0x9070000C, 2, 1}, {0x9070000C, 3, 1},
 		{0x9070000C, 4, 1}, {0x9070000C, 5, 1},
 		{0x9070000C, 6, 1}, {0x9070000C, 7, 1} };
-	struct MXL_REG_FIELD_T xpt_err_replace_sync[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_err_replace_sync[MXL_HYDRA_DEMOD_MAX] = {
 		{0x9070000C, 24, 1}, {0x9070000C, 25, 1},
 		{0x9070000C, 26, 1}, {0x9070000C, 27, 1},
 		{0x9070000C, 28, 1}, {0x9070000C, 29, 1},
 		{0x9070000C, 30, 1}, {0x9070000C, 31, 1} };
-	struct MXL_REG_FIELD_T xpt_err_replace_valid[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_err_replace_valid[MXL_HYDRA_DEMOD_MAX] = {
 		{0x90700014, 8, 1}, {0x90700014, 9, 1},
 		{0x90700014, 10, 1}, {0x90700014, 11, 1},
 		{0x90700014, 12, 1}, {0x90700014, 13, 1},
 		{0x90700014, 14, 1}, {0x90700014, 15, 1} };
-	struct MXL_REG_FIELD_T xpt_continuous_clock[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_continuous_clock[MXL_HYDRA_DEMOD_MAX] = {
 		{0x907001D4, 0, 1}, {0x907001D4, 1, 1},
 		{0x907001D4, 2, 1}, {0x907001D4, 3, 1},
 		{0x907001D4, 4, 1}, {0x907001D4, 5, 1},
 		{0x907001D4, 6, 1}, {0x907001D4, 7, 1} };
-	struct MXL_REG_FIELD_T xpt_nco_clock_rate[MXL_HYDRA_DEMOD_MAX] = {
+	static const struct MXL_REG_FIELD_T xpt_nco_clock_rate[MXL_HYDRA_DEMOD_MAX] = {
 		{0x90700044, 16, 80}, {0x90700044, 16, 81},
 		{0x90700044, 16, 82}, {0x90700044, 16, 83},
 		{0x90700044, 16, 84}, {0x90700044, 16, 85},
drivers/media/pci/ngene/ngene-core.c +3 -1
index aa60559bbbb4..ee36beda5427 100644
@@ -1505,7 +1505,9 @@ static int init_channel(struct ngene_channel *chan)
 	}
 
 	if (dev->ci.en && (io & NGENE_IO_TSOUT)) {
-		dvb_ca_en50221_init(adapter, dev->ci.en, 0, 1);
+		ret = dvb_ca_en50221_init(adapter, dev->ci.en, 0, 1);
+		if (ret != 0)
+			goto err;
 		set_transfer(chan, 1);
 		chan->dev->channel[2].DataFormatFlags = DF_SWAP32;
 		set_transfer(&chan->dev->channel[2], 1);
drivers/media/radio/radio-shark2.c +1 -1
index 5356941f54ae..fda988139fa4 100644
@@ -62,7 +62,7 @@ struct shark_device {
 #ifdef SHARK_USE_LEDS
 	struct work_struct led_work;
 	struct led_classdev leds[NO_LEDS];
-	char led_names[NO_LEDS][32];
+	char led_names[NO_LEDS][64];
 	atomic_t brightness[NO_LEDS];
 	unsigned long brightness_new;
 #endif
drivers/media/usb/stk1160/stk1160-video.c +15 -5
index 0e98b450ae01..687c7b6a0c30 100644
@@ -109,7 +109,7 @@ void stk1160_buffer_done(struct stk1160 *dev)
 static inline
 void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len)
 {
-	int linesdone, lineoff, lencopy;
+	int linesdone, lineoff, lencopy, offset;
 	int bytesperline = dev->width * 2;
 	struct stk1160_buffer *buf = dev->isoc_ctl.buf;
 	u8 *dst = buf->mem;
@@ -149,8 +149,13 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len)
 	 * Check if we have enough space left in the buffer.
 	 * In that case, we force loop exit after copy.
 	 */
-	if (lencopy > buf->bytesused - buf->length) {
-		lencopy = buf->bytesused - buf->length;
+	offset = dst - (u8 *)buf->mem;
+	if (offset > buf->length) {
+		dev_warn_ratelimited(dev->dev, "out of bounds offset\n");
+		return;
+	}
+	if (lencopy > buf->length - offset) {
+		lencopy = buf->length - offset;
 		remain = lencopy;
 	}
 
@@ -192,8 +197,13 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len)
 		 * Check if we have enough space left in the buffer.
 		 * In that case, we force loop exit after copy.
 		 */
-		if (lencopy > buf->bytesused - buf->length) {
-			lencopy = buf->bytesused - buf->length;
+		offset = dst - (u8 *)buf->mem;
+		if (offset > buf->length) {
+			dev_warn_ratelimited(dev->dev, "offset out of bounds\n");
+			return;
+		}
+		if (lencopy > buf->length - offset) {
+			lencopy = buf->length - offset;
 			remain = lencopy;
 		}
 
drivers/media/v4l2-core/v4l2-dev.c +3 -0
index 69e775930fc4..d9c9b5b3e879 100644
@@ -980,8 +980,10 @@ int __video_register_device(struct video_device *vdev,
 	vdev->dev.devt = MKDEV(VIDEO_MAJOR, vdev->minor);
 	vdev->dev.parent = vdev->dev_parent;
 	dev_set_name(&vdev->dev, "%s%d", name_base, vdev->num);
+	mutex_lock(&videodev_lock);
 	ret = device_register(&vdev->dev);
 	if (ret < 0) {
+		mutex_unlock(&videodev_lock);
 		pr_err("%s: device_register failed\n", __func__);
 		goto cleanup;
 	}
@@ -1001,6 +1003,7 @@ int __video_register_device(struct video_device *vdev,
 
 	/* Part 6: Activate this minor. The char device can now be used. */
 	set_bit(V4L2_FL_REGISTERED, &vdev->flags);
+	mutex_unlock(&videodev_lock);
 
 	return 0;
 
drivers/mmc/core/host.c +1 -2
index 3e94401c0eb3..23d95d2bdf05 100644
@@ -68,13 +68,12 @@ void mmc_retune_enable(struct mmc_host *host)
 
 /*
  * Pause re-tuning for a small set of operations.  The pause begins after the
- * next command and after first doing re-tuning.
+ * next command.
  */
 void mmc_retune_pause(struct mmc_host *host)
 {
 	if (!host->retune_paused) {
 		host->retune_paused = 1;
-		mmc_retune_needed(host);
 		mmc_retune_hold(host);
 	}
 }
drivers/mtd/nand/raw/nand_hynix.c +1 -1
index 4ffbb26e76d6..6f595455a8c2 100644
@@ -414,7 +414,7 @@ static int hynix_nand_rr_init(struct nand_chip *chip)
 	if (ret)
 		pr_warn("failed to initialize read-retry infrastructure");
 
-	return 0;
+	return ret;
 }
 
 static void hynix_nand_extract_oobsize(struct nand_chip *chip,
drivers/net/ethernet/cisco/enic/enic_main.c +12 -0
index bfe0e820956c..6ad1734d9677 100644
@@ -1152,18 +1152,30 @@ static int enic_set_vf_port(struct net_device *netdev, int vf,
 	pp->request = nla_get_u8(port[IFLA_PORT_REQUEST]);
 
 	if (port[IFLA_PORT_PROFILE]) {
+		if (nla_len(port[IFLA_PORT_PROFILE]) != PORT_PROFILE_MAX) {
+			memcpy(pp, &prev_pp, sizeof(*pp));
+			return -EINVAL;
+		}
 		pp->set |= ENIC_SET_NAME;
 		memcpy(pp->name, nla_data(port[IFLA_PORT_PROFILE]),
 			PORT_PROFILE_MAX);
 	}
 
 	if (port[IFLA_PORT_INSTANCE_UUID]) {
+		if (nla_len(port[IFLA_PORT_INSTANCE_UUID]) != PORT_UUID_MAX) {
+			memcpy(pp, &prev_pp, sizeof(*pp));
+			return -EINVAL;
+		}
 		pp->set |= ENIC_SET_INSTANCE;
 		memcpy(pp->instance_uuid,
 			nla_data(port[IFLA_PORT_INSTANCE_UUID]), PORT_UUID_MAX);
 	}
 
 	if (port[IFLA_PORT_HOST_UUID]) {
+		if (nla_len(port[IFLA_PORT_HOST_UUID]) != PORT_UUID_MAX) {
+			memcpy(pp, &prev_pp, sizeof(*pp));
+			return -EINVAL;
+		}
 		pp->set |= ENIC_SET_HOST;
 		memcpy(pp->host_uuid,
 			nla_data(port[IFLA_PORT_HOST_UUID]), PORT_UUID_MAX);
drivers/net/ethernet/cortina/gemini.c +10 -2
index b7ebe5eb46f5..d464dec9825a 100644
@@ -1116,10 +1116,13 @@ static void gmac_tx_irq_enable(struct net_device *netdev,
 {
 	struct gemini_ethernet_port *port = netdev_priv(netdev);
 	struct gemini_ethernet *geth = port->geth;
+	unsigned long flags;
 	u32 val, mask;
 
 	netdev_dbg(netdev, "%s device %d\n", __func__, netdev->dev_id);
 
+	spin_lock_irqsave(&geth->irq_lock, flags);
+
 	mask = GMAC0_IRQ0_TXQ0_INTS << (6 * netdev->dev_id + txq);
 
 	if (en)
@@ -1128,6 +1131,8 @@ static void gmac_tx_irq_enable(struct net_device *netdev,
 	val = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG);
 	val = en ? val | mask : val & ~mask;
 	writel(val, geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG);
+
+	spin_unlock_irqrestore(&geth->irq_lock, flags);
 }
 
 static void gmac_tx_irq(struct net_device *netdev, unsigned int txq_num)
@@ -1436,15 +1441,19 @@ static unsigned int gmac_rx(struct net_device *netdev, unsigned int budget)
 	union gmac_rxdesc_3 word3;
 	struct page *page = NULL;
 	unsigned int page_offs;
+	unsigned long flags;
 	unsigned short r, w;
 	union dma_rwptr rw;
 	dma_addr_t mapping;
 	int frag_nr = 0;
 
+	spin_lock_irqsave(&geth->irq_lock, flags);
 	rw.bits32 = readl(ptr_reg);
 	/* Reset interrupt as all packages until here are taken into account */
 	writel(DEFAULT_Q0_INT_BIT << netdev->dev_id,
 	       geth->base + GLOBAL_INTERRUPT_STATUS_1_REG);
+	spin_unlock_irqrestore(&geth->irq_lock, flags);
+
 	r = rw.bits.rptr;
 	w = rw.bits.wptr;
 
@@ -1747,10 +1756,9 @@ static irqreturn_t gmac_irq(int irq, void *data)
 		gmac_update_hw_stats(netdev);
 
 	if (val & (GMAC0_RX_OVERRUN_INT_BIT << (netdev->dev_id * 8))) {
+		spin_lock(&geth->irq_lock);
 		writel(GMAC0_RXDERR_INT_BIT << (netdev->dev_id * 8),
 		       geth->base + GLOBAL_INTERRUPT_STATUS_4_REG);
-
-		spin_lock(&geth->irq_lock);
 		u64_stats_update_begin(&port->ir_stats_syncp);
 		++port->stats.rx_fifo_errors;
 		u64_stats_update_end(&port->ir_stats_syncp);
drivers/net/ethernet/freescale/fec_main.c +10 -0
index 9c4c892bfc83..35593b41e6c1 100644
@@ -3320,6 +3320,14 @@ static int fec_enet_init(struct net_device *ndev)
 	return ret;
 }
 
+static void fec_enet_deinit(struct net_device *ndev)
+{
+	struct fec_enet_private *fep = netdev_priv(ndev);
+
+	netif_napi_del(&fep->napi);
+	fec_enet_free_queue(ndev);
+}
+
 #ifdef CONFIG_OF
 static int fec_reset_phy(struct platform_device *pdev)
 {
@@ -3687,6 +3695,7 @@ fec_probe(struct platform_device *pdev)
 	fec_enet_mii_remove(fep);
 failed_mii_init:
 failed_irq:
+	fec_enet_deinit(ndev);
 failed_init:
 	fec_ptp_stop(pdev);
 failed_reset:
@@ -3748,6 +3757,7 @@ fec_drv_remove(struct platform_device *pdev)
 	pm_runtime_put_noidle(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 
+	fec_enet_deinit(ndev);
 	free_netdev(ndev);
 	return 0;
 }
drivers/net/ethernet/freescale/fec_ptp.c +8 -6
index eb11a8e7fcb7..abf0b6cddf20 100644
@@ -108,14 +108,13 @@ static int fec_ptp_enable_pps(struct fec_enet_private *fep, uint enable)
 		return -EINVAL;
 	}
 
-	if (fep->pps_enable == enable)
-		return 0;
-
-	fep->pps_channel = DEFAULT_PPS_CHANNEL;
-	fep->reload_period = PPS_OUPUT_RELOAD_PERIOD;
-
 	spin_lock_irqsave(&fep->tmreg_lock, flags);
 
+	if (fep->pps_enable == enable) {
+		spin_unlock_irqrestore(&fep->tmreg_lock, flags);
+		return 0;
+	}
+
 	if (enable) {
 		/* clear capture or output compare interrupt status if have.
 		 */
@@ -446,6 +445,9 @@ static int fec_ptp_enable(struct ptp_clock_info *ptp,
 	int ret = 0;
 
 	if (rq->type == PTP_CLK_REQ_PPS) {
+		fep->pps_channel = DEFAULT_PPS_CHANNEL;
+		fep->reload_period = PPS_OUPUT_RELOAD_PERIOD;
+
 		ret = fec_ptp_enable_pps(fep, on);
 
 		return ret;
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +1 -1
index 6ecb92f55e97..6dd1ee76887a 100644
@@ -3476,7 +3476,7 @@ mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
 		stats->tx_dropped = sstats->tx_queue_dropped;
 	}
 
-	stats->rx_dropped = priv->stats.qcnt.rx_out_of_buffer;
+	stats->rx_missed_errors = priv->stats.qcnt.rx_out_of_buffer;
 
 	stats->rx_length_errors =
 		PPORT_802_3_GET(pstats, a_in_range_length_errors) +
drivers/net/ethernet/qlogic/qed/qed_main.c +4 -5
index 43c85e584b6f..d0441bd1944a 100644
@@ -1007,7 +1007,6 @@ static void qed_slowpath_task(struct work_struct *work)
 static int qed_slowpath_wq_start(struct qed_dev *cdev)
 {
 	struct qed_hwfn *hwfn;
-	char name[NAME_SIZE];
 	int i;
 
 	if (IS_VF(cdev))
@@ -1016,11 +1015,11 @@ static int qed_slowpath_wq_start(struct qed_dev *cdev)
 	for_each_hwfn(cdev, i) {
 		hwfn = &cdev->hwfns[i];
 
-		snprintf(name, NAME_SIZE, "slowpath-%02x:%02x.%02x",
-			 cdev->pdev->bus->number,
-			 PCI_SLOT(cdev->pdev->devfn), hwfn->abs_pf_id);
+		hwfn->slowpath_wq = alloc_workqueue("slowpath-%02x:%02x.%02x",
+					 0, 0, cdev->pdev->bus->number,
+					 PCI_SLOT(cdev->pdev->devfn),
+					 hwfn->abs_pf_id);
 
-		hwfn->slowpath_wq = alloc_workqueue(name, 0, 0);
 		if (!hwfn->slowpath_wq) {
 			DP_NOTICE(hwfn, "Cannot create slowpath workqueue\n");
 			return -ENOMEM;
drivers/net/ethernet/smsc/smc91x.h +2 -2
index a27352229fc2..1c38ce93492b 100644
@@ -186,8 +186,8 @@ static inline void mcf_outsw(void *a, unsigned char *p, int l)
 		writew(*wp++, a);
 }
 
-#define SMC_inw(a, r)		_swapw(readw((a) + (r)))
-#define SMC_outw(lp, v, a, r)	writew(_swapw(v), (a) + (r))
+#define SMC_inw(a, r)		ioread16be((a) + (r))
+#define SMC_outw(lp, v, a, r)	iowrite16be(v, (a) + (r))
 #define SMC_insw(a, r, p, l)	mcf_insw(a + r, p, l)
 #define SMC_outsw(a, r, p, l)	mcf_outsw(a + r, p, l)
 
drivers/net/ipvlan/ipvlan_core.c +2 -2
index 34126abb28d8..f08fdcc1bfb3 100644
@@ -446,7 +446,7 @@ static noinline_for_stack int ipvlan_process_v4_outbound(struct sk_buff *skb)
 
 	memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
 
-	err = ip_local_out(net, skb->sk, skb);
+	err = ip_local_out(net, NULL, skb);
 	if (unlikely(net_xmit_eval(err)))
 		DEV_STATS_INC(dev, tx_errors);
 	else
@@ -501,7 +501,7 @@ static int ipvlan_process_v6_outbound(struct sk_buff *skb)
 
 	memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
 
-	err = ip6_local_out(dev_net(dev), skb->sk, skb);
+	err = ip6_local_out(dev_net(dev), NULL, skb);
 	if (unlikely(net_xmit_eval(err)))
 		DEV_STATS_INC(dev, tx_errors);
 	else
drivers/net/usb/qmi_wwan.c +3 -0
index b4d436f985cf..3e59b63b838f 100644
@@ -1326,6 +1326,9 @@ static const struct usb_device_id products[] = {
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1060, 2)},	/* Telit LN920 */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1070, 2)},	/* Telit FN990 */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1080, 2)}, /* Telit FE990 */
+	{QMI_QUIRK_SET_DTR(0x1bc7, 0x10a0, 0)}, /* Telit FN920C04 */
+	{QMI_QUIRK_SET_DTR(0x1bc7, 0x10a4, 0)}, /* Telit FN920C04 */
+	{QMI_QUIRK_SET_DTR(0x1bc7, 0x10a9, 0)}, /* Telit FN920C04 */
 	{QMI_FIXED_INTF(0x1bc7, 0x1100, 3)},	/* Telit ME910 */
 	{QMI_FIXED_INTF(0x1bc7, 0x1101, 3)},	/* Telit ME910 dual modem */
 	{QMI_FIXED_INTF(0x1bc7, 0x1200, 5)},	/* Telit LE920 */
drivers/net/usb/smsc95xx.c +59 -63

345 lines not on this page · raw message

drivers/net/usb/sr9700.c +3 -7
index 8bee8286e41a..a0e5d066ac45 100644
@@ -418,19 +418,15 @@ static int sr9700_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
 			skb_pull(skb, 3);
 			skb->len = len;
 			skb_set_tail_pointer(skb, len);
-			skb->truesize = len + sizeof(struct sk_buff);
 			return 2;
 		}
 
-		/* skb_clone is used for address align */
-		sr_skb = skb_clone(skb, GFP_ATOMIC);
+		sr_skb = netdev_alloc_skb_ip_align(dev->net, len);
 		if (!sr_skb)
 			return 0;
 
-		sr_skb->len = len;
-		sr_skb->data = skb->data + 3;
-		skb_set_tail_pointer(sr_skb, len);
-		sr_skb->truesize = len + sizeof(struct sk_buff);
+		skb_put(sr_skb, len);
+		memcpy(sr_skb->data, skb->data + 3, len);
 		usbnet_skb_return(dev, sr_skb);
 
 		skb_pull(skb, len + SR_RX_OVERHEAD);
drivers/net/vxlan.c +0 -4
index b004c8b6ec28..d5c8d0d54b33 100644
@@ -1320,10 +1320,6 @@ static bool vxlan_set_mac(struct vxlan_dev *vxlan,
 	if (ether_addr_equal(eth_hdr(skb)->h_source, vxlan->dev->dev_addr))
 		return false;
 
-	/* Ignore packets from invalid src-address */
-	if (!is_valid_ether_addr(eth_hdr(skb)->h_source))
-		return false;
-
 	/* Get address from the outer IP header */
 	if (vxlan_get_sk_family(vs) == AF_INET) {
 		saddr.sin.sin_addr.s_addr = ip_hdr(skb)->saddr;
drivers/net/wireless/ath/ar5523/ar5523.c +14 -0
index 5d3cf354f6cb..5ffd6f215292 100644
@@ -1590,6 +1590,20 @@ static int ar5523_probe(struct usb_interface *intf,
 	struct ar5523 *ar;
 	int error = -ENOMEM;
 
+	static const u8 bulk_ep_addr[] = {
+		AR5523_CMD_TX_PIPE | USB_DIR_OUT,
+		AR5523_DATA_TX_PIPE | USB_DIR_OUT,
+		AR5523_CMD_RX_PIPE | USB_DIR_IN,
+		AR5523_DATA_RX_PIPE | USB_DIR_IN,
+		0};
+
+	if (!usb_check_bulk_endpoints(intf, bulk_ep_addr)) {
+		dev_err(&dev->dev,
+			"Could not find all expected endpoints\n");
+		error = -ENODEV;
+		goto out;
+	}
+
 	/*
 	 * Load firmware if the device requires it.  This will return
 	 * -ENXIO on success and we'll get called back afer the usb
drivers/net/wireless/ath/ath10k/core.c +3 -0
index 7e43d449131d..5683e0466a65 100644
@@ -540,6 +540,9 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
 		.max_spatial_stream = 4,
 		.fw = {
 			.dir = WCN3990_HW_1_0_FW_DIR,
+			.board = WCN3990_HW_1_0_BOARD_DATA_FILE,
+			.board_size = WCN3990_BOARD_DATA_SZ,
+			.board_ext_size = WCN3990_BOARD_EXT_DATA_SZ,
 		},
 		.sw_decrypt_mcast_mgmt = true,
 		.hw_ops = &wcn3990_ops,
drivers/net/wireless/ath/ath10k/debugfs_sta.c +1 -1
index 6f10331e986b..c7d7fe5d9375 100644
@@ -449,7 +449,7 @@ ath10k_dbg_sta_write_peer_debug_trigger(struct file *file,
 	}
 out:
 	mutex_unlock(&ar->conf_mutex);
-	return count;
+	return ret ?: count;
 }
 
 static const struct file_operations fops_peer_debug_trigger = {
drivers/net/wireless/ath/ath10k/hw.h +1 -0
index 3ff65a0a834a..afc274a078da 100644
@@ -133,6 +133,7 @@ enum qca9377_chip_id_rev {
 /* WCN3990 1.0 definitions */
 #define WCN3990_HW_1_0_DEV_VERSION	ATH10K_HW_WCN3990
 #define WCN3990_HW_1_0_FW_DIR		ATH10K_FW_DIR "/WCN3990/hw1.0"
+#define WCN3990_HW_1_0_BOARD_DATA_FILE "board.bin"
 
 #define ATH10K_FW_FILE_BASE		"firmware"
 #define ATH10K_FW_API_MAX		6
drivers/net/wireless/ath/ath10k/targaddrs.h +3 -0
index c2b5bad0459b..dddf4853df58 100644
@@ -487,4 +487,7 @@ struct host_interest {
 #define QCA4019_BOARD_DATA_SZ	  12064
 #define QCA4019_BOARD_EXT_DATA_SZ 0
 
+#define WCN3990_BOARD_DATA_SZ	  26328
+#define WCN3990_BOARD_EXT_DATA_SZ 0
+
 #endif /* __TARGADDRS_H__ */
drivers/net/wireless/ath/ath10k/wmi.c +23 -3
index 41eb57be9222..967a39304648 100644
@@ -1697,12 +1697,32 @@ void ath10k_wmi_put_wmi_channel(struct wmi_channel *ch,
 
 int ath10k_wmi_wait_for_service_ready(struct ath10k *ar)
 {
-	unsigned long time_left;
+	unsigned long time_left, i;
 
 	time_left = wait_for_completion_timeout(&ar->wmi.service_ready,
 						WMI_SERVICE_READY_TIMEOUT_HZ);
-	if (!time_left)
-		return -ETIMEDOUT;
+	if (!time_left) {
+		/* Sometimes the PCI HIF doesn't receive interrupt
+		 * for the service ready message even if the buffer
+		 * was completed. PCIe sniffer shows that it's
+		 * because the corresponding CE ring doesn't fires
+		 * it. Workaround here by polling CE rings once.
+		 */
+		ath10k_warn(ar, "failed to receive service ready completion, polling..\n");
+
+		for (i = 0; i < CE_COUNT; i++)
+			ath10k_hif_send_complete_check(ar, i, 1);
+
+		time_left = wait_for_completion_timeout(&ar->wmi.service_ready,
+							WMI_SERVICE_READY_TIMEOUT_HZ);
+		if (!time_left) {
+			ath10k_warn(ar, "polling timed out\n");
+			return -ETIMEDOUT;
+		}
+
+		ath10k_warn(ar, "service ready completion received, continuing normally\n");
+	}
+
 	return 0;
 }
 
drivers/net/wireless/ath/carl9170/usb.c +32 -0
index 99f1897a775d..738f43b17e95 100644
@@ -1069,6 +1069,38 @@ static int carl9170_usb_probe(struct usb_interface *intf,
 			ar->usb_ep_cmd_is_bulk = true;
 	}
 
+	/* Verify that all expected endpoints are present */
+	if (ar->usb_ep_cmd_is_bulk) {
+		u8 bulk_ep_addr[] = {
+			AR9170_USB_EP_RX | USB_DIR_IN,
+			AR9170_USB_EP_TX | USB_DIR_OUT,
+			AR9170_USB_EP_CMD | USB_DIR_OUT,
+			0};
+		u8 int_ep_addr[] = {
+			AR9170_USB_EP_IRQ | USB_DIR_IN,
+			0};
+		if (!usb_check_bulk_endpoints(intf, bulk_ep_addr) ||
+		    !usb_check_int_endpoints(intf, int_ep_addr))
+			err = -ENODEV;
+	} else {
+		u8 bulk_ep_addr[] = {
+			AR9170_USB_EP_RX | USB_DIR_IN,
+			AR9170_USB_EP_TX | USB_DIR_OUT,
+			0};
+		u8 int_ep_addr[] = {
+			AR9170_USB_EP_IRQ | USB_DIR_IN,
+			AR9170_USB_EP_CMD | USB_DIR_OUT,
+			0};
+		if (!usb_check_bulk_endpoints(intf, bulk_ep_addr) ||
+		    !usb_check_int_endpoints(intf, int_ep_addr))
+			err = -ENODEV;
+	}
+
+	if (err) {
+		carl9170_free(ar);
+		return err;
+	}
+
 	usb_set_intfdata(intf, ar);
 	SET_IEEE80211_DEV(ar->hw, &intf->dev);
 
drivers/net/wireless/marvell/mwl8k.c +1 -1
index ee842797570b..55129bd36786 100644
@@ -2711,7 +2711,7 @@ __mwl8k_cmd_mac_multicast_adr(struct ieee80211_hw *hw, int allmulti,
 		cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_MULTICAST);
 		cmd->numaddr = cpu_to_le16(mc_count);
 		netdev_hw_addr_list_for_each(ha, mc_list) {
-			memcpy(cmd->addr[i], ha->addr, ETH_ALEN);
+			memcpy(cmd->addr[i++], ha->addr, ETH_ALEN);
 		}
 	}
 
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +11 -15
index 9c5a7ea1479e..83bd1b45f64b 100644
@@ -36,6 +36,7 @@
 #include <linux/wireless.h>
 #include <linux/firmware.h>
 #include <linux/moduleparam.h>
+#include <linux/bitfield.h>
 #include <net/mac80211.h>
 #include "rtl8xxxu.h"
 #include "rtl8xxxu_regs.h"
@@ -1396,13 +1397,13 @@ rtl8xxxu_gen1_set_tx_power(struct rtl8xxxu_priv *priv, int channel, bool ht40)
 	u8 cck[RTL8723A_MAX_RF_PATHS], ofdm[RTL8723A_MAX_RF_PATHS];
 	u8 ofdmbase[RTL8723A_MAX_RF_PATHS], mcsbase[RTL8723A_MAX_RF_PATHS];
 	u32 val32, ofdm_a, ofdm_b, mcs_a, mcs_b;
-	u8 val8;
+	u8 val8, base;
 	int group, i;
 
 	group = rtl8xxxu_gen1_channel_to_group(channel);
 
-	cck[0] = priv->cck_tx_power_index_A[group] - 1;
-	cck[1] = priv->cck_tx_power_index_B[group] - 1;
+	cck[0] = priv->cck_tx_power_index_A[group];
+	cck[1] = priv->cck_tx_power_index_B[group];
 
 	if (priv->hi_pa) {
 		if (cck[0] > 0x20)
@@ -1413,10 +1414,6 @@ rtl8xxxu_gen1_set_tx_power(struct rtl8xxxu_priv *priv, int channel, bool ht40)
 
 	ofdm[0] = priv->ht40_1s_tx_power_index_A[group];
 	ofdm[1] = priv->ht40_1s_tx_power_index_B[group];
-	if (ofdm[0])
-		ofdm[0] -= 1;
-	if (ofdm[1])
-		ofdm[1] -= 1;
 
 	ofdmbase[0] = ofdm[0] +	priv->ofdm_tx_power_index_diff[group].a;
 	ofdmbase[1] = ofdm[1] +	priv->ofdm_tx_power_index_diff[group].b;
@@ -1505,20 +1502,19 @@ rtl8xxxu_gen1_set_tx_power(struct rtl8xxxu_priv *priv, int channel, bool ht40)
 
 	rtl8xxxu_write32(priv, REG_TX_AGC_A_MCS15_MCS12,
 			 mcs_a + power_base->reg_0e1c);
+	val8 = u32_get_bits(mcs_a + power_base->reg_0e1c, 0xff000000);
 	for (i = 0; i < 3; i++) {
-		if (i != 2)
-			val8 = (mcsbase[0] > 8) ? (mcsbase[0] - 8) : 0;
-		else
-			val8 = (mcsbase[0] > 6) ? (mcsbase[0] - 6) : 0;
+		base = i != 2 ? 8 : 6;
+		val8 = max_t(int, val8 - base, 0);
 		rtl8xxxu_write8(priv, REG_OFDM0_XC_TX_IQ_IMBALANCE + i, val8);
 	}
+
 	rtl8xxxu_write32(priv, REG_TX_AGC_B_MCS15_MCS12,
 			 mcs_b + power_base->reg_0868);
+	val8 = u32_get_bits(mcs_b + power_base->reg_0868, 0xff000000);
 	for (i = 0; i < 3; i++) {
-		if (i != 2)
-			val8 = (mcsbase[1] > 8) ? (mcsbase[1] - 8) : 0;
-		else
-			val8 = (mcsbase[1] > 6) ? (mcsbase[1] - 6) : 0;
+		base = i != 2 ? 8 : 6;
+		val8 = max_t(int, val8 - base, 0);
 		rtl8xxxu_write8(priv, REG_OFDM0_XD_TX_IQ_IMBALANCE + i, val8);
 	}
 }
drivers/nvme/target/configfs.c +8 -0
index b37a8e3e3f80..921efb20f6d7 100644
@@ -464,10 +464,18 @@ static ssize_t nvmet_ns_enable_store(struct config_item *item,
 	if (strtobool(page, &enable))
 		return -EINVAL;
 
+	/*
+	 * take a global nvmet_config_sem because the disable routine has a
+	 * window where it releases the subsys-lock, giving a chance to
+	 * a parallel enable to concurrently execute causing the disable to
+	 * have a misaccounting of the ns percpu_ref.
+	 */
+	down_write(&nvmet_config_sem);
 	if (enable)
 		ret = nvmet_ns_enable(ns);
 	else
 		nvmet_ns_disable(ns);
+	up_write(&nvmet_config_sem);
 
 	return ret ? ret : count;
 }
drivers/power/supply/cros_usbpd-charger.c +9 -2
index 74b5914abbf7..123a5572fe5b 100644
@@ -5,6 +5,7 @@
  * Copyright (c) 2014 - 2018 Google, Inc
  */
 
+#include <linux/mod_devicetable.h>
 #include <linux/module.h>
 #include <linux/mfd/cros_ec.h>
 #include <linux/mfd/cros_ec_commands.h>
@@ -530,16 +531,22 @@ static int cros_usbpd_charger_resume(struct device *dev)
 static SIMPLE_DEV_PM_OPS(cros_usbpd_charger_pm_ops, NULL,
 			 cros_usbpd_charger_resume);
 
+static const struct platform_device_id cros_usbpd_charger_id[] = {
+	{ DRV_NAME, 0 },
+	{}
+};
+MODULE_DEVICE_TABLE(platform, cros_usbpd_charger_id);
+
 static struct platform_driver cros_usbpd_charger_driver = {
 	.driver = {
 		.name = DRV_NAME,
 		.pm = &cros_usbpd_charger_pm_ops,
 	},
-	.probe = cros_usbpd_charger_probe
+	.probe = cros_usbpd_charger_probe,
+	.id_table = cros_usbpd_charger_id,
 };
 
 module_platform_driver(cros_usbpd_charger_driver);
 
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("ChromeOS EC USBPD charger");
-MODULE_ALIAS("platform:" DRV_NAME);
drivers/s390/cio/trace.h +1 -1
index 0ebb29b6fd6d..3a56f11d36e4 100644
@@ -50,7 +50,7 @@ DECLARE_EVENT_CLASS(s390_class_schib,
 		__entry->devno = schib->pmcw.dev;
 		__entry->schib = *schib;
 		__entry->pmcw_ena = schib->pmcw.ena;
-		__entry->pmcw_st = schib->pmcw.ena;
+		__entry->pmcw_st = schib->pmcw.st;
 		__entry->pmcw_dnv = schib->pmcw.dnv;
 		__entry->pmcw_dev = schib->pmcw.dev;
 		__entry->pmcw_lpm = schib->pmcw.lpm;
drivers/s390/crypto/ap_bus.c +1 -1
index 027a53eec42a..91500365edec 100644
@@ -916,7 +916,7 @@ static int hex2bitmap(const char *str, unsigned long *bitmap, int bits)
  */
 static int modify_bitmap(const char *str, unsigned long *bitmap, int bits)
 {
-	int a, i, z;
+	unsigned long a, i, z;
 	char *np, sign;
 
 	/* bits needs to be a multiple of 8 */
drivers/scsi/bfa/bfad_debugfs.c +2 -2
index 349cfe7d055e..30c344322d53 100644
@@ -258,7 +258,7 @@ bfad_debugfs_write_regrd(struct file *file, const char __user *buf,
 	unsigned long flags;
 	void *kern_buf;
 
-	kern_buf = memdup_user(buf, nbytes);
+	kern_buf = memdup_user_nul(buf, nbytes);
 	if (IS_ERR(kern_buf))
 		return PTR_ERR(kern_buf);
 
@@ -325,7 +325,7 @@ bfad_debugfs_write_regwr(struct file *file, const char __user *buf,
 	unsigned long flags;
 	void *kern_buf;
 
-	kern_buf = memdup_user(buf, nbytes);
+	kern_buf = memdup_user_nul(buf, nbytes);
 	if (IS_ERR(kern_buf))
 		return PTR_ERR(kern_buf);
 
drivers/scsi/hpsa.c +1 -1
index 25d9bdd4bc69..d68d8a573ae3 100644
@@ -5771,7 +5771,7 @@ static int hpsa_scsi_host_alloc(struct ctlr_info *h)
 {
 	struct Scsi_Host *sh;
 
-	sh = scsi_host_alloc(&hpsa_driver_template, sizeof(struct ctlr_info));
+	sh = scsi_host_alloc(&hpsa_driver_template, sizeof(struct ctlr_info *));
 	if (sh == NULL) {
 		dev_err(&h->pdev->dev, "scsi_host_alloc failed\n");
 		return -ENOMEM;
drivers/scsi/libsas/sas_expander.c +1 -2
index 3e74fe925761..601e06ad6a7b 100644
@@ -269,8 +269,7 @@ static void sas_set_ex_phy(struct domain_device *dev, int phy_id, void *rsp)
 	/* help some expanders that fail to zero sas_address in the 'no
 	 * device' case
 	 */
-	if (phy->attached_dev_type == SAS_PHY_UNUSED ||
-	    phy->linkrate < SAS_LINK_RATE_1_5_GBPS)
+	if (phy->attached_dev_type == SAS_PHY_UNUSED)
 		memset(phy->attached_sas_addr, 0, SAS_ADDR_SIZE);
 	else
 		memcpy(phy->attached_sas_addr, dr->attached_sas_addr, SAS_ADDR_SIZE);
drivers/scsi/qedf/qedf_debugfs.c +1 -1
index 84f1ddcfbb21..4636c045e1e3 100644
@@ -190,7 +190,7 @@ qedf_dbg_debug_cmd_write(struct file *filp, const char __user *buffer,
 	if (!count || *ppos)
 		return 0;
 
-	kern_buf = memdup_user(buffer, count);
+	kern_buf = memdup_user_nul(buffer, count);
 	if (IS_ERR(kern_buf))
 		return PTR_ERR(kern_buf);
 
drivers/scsi/ufs/ufs-qcom.h +6 -6
index 295f4bef6a0e..507ffaa86846 100644
@@ -167,10 +167,10 @@ static inline void ufs_qcom_assert_reset(struct ufs_hba *hba)
 			1 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1);
 
 	/*
-	 * Make sure assertion of ufs phy reset is written to
-	 * register before returning
+	 * Dummy read to ensure the write takes effect before doing any sort
+	 * of delay
 	 */
-	mb();
+	ufshcd_readl(hba, REG_UFS_CFG1);
 }
 
 static inline void ufs_qcom_deassert_reset(struct ufs_hba *hba)
@@ -179,10 +179,10 @@ static inline void ufs_qcom_deassert_reset(struct ufs_hba *hba)
 			0 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1);
 
 	/*
-	 * Make sure de-assertion of ufs phy reset is written to
-	 * register before returning
+	 * Dummy read to ensure the write takes effect before doing any sort
+	 * of delay
 	 */
-	mb();
+	ufshcd_readl(hba, REG_UFS_CFG1);
 }
 
 struct ufs_qcom_bus_vote {
drivers/scsi/ufs/ufs.h +0 -30
index c3bcaaec0fc5..58f8d6002d5a 100644
@@ -519,36 +519,6 @@ struct utp_upiu_rsp {
 	};
 };
 
-/**
- * struct utp_upiu_task_req - Task request UPIU structure
- * @header - UPIU header structure DW0 to DW-2
- * @input_param1: Input parameter 1 DW-3
- * @input_param2: Input parameter 2 DW-4
- * @input_param3: Input parameter 3 DW-5
- * @reserved: Reserved double words DW-6 to DW-7
- */
-struct utp_upiu_task_req {
-	struct utp_upiu_header header;
-	__be32 input_param1;
-	__be32 input_param2;
-	__be32 input_param3;
-	__be32 reserved[2];
-};
-
-/**
- * struct utp_upiu_task_rsp - Task Management Response UPIU structure
- * @header: UPIU header structure DW0-DW-2
- * @output_param1: Ouput parameter 1 DW3
- * @output_param2: Output parameter 2 DW4
- * @reserved: Reserved double words DW-5 to DW-7
- */
-struct utp_upiu_task_rsp {
-	struct utp_upiu_header header;
-	__be32 output_param1;
-	__be32 output_param2;
-	__be32 reserved[3];
-};
-
 /**
  * struct ufs_query_req - parameters for building a query request
  * @query_func: UPIU header query function
drivers/scsi/ufs/ufshcd.c +69 -116

115 lines not on this page · raw message

drivers/scsi/ufs/ufshci.h +14 -11
index bb5d9c7f3353..6fa889de5ee5 100644

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

drivers/spi/spi.c +4 -0
index 3bcd6f178f73..a15545cee4d2 100644

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

drivers/staging/greybus/arche-apb-ctrl.c +1 -0
index cc8d6fc831b4..94740142c4e2 100644

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

drivers/staging/greybus/arche-platform.c +1 -8
index 4c36e88766e7..0320121dd9d2 100644

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

drivers/staging/greybus/light.c +7 -1
index 8c5819d1e1ab..9dc51315f1fc 100644

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

drivers/staging/speakup/main.c +1 -1
index 0b537efcee05..ba1beff7af4e 100644

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

drivers/tty/n_gsm.c +6 -2
index a38539fd8253..59a2ede0ece2 100644

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

drivers/tty/serial/max3100.c +19 -3
index 371569a0fd00..17b6f4a872d6 100644

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

drivers/tty/serial/sh-sci.c +18 -6
index dfe9ac3b95af..0a89fd43848d 100644

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

drivers/usb/gadget/function/u_audio.c +2 -0
index 3136a239e782..f7c610b7e3fd 100644

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

drivers/video/fbdev/Kconfig +2 -2
index 8e224ee27ade..12846837f5de 100644

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

drivers/video/fbdev/savage/savagefb_driver.c +4 -1
index d9eafdb89cea..68e15420d26b 100644

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

drivers/video/fbdev/sh_mobile_lcdcfb.c +1 -1
index dc46be38c970..4e97525346ed 100644

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

drivers/video/fbdev/sis/init301.c +1 -2
index a8fb41f1a258..09329072004f 100644

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

drivers/virtio/virtio_pci_common.c +3 -1
index 40618ccffeb8..39abf02ece95 100644

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

fs/ecryptfs/keystore.c +3 -1
index 250cb23ae69f..12a5ea9e3e35 100644

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

fs/ext4/namei.c +1 -1
index 93d392576c12..d4441e481642 100644

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

fs/ext4/xattr.c +3 -1
index 88bdb2714e51..dc42a8fba0d2 100644

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

fs/f2fs/node.c +1 -1
index 9911f780e013..38a937bdcf8b 100644

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

fs/f2fs/segment.c +5 -1
index 7596fce92bef..34090edc8ce2 100644

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

fs/f2fs/super.c +2 -2
index 89fc8a4ce149..b075ba3e62dc 100644

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

fs/jffs2/xattr.c +3 -0
index acb4492f5970..5a31220f96f5 100644

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

fs/nfs/internal.h +2 -2
index cc07189a501f..341e0efe2747 100644

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

fs/nfsd/nfs4state.c +7 -4
index 5c241e510888..7ac644d64ab1 100644

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

fs/nilfs2/ioctl.c +1 -1
index ecb5e4cf058b..369c55e1b941 100644

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

fs/nilfs2/segment.c +50 -13

63 lines not on this page · raw message

include/linux/moduleparam.h +2 -0
index ba36506db4fb..dee4c402c040 100644

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

include/net/dst_ops.h +1 -1
index 632086b2f644..3ae2fda29507 100644

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

include/net/neighbour.h +1 -1
index e58ef9e338de..4c53e51f0799 100644

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

include/net/netfilter/nf_tables.h +54 -78

132 lines not on this page · raw message

include/net/sock.h +3 -10
index b5a929a4bc74..6304e287087f 100644

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

include/trace/events/asoc.h +2 -0
index 40c300fe704d..f62d5b702426 100644

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

include/uapi/linux/netfilter/nf_tables.h +1 -0
index 39774870c864..00781db11419 100644

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

kernel/cgroup/cpuset.c +1 -1
index 3067d3e5a51d..af749e265ead 100644

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

kernel/debug/kdb/kdb_io.c +56 -43

99 lines not on this page · raw message

kernel/irq/cpuhotplug.c +8 -8
index 6c7ca2e983a5..addeaf35a743 100644

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

kernel/params.c +18 -0
index ce89f757e6da..8339cf40cdc7 100644

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

kernel/sched/topology.c +3 -6
index 02e85cd233d4..a00fb3b8a6aa 100644

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

kernel/trace/ring_buffer.c +9 -0
index 788b89e98338..aee6eab9bb8f 100644

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

net/9p/client.c +2 -0
index 98301add20f4..a7518e8e7626 100644

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

net/ipv4/route.c +8 -14
index 301460510535..3c5401dafdee 100644

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

net/ipv4/tcp_dctcp.c +12 -1
index 5205c5a5d8d5..0cf7bfda2d6d 100644

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

net/ipv6/route.c +15 -14
index b4d9acb1bc10..db349679b112 100644

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

net/ipv6/seg6.c +4 -1
index 4bd601c96434..605d270d8c10 100644

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

net/ipv6/seg6_hmac.c +28 -14

42 lines not on this page · raw message

net/netfilter/nf_tables_api.c +450 -79

529 lines not on this page · raw message

net/netfilter/nfnetlink_queue.c +2 -0
index 1aacc31a6bf9..6ed2be4ac88e 100644

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

net/netfilter/nft_chain_filter.c +3 -0
index a308d45ee95e..397aa83f54e0 100644

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

net/netfilter/nft_compat.c +32 -0
index 763ba07a58ab..b2d9f794936e 100644

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

net/netfilter/nft_dynset.c +9 -15
index a4c6aba7da7e..1cc6f4602575 100644

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

net/netfilter/nft_exthdr.c +11 -3
index 8d0f14cd7cc3..847abad9ee7f 100644

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

net/netfilter/nft_flow_offload.c +5 -0
index ec35a41c7262..c9b7841abc08 100644

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

net/netfilter/nft_nat.c +5 -0
index aa6149cc8c87..e3fba4f63967 100644

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

net/netfilter/nft_rt.c +5 -0
index edce109ef4b0..149f9a112fe3 100644

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

net/netfilter/nft_set_bitmap.c +3 -2
index f866bd41e5d2..80dce1182215 100644

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

net/netfilter/nft_set_hash.c +73 -38

111 lines not on this page · raw message

net/netfilter/nft_set_rbtree.c +316 -71

387 lines not on this page · raw message

net/netfilter/nft_socket.c +5 -0
index 7e4f7063f481..c7b78e4ef459 100644

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

net/netfilter/nft_tproxy.c +5 -0
index db780b5985ab..d9604a316600 100644

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

net/netrom/nr_route.c +7 -12
index 744c19a7a469..41c45b4d4b18 100644

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

net/nfc/nci/core.c +15 -2
index 1f863ccf2121..5b47a3168173 100644

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

net/openvswitch/actions.c +6 -0
index 091202b84b6e..63b7586c31a2 100644

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

net/openvswitch/flow.c +2 -1
index 56b8e7167790..857b1ffe3d85 100644

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

net/packet/af_packet.c +1 -2
index e8b05769d1c9..4ddc60c7509f 100644

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

net/sunrpc/auth_gss/svcauth_gss.c +3 -9
index ed6b2a155f44..b1eae25055a9 100644

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

net/sunrpc/xprtsock.c +0 -18
index a0a82d9a5900..938c649c5c9f 100644

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

net/unix/af_unix.c +1 -1
index 921b7e355b9b..02100e62bf60 100644

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

net/wireless/trace.h +2 -2
index 54b0bb344cf9..68d547a4a5a5 100644

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

net/xfrm/xfrm_policy.c +3 -8
index c8a7a5739425..fb76a2ee8873 100644

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

scripts/kconfig/symbol.c +4 -2
index 5adb60b7e12f..a28f4af4da2f 100644

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

sound/core/timer.c +10 -0
index f0e8b98f346e..d053d70c8d35 100644

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

sound/soc/codecs/da7219-aad.c +5 -1
index e3515ac8b223..c7c800f8133b 100644

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

sound/soc/codecs/rt5645.c +25 -0
index 5f23369d7cca..fbb3fca59c8c 100644

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

tools/lib/subcmd/parse-options.c +5 -3
index cb7154eccbdc..bf983f51db50 100644

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

tools/objtool/arch/x86/lib/x86-opcode-map.txt +1 -1
index 5cb9f009f2be..996a3a250026 100644

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

tools/testing/selftests/kcmp/kcmp_test.c +5 -3
index 6ea7b9f37a41..d7a8e321bb16 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.