Skip to contentSkip to conversation

Linux 4.4.223

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages May 11, 2020 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 4.4.223 kernel.

All users of the 4.4 kernel series must upgrade.

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

thanks,

greg k-h

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

 Makefile                                                 |    2 
 arch/alpha/kernel/pci-sysfs.c                            |    4 
 arch/arm/boot/dts/Makefile                               |    1 
 arch/arm/boot/dts/kirkwood-ds112.dts                     |    2 
 arch/arm/boot/dts/kirkwood-lswvl.dts                     |   25 +-
 arch/arm/boot/dts/kirkwood-lswxl.dts                     |   31 +-
 arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts         |   39 ++-
 arch/arm/boot/dts/r8a7740-armadillo800eva.dts            |    2 
 arch/arm/mach-imx/Kconfig                                |    1 
 arch/arm/mach-omap2/omap_hwmod.c                         |   12 -
 arch/arm64/net/bpf_jit_comp.c                            |    1 
 arch/mips/boot/dts/brcm/bcm7435.dtsi                     |    2 
 arch/mips/cavium-octeon/octeon-irq.c                     |    2 
 arch/mips/cavium-octeon/setup.c                          |   14 +
 arch/mips/cavium-octeon/smp.c                            |    1 
 arch/mips/include/asm/elf.h                              |    1 
 arch/mips/include/asm/kexec.h                            |    1 
 arch/mips/include/asm/r4kcache.h                         |    4 
 arch/mips/include/asm/smp.h                              |    2 
 arch/mips/include/uapi/asm/auxvec.h                      |    2 
 arch/mips/kernel/bmips_vec.S                             |    9 
 arch/mips/kernel/branch.c                                |   18 -
 arch/mips/kernel/cps-vec.S                               |    1 
 arch/mips/kernel/cpu-probe.c                             |    5 
 arch/mips/kernel/crash.c                                 |   18 +
 arch/mips/kernel/machine_kexec.c                         |    1 
 arch/mips/kernel/perf_event_mipsxx.c                     |   60 ++++-
 arch/mips/kernel/ptrace.c                                |    3 
 arch/mips/kernel/scall32-o32.S                           |   11 
 arch/mips/kernel/scall64-64.S                            |    3 
 arch/mips/kernel/scall64-n32.S                           |   14 -
 arch/mips/kernel/scall64-o32.S                           |   14 -
 arch/mips/kernel/setup.c                                 |    2 
 arch/mips/kernel/smp-bmips.c                             |    1 
 arch/mips/kernel/smp-cps.c                               |    1 
 arch/mips/kernel/smp.c                                   |    2 
 arch/mips/kvm/dyntrans.c                                 |    2 
 arch/mips/loongson64/loongson-3/smp.c                    |    1 
 arch/mips/math-emu/cp1emu.c                              |   11 
 arch/mips/mm/c-r4k.c                                     |   13 -
 arch/mips/mm/sc-rm7k.c                                   |    2 
 arch/mips/mm/tlbex.c                                     |    4 
 arch/mips/net/bpf_jit.c                                  |    2 
 arch/powerpc/kernel/mce.c                                |    3 
 arch/powerpc/kernel/pci_of_scan.c                        |   12 -
 arch/powerpc/kernel/tm.S                                 |    3 
 arch/powerpc/platforms/powernv/opal.c                    |    1 
 arch/x86/kernel/apic/x2apic_uv_x.c                       |    4 
 arch/x86/kernel/cpu/perf_event.c                         |   11 
 arch/x86/kernel/process_64.c                             |    2 
 block/blk-mq.c                                           |    2 
 drivers/acpi/acpi_lpss.c                                 |    8 
 drivers/ata/sata_dwc_460ex.c                             |    4 
 drivers/base/firmware_class.c                            |    8 
 drivers/base/isa.c                                       |    2 
 drivers/bluetooth/btmrvl_sdio.c                          |    3 
 drivers/char/hw_random/exynos-rng.c                      |    9 
 drivers/clk/clk-gpio.c                                   |    6 
 drivers/clk/clk-multiplier.c                             |   20 +
 drivers/clk/clk-xgene.c                                  |   10 
 drivers/clk/imx/clk-pllv3.c                              |    8 
 drivers/clk/rockchip/clk-mmc-phase.c                     |   11 
 drivers/clk/st/clkgen-fsyn.c                             |   17 -
 drivers/clk/ti/dpll3xxx.c                                |    3 
 drivers/cpufreq/cpufreq.c                                |    5 
 drivers/dma/edma.c                                       |    6 
 drivers/gpu/drm/qxl/qxl_cmd.c                            |    5 
 drivers/gpu/drm/qxl/qxl_display.c                        |    6 
 drivers/gpu/drm/qxl/qxl_draw.c                           |   13 -
 drivers/gpu/drm/qxl/qxl_ioctl.c                          |    5 
 drivers/hv/hv_utils_transport.c                          |    9 
 drivers/iio/adc/ad7793.c                                 |    2 
 drivers/infiniband/hw/cxgb3/cxio_hal.c                   |    2 
 drivers/infiniband/hw/mlx4/ah.c                          |    1 
 drivers/infiniband/hw/mlx5/main.c                        |    2 
 drivers/infiniband/hw/mlx5/qp.c                          |   12 -
 drivers/input/keyboard/gpio_keys.c                       |   29 +-
 drivers/input/touchscreen/edt-ft5x06.c                   |   18 +
 drivers/iommu/dma-iommu.c                                |   11 
 drivers/md/dm.c                                          |    2 
 drivers/media/pci/cx23885/cx23885-av.c                   |    2 
 drivers/media/platform/am437x/am437x-vpfe.c              |    2 
 drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c    |   65 +----
 drivers/media/rc/rc-main.c                               |    2 
 drivers/memory/tegra/tegra124.c                          |    1 
 drivers/mfd/lp8788-irq.c                                 |    2 
 drivers/misc/cxl/fault.c                                 |    2 
 drivers/mmc/card/block.c                                 |    4 
 drivers/mmc/core/debugfs.c                               |    2 
 drivers/mmc/core/sd.c                                    |   20 +
 drivers/mmc/host/dw_mmc-rockchip.c                       |   64 +++++
 drivers/mmc/host/moxart-mmc.c                            |    5 
 drivers/mmc/host/sdhci-pxav3.c                           |   22 +
 drivers/mmc/host/sdhci.c                                 |   44 ++-
 drivers/mmc/host/sdhci.h                                 |    4 
 drivers/mtd/nand/denali.c                                |   11 
 drivers/net/bonding/bond_3ad.c                           |   11 
 drivers/net/bonding/bond_alb.c                           |    7 
 drivers/net/bonding/bond_netlink.c                       |    3 
 drivers/net/dsa/mv88e6xxx.c                              |    9 
 drivers/net/ethernet/agere/et131x.c                      |    2 
 drivers/net/ethernet/broadcom/bcmsysport.c               |    5 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                |    6 
 drivers/net/ethernet/broadcom/genet/bcmgenet.c           |   11 
 drivers/net/ethernet/brocade/bna/bnad_ethtool.c          |    7 
 drivers/net/ethernet/cadence/macb.c                      |    4 
 drivers/net/ethernet/chelsio/cxgb4/sge.c                 |    2 
 drivers/net/ethernet/chelsio/cxgb4vf/sge.c               |    2 
 drivers/net/ethernet/cirrus/ep93xx_eth.c                 |    4 
 drivers/net/ethernet/emulex/benet/be.h                   |    1 
 drivers/net/ethernet/emulex/benet/be_main.c              |    4 
 drivers/net/ethernet/ethoc.c                             |   10 
 drivers/net/ethernet/hisilicon/hns/hnae.c                |    8 
 drivers/net/ethernet/ibm/ehea/ehea_main.c                |    9 
 drivers/net/ethernet/intel/i40e/i40e_hmc.c               |    2 
 drivers/net/ethernet/marvell/mv643xx_eth.c               |    4 
 drivers/net/ethernet/marvell/mvneta.c                    |   11 
 drivers/net/ethernet/marvell/mvpp2.c                     |    2 
 drivers/net/ethernet/mellanox/mlx4/catas.c               |   11 
 drivers/net/ethernet/mellanox/mlx4/cmd.c                 |    9 
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c           |   28 +-
 drivers/net/ethernet/mellanox/mlx4/en_port.c             |    4 
 drivers/net/ethernet/mellanox/mlx4/fw.c                  |    5 
 drivers/net/ethernet/mellanox/mlx4/fw.h                  |    2 
 drivers/net/ethernet/mellanox/mlx4/intf.c                |    3 
 drivers/net/ethernet/mellanox/mlx4/main.c                |   39 ++-
 drivers/net/ethernet/mellanox/mlx4/mcg.c                 |   11 
 drivers/net/ethernet/mellanox/mlx4/mlx4.h                |    5 
 drivers/net/ethernet/mellanox/mlx4/port.c                |   13 -
 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c    |   10 
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c            |  117 +++++----
 drivers/net/ethernet/mellanox/mlx5/core/en.h             |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c     |    8 
 drivers/net/ethernet/mellanox/mlx5/core/en_tx.c          |    7 
 drivers/net/ethernet/mellanox/mlx5/core/health.c         |   11 
 drivers/net/ethernet/mellanox/mlx5/core/main.c           |   84 +++----
 drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c      |   26 +-
 drivers/net/ethernet/mellanox/mlx5/core/qp.c             |    2 
 drivers/net/ethernet/mellanox/mlx5/core/wq.c             |   15 -
 drivers/net/ethernet/mellanox/mlxsw/pci.c                |    2 
 drivers/net/ethernet/mellanox/mlxsw/port.h               |    2 
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c           |   11 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c |    4 
 drivers/net/ethernet/mellanox/mlxsw/switchx2.c           |    3 
 drivers/net/ethernet/micrel/ks8842.c                     |   10 
 drivers/net/ethernet/moxa/moxart_ether.c                 |    4 
 drivers/net/ethernet/qlogic/qede/qede_main.c             |    2 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c           |    2 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c     |    8 
 drivers/net/ethernet/renesas/ravb_main.c                 |    2 
 drivers/net/ethernet/sfc/ef10.c                          |    3 
 drivers/net/ethernet/sfc/efx.c                           |    3 
 drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c      |   12 -
 drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c           |   11 
 drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c          |   11 
 drivers/net/ethernet/ti/cpsw-phy-sel.c                   |    3 
 drivers/net/ethernet/ti/cpsw.c                           |   14 -
 drivers/net/ethernet/ti/davinci_emac.c                   |    7 
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c        |    4 
 drivers/net/geneve.c                                     |   14 -
 drivers/net/macvlan.c                                    |   10 
 drivers/net/macvtap.c                                    |    2 
 drivers/net/phy/at803x.c                                 |    6 
 drivers/net/phy/bcm7xxx.c                                |    2 
 drivers/net/phy/mdio-sun4i.c                             |    4 
 drivers/net/phy/micrel.c                                 |   12 -
 drivers/net/phy/phy.c                                    |   46 ++-
 drivers/net/phy/phy_device.c                             |    2 
 drivers/net/vrf.c                                        |  177 +--------------
 drivers/net/vxlan.c                                      |   62 +++--
 drivers/net/wimax/i2400m/usb-fw.c                        |    1 
 drivers/net/wireless/ath/ath10k/core.c                   |    2 
 drivers/net/wireless/ath/ath9k/htc_hst.c                 |    2 
 drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c       |   16 +
 drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c       |   22 +
 drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c         |    2 
 drivers/net/wireless/iwlwifi/iwl-7000.c                  |    2 
 drivers/net/wireless/mwifiex/pcie.h                      |    9 
 drivers/net/wireless/mwifiex/sta_event.c                 |   10 
 drivers/net/wireless/mwifiex/wmm.c                       |    6 
 drivers/of/of_mdio.c                                     |    5 
 drivers/pci/pci-sysfs.c                                  |    7 
 drivers/pinctrl/bcm/pinctrl-bcm2835.c                    |    2 
 drivers/pinctrl/pinctrl-tegra.c                          |    2 
 drivers/power/bq27xxx_battery.c                          |   20 +
 drivers/power/ipaq_micro_battery.c                       |    2 
 drivers/power/test_power.c                               |    2 
 drivers/power/tps65217_charger.c                         |    6 
 drivers/regulator/core.c                                 |   29 +-
 drivers/scsi/cxgbi/libcxgbi.c                            |    1 
 drivers/staging/media/lirc/lirc_imon.c                   |    2 
 drivers/staging/rtl8192u/r8192U_core.c                   |    4 
 drivers/target/target_core_configfs.c                    |    6 
 drivers/tty/serial/msm_serial.c                          |   99 +++++---
 drivers/tty/serial/samsung.c                             |    4 
 drivers/usb/gadget/function/f_acm.c                      |    4 
 drivers/usb/gadget/udc/pch_udc.c                         |   30 --
 drivers/usb/gadget/udc/udc-core.c                        |    2 
 drivers/vfio/pci/vfio_pci_config.c                       |    3 
 drivers/vfio/platform/reset/vfio_platform_amdxgbe.c      |    2 
 fs/btrfs/disk-io.c                                       |    2 
 fs/btrfs/extent-tree.c                                   |    2 
 fs/cifs/connect.c                                        |    2 
 fs/gfs2/file.c                                           |    5 
 fs/nfs/nfs4proc.c                                        |    4 
 include/asm-generic/preempt.h                            |    4 
 include/linux/cpufreq.h                                  |    4 
 include/linux/ieee80211.h                                |    9 
 include/linux/mlx5/driver.h                              |    3 
 include/linux/mlx5/qp.h                                  |    1 
 include/linux/mtd/nand.h                                 |    4 
 include/linux/netdevice.h                                |    5 
 include/linux/sunrpc/msg_prot.h                          |    4 
 include/net/bonding.h                                    |    7 
 include/net/ip6_fib.h                                    |    2 
 include/net/ip6_route.h                                  |    3 
 include/net/ip_fib.h                                     |    3 
 include/net/route.h                                      |    3 
 include/net/sch_generic.h                                |    5 
 include/net/sock.h                                       |   18 +
 include/net/xfrm.h                                       |    4 
 kernel/bpf/syscall.c                                     |    4 
 kernel/sched/fair.c                                      |   27 --
 kernel/trace/bpf_trace.c                                 |    4 
 lib/mpi/longlong.h                                       |   34 +-
 net/batman-adv/main.c                                    |    2 
 net/batman-adv/translation-table.c                       |    6 
 net/bridge/br_fdb.c                                      |   52 ++--
 net/bridge/br_input.c                                    |    7 
 net/core/dev.c                                           |    1 
 net/core/flow_dissector.c                                |   17 -
 net/core/rtnetlink.c                                     |    1 
 net/core/skbuff.c                                        |   10 
 net/core/sock.c                                          |    7 
 net/dccp/ipv4.c                                          |    2 
 net/dccp/ipv6.c                                          |    2 
 net/dsa/slave.c                                          |    7 
 net/ipv4/devinet.c                                       |   12 -
 net/ipv4/fib_frontend.c                                  |    3 
 net/ipv4/fib_semantics.c                                 |    8 
 net/ipv4/fib_trie.c                                      |    4 
 net/ipv4/fou.c                                           |    6 
 net/ipv4/gre_offload.c                                   |    8 
 net/ipv4/icmp.c                                          |    4 
 net/ipv4/ip_gre.c                                        |   46 ++-
 net/ipv4/ip_sockglue.c                                   |    7 
 net/ipv4/netfilter/nft_dup_ipv4.c                        |    6 
 net/ipv4/route.c                                         |   17 +
 net/ipv4/tcp_input.c                                     |    5 
 net/ipv4/udp.c                                           |   13 -
 net/ipv6/addrconf.c                                      |   21 +
 net/ipv6/icmp.c                                          |    5 
 net/ipv6/ip6_checksum.c                                  |    7 
 net/ipv6/ip6_vti.c                                       |    4 
 net/ipv6/ip6mr.c                                         |   13 -
 net/ipv6/netfilter/nft_dup_ipv6.c                        |    6 
 net/ipv6/route.c                                         |   75 ++++--
 net/ipv6/tcp_ipv6.c                                      |    7 
 net/ipv6/udp.c                                           |    6 
 net/ipv6/xfrm6_input.c                                   |   15 -
 net/ipv6/xfrm6_tunnel.c                                  |    2 
 net/irda/af_irda.c                                       |    5 
 net/l2tp/l2tp_core.c                                     |    3 
 net/mac80211/ieee80211_i.h                               |    4 
 net/mac80211/mlme.c                                      |    2 
 net/mac80211/offchannel.c                                |    5 
 net/mac80211/rx.c                                        |    8 
 net/mac80211/status.c                                    |    5 
 net/mac80211/tdls.c                                      |   43 ++-
 net/mac80211/tx.c                                        |    2 
 net/mac80211/vht.c                                       |   30 ++
 net/netfilter/nf_tables_api.c                            |    4 
 net/netfilter/nf_tables_core.c                           |    2 
 net/netfilter/nfnetlink.c                                |    6 
 net/netfilter/nft_dynset.c                               |    3 
 net/nfc/nci/core.c                                       |    6 
 net/openvswitch/actions.c                                |   20 +
 net/rds/tcp.c                                            |    2 
 net/rds/tcp_listen.c                                     |   40 ++-
 net/sched/cls_bpf.c                                      |   13 -
 net/sched/cls_flower.c                                   |   28 +-
 net/sched/sch_drr.c                                      |    4 
 net/sched/sch_fq.c                                       |   32 +-
 net/sched/sch_fq_codel.c                                 |    2 
 net/sched/sch_generic.c                                  |   11 
 net/sched/sch_hfsc.c                                     |   12 -
 net/sched/sch_prio.c                                     |    4 
 net/sched/sch_qfq.c                                      |    3 
 net/sched/sch_sfb.c                                      |    3 
 net/sched/sch_tbf.c                                      |    4 
 net/sctp/associola.c                                     |    2 
 net/sctp/sm_make_chunk.c                                 |    6 
 net/sctp/transport.c                                     |    2 
 net/sunrpc/xprtrdma/backchannel.c                        |   22 -
 net/sunrpc/xprtrdma/transport.c                          |    3 
 net/sunrpc/xprtrdma/verbs.c                              |   41 +--
 net/sunrpc/xprtrdma/xprt_rdma.h                          |    2 
 net/tipc/udp_media.c                                     |    5 
 net/xfrm/xfrm_input.c                                    |   14 -
 net/xfrm/xfrm_state.c                                    |    1 
 net/xfrm/xfrm_user.c                                     |   15 -
 scripts/config                                           |    5 
 sound/pci/fm801.c                                        |   71 +++---
 sound/pci/hda/hda_intel.c                                |    9 
 sound/soc/fsl/fsl_ssi.c                                  |    8 
 sound/soc/intel/atom/sst/sst_stream.c                    |    2 
 sound/soc/tegra/tegra_alc5632.c                          |   12 -
 tools/perf/util/perf_regs.c                              |    8 
 tools/testing/selftests/ipc/msgque.c                     |    2 
 309 files changed, 2004 insertions(+), 1278 deletions(-)

Adrian Hunter (1):
mmc: sdhci: Fix regression setting power on Trats2 board

Alex Vesker (1):
net/mlx4_core: Check device state before unregistering it

Alex Williamson (1):
vfio/pci: Allow VPD short read

Alexander Duyck (3):
GRE: Disable segmentation offloads w/ CSUM and we are encapsulated via FOU
ipv4: Fix memory leak in exception case for splitting tries
flow_dissector: Check for IP fragmentation even if not using IPv4 address

Alexei Starovoitov (1):
bpf, trace: check event type in bpf_perf_event_read

Alexey Kardashevskiy (1):
powerpc/pci/of: Parse unassigned resources

Alexey Khoroshilov (1):
lirc_imon: do not leave imon_probe() with mutex held

Alexey Kodanev (1):

      net/xfrm_input: fix possible NULL deref of tunnel.ip6->parms.i_key

Amitkumar Karwar (2):
mwifiex: fix PCIe register information for 8997 chipset
mwifiex: add missing check for PCIe8997 chipset

Andrew Lunn (1):
net: ethernet: mvneta: Remove IFF_UNICAST_FLT which is not implemented

Andrew Rybchenko (1):
sfc: fix potential stack corruption from running past stat bitmask

Andy Shevchenko (6):
usb: gadged: pch_udc: get rid of redundant assignments
ALSA: fm801: explicitly free IRQ line
ALSA: fm801: propagate TUNER_ONLY bit when autodetected
ALSA: fm801: detect FM-only card earlier
Revert "ACPI / LPSS: allow to use specific PM domain during ->probe()"
ALSA: fm801: Initialize chip after IRQ handler is registered

Aneesh Kumar K.V (1):
cxl: Fix DAR check & use REGION_ID instead of opencoding

Arend Van Spriel (1):
brcmfmac: restore stopping netdev queue when bus clogs up

Arik Nemtsov (2):
mac80211: TDLS: always downgrade invalid chandefs
mac80211: TDLS: change BW calculation for WIDER_BW peers

Arnd Bergmann (3):
ARM: imx: select SRC for i.MX7
clk: st: avoid uninitialized variable use
mvpp2: use correct size for memset

Bart Van Assche (1):
target: Fix a memory leak in target_dev_lba_map_store()

Bartlomiej Zolnierkiewicz (1):
blk-mq: fix undefined behaviour in order_to_size()

Ben Hutchings (1):
staging: rtl8192u: Fix crash due to pointers being "confusing"

Bert Kenward (1):
sfc: clear napi_hash state when copying channels

Bjorn Helgaas (2):
PCI: Supply CPU physical address (not bus address) to iomem_is_exclusive() alpha/PCI: Call iomem_is_exclusive() for IORESOURCE_MEM, but not IORESOURCE_IO

Boris Brezillon (2):
mtd: nand: fix ONFI parameter page layout
mtd: nand: denali: add missing nand_release() call in denali_remove()

Brian Norris (2):
firmware: actually return NULL on failed request_firmware_nowait()
clk: gpio: handle error codes for of_clk_get_parent_count()

Charles Keepax (1):
regulator: core: Rely on regulator_dev_release to free constraints

Chin-Ran Lo (1):
Bluetooth: btmrvl: fix hung task warning dump

Chuanxiao Dong (1):
mmc: debugfs: correct wrong voltage value

Chuck Lever (6):
xprtrdma: Fix additional uses of spin_lock_irqsave(rb_lock)
xprtrdma: xprt_rdma_free() must not release backchannel reqs
xprtrdma: rpcrdma_bc_receive_call() should init rq_private_buf.len
NFS: Fix an LOCK/OPEN race when unlinking an open file
sunrpc: Update RPCBIND_MAXNETIDLEN
xprtrdma: Fix backchannel allocation of extra rpcrdma_reps

Cyrille Pitchen (1):
net: macb: replace macb_writel() call by queue_writel() to update queue ISR

Dan Carpenter (20):
MIPS: Octeon: Off by one in octeon_irq_gpio_map()
MIPS: RM7000: Double locking bug in rm7k_tc_disable() x86/apic/uv: Silence a shift wrapping warning
xprtrdma: checking for NULL instead of IS_ERR()
Btrfs: clean up an error code in btrfs_init_space_info()
ASoC: Intel: pass correct parameter in sst_alloc_stream_mrfld()
NFC: nci: memory leak in nci_core_conn_create()
mdio-sun4i: oops in error handling in probe
am437x-vpfe: fix an uninitialized variable bug
cx23885: uninitialized variable in cx23885_av_work_handler()
ath9k_htc: check for underflow in ath9k_htc_rx_msg()
VFIO: platform: reset: fix a warning message condition
net: moxa: fix an error code
mfd: lp8788-irq: Uninitialized variable in irq handler
ethernet: micrel: fix some error codes
power: ipaq-micro-battery: freeing the wrong variable
i40e: fix an uninitialized variable bug
qede: uninitialized variable in qede_start_xmit()
qlcnic: potential NULL dereference in qlcnic_83xx_get_minidump_template()
qlcnic: use the correct ring in qlcnic_83xx_process_rcv_ring_diag()

Daniel Borkmann (3):
bpf, mips: fix off-by-one in ctx offset allocation
cls_bpf: reset class and reuse major in da
bpf: fix map not being uncharged during map creation failure

Daniel Jurgens (3):
net/mlx4_core: Do not BUG_ON during reset when PCI is offline net/mlx4_core: Implement pci_resume callback net/mlx5: Fix wait_vital for VFs and remove fixed sleep

David Ahern (7):
net: ipv6: tcp reset, icmp need to consider L3 domain
net: vrf: Fix dev refcnt leak due to IPv6 prefix route
net: ipv6: Fix processing of RAs in presence of VRF
net: vrf: Fix dst reference counting
ipv4: Fix table id reference in fib_sync_down_addr
net: icmp6_send should use dst dev to determine L3 domain
net: icmp_route_lookup should use rt dev to determine L3 domain

David Rivshin (1):
drivers: net: cpsw: don't ignore phy-mode if phy-handle is used

Dmitry Torokhov (1):
Input: gpio-keys - fix check for disabling unsupported keys

Dong Aisheng (1):
clk: imx: clk-pllv3: fix incorrect handle of enet powerdown bit

Doug Berger (2):
net: bcmgenet: suppress warnings on failed Rx SKB allocations
net: systemport: suppress warnings on failed Rx SKB allocations

Douglas Anderson (2):
clk: rockchip: Revert "clk: rockchip: reset init state before mmc card initialization"
mmc: dw_mmc: rockchip: Set the drive phase properly

Douglas Miller (1):
be2net: Don't leak iomapped memory on removal.

Elad Raz (1):
mlxsw: switchx2: Fix ethernet port initialization

Eli Cohen (1):
net/mlx5e: Fix blue flame quota logic

Emmanuel Grumbach (1):
iwlwifi: set max firmware version of 7265 to 17

Eran Ben Elisha (2):
IB/mlx5: Fix FW version diaplay in sysfs net/mlx4_core: Fix potential corruption in counters database

Erez Shitrit (1):
net/mlx4_en: Process all completions in RX rings after port goes up

Eric Dumazet (13):
bonding: prevent out of bound accesses
tcp: do not set rtt_min to 1
net: get rid of an signed integer overflow in ip_idents_reserve()
ipv4: do not abuse GFP_ATOMIC in inet_netconf_notify_devconf()
ipv4: accept u8 in IP_TOS ancillary data
ipv6: do not abuse GFP_ATOMIC in inet6_netconf_notify_devconf()
pkt_sched: fq: use proper locking in fq_dump_stats()
mlx4: do not call napi_schedule() without care
net: bcmgenet: device stats are unsigned long
macvtap: segmented packet is consumed
fq_codel: return non zero qlen in class dumps
bnxt: add a missing rcu synchronization
qdisc: fix a module refcount leak in qdisc_create_dflt()

Felipe Balbi (1):
usb: gadget: udc: core: don't starve DMA resources

Florian Fainelli (14):
MIPS: BMIPS: Fix PRID_IMP_BMIPS5000 masking for BMIPS5200
MIPS: BMIPS: BMIPS5000 has I cache filing from D cache
MIPS: BMIPS: Clear MIPS_CACHE_ALIASES earlier
MIPS: BMIPS: local_r4k___flush_cache_all needs to blast S-cache
MIPS: BMIPS: Pretty print BMIPS5200 processor name
MIPS: BMIPS: Adjust mips-hpt-frequency for BCM7435
net: phy: Avoid polling PHY with PHY_IGNORE_INTERRUPTS
net: phy: Fix phy_mac_interrupt()
net: phy: bcm7xxx: Fix shadow mode 2 disabling
net: bcmsysport: Device stats are unsigned long
et131x: Fix logical vs bitwise check in et131x_tx_timeout()
bnxt_en: Remove locking around txr->dev_state
net: ethoc: Fix early error paths
net: ep93xx_eth: Do not crash unloading module

Franky Lin (1):
brcmfmac: add eth_type_trans back for PCIe full dongle

Geert Uytterhoeven (2):
ARM: dts: armadillo800eva Correct extal1 frequency to 24 MHz
ravb: Add missing free_irq() call to ravb_close()

Greg Kroah-Hartman (1):

      Linux 4.4.223

H. Nikolaus Schaller (2):
power: bq27xxx: fix reading for bq27000 and bq27010
power: bq27xxx: fix register numbers of bq27500

Hadar Hen Zion (1):
net_sched: flower: Avoid dissection of unmasked keys

Hannes Frederic Sowa (2):
ipv4: fix checksum annotation in udp4_csum_init
ipv6: fix checksum annotation in udp6_csum_init

Hariprasad Shenai (1):
cxgb4/cxgb4vf: Fixes regression in perf when tx vlan offload is disabled

Heinrich Schuchardt (2):
ARM: dts: kirkwood: use unique machine name for ds112
ARM: dts: kirkwood: add kirkwood-ds112.dtb to Makefile

Herbert Xu (1):
macvlan: Fix potential use-after free for broadcasts

Hidehiro Kawai (1):
mips/panic: replace smp_send_stop() with kdump friendly version in panic path

Honggang Li (1):
RDMA/cxgb3: device driver frees DMA memory with different size

Iago Abal (1):
usb: gadget: pch_udc: reorder spin_[un]lock to avoid deadlock

Ido Schimmel (5):
mlxsw: pci: Correctly determine if descriptor queue is full
mlxsw: Treat local port 64 as valid
mlxsw: spectrum: Don't forward packets when STP state is DISABLED
mlxsw: spectrum: Disable learning according to STP state
mlxsw: spectrum: Indicate support for autonegotiation

Ilan Peer (1):
mac80211: Fix BW upgrade for TDLS peers

Ilan Tayari (1):
xfrm: Fix memory leak of aead algorithm name

Ivan Vecera (1):
bna: add missing per queue ethtool stat

Jaap Jan Meijer (1):
brcmfmac: add fallback for devices that do not report per-chain values

Jack Morgenstein (4):
net/mlx4_core: Fix the resource-type enum in res tracker to conform to FW spec net/mlx4_core: Do not access comm channel if it has not yet been initialized net/mlx4_en: Fix potential deadlock in port statistics flow
net/mlx4: Fix uninitialized fields in rule when adding promiscuous mode to device managed flow steering

Jaedon Shin (1):
MIPS: Fix macro typo

James Hogan (7):
MIPS: ptrace: Drop cp0_tcstatus from regoffset_table[]
MIPS: Fix HTW config on XPA kernel without LPA enabled
MIPS: perf: Fix I6400 event numbers
MIPS: KVM: Fix translation of MFC0 ErrCtl
MIPS: SMP: Update cpu_foreign_map on CPU disable
MIPS: c-r4k: Fix protected_writeback_scache_line for EVA
MIPS: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO

Jan Beulich (1):
x86/LDT: Print the real LDT base address

Jere Leppänen (1):
sctp: Fix SHUTDOWN CTSN Ack in the peer restart case

Jeremie Francois (on alpha) (1):
scripts/config: allow colons in option strings for sed

Jiri Benc (4):
gre: do not assign header_ops in collect metadata mode
gre: build header correctly for collect metadata tunnels
gre: reject GUE and FOU in collect metadata mode
cxgbi: fix uninitialized flowi6

Jiri Kosina (1):
btrfs: cleaner_kthread() doesn't need explicit freeze

Jisheng Zhang (2):
mmc: sdhci: restore behavior when setting VDD via external regulator
net: mvneta: fix trivial cut-off issue in mvneta_ethtool_update_stats

Johan Hovold (9):
phy: fix device reference leaks
of_mdio: fix node leak in of_phy_register_fixed_link error path
net: dsa: slave: fix of-node leak and phy priority
net: ethernet: stmmac: dwmac-sti: fix probe error path
net: ethernet: stmmac: dwmac-rk: fix probe error path
net: ethernet: stmmac: dwmac-generic: fix probe error path
net: ethernet: ti: cpsw: fix device and of_node leaks
net: ethernet: ti: cpsw: fix secondary-emac probe error path
net: hns: fix device reference leaks

Johannes Berg (1):
mac80211: fix mgmt-tx abort cookie and leak

Johannes Weiner (1):
net: tcp_memcontrol: properly detect ancestor socket pressure

Junxiao Bi (1):
gfs2: fix flock panic issue

Kamal Heib (1):
net/mlx4_en: Fix the return value of a failure in VLAN VID add/kill

Krzysztof Kozlowski (2):
serial: samsung: Fix possible out of bounds access on non-DT platform
hwrng: exynos - Disable runtime PM on driver unbind

Krzysztof Opasiak (1):
usb: gadget: f_acm: Fix configfs attr name

Laura Abbott (1):
clk: xgene: Don't call __pa on ioremaped address

Laxman Dewangan (1):
pinctrl: tegra: Correctly check the supported configuration

Leon Romanovsky (1):
IB/mlx5: Fix RC transport send queue overhead computation

Liping Zhang (4):
netfilter: nf_tables: fix a wrong check to skip the inactive rules
netfilter: nft_dynset: fix panic if NFT_SET_HASH is not enabled
netfilter: nf_tables: destroy the set if fail to add transaction
netfilter: nft_dup: do not use sreg_dev if the user doesn't specify it

Liu Xiang (1):
power: bq27xxx_battery: Fix bq27541 AveragePower register address

Maciej S. Szmigiero (1):
ASoC: fsl_ssi: mark SACNT register volatile

Mahesh Salgaonkar (1):
powerpc/book3s: Fix MCE console messages for unrecoverable MCE.

Majd Dibbiny (2):
net/mlx5: Fix the size of modify QP mailbox net/mlx5: Fix masking of reserved bits in XRCD number

Mans Rullgard (1):
ata: sata_dwc_460ex: remove incorrect locking

Marcin Niestroj (1):
power_supply: tps65217-charger: Fix NULL deref during property export

Marcin Nowakowski (1):
MIPS: perf: Remove incorrect odd/even counter handling for I6400

Mark Tomlinson (1):
net: Don't delete routes in different VRFs

Matan Barak (1):
IB/mlx4: Initialize hop_limit when creating address handle

Mathias Krause (2):
xfrm_user: propagate sec ctx allocation errors
rtnl: reset calcit fptr in rtnl_unregister()

Matt Redfearn (1):
MIPS: scall: Handle seccomp filters which redirect syscalls

Matthew Finlay (1):
net/mlx5e: Copy all L2 headers into inline segment

Maxime Ripard (1):
clk: multiplier: Prevent the multiplier from under / over flowing

Michael Neuling (1):
powerpc/tm: Fix stack pointer corruption in __tm_recheckpoint()

Mohamad Haj Yahia (4):
net/mlx5: Avoid calling sleeping function by the health poll thread net/mlx5: Fix potential deadlock in command mode change net/mlx5: Add timeout handle to commands with callback net/mlx5: Fix pci error recovery flow

Moshe Shemesh (1):
net/mlx4_core: Fix QUERY FUNC CAP flags

Nathan Chancellor (1):
lib/mpi: Fix building for powerpc with clang

Naveen N. Rao (1):
perf tools: Fix perf regs mask generation

Neil Armstrong (2):
net: ethernet: davinci_emac: Fix devioctl while in fixed link
net: ethernet: davinci_emac: Fix platform_data overwrite

Nicholas Mc Guire (1):
mmc: moxart: fix wait_for_completion_interruptible_timeout return variable type

Nicolas Dichtel (6):
ovs/gre,geneve: fix error path when creating an iface
ipv6: add missing netconf notif when 'all' is updated
vti6: fix input path
ovs/gre: fix rtnl notifications on iface deletion ovs/geneve: fix rtnl notifications on iface deletion ovs/vxlan: fix rtnl notifications on iface deletion

Nicolas Schichan (1):
net: mv643xx_eth: fix packet corruption with TSO and tiny unaligned packets.

Nikolay Aleksandrov (1):
net: bridge: don't increment tx_dropped in br_do_proxy_arp

Noa Osherovich (1):
net/mlx5: Avoid passing dma address 0 to firmware

Nogah Frankel (1):
mlxsw: spectrum: Don't count internal TX header bytes to stats

Olaf Hering (1):
Drivers: hv: utils: use memdup_user in hvt_op_write

Olof Johansson (1):
mmc: block: return error on failed mmc_blk_get()

Or Gerlitz (1):
net/mlx5: Make command timeout way shorter

Pablo Neira (1):
udp: restore UDPlite many-cast delivery

Pablo Neira Ayuso (1):
netfilter: nfnetlink: use original skbuff when acking batches

Paul Burton (3):
MIPS: smp-cps: Stop printing EJTAG exceptions to UART
MIPS: math-emu: Fix BC1{EQ,NE}Z emulation
MIPS: Fix BC1{EQ,NE}Z return offset calculation

Peter Griffin (1):
c8sectpfe: Rework firmware loading mechanism

Peter Ujfalusi (1):
dmaengine: edma: Add probe callback to edma_tptc_driver

Peter Zijlstra (2):
sched/fair: Fix calc_cfs_shares() fixed point arithmetics width confusion sched/preempt: Fix preempt_count manipulations

Petri Gynther (1):
net: bcmgenet: fix skb_len in bcmgenet_xmit_single()

Philipp Zabel (1):
Input: edt-ft5x06 - fix setting gain, offset, and threshold via device tree

Raja Mani (1):
ath10k: free cached fw bin contents when get board id fails

Rana Shahout (1):
net/mlx5e: Fix MLX5E_100BASE_T define

Robin Murphy (1):
iommu/dma: Respect IOMMU aperture when allocating

Roger Shimizu (6):
ARM: dts: kirkwood: gpio pin fixes for linkstation ls-wxl/wsxl
ARM: dts: kirkwood: gpio pin fixes for linkstation ls-wvl/vl
ARM: dts: kirkwood: gpio-leds fixes for linkstation ls-wxl/wsxl
ARM: dts: kirkwood: gpio-leds fixes for linkstation ls-wvl/vl
ARM: dts: orion5x: gpio pin fixes for linkstation lswtgl
ARM: dts: orion5x: fix the missing mtd flash on linkstation lswtgl

Ronnie Sahlberg (1):

      cifs: protect updating server->dstaddr with a spinlock

Roosen Henri (1):
phy: micrel: Fix finding PHY properties in MAC node for KSZ9031.

Russell King (2):
mmc: sd: limit SD card power limit according to cards capabilities
rc: allow rc modules to be loaded if rc-main is not a module

Sabrina Dubroca (1):
l2tp: fix use-after-free during module unload

Sasha Levin (1):
power: test_power: correctly handle empty writes

Sergei Shtylyov (1):
at803x: fix reset handling

Shmulik Ladkani (1):
net: skbuff: Remove errornous length validation in skb_vlan_pop()

Simon Horman (1):
openvswitch: update checksum in {push,pop}_mpls

Simon Wunderlich (1):
batman-adv: replace WARN with rate limited output on non-existing VLAN

Sowmini Varadhan (1):
RDS:TCP: Synchronize rds_tcp_accept_one with rds_send_xmit when resetting t_sock

Stefan Wahren (1):
pinctrl: bcm2835: Fix memory leak in error path

Stephane Eranian (1):
perf/x86: Fix filter_events() bug with event mappings

Stephen Boyd (1):
tty: serial: msm: Support more bauds

Sudip Mukherjee (1):
ASoC: tegra_alc5632: check return value

Suman Anna (1):
ARM: OMAP2+: hwmod: fix _idle() hwmod state sanity check sequence

Sven Eckelmann (1):
batman-adv: Fix lockdep annotation of batadv_tlv_container_remove

Tahsin Erdogan (1):
dm: fix second blk_delay_queue() parameter to be in msec units not jiffies

Takashi Iwai (1):
ALSA: hda: Match both PCI ID and SSID for driver blacklist

Tariq Toukan (1):
net/mlx4_core: Fix access to uninitialized index

Tero Kristo (1):
clk: ti: omap3+: dpll: use non-locking version of clk_get_rate

Thomas Pedersen (1):

      mac80211: add ieee80211_is_any_nullfunc()

Tobias Jungel (1):
bonding: fix length of actor system

Toshiaki Makita (1):
bridge: Fix problems around fdb entries pointing to the bridge device

Tyler Hicks (1):
selftests/ipc: Fix test failure seen after initial test run

Vasily Averin (2):
drm/qxl: qxl_release use after free drm/qxl: qxl_release leak in qxl_draw_dirty_fb()

Vegard Nossum (1):
xfrm: fix crash in XFRM_MSG_GETSA netlink handler

Vince Hsu (1):
memory/tegra: Add number of TLB lines for Tegra124

Viresh Kumar (1):
Revert "cpufreq: Drop rwsem lock around CPUFREQ_GOV_POLICY_EXIT"

Vivien Didelot (3):
net: dsa: mv88e6xxx: unlock DSA and CPU ports
net: dsa: mv88e6xxx: enable SA learning on DSA ports
net: dsa: mv88e6xxx: fix port VLAN maps

WANG Cong (7):
net_sched: keep backlog updated with qlen
sch_drr: update backlog as well
sch_hfsc: always keep backlog updated
sch_prio: update backlog as well
sch_qfq: keep backlog updated with qlen
sch_sfb: keep backlog updated with qlen
sch_tbf: update backlog as well

Wang Sheng-Hui (1):
net/mlx5: use mlx5_buf_alloc_node instead of mlx5_buf_alloc in mlx5_wq_ll_create

Wei Yongjun (3):
net: macb: add missing free_netdev() on error in macb_probe()
tipc: fix the error handling in tipc_udp_enable()
net: axienet: Fix return value check in axienet_probe()

Willem de Bruijn (1):
dccp: limit sk_filter trim to payload

William Breathitt Gray (1):
isa: Call isa_bus_init before dependent ISA bus drivers register

Xin Long (1):
sctp: fix the transports round robin issue when init is retransmitted

Xiyu Yang (1):
wimax/i2400m: Fix potential urb refcnt leak

Yotam Gigi (2):
mlxsw: spectrum: Fix misuse of hard_header_len
mlxsw: switchx2: Fix misuse of hard_header_len

YueHaibing (1):
iio:ad7797: Use correct attribute_group

Zi Shen Lim (1):

      arm64: bpf: jit JMP_JSET_{X,K}

chunfan chen (1):
mwifiex: fix IBSS data path issue.

[email protected] (1):
irda: Free skb on irda_accept error path.

pravin shelar (1):
net: vxlan: lwt: Fix vxlan local traffic.

[email protected] (1):
net: ehea: avoid null pointer dereference

author maintainer
#1 lore raw
Makefile +1 -1
index 03f34df673d9..6b88acb0b9b1 100644
@@ -1,6 +1,6 @@
 VERSION = 4
 PATCHLEVEL = 4
-SUBLEVEL = 222
+SUBLEVEL = 223
 EXTRAVERSION =
 NAME = Blurry Fish Butt
 
arch/alpha/kernel/pci-sysfs.c +2 -2
index 99e8d4796c96..92c0d460815b 100644
@@ -77,10 +77,10 @@ static int pci_mmap_resource(struct kobject *kobj,
 	if (i >= PCI_ROM_RESOURCE)
 		return -ENODEV;
 
-	if (!__pci_mmap_fits(pdev, i, vma, sparse))
+	if (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start))
 		return -EINVAL;
 
-	if (iomem_is_exclusive(res->start))
+	if (!__pci_mmap_fits(pdev, i, vma, sparse))
 		return -EINVAL;
 
 	pcibios_resource_to_bus(pdev->bus, &bar, res);
arch/arm/boot/dts/Makefile +1 -0
index 30bbc3746130..25b80021a1a3 100644
@@ -166,6 +166,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-ds109.dtb \
 	kirkwood-ds110jv10.dtb \
 	kirkwood-ds111.dtb \
+	kirkwood-ds112.dtb \
 	kirkwood-ds209.dtb \
 	kirkwood-ds210.dtb \
 	kirkwood-ds212.dtb \
arch/arm/boot/dts/kirkwood-ds112.dts +1 -1
index bf4143c6cb8f..b84af3da8c84 100644
@@ -14,7 +14,7 @@
 #include "kirkwood-synology.dtsi"
 
 / {
-	model = "Synology DS111";
+	model = "Synology DS112";
 	compatible = "synology,ds111", "marvell,kirkwood";
 
 	memory {
arch/arm/boot/dts/kirkwood-lswvl.dts +13 -12
index 09eed3cea0af..36eec7392ab4 100644
@@ -1,7 +1,8 @@
 /*
  * Device Tree file for Buffalo Linkstation LS-WVL/VL
  *
- * Copyright (C) 2015, [email protected]
+ * Copyright (C) 2015, 2016
+ * Roger Shimizu <[email protected]>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -156,21 +157,21 @@
 		button@1 {
 			label = "Function Button";
 			linux,code = <KEY_OPTION>;
-			gpios = <&gpio0 45 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
 		};
 
 		button@2 {
 			label = "Power-on Switch";
 			linux,code = <KEY_RESERVED>;
 			linux,input-type = <5>;
-			gpios = <&gpio0 46 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
 		};
 
 		button@3 {
 			label = "Power-auto Switch";
 			linux,code = <KEY_ESC>;
 			linux,input-type = <5>;
-			gpios = <&gpio0 47 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
 		};
 	};
 
@@ -185,38 +186,38 @@
 
 		led@1 {
 			label = "lswvl:red:alarm";
-			gpios = <&gpio0 36 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
 		};
 
 		led@2 {
 			label = "lswvl:red:func";
-			gpios = <&gpio0 37 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
 		};
 
 		led@3 {
 			label = "lswvl:amber:info";
-			gpios = <&gpio0 38 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
 		};
 
 		led@4 {
 			label = "lswvl:blue:func";
-			gpios = <&gpio0 39 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
 		};
 
 		led@5 {
 			label = "lswvl:blue:power";
-			gpios = <&gpio0 40 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
 			default-state = "keep";
 		};
 
 		led@6 {
 			label = "lswvl:red:hdderr0";
-			gpios = <&gpio0 34 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
 		};
 
 		led@7 {
 			label = "lswvl:red:hdderr1";
-			gpios = <&gpio0 35 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
 		};
 	};
 
@@ -233,7 +234,7 @@
 				3250 1
 				5000 0>;
 
-		alarm-gpios = <&gpio0 43 GPIO_ACTIVE_HIGH>;
+		alarm-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
 	};
 
 	restart_poweroff {
arch/arm/boot/dts/kirkwood-lswxl.dts +16 -15
index f5db16a08597..b13ec20a7088 100644
@@ -1,7 +1,8 @@
 /*
  * Device Tree file for Buffalo Linkstation LS-WXL/WSXL
  *
- * Copyright (C) 2015, [email protected]
+ * Copyright (C) 2015, 2016
+ * Roger Shimizu <[email protected]>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -156,21 +157,21 @@
 		button@1 {
 			label = "Function Button";
 			linux,code = <KEY_OPTION>;
-			gpios = <&gpio1 41 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
 		};
 
 		button@2 {
 			label = "Power-on Switch";
 			linux,code = <KEY_RESERVED>;
 			linux,input-type = <5>;
-			gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
 		};
 
 		button@3 {
 			label = "Power-auto Switch";
 			linux,code = <KEY_ESC>;
 			linux,input-type = <5>;
-			gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
 		};
 	};
 
@@ -185,12 +186,12 @@
 
 		led@1 {
 			label = "lswxl:blue:func";
-			gpios = <&gpio1 36 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
 		};
 
 		led@2 {
 			label = "lswxl:red:alarm";
-			gpios = <&gpio1 49 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
 		};
 
 		led@3 {
@@ -200,23 +201,23 @@
 
 		led@4 {
 			label = "lswxl:blue:power";
-			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+			default-state = "keep";
 		};
 
 		led@5 {
 			label = "lswxl:red:func";
-			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
-			default-state = "keep";
+			gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
 		};
 
 		led@6 {
 			label = "lswxl:red:hdderr0";
-			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
 		};
 
 		led@7 {
 			label = "lswxl:red:hdderr1";
-			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+			gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
 		};
 	};
 
@@ -225,15 +226,15 @@
 		pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
 		pinctrl-names = "default";
 
-		gpios = <&gpio0 47 GPIO_ACTIVE_LOW
-			 &gpio0 48 GPIO_ACTIVE_LOW>;
+		gpios = <&gpio1 16 GPIO_ACTIVE_LOW
+			 &gpio1 15 GPIO_ACTIVE_LOW>;
 
 		gpio-fan,speed-map = <0 3
 				1500 2
 				3250 1
 				5000 0>;
 
-		alarm-gpios = <&gpio1 49 GPIO_ACTIVE_HIGH>;
+		alarm-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
 	};
 
 	restart_poweroff {
@@ -256,7 +257,7 @@
 			enable-active-high;
 			regulator-always-on;
 			regulator-boot-on;
-			gpio = <&gpio0 37 GPIO_ACTIVE_HIGH>;
+			gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
 		};
 		hdd_power0: regulator@2 {
 			compatible = "regulator-fixed";
arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts +35 -4
index 3daec912b4bf..aae8a7aceab7 100644
@@ -1,7 +1,8 @@
 /*
  * Device Tree file for Buffalo Linkstation LS-WTGL
  *
- * Copyright (C) 2015, Roger Shimizu <[email protected]>
+ * Copyright (C) 2015, 2016
+ * Roger Shimizu <[email protected]>
  *
  * This file is dual-licensed: you can use it either under the terms
  * of the GPL or the X11 license, at your option. Note that this dual
@@ -69,8 +70,6 @@
 
 		internal-regs {
 			pinctrl: pinctrl@10000 {
-				pinctrl-0 = <&pmx_usb_power &pmx_power_hdd
-					&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
 				pinctrl-names = "default";
 
 				pmx_led_power: pmx-leds {
@@ -162,6 +161,7 @@
 		led@1 {
 			label = "lswtgl:blue:power";
 			gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
 		};
 
 		led@2 {
@@ -188,7 +188,7 @@
 				3250 1
 				5000 0>;
 
-		alarm-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+		alarm-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
 	};
 
 	restart_poweroff {
@@ -228,6 +228,37 @@
 	};
 };
 
+&devbus_bootcs {
+	status = "okay";
+	devbus,keep-config;
+
+	flash@0 {
+		compatible = "jedec-flash";
+		reg = <0 0x40000>;
+		bank-width = <1>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			header@0 {
+				reg = <0 0x30000>;
+				read-only;
+			};
+
+			uboot@30000 {
+				reg = <0x30000 0xF000>;
+				read-only;
+			};
+
+			uboot_env@3F000 {
+				reg = <0x3F000 0x1000>;
+			};
+		};
+	};
+};
+
 &mdio {
 	status = "okay";
 
arch/arm/boot/dts/r8a7740-armadillo800eva.dts +1 -1
index 105d9c95de4a..5c76dcc89df5 100644
@@ -180,7 +180,7 @@
 };
 
 &extal1_clk {
-	clock-frequency = <25000000>;
+	clock-frequency = <24000000>;
 };
 &extal2_clk {
 	clock-frequency = <48000000>;
arch/arm/mach-imx/Kconfig +1 -0
index 8ceda2844c4f..9aa659e4c46e 100644
@@ -562,6 +562,7 @@ config SOC_IMX7D
 	select ARM_GIC
 	select HAVE_IMX_ANATOP
 	select HAVE_IMX_MMDC
+	select HAVE_IMX_SRC
 	help
 		This enables support for Freescale i.MX7 Dual processor.
 
arch/arm/mach-omap2/omap_hwmod.c +6 -6
index 1bc87c29467b..fcb48eb3ecdd 100644
@@ -2207,15 +2207,15 @@ static int _idle(struct omap_hwmod *oh)
 
 	pr_debug("omap_hwmod: %s: idling\n", oh->name);
 
+	if (_are_all_hardreset_lines_asserted(oh))
+		return 0;
+
 	if (oh->_state != _HWMOD_STATE_ENABLED) {
 		WARN(1, "omap_hwmod: %s: idle state can only be entered from enabled state\n",
 			oh->name);
 		return -EINVAL;
 	}
 
-	if (_are_all_hardreset_lines_asserted(oh))
-		return 0;
-
 	if (oh->class->sysc)
 		_idle_sysc(oh);
 	_del_initiator_dep(oh, mpu_oh);
@@ -2262,6 +2262,9 @@ static int _shutdown(struct omap_hwmod *oh)
 	int ret, i;
 	u8 prev_state;
 
+	if (_are_all_hardreset_lines_asserted(oh))
+		return 0;
+
 	if (oh->_state != _HWMOD_STATE_IDLE &&
 	    oh->_state != _HWMOD_STATE_ENABLED) {
 		WARN(1, "omap_hwmod: %s: disabled state can only be entered from idle, or enabled state\n",
@@ -2269,9 +2272,6 @@ static int _shutdown(struct omap_hwmod *oh)
 		return -EINVAL;
 	}
 
-	if (_are_all_hardreset_lines_asserted(oh))
-		return 0;
-
 	pr_debug("omap_hwmod: %s: disabling\n", oh->name);
 
 	if (oh->class->pre_shutdown) {
arch/arm64/net/bpf_jit_comp.c +1 -0
index 6297140dd84f..fb413052e10a 100644
@@ -482,6 +482,7 @@ emit_cond_jmp:
 		case BPF_JGE:
 			jmp_cond = A64_COND_CS;
 			break;
+		case BPF_JSET:
 		case BPF_JNE:
 			jmp_cond = A64_COND_NE;
 			break;
arch/mips/boot/dts/brcm/bcm7435.dtsi +1 -1
index 8b9432cc062b..27b2b8e08503 100644
@@ -7,7 +7,7 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		mips-hpt-frequency = <163125000>;
+		mips-hpt-frequency = <175625000>;
 
 		cpu@0 {
 			compatible = "brcm,bmips5200";
arch/mips/cavium-octeon/octeon-irq.c +1 -1
index ed7c4f1fc6a0..9189730bd517 100644
@@ -1220,7 +1220,7 @@ static int octeon_irq_gpio_map(struct irq_domain *d,
 
 	line = (hw + gpiod->base_hwirq) >> 6;
 	bit = (hw + gpiod->base_hwirq) & 63;
-	if (line > ARRAY_SIZE(octeon_irq_ciu_to_irq) ||
+	if (line >= ARRAY_SIZE(octeon_irq_ciu_to_irq) ||
 		octeon_irq_ciu_to_irq[line][bit] != 0)
 		return -EINVAL;
 
arch/mips/cavium-octeon/setup.c +14 -0
index cd7101fb6227..6b9c608cdff1 100644
@@ -251,6 +251,17 @@ static void octeon_crash_shutdown(struct pt_regs *regs)
 	default_machine_crash_shutdown(regs);
 }
 
+#ifdef CONFIG_SMP
+void octeon_crash_smp_send_stop(void)
+{
+	int cpu;
+
+	/* disable watchdogs */
+	for_each_online_cpu(cpu)
+		cvmx_write_csr(CVMX_CIU_WDOGX(cpu_logical_map(cpu)), 0);
+}
+#endif
+
 #endif /* CONFIG_KEXEC */
 
 #ifdef CONFIG_CAVIUM_RESERVE32
@@ -864,6 +875,9 @@ void __init prom_init(void)
 	_machine_kexec_shutdown = octeon_shutdown;
 	_machine_crash_shutdown = octeon_crash_shutdown;
 	_machine_kexec_prepare = octeon_kexec_prepare;
+#ifdef CONFIG_SMP
+	_crash_smp_send_stop = octeon_crash_smp_send_stop;
+#endif
 #endif
 
 	octeon_user_io_init();
arch/mips/cavium-octeon/smp.c +1 -0
index b7fa9ae28c36..bbd34b0f8d84 100644
@@ -239,6 +239,7 @@ static int octeon_cpu_disable(void)
 		return -ENOTSUPP;
 
 	set_cpu_online(cpu, false);
+	calculate_cpu_foreign_map();
 	cpumask_clear_cpu(cpu, &cpu_callin_map);
 	octeon_fixup_irqs();
 
arch/mips/include/asm/elf.h +1 -0
index b01a6ff468e0..ce985cefe11c 100644
@@ -420,6 +420,7 @@ extern const char *__elf_platform;
 #define ELF_ET_DYN_BASE		(TASK_SIZE / 3 * 2)
 #endif
 
+/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
 #define ARCH_DLINFO							\
 do {									\
 	NEW_AUX_ENT(AT_SYSINFO_EHDR,					\
arch/mips/include/asm/kexec.h +1 -0
index b6a4d4aa548f..cfdbe66575f4 100644
@@ -45,6 +45,7 @@ extern const unsigned char kexec_smp_wait[];
 extern unsigned long secondary_kexec_args[4];
 extern void (*relocated_kexec_smp_wait) (void *);
 extern atomic_t kexec_ready_to_reboot;
+extern void (*_crash_smp_send_stop)(void);
 #endif
 #endif
 
arch/mips/include/asm/r4kcache.h +4 -0
index 38902bf97adc..667ca3c467b7 100644
@@ -210,7 +210,11 @@ static inline void protected_writeback_dcache_line(unsigned long addr)
 
 static inline void protected_writeback_scache_line(unsigned long addr)
 {
+#ifdef CONFIG_EVA
+	protected_cachee_op(Hit_Writeback_Inv_SD, addr);
+#else
 	protected_cache_op(Hit_Writeback_Inv_SD, addr);
+#endif
 }
 
 /*
arch/mips/include/asm/smp.h +2 -0
index 82852dfd8dab..5ce0fcc81e87 100644
@@ -63,6 +63,8 @@ extern cpumask_t cpu_coherent_mask;
 
 extern void asmlinkage smp_bootstrap(void);
 
+extern void calculate_cpu_foreign_map(void);
+
 /*
  * this function sends a 'reschedule' IPI to another CPU.
  * it goes straight through and wastes no time serializing
arch/mips/include/uapi/asm/auxvec.h +2 -0
index c9c7195272c4..45ba259a3618 100644
@@ -14,4 +14,6 @@
 /* Location of VDSO image. */
 #define AT_SYSINFO_EHDR		33
 
+#define AT_VECTOR_SIZE_ARCH 1 /* entries in ARCH_DLINFO */
+
 #endif /* __ASM_AUXVEC_H */
arch/mips/kernel/bmips_vec.S +7 -2
index 86495072a922..d9495f3f3fad 100644
@@ -93,7 +93,8 @@ NESTED(bmips_reset_nmi_vec, PT_SIZE, sp)
 #if defined(CONFIG_CPU_BMIPS5000)
 	mfc0	k0, CP0_PRID
 	li	k1, PRID_IMP_BMIPS5000
-	andi	k0, 0xff00
+	/* mask with PRID_IMP_BMIPS5000 to cover both variants */
+	andi	k0, PRID_IMP_BMIPS5000
 	bne	k0, k1, 1f
 
 	/* if we're not on core 0, this must be the SMP boot signal */
@@ -166,10 +167,12 @@ bmips_smp_entry:
 2:
 #endif /* CONFIG_CPU_BMIPS4350 || CONFIG_CPU_BMIPS4380 */
 #if defined(CONFIG_CPU_BMIPS5000)
-	/* set exception vector base */
+	/* mask with PRID_IMP_BMIPS5000 to cover both variants */
 	li	k1, PRID_IMP_BMIPS5000
+	andi	k0, PRID_IMP_BMIPS5000
 	bne	k0, k1, 3f
 
+	/* set exception vector base */
 	la	k0, ebase
 	lw	k0, 0(k0)
 	mtc0	k0, $15, 1
@@ -263,6 +266,8 @@ LEAF(bmips_enable_xks01)
 #endif /* CONFIG_CPU_BMIPS4380 */
 #if defined(CONFIG_CPU_BMIPS5000)
 	li	t1, PRID_IMP_BMIPS5000
+	/* mask with PRID_IMP_BMIPS5000 to cover both variants */
+	andi	t2, PRID_IMP_BMIPS5000
 	bne	t2, t1, 2f
 
 	mfc0	t0, $22, 5
arch/mips/kernel/branch.c +3 -15
index 71e8f4c0b8da..a2e9ad37ea20 100644
@@ -685,21 +685,9 @@ int __compute_return_epc_for_insn(struct pt_regs *regs,
 			}
 			lose_fpu(1);    /* Save FPU state for the emulator. */
 			reg = insn.i_format.rt;
-			bit = 0;
-			switch (insn.i_format.rs) {
-			case bc1eqz_op:
-				/* Test bit 0 */
-				if (get_fpr32(&current->thread.fpu.fpr[reg], 0)
-				    & 0x1)
-					bit = 1;
-				break;
-			case bc1nez_op:
-				/* Test bit 0 */
-				if (!(get_fpr32(&current->thread.fpu.fpr[reg], 0)
-				      & 0x1))
-					bit = 1;
-				break;
-			}
+			bit = get_fpr32(&current->thread.fpu.fpr[reg], 0) & 0x1;
+			if (insn.i_format.rs == bc1eqz_op)
+				bit = !bit;
 			own_fpu(1);
 			if (bit)
 				epc = epc + 4 +
arch/mips/kernel/cps-vec.S +0 -1
index ac81edd44563..6b724436ac04 100644
@@ -245,7 +245,6 @@ LEAF(excep_intex)
 
 .org 0x480
 LEAF(excep_ejtag)
-	DUMP_EXCEP("EJTAG")
 	PTR_LA	k0, ejtag_debug_handler
 	jr	k0
 	 nop
arch/mips/kernel/cpu-probe.c +4 -1
index 6b9064499bd3..157c08c37e68 100644
@@ -1284,7 +1284,10 @@ static inline void cpu_probe_broadcom(struct cpuinfo_mips *c, unsigned int cpu)
 	case PRID_IMP_BMIPS5000:
 	case PRID_IMP_BMIPS5200:
 		c->cputype = CPU_BMIPS5000;
-		__cpu_name[cpu] = "Broadcom BMIPS5000";
+		if ((c->processor_id & PRID_IMP_MASK) == PRID_IMP_BMIPS5200)
+			__cpu_name[cpu] = "Broadcom BMIPS5200";
+		else
+			__cpu_name[cpu] = "Broadcom BMIPS5000";
 		set_elf_platform(cpu, "bmips5000");
 		c->options |= MIPS_CPU_ULRI;
 		break;
arch/mips/kernel/crash.c +17 -1
index 93c46c9cebb7..e757f36cea6f 100644
@@ -50,9 +50,14 @@ static void crash_shutdown_secondary(void *passed_regs)
 
 static void crash_kexec_prepare_cpus(void)
 {
+	static int cpus_stopped;
 	unsigned int msecs;
+	unsigned int ncpus;
 
-	unsigned int ncpus = num_online_cpus() - 1;/* Excluding the panic cpu */
+	if (cpus_stopped)
+		return;
+
+	ncpus = num_online_cpus() - 1;/* Excluding the panic cpu */
 
 	dump_send_ipi(crash_shutdown_secondary);
 	smp_wmb();
@@ -67,6 +72,17 @@ static void crash_kexec_prepare_cpus(void)
 		cpu_relax();
 		mdelay(1);
 	}
+
+	cpus_stopped = 1;
+}
+
+/* Override the weak function in kernel/panic.c */
+void crash_smp_send_stop(void)
+{
+	if (_crash_smp_send_stop)
+		_crash_smp_send_stop();
+
+	crash_kexec_prepare_cpus();
 }
 
 #else /* !defined(CONFIG_SMP)  */
arch/mips/kernel/machine_kexec.c +1 -0
index 92bc066e47a3..32b567e88b02 100644
@@ -25,6 +25,7 @@ void (*_machine_crash_shutdown)(struct pt_regs *regs) = NULL;
 #ifdef CONFIG_SMP
 void (*relocated_kexec_smp_wait) (void *);
 atomic_t kexec_ready_to_reboot = ATOMIC_INIT(0);
+void (*_crash_smp_send_stop)(void) = NULL;
 #endif
 
 int
arch/mips/kernel/perf_event_mipsxx.c +57 -3

90 lines not on this page · raw message

arch/mips/kernel/ptrace.c +0 -3
index 9d04392f7ef0..135e22611820 100644
@@ -670,9 +670,6 @@ static const struct pt_regs_offset regoffset_table[] = {
 	REG_OFFSET_NAME(c0_badvaddr, cp0_badvaddr),
 	REG_OFFSET_NAME(c0_cause, cp0_cause),
 	REG_OFFSET_NAME(c0_epc, cp0_epc),
-#ifdef CONFIG_MIPS_MT_SMTC
-	REG_OFFSET_NAME(c0_tcstatus, cp0_tcstatus),
-#endif
 #ifdef CONFIG_CPU_CAVIUM_OCTEON
 	REG_OFFSET_NAME(mpl0, mpl[0]),
 	REG_OFFSET_NAME(mpl1, mpl[1]),
arch/mips/kernel/scall32-o32.S +5 -6
index 29b0c5f978e4..7ee8c6269b22 100644
@@ -35,7 +35,6 @@ NESTED(handle_sys, PT_SIZE, sp)
 
 	lw	t1, PT_EPC(sp)		# skip syscall on return
 
-	subu	v0, v0, __NR_O32_Linux	# check syscall number
 	addiu	t1, 4			# skip to next instruction
 	sw	t1, PT_EPC(sp)
 
@@ -89,6 +88,7 @@ loads_done:
 	and	t0, t1
 	bnez	t0, syscall_trace_entry # -> yes
 syscall_common:
+	subu	v0, v0, __NR_O32_Linux	# check syscall number
 	sltiu	t0, v0, __NR_O32_Linux_syscalls + 1
 	beqz	t0, illegal_syscall
 
@@ -118,24 +118,23 @@ o32_syscall_exit:
 
 syscall_trace_entry:
 	SAVE_STATIC
-	move	s0, v0
 	move	a0, sp
 
 	/*
 	 * syscall number is in v0 unless we called syscall(__NR_###)
 	 * where the real syscall number is in a0
 	 */
-	addiu	a1, v0,  __NR_O32_Linux
-	bnez	v0, 1f /* __NR_syscall at offset 0 */
+	move	a1, v0
+	subu	t2, v0,  __NR_O32_Linux
+	bnez	t2, 1f /* __NR_syscall at offset 0 */
 	lw	a1, PT_R4(sp)
 
 1:	jal	syscall_trace_enter
 
 	bltz	v0, 1f			# seccomp failed? Skip syscall
 
-	move	v0, s0			# restore syscall
-
 	RESTORE_STATIC
+	lw	v0, PT_R2(sp)		# Restore syscall (maybe modified)
 	lw	a0, PT_R4(sp)		# Restore argument registers
 	lw	a1, PT_R5(sp)
 	lw	a2, PT_R6(sp)
arch/mips/kernel/scall64-64.S +1 -2
index a6323a969919..01779c315bc6 100644
@@ -82,15 +82,14 @@ n64_syscall_exit:
 
 syscall_trace_entry:
 	SAVE_STATIC
-	move	s0, v0
 	move	a0, sp
 	move	a1, v0
 	jal	syscall_trace_enter
 
 	bltz	v0, 1f			# seccomp failed? Skip syscall
 
-	move	v0, s0
 	RESTORE_STATIC
+	ld	v0, PT_R2(sp)		# Restore syscall (maybe modified)
 	ld	a0, PT_R4(sp)		# Restore argument registers
 	ld	a1, PT_R5(sp)
 	ld	a2, PT_R6(sp)
arch/mips/kernel/scall64-n32.S +9 -5
index e0fdca8d3abe..0d22a5cc0b8b 100644
@@ -42,9 +42,6 @@ NESTED(handle_sysn32, PT_SIZE, sp)
 #endif
 	beqz	t0, not_n32_scall
 
-	dsll	t0, v0, 3		# offset into table
-	ld	t2, (sysn32_call_table - (__NR_N32_Linux * 8))(t0)
-
 	sd	a3, PT_R26(sp)		# save a3 for syscall restarting
 
 	li	t1, _TIF_WORK_SYSCALL_ENTRY
@@ -53,6 +50,9 @@ NESTED(handle_sysn32, PT_SIZE, sp)
 	bnez	t0, n32_syscall_trace_entry
 
 syscall_common:
+	dsll	t0, v0, 3		# offset into table
+	ld	t2, (sysn32_call_table - (__NR_N32_Linux * 8))(t0)
+
 	jalr	t2			# Do The Real Thing (TM)
 
 	li	t0, -EMAXERRNO - 1	# error?
@@ -71,21 +71,25 @@ syscall_common:
 
 n32_syscall_trace_entry:
 	SAVE_STATIC
-	move	s0, t2
 	move	a0, sp
 	move	a1, v0
 	jal	syscall_trace_enter
 
 	bltz	v0, 1f			# seccomp failed? Skip syscall
 
-	move	t2, s0
 	RESTORE_STATIC
+	ld	v0, PT_R2(sp)		# Restore syscall (maybe modified)
 	ld	a0, PT_R4(sp)		# Restore argument registers
 	ld	a1, PT_R5(sp)
 	ld	a2, PT_R6(sp)
 	ld	a3, PT_R7(sp)
 	ld	a4, PT_R8(sp)
 	ld	a5, PT_R9(sp)
+
+	dsubu	t2, v0, __NR_N32_Linux	# check (new) syscall number
+	sltiu   t0, t2, __NR_N32_Linux_syscalls + 1
+	beqz	t0, not_n32_scall
+
 	j	syscall_common
 
 1:	j	syscall_exit
arch/mips/kernel/scall64-o32.S +9 -5
index 4faff3e77b25..a5cc2b2823d2 100644
@@ -52,9 +52,6 @@ NESTED(handle_sys, PT_SIZE, sp)
 	sll	a2, a2, 0
 	sll	a3, a3, 0
 
-	dsll	t0, v0, 3		# offset into table
-	ld	t2, (sys32_call_table - (__NR_O32_Linux * 8))(t0)
-
 	sd	a3, PT_R26(sp)		# save a3 for syscall restarting
 
 	/*
@@ -88,6 +85,9 @@ loads_done:
 	bnez	t0, trace_a_syscall
 
 syscall_common:
+	dsll	t0, v0, 3		# offset into table
+	ld	t2, (sys32_call_table - (__NR_O32_Linux * 8))(t0)
+
 	jalr	t2			# Do The Real Thing (TM)
 
 	li	t0, -EMAXERRNO - 1	# error?
@@ -112,7 +112,6 @@ trace_a_syscall:
 	sd	a6, PT_R10(sp)
 	sd	a7, PT_R11(sp)		# For indirect syscalls
 
-	move	s0, t2			# Save syscall pointer
 	move	a0, sp
 	/*
 	 * absolute syscall number is in v0 unless we called syscall(__NR_###)
@@ -133,8 +132,8 @@ trace_a_syscall:
 
 	bltz	v0, 1f			# seccomp failed? Skip syscall
 
-	move	t2, s0
 	RESTORE_STATIC
+	ld	v0, PT_R2(sp)		# Restore syscall (maybe modified)
 	ld	a0, PT_R4(sp)		# Restore argument registers
 	ld	a1, PT_R5(sp)
 	ld	a2, PT_R6(sp)
@@ -143,6 +142,11 @@ trace_a_syscall:
 	ld	a5, PT_R9(sp)
 	ld	a6, PT_R10(sp)
 	ld	a7, PT_R11(sp)		# For indirect syscalls
+
+	dsubu	t0, v0, __NR_O32_Linux	# check (new) syscall number
+	sltiu	t0, t0, __NR_O32_Linux_syscalls + 1
+	beqz	t0, not_o32_scall
+
 	j	syscall_common
 
 1:	j	syscall_exit
arch/mips/kernel/setup.c +1 -1
index fadc946b306d..8fa30516f39d 100644
@@ -695,7 +695,7 @@ static void __init request_crashkernel(struct resource *res)
 
 #define USE_PROM_CMDLINE	IS_ENABLED(CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER)
 #define USE_DTB_CMDLINE		IS_ENABLED(CONFIG_MIPS_CMDLINE_FROM_DTB)
-#define EXTEND_WITH_PROM	IS_ENABLED(CONFIG_MIPS_CMDLINE_EXTEND)
+#define EXTEND_WITH_PROM	IS_ENABLED(CONFIG_MIPS_CMDLINE_DTB_EXTEND)
 
 static void __init arch_mem_init(char **cmdline_p)
 {
arch/mips/kernel/smp-bmips.c +1 -0
index a62d24169d75..a00c4699ca10 100644
@@ -362,6 +362,7 @@ static int bmips_cpu_disable(void)
 	pr_info("SMP: CPU%d is offline\n", cpu);
 
 	set_cpu_online(cpu, false);
+	calculate_cpu_foreign_map();
 	cpumask_clear_cpu(cpu, &cpu_callin_map);
 	clear_c0_status(IE_IRQ5);
 
arch/mips/kernel/smp-cps.c +1 -0
index e04c8057b882..de0b7eaca9e2 100644
@@ -338,6 +338,7 @@ static int cps_cpu_disable(void)
 	atomic_sub(1 << cpu_vpe_id(&current_cpu_data), &core_cfg->vpe_mask);
 	smp_mb__after_atomic();
 	set_cpu_online(cpu, false);
+	calculate_cpu_foreign_map();
 	cpumask_clear_cpu(cpu, &cpu_callin_map);
 
 	return 0;
arch/mips/kernel/smp.c +1 -1
index 4af08c197177..8eff08d548fa 100644
@@ -118,7 +118,7 @@ static inline void set_cpu_core_map(int cpu)
  * Calculate a new cpu_foreign_map mask whenever a
  * new cpu appears or disappears.
  */
-static inline void calculate_cpu_foreign_map(void)
+void calculate_cpu_foreign_map(void)
 {
 	int i, k, core_present;
 	cpumask_t temp_foreign_map;
arch/mips/kvm/dyntrans.c +1 -1
index 521121bdebff..4974bfc2c5c8 100644
@@ -82,7 +82,7 @@ int kvm_mips_trans_mfc0(uint32_t inst, uint32_t *opc, struct kvm_vcpu *vcpu)
 
 	if ((rd == MIPS_CP0_ERRCTL) && (sel == 0)) {
 		mfc0_inst = CLEAR_TEMPLATE;
-		mfc0_inst |= ((rt & 0x1f) << 16);
+		mfc0_inst |= ((rt & 0x1f) << 11);
 	} else {
 		mfc0_inst = LW_TEMPLATE;
 		mfc0_inst |= ((rt & 0x1f) << 16);
arch/mips/loongson64/loongson-3/smp.c +1 -0
index 509832a9836c..2525b6d38f58 100644
@@ -417,6 +417,7 @@ static int loongson3_cpu_disable(void)
 		return -EBUSY;
 
 	set_cpu_online(cpu, false);
+	calculate_cpu_foreign_map();
 	cpumask_clear_cpu(cpu, &cpu_callin_map);
 	local_irq_save(flags);
 	fixup_irqs();
arch/mips/math-emu/cp1emu.c +6 -5
index 011b9b9574f1..e31fde4bc25b 100644
@@ -975,9 +975,10 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
 		struct mm_decoded_insn dec_insn, void *__user *fault_addr)
 {
 	unsigned long contpc = xcp->cp0_epc + dec_insn.pc_inc;
-	unsigned int cond, cbit;
+	unsigned int cond, cbit, bit0;
 	mips_instruction ir;
 	int likely, pc_inc;
+	union fpureg *fpr;
 	u32 __user *wva;
 	u64 __user *dva;
 	u32 wval;
@@ -1189,14 +1190,14 @@ emul:
 				return SIGILL;
 
 			cond = likely = 0;
+			fpr = &current->thread.fpu.fpr[MIPSInst_RT(ir)];
+			bit0 = get_fpr32(fpr, 0) & 0x1;
 			switch (MIPSInst_RS(ir)) {
 			case bc1eqz_op:
-				if (get_fpr32(&current->thread.fpu.fpr[MIPSInst_RT(ir)], 0) & 0x1)
-				    cond = 1;
+				cond = bit0 == 0;
 				break;
 			case bc1nez_op:
-				if (!(get_fpr32(&current->thread.fpu.fpr[MIPSInst_RT(ir)], 0) & 0x1))
-				    cond = 1;
+				cond = bit0 != 0;
 				break;
 			}
 			goto branch_common;
arch/mips/mm/c-r4k.c +11 -2
index 52e8c2026853..6c0147bd8e80 100644
@@ -447,6 +447,11 @@ static inline void local_r4k___flush_cache_all(void * args)
 		r4k_blast_scache();
 		break;
 
+	case CPU_BMIPS5000:
+		r4k_blast_scache();
+		__sync();
+		break;
+
 	default:
 		r4k_blast_dcache();
 		r4k_blast_icache();
@@ -1308,6 +1313,12 @@ static void probe_pcache(void)
 		c->icache.flags |= MIPS_CACHE_IC_F_DC;
 		break;
 
+	case CPU_BMIPS5000:
+		c->icache.flags |= MIPS_CACHE_IC_F_DC;
+		/* Cache aliases are handled in hardware; allow HIGHMEM */
+		c->dcache.flags &= ~MIPS_CACHE_ALIASES;
+		break;
+
 	case CPU_LOONGSON2:
 		/*
 		 * LOONGSON2 has 4 way icache, but when using indexed cache op,
@@ -1745,8 +1756,6 @@ void r4k_cache_init(void)
 		flush_icache_range = (void *)b5k_instruction_hazard;
 		local_flush_icache_range = (void *)b5k_instruction_hazard;
 
-		/* Cache aliases are handled in hardware; allow HIGHMEM */
-		current_cpu_data.dcache.flags &= ~MIPS_CACHE_ALIASES;
 
 		/* Optimization: an L2 flush implicitly flushes the L1 */
 		current_cpu_data.options |= MIPS_CPU_INCLUSIVE_CACHES;
arch/mips/mm/sc-rm7k.c +1 -1
index 9ac1efcfbcc7..78f900c59276 100644
@@ -161,7 +161,7 @@ static void rm7k_tc_disable(void)
 	local_irq_save(flags);
 	blast_rm7k_tcache();
 	clear_c0_config(RM7K_CONF_TE);
-	local_irq_save(flags);
+	local_irq_restore(flags);
 }
 
 static void rm7k_sc_disable(void)
arch/mips/mm/tlbex.c +1 -3
index 63b7d6f82d24..448b4aab3a1f 100644
@@ -2329,9 +2329,7 @@ static void config_htw_params(void)
 	if (CONFIG_PGTABLE_LEVELS >= 3)
 		pwsize |= ilog2(PTRS_PER_PMD) << MIPS_PWSIZE_MDW_SHIFT;
 
-	/* If XPA has been enabled, PTEs are 64-bit in size. */
-	if (config_enabled(CONFIG_64BITS) || (read_c0_pagegrain() & PG_ELPA))
-		pwsize |= 1;
+	pwsize |= ilog2(sizeof(pte_t)/4) << MIPS_PWSIZE_PTEW_SHIFT;
 
 	write_c0_pwsize(pwsize);
 
arch/mips/net/bpf_jit.c +1 -1
index c0c1e9529dbd..742daf8351b9 100644
@@ -1207,7 +1207,7 @@ void bpf_jit_compile(struct bpf_prog *fp)
 
 	memset(&ctx, 0, sizeof(ctx));
 
-	ctx.offsets = kcalloc(fp->len, sizeof(*ctx.offsets), GFP_KERNEL);
+	ctx.offsets = kcalloc(fp->len + 1, sizeof(*ctx.offsets), GFP_KERNEL);
 	if (ctx.offsets == NULL)
 		return;
 
arch/powerpc/kernel/mce.c +2 -1
index da3c4c3f4ec8..d4936615a756 100644
@@ -92,7 +92,8 @@ void save_mce_event(struct pt_regs *regs, long handled,
 	mce->in_use = 1;
 
 	mce->initiator = MCE_INITIATOR_CPU;
-	if (handled)
+	/* Mark it recovered if we have handled it and MSR(RI=1). */
+	if (handled && (regs->msr & MSR_RI))
 		mce->disposition = MCE_DISPOSITION_RECOVERED;
 	else
 		mce->disposition = MCE_DISPOSITION_NOT_RECOVERED;
arch/powerpc/kernel/pci_of_scan.c +10 -2
index a38d7293460d..985b5be3bcf6 100644
@@ -82,10 +82,16 @@ static void of_pci_parse_addrs(struct device_node *node, struct pci_dev *dev)
 	const __be32 *addrs;
 	u32 i;
 	int proplen;
+	bool mark_unset = false;
 
 	addrs = of_get_property(node, "assigned-addresses", &proplen);
-	if (!addrs)
-		return;
+	if (!addrs || !proplen) {
+		addrs = of_get_property(node, "reg", &proplen);
+		if (!addrs || !proplen)
+			return;
+		mark_unset = true;
+	}
+
 	pr_debug("    parse addresses (%d bytes) @ %p\n", proplen, addrs);
 	for (; proplen >= 20; proplen -= 20, addrs += 5) {
 		flags = pci_parse_of_flags(of_read_number(addrs, 1), 0);
@@ -110,6 +116,8 @@ static void of_pci_parse_addrs(struct device_node *node, struct pci_dev *dev)
 			continue;
 		}
 		res->flags = flags;
+		if (mark_unset)
+			res->flags |= IORESOURCE_UNSET;
 		res->name = pci_name(dev);
 		region.start = base;
 		region.end = base + size - 1;
arch/powerpc/kernel/tm.S +1 -2
index 2d2860711e07..55e831238485 100644
@@ -352,8 +352,6 @@ _GLOBAL(__tm_recheckpoint)
 	 */
 	subi	r7, r7, STACK_FRAME_OVERHEAD
 
-	SET_SCRATCH0(r1)
-
 	mfmsr	r6
 	/* R4 = original MSR to indicate whether thread used FP/Vector etc. */
 
@@ -482,6 +480,7 @@ restore_gprs:
 	 * until we turn MSR RI back on.
 	 */
 
+	SET_SCRATCH0(r1)
 	ld	r5, -8(r1)
 	ld	r1, -16(r1)
 
arch/powerpc/platforms/powernv/opal.c +1 -0
index d3787618315f..56125dbdb1e2 100644
@@ -401,6 +401,7 @@ static int opal_recover_mce(struct pt_regs *regs,
 
 	if (!(regs->msr & MSR_RI)) {
 		/* If MSR_RI isn't set, we cannot recover */
+		pr_err("Machine check interrupt unrecoverable: MSR(RI=0)\n");
 		recovered = 0;
 	} else if (evt->disposition == MCE_DISPOSITION_RECOVERED) {
 		/* Platform corrected itself */
arch/x86/kernel/apic/x2apic_uv_x.c +2 -2
index 4a139465f1d4..7554075414d4 100644
@@ -648,9 +648,9 @@ static __init void map_mmioh_high_uv3(int index, int min_pnode, int max_pnode)
 				l = li;
 			}
 			addr1 = (base << shift) +
-				f * (unsigned long)(1 << m_io);
+				f * (1ULL << m_io);
 			addr2 = (base << shift) +
-				(l + 1) * (unsigned long)(1 << m_io);
+				(l + 1) * (1ULL << m_io);
 			pr_info("UV: %s[%03d..%03d] NASID 0x%04x ADDR 0x%016lx - 0x%016lx\n",
 				id, fi, li, lnasid, addr1, addr2);
 			if (max_io < l)
arch/x86/kernel/cpu/perf_event.c +10 -1
index fbf2edc3eb35..b983d3dc4e6c 100644
@@ -1550,6 +1550,7 @@ static void __init filter_events(struct attribute **attrs)
 {
 	struct device_attribute *d;
 	struct perf_pmu_events_attr *pmu_attr;
+	int offset = 0;
 	int i, j;
 
 	for (i = 0; attrs[i]; i++) {
@@ -1558,7 +1559,7 @@ static void __init filter_events(struct attribute **attrs)
 		/* str trumps id */
 		if (pmu_attr->event_str)
 			continue;
-		if (x86_pmu.event_map(i))
+		if (x86_pmu.event_map(i + offset))
 			continue;
 
 		for (j = i; attrs[j]; j++)
@@ -1566,6 +1567,14 @@ static void __init filter_events(struct attribute **attrs)
 
 		/* Check the shifted attr. */
 		i--;
+
+		/*
+		 * event_map() is index based, the attrs array is organized
+		 * by increasing event index. If we shift the events, then
+		 * we need to compensate for the event_map(), otherwise
+		 * we are looking up the wrong event in the map
+		 */
+		offset++;
 	}
 }
 
arch/x86/kernel/process_64.c +1 -1
index 618565fecb1c..1a79d451cd34 100644
@@ -128,7 +128,7 @@ void release_thread(struct task_struct *dead_task)
 		if (dead_task->mm->context.ldt) {
 			pr_warn("WARNING: dead process %s still has LDT? <%p/%d>\n",
 				dead_task->comm,
-				dead_task->mm->context.ldt,
+				dead_task->mm->context.ldt->entries,
 				dead_task->mm->context.ldt->size);
 			BUG();
 		}
block/blk-mq.c +1 -1
index 8649dbf06ce4..b5633501f181 100644
@@ -1491,7 +1491,7 @@ static struct blk_mq_tags *blk_mq_init_rq_map(struct blk_mq_tag_set *set,
 		int to_do;
 		void *p;
 
-		while (left < order_to_size(this_order - 1) && this_order)
+		while (this_order && left < order_to_size(this_order - 1))
 			this_order--;
 
 		do {
drivers/acpi/acpi_lpss.c +6 -2
index e54e6170981b..a17337fd8f37 100644
@@ -704,8 +704,13 @@ static int acpi_lpss_platform_notify(struct notifier_block *nb,
 	}
 
 	switch (action) {
-	case BUS_NOTIFY_ADD_DEVICE:
+	case BUS_NOTIFY_BOUND_DRIVER:
 		pdev->dev.pm_domain = &acpi_lpss_pm_domain;
+		break;
+	case BUS_NOTIFY_UNBOUND_DRIVER:
+		pdev->dev.pm_domain = NULL;
+		break;
+	case BUS_NOTIFY_ADD_DEVICE:
 		if (pdata->dev_desc->flags & LPSS_LTR)
 			return sysfs_create_group(&pdev->dev.kobj,
 						  &lpss_attr_group);
@@ -713,7 +718,6 @@ static int acpi_lpss_platform_notify(struct notifier_block *nb,
 	case BUS_NOTIFY_DEL_DEVICE:
 		if (pdata->dev_desc->flags & LPSS_LTR)
 			sysfs_remove_group(&pdev->dev.kobj, &lpss_attr_group);
-		pdev->dev.pm_domain = NULL;
 		break;
 	default:
 		break;
drivers/ata/sata_dwc_460ex.c +1 -3
index 902034991517..7a7faca0ddcd 100644
@@ -924,15 +924,13 @@ static void sata_dwc_exec_command_by_tag(struct ata_port *ap,
 					 struct ata_taskfile *tf,
 					 u8 tag, u32 cmd_issued)
 {
-	unsigned long flags;
 	struct sata_dwc_device_port *hsdevp = HSDEVP_FROM_AP(ap);
 
 	dev_dbg(ap->dev, "%s cmd(0x%02x): %s tag=%d\n", __func__, tf->command,
 		ata_get_cmd_descript(tf->command), tag);
 
-	spin_lock_irqsave(&ap->host->lock, flags);
 	hsdevp->cmd_issued[tag] = cmd_issued;
-	spin_unlock_irqrestore(&ap->host->lock, flags);
+
 	/*
 	 * Clear SError before executing a new command.
 	 * sata_dwc_scr_write and read can not be used here. Clearing the PM
drivers/base/firmware_class.c +5 -3
index ccfd268148a8..3bf1cdee8f49 100644
@@ -1119,15 +1119,17 @@ static int
 _request_firmware(const struct firmware **firmware_p, const char *name,
 		  struct device *device, unsigned int opt_flags)
 {
-	struct firmware *fw;
+	struct firmware *fw = NULL;
 	long timeout;
 	int ret;
 
 	if (!firmware_p)
 		return -EINVAL;
 
-	if (!name || name[0] == '\0')
-		return -EINVAL;
+	if (!name || name[0] == '\0') {
+		ret = -EINVAL;
+		goto out;
+	}
 
 	ret = _request_firmware_prepare(&fw, name, device);
 	if (ret <= 0) /* error or already assigned */
drivers/base/isa.c +1 -1
index 901d8185309e..372d10af2600 100644
@@ -180,4 +180,4 @@ static int __init isa_bus_init(void)
 	return error;
 }
 
-device_initcall(isa_bus_init);
+postcore_initcall(isa_bus_init);
drivers/bluetooth/btmrvl_sdio.c +2 -1
index 71ea2a3af293..9c6843af1c6b 100644
@@ -1112,7 +1112,8 @@ static int btmrvl_sdio_download_fw(struct btmrvl_sdio_card *card)
 	 */
 	if (btmrvl_sdio_verify_fw_download(card, pollnum)) {
 		BT_ERR("FW failed to be active in time!");
-		return -ETIMEDOUT;
+		ret = -ETIMEDOUT;
+		goto done;
 	}
 
 	sdio_release_host(card->func);
drivers/char/hw_random/exynos-rng.c +9 -0
index 7ba0ae060d61..66115ef979b1 100644
@@ -155,6 +155,14 @@ static int exynos_rng_probe(struct platform_device *pdev)
 	return ret;
 }
 
+static int exynos_rng_remove(struct platform_device *pdev)
+{
+	pm_runtime_dont_use_autosuspend(&pdev->dev);
+	pm_runtime_disable(&pdev->dev);
+
+	return 0;
+}
+
 static int __maybe_unused exynos_rng_runtime_suspend(struct device *dev)
 {
 	struct platform_device *pdev = to_platform_device(dev);
@@ -212,6 +220,7 @@ static struct platform_driver exynos_rng_driver = {
 		.of_match_table = exynos_rng_dt_match,
 	},
 	.probe		= exynos_rng_probe,
+	.remove		= exynos_rng_remove,
 };
 
 module_platform_driver(exynos_rng_driver);
drivers/clk/clk-gpio.c +4 -2
index 335322dc403f..9bc801f3a7ba 100644
@@ -287,12 +287,14 @@ static void __init of_gpio_clk_setup(struct device_node *node,
 	const char **parent_names;
 	int i, num_parents;
 
+	num_parents = of_clk_get_parent_count(node);
+	if (num_parents < 0)
+		return;
+
 	data = kzalloc(sizeof(*data), GFP_KERNEL);
 	if (!data)
 		return;
 
-	num_parents = of_clk_get_parent_count(node);
-
 	parent_names = kcalloc(num_parents, sizeof(char *), GFP_KERNEL);
 	if (!parent_names)
 		return;
drivers/clk/clk-multiplier.c +17 -3
index fe7806506bf3..e9fb8a111f71 100644
@@ -54,14 +54,28 @@ static unsigned long __bestmult(struct clk_hw *hw, unsigned long rate,
 				unsigned long *best_parent_rate,
 				u8 width, unsigned long flags)
 {
+	struct clk_multiplier *mult = to_clk_multiplier(hw);
 	unsigned long orig_parent_rate = *best_parent_rate;
 	unsigned long parent_rate, current_rate, best_rate = ~0;
 	unsigned int i, bestmult = 0;
+	unsigned int maxmult = (1 << width) - 1;
+
+	if (!(clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT)) {
+		bestmult = rate / orig_parent_rate;
+
+		/* Make sure we don't end up with a 0 multiplier */
+		if ((bestmult == 0) &&
+		    !(mult->flags & CLK_MULTIPLIER_ZERO_BYPASS))
+			bestmult = 1;
 
-	if (!(clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT))
-		return rate / *best_parent_rate;
+		/* Make sure we don't overflow the multiplier */
+		if (bestmult > maxmult)
+			bestmult = maxmult;
+
+		return bestmult;
+	}
 
-	for (i = 1; i < ((1 << width) - 1); i++) {
+	for (i = 1; i < maxmult; i++) {
 		if (rate == orig_parent_rate * i) {
 			/*
 			 * This is the best case for us if we have a
drivers/clk/clk-xgene.c +4 -6
index b134a8b15e2c..5fea58713293 100644
@@ -218,22 +218,20 @@ static int xgene_clk_enable(struct clk_hw *hw)
 	struct xgene_clk *pclk = to_xgene_clk(hw);
 	unsigned long flags = 0;
 	u32 data;
-	phys_addr_t reg;
 
 	if (pclk->lock)
 		spin_lock_irqsave(pclk->lock, flags);
 
 	if (pclk->param.csr_reg != NULL) {
 		pr_debug("%s clock enabled\n", clk_hw_get_name(hw));
-		reg = __pa(pclk->param.csr_reg);
 		/* First enable the clock */
 		data = xgene_clk_read(pclk->param.csr_reg +
 					pclk->param.reg_clk_offset);
 		data |= pclk->param.reg_clk_mask;
 		xgene_clk_write(data, pclk->param.csr_reg +
 					pclk->param.reg_clk_offset);
-		pr_debug("%s clock PADDR base %pa clk offset 0x%08X mask 0x%08X value 0x%08X\n",
-			clk_hw_get_name(hw), &reg,
+		pr_debug("%s clk offset 0x%08X mask 0x%08X value 0x%08X\n",
+			clk_hw_get_name(hw),
 			pclk->param.reg_clk_offset, pclk->param.reg_clk_mask,
 			data);
 
@@ -243,8 +241,8 @@ static int xgene_clk_enable(struct clk_hw *hw)
 		data &= ~pclk->param.reg_csr_mask;
 		xgene_clk_write(data, pclk->param.csr_reg +
 					pclk->param.reg_csr_offset);
-		pr_debug("%s CSR RESET PADDR base %pa csr offset 0x%08X mask 0x%08X value 0x%08X\n",
-			clk_hw_get_name(hw), &reg,
+		pr_debug("%s csr offset 0x%08X mask 0x%08X value 0x%08X\n",
+			clk_hw_get_name(hw),
 			pclk->param.reg_csr_offset, pclk->param.reg_csr_mask,
 			data);
 	}
drivers/clk/imx/clk-pllv3.c +4 -4
index 6addf8f58b97..cbecbd584624 100644
@@ -76,9 +76,9 @@ static int clk_pllv3_prepare(struct clk_hw *hw)
 
 	val = readl_relaxed(pll->base);
 	if (pll->powerup_set)
-		val |= BM_PLL_POWER;
+		val |= pll->powerdown;
 	else
-		val &= ~BM_PLL_POWER;
+		val &= ~pll->powerdown;
 	writel_relaxed(val, pll->base);
 
 	return clk_pllv3_wait_lock(pll);
@@ -91,9 +91,9 @@ static void clk_pllv3_unprepare(struct clk_hw *hw)
 
 	val = readl_relaxed(pll->base);
 	if (pll->powerup_set)
-		val &= ~BM_PLL_POWER;
+		val &= ~pll->powerdown;
 	else
-		val |= BM_PLL_POWER;
+		val |= pll->powerdown;
 	writel_relaxed(val, pll->base);
 }
 
drivers/clk/rockchip/clk-mmc-phase.c +0 -11
index 2b289581d570..b513a2bbfcc5 100644
@@ -41,8 +41,6 @@ static unsigned long rockchip_mmc_recalc(struct clk_hw *hw,
 #define ROCKCHIP_MMC_DEGREE_MASK 0x3
 #define ROCKCHIP_MMC_DELAYNUM_OFFSET 2
 #define ROCKCHIP_MMC_DELAYNUM_MASK (0xff << ROCKCHIP_MMC_DELAYNUM_OFFSET)
-#define ROCKCHIP_MMC_INIT_STATE_RESET 0x1
-#define ROCKCHIP_MMC_INIT_STATE_SHIFT 1
 
 #define PSECS_PER_SEC 1000000000000LL
 
@@ -183,15 +181,6 @@ struct clk *rockchip_clk_register_mmc(const char *name,
 	mmc_clock->reg = reg;
 	mmc_clock->shift = shift;
 
-	/*
-	 * Assert init_state to soft reset the CLKGEN
-	 * for mmc tuning phase and degree
-	 */
-	if (mmc_clock->shift == ROCKCHIP_MMC_INIT_STATE_SHIFT)
-		writel(HIWORD_UPDATE(ROCKCHIP_MMC_INIT_STATE_RESET,
-				     ROCKCHIP_MMC_INIT_STATE_RESET,
-				     mmc_clock->shift), mmc_clock->reg);
-
 	clk = clk_register(NULL, &mmc_clock->hw);
 	if (IS_ERR(clk))
 		goto err_free;
drivers/clk/st/clkgen-fsyn.c +9 -8
index 576cd0354d48..ccb324d97160 100644
@@ -549,19 +549,20 @@ static int clk_fs660c32_vco_get_params(unsigned long input,
 	return 0;
 }
 
-static long quadfs_pll_fs660c32_round_rate(struct clk_hw *hw, unsigned long rate
-		, unsigned long *prate)
+static long quadfs_pll_fs660c32_round_rate(struct clk_hw *hw,
+					   unsigned long rate,
+					   unsigned long *prate)
 {
 	struct stm_fs params;
 
-	if (!clk_fs660c32_vco_get_params(*prate, rate, &params))
-		clk_fs660c32_vco_get_rate(*prate, &params, &rate);
+	if (clk_fs660c32_vco_get_params(*prate, rate, &params))
+		return rate;
 
-	pr_debug("%s: %s new rate %ld [sdiv=0x%x,md=0x%x,pe=0x%x,nsdiv3=%u]\n",
+	clk_fs660c32_vco_get_rate(*prate, &params, &rate);
+
+	pr_debug("%s: %s new rate %ld [ndiv=%u]\n",
 		 __func__, clk_hw_get_name(hw),
-		 rate, (unsigned int)params.sdiv,
-		 (unsigned int)params.mdiv,
-		 (unsigned int)params.pe, (unsigned int)params.nsdiv);
+		 rate, (unsigned int)params.ndiv);
 
 	return rate;
 }
drivers/clk/ti/dpll3xxx.c +2 -1
index 0e9119fae760..fa53bf6bd041 100644
@@ -437,7 +437,8 @@ int omap3_noncore_dpll_enable(struct clk_hw *hw)
 
 	parent = clk_hw_get_parent(hw);
 
-	if (clk_hw_get_rate(hw) == clk_get_rate(dd->clk_bypass)) {
+	if (clk_hw_get_rate(hw) ==
+	    clk_hw_get_rate(__clk_get_hw(dd->clk_bypass))) {
 		WARN_ON(parent != __clk_get_hw(dd->clk_bypass));
 		r = _omap3_noncore_dpll_bypass(clk);
 	} else {
drivers/cpufreq/cpufreq.c +0 -5
index 49aa58e617db..df651b1a7669 100644
@@ -2171,10 +2171,7 @@ static int cpufreq_set_policy(struct cpufreq_policy *policy,
 			return ret;
 		}
 
-		up_write(&policy->rwsem);
 		ret = __cpufreq_governor(policy, CPUFREQ_GOV_POLICY_EXIT);
-		down_write(&policy->rwsem);
-
 		if (ret) {
 			pr_err("%s: Failed to Exit Governor: %s (%d)\n",
 			       __func__, old_gov->name, ret);
@@ -2190,9 +2187,7 @@ static int cpufreq_set_policy(struct cpufreq_policy *policy,
 		if (!ret)
 			goto out;
 
-		up_write(&policy->rwsem);
 		__cpufreq_governor(policy, CPUFREQ_GOV_POLICY_EXIT);
-		down_write(&policy->rwsem);
 	}
 
 	/* new governor failed, so re-start old one */
drivers/dma/edma.c +6 -0
index 17521fcf226f..3cca3055ebd4 100644
@@ -2439,7 +2439,13 @@ static struct platform_driver edma_driver = {
 	},
 };
 
+static int edma_tptc_probe(struct platform_device *pdev)
+{
+	return 0;
+}
+
 static struct platform_driver edma_tptc_driver = {
+	.probe		= edma_tptc_probe,
 	.driver = {
 		.name	= "edma3-tptc",
 		.of_match_table = edma_tptc_of_ids,
drivers/gpu/drm/qxl/qxl_cmd.c +2 -3
index d8066ac1e764..ae09f004a33f 100644
@@ -529,8 +529,8 @@ int qxl_hw_surface_alloc(struct qxl_device *qdev,
 	/* no need to add a release to the fence for this surface bo,
 	   since it is only released when we ask to destroy the surface
 	   and it would never signal otherwise */
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
 
 	surf->hw_surf_alloc = true;
 	spin_lock(&qdev->surf_id_idr_lock);
@@ -572,9 +572,8 @@ int qxl_hw_surface_dealloc(struct qxl_device *qdev,
 	cmd->surface_id = id;
 	qxl_release_unmap(qdev, release, &cmd->release_info);
 
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
-
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_SURFACE, false);
 
 	return 0;
 }
drivers/gpu/drm/qxl/qxl_display.c +3 -3
index 5edebf495c07..0d6cc396cc16 100644
@@ -292,8 +292,8 @@ qxl_hide_cursor(struct qxl_device *qdev)
 	cmd->type = QXL_CURSOR_HIDE;
 	qxl_release_unmap(qdev, release, &cmd->release_info);
 
-	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 	return 0;
 }
 
@@ -390,8 +390,8 @@ static int qxl_crtc_cursor_set2(struct drm_crtc *crtc,
 	cmd->u.set.visible = 1;
 	qxl_release_unmap(qdev, release, &cmd->release_info);
 
-	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 
 	/* finish with the userspace bo */
 	ret = qxl_bo_reserve(user_bo, false);
@@ -450,8 +450,8 @@ static int qxl_crtc_cursor_move(struct drm_crtc *crtc,
 	cmd->u.position.y = qcrtc->cur_y + qcrtc->hot_spot_y;
 	qxl_release_unmap(qdev, release, &cmd->release_info);
 
-	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false);
 
 	return 0;
 }
drivers/gpu/drm/qxl/qxl_draw.c +7 -6
index 6e6c76080d6a..47da124b7ebf 100644
@@ -245,8 +245,8 @@ void qxl_draw_opaque_fb(const struct qxl_fb_image *qxl_fb_image,
 		qxl_bo_physical_address(qdev, dimage->bo, 0);
 	qxl_release_unmap(qdev, release, &drawable->release_info);
 
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 
 out_free_palette:
 	if (palette_bo)
@@ -352,9 +352,10 @@ void qxl_draw_dirty_fb(struct qxl_device *qdev,
 		goto out_release_backoff;
 
 	rects = drawable_set_clipping(qdev, drawable, num_clips, clips_bo);
-	if (!rects)
+	if (!rects) {
+		ret = -EINVAL;
 		goto out_release_backoff;
-
+	}
 	drawable = (struct qxl_drawable *)qxl_release_map(qdev, release);
 
 	drawable->clip.type = SPICE_CLIP_TYPE_RECTS;
@@ -385,8 +386,8 @@ void qxl_draw_dirty_fb(struct qxl_device *qdev,
 	}
 	qxl_bo_kunmap(clips_bo);
 
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 
 out_release_backoff:
 	if (ret)
@@ -436,8 +437,8 @@ void qxl_draw_copyarea(struct qxl_device *qdev,
 	drawable->u.copy_bits.src_pos.y = sy;
 	qxl_release_unmap(qdev, release, &drawable->release_info);
 
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 
 out_free_release:
 	if (ret)
@@ -480,8 +481,8 @@ void qxl_draw_fill(struct qxl_draw_fill *qxl_draw_fill_rec)
 
 	qxl_release_unmap(qdev, release, &drawable->release_info);
 
-	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 	qxl_release_fence_buffer_objects(release);
+	qxl_push_command_ring_release(qdev, release, QXL_CMD_DRAW, false);
 
 out_free_release:
 	if (ret)
drivers/gpu/drm/qxl/qxl_ioctl.c +1 -4
index 7c2e78201ead..4d852449a7d1 100644
@@ -257,11 +257,8 @@ static int qxl_process_single_command(struct qxl_device *qdev,
 			apply_surf_reloc(qdev, &reloc_info[i]);
 	}
 
+	qxl_release_fence_buffer_objects(release);
 	ret = qxl_push_command_ring_release(qdev, release, cmd->type, true);
-	if (ret)
-		qxl_release_backoff_reserve_list(release);
-	else
-		qxl_release_fence_buffer_objects(release);
 
 out_free_bos:
 out_free_release:
drivers/hv/hv_utils_transport.c +4 -5
index 1505ee6e6605..24b2766a6d34 100644
@@ -80,11 +80,10 @@ static ssize_t hvt_op_write(struct file *file, const char __user *buf,
 
 	hvt = container_of(file->f_op, struct hvutil_transport, fops);
 
-	inmsg = kzalloc(count, GFP_KERNEL);
-	if (copy_from_user(inmsg, buf, count)) {
-		kfree(inmsg);
-		return -EFAULT;
-	}
+	inmsg = memdup_user(buf, count);
+	if (IS_ERR(inmsg))
+		return PTR_ERR(inmsg);
+
 	if (hvt->on_msg(inmsg, count))
 		return -EFAULT;
 	kfree(inmsg);
drivers/iio/adc/ad7793.c +1 -1
index 91d34ed756ea..fe0c5a155e21 100644
@@ -579,7 +579,7 @@ static const struct iio_info ad7797_info = {
 	.read_raw = &ad7793_read_raw,
 	.write_raw = &ad7793_write_raw,
 	.write_raw_get_fmt = &ad7793_write_raw_get_fmt,
-	.attrs = &ad7793_attribute_group,
+	.attrs = &ad7797_attribute_group,
 	.validate_trigger = ad_sd_validate_trigger,
 	.driver_module = THIS_MODULE,
 };
drivers/infiniband/hw/cxgb3/cxio_hal.c +1 -1
index de1c61b417d6..ada2e5009c86 100644
@@ -327,7 +327,7 @@ int cxio_destroy_cq(struct cxio_rdev *rdev_p, struct t3_cq *cq)
 	kfree(cq->sw_queue);
 	dma_free_coherent(&(rdev_p->rnic_info.pdev->dev),
 			  (1UL << (cq->size_log2))
-			  * sizeof(struct t3_cqe), cq->queue,
+			  * sizeof(struct t3_cqe) + 1, cq->queue,
 			  dma_unmap_addr(cq, mapping));
 	cxio_hal_put_cqid(rdev_p->rscp, cq->cqid);
 	return err;
drivers/infiniband/hw/mlx4/ah.c +1 -0
index fc21bdbb8b32..005ea5524e09 100644
@@ -107,6 +107,7 @@ static struct ib_ah *create_iboe_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr
 		return ERR_PTR(ret);
 	ah->av.eth.gid_index = ret;
 	ah->av.eth.vlan = cpu_to_be16(vlan_tag);
+	ah->av.eth.hop_limit = ah_attr->grh.hop_limit;
 	if (ah_attr->static_rate) {
 		ah->av.eth.stat_rate = ah_attr->static_rate + MLX4_STAT_RATE_OFFSET;
 		while (ah->av.eth.stat_rate > IB_RATE_2_5_GBPS + MLX4_STAT_RATE_OFFSET &&
drivers/infiniband/hw/mlx5/main.c +1 -1
index dbd5adc62c3f..1b731ab63ede 100644
@@ -905,7 +905,7 @@ static ssize_t show_fw_ver(struct device *device, struct device_attribute *attr,
 {
 	struct mlx5_ib_dev *dev =
 		container_of(device, struct mlx5_ib_dev, ib_dev.dev);
-	return sprintf(buf, "%d.%d.%d\n", fw_rev_maj(dev->mdev),
+	return sprintf(buf, "%d.%d.%04d\n", fw_rev_maj(dev->mdev),
 		       fw_rev_min(dev->mdev), fw_rev_sub(dev->mdev));
 }
 
drivers/infiniband/hw/mlx5/qp.c +7 -5
index eac5f5eff8d2..b8e71187c700 100644
@@ -271,8 +271,10 @@ static int sq_overhead(enum ib_qp_type qp_type)
 		/* fall through */
 	case IB_QPT_RC:
 		size += sizeof(struct mlx5_wqe_ctrl_seg) +
-			sizeof(struct mlx5_wqe_atomic_seg) +
-			sizeof(struct mlx5_wqe_raddr_seg);
+			max(sizeof(struct mlx5_wqe_atomic_seg) +
+			    sizeof(struct mlx5_wqe_raddr_seg),
+			    sizeof(struct mlx5_wqe_umr_ctrl_seg) +
+			    sizeof(struct mlx5_mkey_seg));
 		break;
 
 	case IB_QPT_XRC_TGT:
@@ -280,9 +282,9 @@ static int sq_overhead(enum ib_qp_type qp_type)
 
 	case IB_QPT_UC:
 		size += sizeof(struct mlx5_wqe_ctrl_seg) +
-			sizeof(struct mlx5_wqe_raddr_seg) +
-			sizeof(struct mlx5_wqe_umr_ctrl_seg) +
-			sizeof(struct mlx5_mkey_seg);
+			max(sizeof(struct mlx5_wqe_raddr_seg),
+			    sizeof(struct mlx5_wqe_umr_ctrl_seg) +
+			    sizeof(struct mlx5_mkey_seg));
 		break;
 
 	case IB_QPT_UD:
drivers/input/keyboard/gpio_keys.c +23 -6
index bef317ff7352..b9f01bd1b7ef 100644
@@ -96,13 +96,29 @@ struct gpio_keys_drvdata {
  * Return value of this function can be used to allocate bitmap
  * large enough to hold all bits for given type.
  */
-static inline int get_n_events_by_type(int type)
+static int get_n_events_by_type(int type)
 {
 	BUG_ON(type != EV_SW && type != EV_KEY);
 
 	return (type == EV_KEY) ? KEY_CNT : SW_CNT;
 }
 
+/**
+ * get_bm_events_by_type() - returns bitmap of supported events per @type
+ * @input: input device from which bitmap is retrieved
+ * @type: type of button (%EV_KEY, %EV_SW)
+ *
+ * Return value of this function can be used to allocate bitmap
+ * large enough to hold all bits for given type.
+ */
+static const unsigned long *get_bm_events_by_type(struct input_dev *dev,
+						  int type)
+{
+	BUG_ON(type != EV_SW && type != EV_KEY);
+
+	return (type == EV_KEY) ? dev->keybit : dev->swbit;
+}
+
 /**
  * gpio_keys_disable_button() - disables given GPIO button
  * @bdata: button data for button to be disabled
@@ -213,6 +229,7 @@ static ssize_t gpio_keys_attr_store_helper(struct gpio_keys_drvdata *ddata,
 					   const char *buf, unsigned int type)
 {
 	int n_events = get_n_events_by_type(type);
+	const unsigned long *bitmap = get_bm_events_by_type(ddata->input, type);
 	unsigned long *bits;
 	ssize_t error;
 	int i;
@@ -226,6 +243,11 @@ static ssize_t gpio_keys_attr_store_helper(struct gpio_keys_drvdata *ddata,
 		goto out;
 
 	/* First validate */
+	if (!bitmap_subset(bits, bitmap, n_events)) {
+		error = -EINVAL;
+		goto out;
+	}
+
 	for (i = 0; i < ddata->pdata->nbuttons; i++) {
 		struct gpio_button_data *bdata = &ddata->data[i];
 
@@ -239,11 +261,6 @@ static ssize_t gpio_keys_attr_store_helper(struct gpio_keys_drvdata *ddata,
 		}
 	}
 
-	if (i == ddata->pdata->nbuttons) {
-		error = -EINVAL;
-		goto out;
-	}
-
 	mutex_lock(&ddata->disable_lock);
 
 	for (i = 0; i < ddata->pdata->nbuttons; i++) {
drivers/input/touchscreen/edt-ft5x06.c +12 -6
index a9d97d577a7e..5e535d0bbe16 100644
@@ -822,16 +822,22 @@ static void edt_ft5x06_ts_get_defaults(struct device *dev,
 	int error;
 
 	error = device_property_read_u32(dev, "threshold", &val);
-	if (!error)
-		reg_addr->reg_threshold = val;
+	if (!error) {
+		edt_ft5x06_register_write(tsdata, reg_addr->reg_threshold, val);
+		tsdata->threshold = val;
+	}
 
 	error = device_property_read_u32(dev, "gain", &val);
-	if (!error)
-		reg_addr->reg_gain = val;
+	if (!error) {
+		edt_ft5x06_register_write(tsdata, reg_addr->reg_gain, val);
+		tsdata->gain = val;
+	}
 
 	error = device_property_read_u32(dev, "offset", &val);
-	if (!error)
-		reg_addr->reg_offset = val;
+	if (!error) {
+		edt_ft5x06_register_write(tsdata, reg_addr->reg_offset, val);
+		tsdata->offset = val;
+	}
 }
 
 static void
drivers/iommu/dma-iommu.c +7 -4
index 347a3c17f73a..087a092a6e6e 100644
@@ -152,12 +152,15 @@ int dma_direction_to_prot(enum dma_data_direction dir, bool coherent)
 	}
 }
 
-static struct iova *__alloc_iova(struct iova_domain *iovad, size_t size,
+static struct iova *__alloc_iova(struct iommu_domain *domain, size_t size,
 		dma_addr_t dma_limit)
 {
+	struct iova_domain *iovad = domain->iova_cookie;
 	unsigned long shift = iova_shift(iovad);
 	unsigned long length = iova_align(iovad, size) >> shift;
 
+	if (domain->geometry.force_aperture)
+		dma_limit = min(dma_limit, domain->geometry.aperture_end);
 	/*
 	 * Enforce size-alignment to be safe - there could perhaps be an
 	 * attribute to control this per-device, or at least per-domain...
@@ -297,7 +300,7 @@ struct page **iommu_dma_alloc(struct device *dev, size_t size,
 	if (!pages)
 		return NULL;
 
-	iova = __alloc_iova(iovad, size, dev->coherent_dma_mask);
+	iova = __alloc_iova(domain, size, dev->coherent_dma_mask);
 	if (!iova)
 		goto out_free_pages;
 
@@ -369,7 +372,7 @@ dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
 	phys_addr_t phys = page_to_phys(page) + offset;
 	size_t iova_off = iova_offset(iovad, phys);
 	size_t len = iova_align(iovad, size + iova_off);
-	struct iova *iova = __alloc_iova(iovad, len, dma_get_mask(dev));
+	struct iova *iova = __alloc_iova(domain, len, dma_get_mask(dev));
 
 	if (!iova)
 		return DMA_ERROR_CODE;
@@ -483,7 +486,7 @@ int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg,
 		prev = s;
 	}
 
-	iova = __alloc_iova(iovad, iova_len, dma_get_mask(dev));
+	iova = __alloc_iova(domain, iova_len, dma_get_mask(dev));
 	if (!iova)
 		goto out_restore_sg;
 
drivers/md/dm.c +1 -1
index c4d4cd38a58f..ff017d148323 100644
@@ -2192,7 +2192,7 @@ static void dm_request_fn(struct request_queue *q)
 	goto out;
 
 delay_and_out:
-	blk_delay_queue(q, HZ / 100);
+	blk_delay_queue(q, 10);
 out:
 	dm_put_live_table(md, srcu_idx);
 }
drivers/media/pci/cx23885/cx23885-av.c +1 -1
index 877dad89107e..e7d4406f9abd 100644
@@ -24,7 +24,7 @@ void cx23885_av_work_handler(struct work_struct *work)
 {
 	struct cx23885_dev *dev =
 			   container_of(work, struct cx23885_dev, cx25840_work);
-	bool handled;
+	bool handled = false;
 
 	v4l2_subdev_call(dev->sd_cx25840, core, interrupt_service_routine,
 			 PCI_MSK_AV_CORE, &handled);
drivers/media/platform/am437x/am437x-vpfe.c +1 -1
index 36add3c463f7..1256af0dde1d 100644
@@ -1047,7 +1047,7 @@ static int vpfe_get_ccdc_image_format(struct vpfe_device *vpfe,
 static int vpfe_config_ccdc_image_format(struct vpfe_device *vpfe)
 {
 	enum ccdc_frmfmt frm_fmt = CCDC_FRMFMT_INTERLACED;
-	int ret;
+	int ret = 0;
 
 	vpfe_dbg(2, vpfe, "vpfe_config_ccdc_image_format\n");
 
drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c +22 -43

136 lines not on this page · raw message

drivers/media/rc/rc-main.c +1 -1
index 3f0f71adabb4..ea1008cf14a3 100644
@@ -61,7 +61,7 @@ struct rc_map *rc_map_get(const char *name)
 	struct rc_map_list *map;
 
 	map = seek_rc_map(name);
-#ifdef MODULE
+#ifdef CONFIG_MODULES
 	if (!map) {
 		int rc = request_module("%s", name);
 		if (rc < 0) {
drivers/memory/tegra/tegra124.c +1 -0
index 234e74f97a4b..9f68a56f2727 100644
@@ -1007,6 +1007,7 @@ static const struct tegra_smmu_soc tegra124_smmu_soc = {
 	.num_swgroups = ARRAY_SIZE(tegra124_swgroups),
 	.supports_round_robin_arbitration = true,
 	.supports_request_limit = true,
+	.num_tlb_lines = 32,
 	.num_asids = 128,
 };
 
drivers/mfd/lp8788-irq.c +1 -1
index c7a9825aa4ce..792d51bae20f 100644
@@ -112,7 +112,7 @@ static irqreturn_t lp8788_irq_handler(int irq, void *ptr)
 	struct lp8788_irq_data *irqd = ptr;
 	struct lp8788 *lp = irqd->lp;
 	u8 status[NUM_REGS], addr, mask;
-	bool handled;
+	bool handled = false;
 	int i;
 
 	if (lp8788_read_multi_bytes(lp, LP8788_INT_1, status, NUM_REGS))
drivers/misc/cxl/fault.c +1 -1
index 81c3f75b7330..8f9c26b77089 100644
@@ -152,7 +152,7 @@ static void cxl_handle_page_fault(struct cxl_context *ctx,
 	access = _PAGE_PRESENT;
 	if (dsisr & CXL_PSL_DSISR_An_S)
 		access |= _PAGE_RW;
-	if ((!ctx->kernel) || ~(dar & (1ULL << 63)))
+	if ((!ctx->kernel) || (REGION_ID(dar) == USER_REGION_ID))
 		access |= _PAGE_USER;
 
 	if (dsisr & DSISR_NOHPTE)
drivers/mmc/card/block.c +3 -1
index 07592e428755..c4c4dfbde0dc 100644
@@ -668,8 +668,10 @@ static int mmc_blk_ioctl_multi_cmd(struct block_device *bdev,
 	}
 
 	md = mmc_blk_get(bdev->bd_disk);
-	if (!md)
+	if (!md) {
+		err = -EINVAL;
 		goto cmd_err;
+	}
 
 	card = md->queue.card;
 	if (IS_ERR(card)) {
drivers/mmc/core/debugfs.c +1 -1
index 705586dcd9fa..9382a57a5aa4 100644
@@ -170,7 +170,7 @@ static int mmc_ios_show(struct seq_file *s, void *data)
 		str = "invalid";
 		break;
 	}
-	seq_printf(s, "signal voltage:\t%u (%s)\n", ios->chip_select, str);
+	seq_printf(s, "signal voltage:\t%u (%s)\n", ios->signal_voltage, str);
 
 	switch (ios->drv_type) {
 	case MMC_SET_DRIVER_TYPE_A:
drivers/mmc/core/sd.c +16 -4
index 54ba1abb5460..ed9af65e583e 100644
@@ -337,6 +337,7 @@ static int mmc_read_switch(struct mmc_card *card)
 		card->sw_caps.sd3_bus_mode = status[13];
 		/* Driver Strengths supported by the card */
 		card->sw_caps.sd3_drv_type = status[9];
+		card->sw_caps.sd3_curr_limit = status[7] | status[6] << 8;
 	}
 
 out:
@@ -553,14 +554,25 @@ static int sd_set_current_limit(struct mmc_card *card, u8 *status)
 	 * when we set current limit to 200ma, the card will draw 200ma, and
 	 * when we set current limit to 400/600/800ma, the card will draw its
 	 * maximum 300ma from the host.
+	 *
+	 * The above is incorrect: if we try to set a current limit that is
+	 * not supported by the card, the card can rightfully error out the
+	 * attempt, and remain at the default current limit.  This results
+	 * in a 300mA card being limited to 200mA even though the host
+	 * supports 800mA. Failures seen with SanDisk 8GB UHS cards with
+	 * an iMX6 host. --rmk
 	 */
-	if (max_current >= 800)
+	if (max_current >= 800 &&
+	    card->sw_caps.sd3_curr_limit & SD_MAX_CURRENT_800)
 		current_limit = SD_SET_CURRENT_LIMIT_800;
-	else if (max_current >= 600)
+	else if (max_current >= 600 &&
+		 card->sw_caps.sd3_curr_limit & SD_MAX_CURRENT_600)
 		current_limit = SD_SET_CURRENT_LIMIT_600;
-	else if (max_current >= 400)
+	else if (max_current >= 400 &&
+		 card->sw_caps.sd3_curr_limit & SD_MAX_CURRENT_400)
 		current_limit = SD_SET_CURRENT_LIMIT_400;
-	else if (max_current >= 200)
+	else if (max_current >= 200 &&
+		 card->sw_caps.sd3_curr_limit & SD_MAX_CURRENT_200)
 		current_limit = SD_SET_CURRENT_LIMIT_200;
 
 	if (current_limit != SD_SET_CURRENT_NO_CHANGE) {
drivers/mmc/host/dw_mmc-rockchip.c +64 -0

70 lines not on this page · raw message

drivers/mmc/host/moxart-mmc.c +3 -2
index 79905ce895ad..bbad309679cf 100644
@@ -257,7 +257,7 @@ static void moxart_dma_complete(void *param)
 static void moxart_transfer_dma(struct mmc_data *data, struct moxart_host *host)
 {
 	u32 len, dir_data, dir_slave;
-	unsigned long dma_time;
+	long dma_time;
 	struct dma_async_tx_descriptor *desc = NULL;
 	struct dma_chan *dma_chan;
 
@@ -397,7 +397,8 @@ static void moxart_prepare_data(struct moxart_host *host)
 static void moxart_request(struct mmc_host *mmc, struct mmc_request *mrq)
 {
 	struct moxart_host *host = mmc_priv(mmc);
-	unsigned long pio_time, flags;
+	long pio_time;
+	unsigned long flags;
 	u32 status;
 
 	spin_lock_irqsave(&host->lock, flags);
drivers/mmc/host/sdhci-pxav3.c +22 -0
index f5edf9d3a18a..0535827b02ee 100644
@@ -307,8 +307,30 @@ static void pxav3_set_uhs_signaling(struct sdhci_host *host, unsigned int uhs)
 		__func__, uhs, ctrl_2);
 }
 
+static void pxav3_set_power(struct sdhci_host *host, unsigned char mode,
+			    unsigned short vdd)
+{
+	struct mmc_host *mmc = host->mmc;
+	u8 pwr = host->pwr;
+
+	sdhci_set_power(host, mode, vdd);
+
+	if (host->pwr == pwr)
+		return;
+
+	if (host->pwr == 0)
+		vdd = 0;
+
+	if (!IS_ERR(mmc->supply.vmmc)) {
+		spin_unlock_irq(&host->lock);
+		mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd);
+		spin_lock_irq(&host->lock);
+	}
+}
+
 static const struct sdhci_ops pxav3_sdhci_ops = {
 	.set_clock = sdhci_set_clock,
+	.set_power = pxav3_set_power,
 	.platform_send_init_74_clocks = pxav3_gen_init_74_clocks,
 	.get_max_clock = sdhci_pltfm_clk_get_max_clock,
 	.set_bus_width = sdhci_set_bus_width,
drivers/mmc/host/sdhci.c +29 -15

73 lines not on this page · raw message

drivers/mmc/host/sdhci.h +4 -0
index 0115e9907bf8..033d72b5bbd5 100644
@@ -529,6 +529,8 @@ struct sdhci_ops {
 #endif
 
 	void	(*set_clock)(struct sdhci_host *host, unsigned int clock);
+	void	(*set_power)(struct sdhci_host *host, unsigned char mode,
+			     unsigned short vdd);
 
 	int		(*enable_dma)(struct sdhci_host *host);
 	unsigned int	(*get_max_clock)(struct sdhci_host *host);
@@ -660,6 +662,8 @@ static inline bool sdhci_sdio_irq_enabled(struct sdhci_host *host)
 }
 
 void sdhci_set_clock(struct sdhci_host *host, unsigned int clock);
+void sdhci_set_power(struct sdhci_host *host, unsigned char mode,
+		     unsigned short vdd);
 void sdhci_set_bus_width(struct sdhci_host *host, int width);
 void sdhci_reset(struct sdhci_host *host, u8 mask);
 void sdhci_set_uhs_signaling(struct sdhci_host *host, unsigned timing);
drivers/mtd/nand/denali.c +9 -2
index 67eb2be0db87..9a5035cac129 100644
@@ -1622,9 +1622,16 @@ EXPORT_SYMBOL(denali_init);
 /* driver exit point */
 void denali_remove(struct denali_nand_info *denali)
 {
+	/*
+	 * Pre-compute DMA buffer size to avoid any problems in case
+	 * nand_release() ever changes in a way that mtd->writesize and
+	 * mtd->oobsize are not reliable after this call.
+	 */
+	int bufsize = denali->mtd.writesize + denali->mtd.oobsize;
+
+	nand_release(&denali->mtd);
 	denali_irq_cleanup(denali->irq, denali);
-	dma_unmap_single(denali->dev, denali->buf.dma_buf,
-			 denali->mtd.writesize + denali->mtd.oobsize,
+	dma_unmap_single(denali->dev, denali->buf.dma_buf, bufsize,
 			 DMA_BIDIRECTIONAL);
 }
 EXPORT_SYMBOL(denali_remove);
drivers/net/bonding/bond_3ad.c +7 -4
index 399c627b15cc..22ebdf4d8cc4 100644
@@ -100,11 +100,14 @@ enum ad_link_speed_type {
 #define MAC_ADDRESS_EQUAL(A, B)	\
 	ether_addr_equal_64bits((const u8 *)A, (const u8 *)B)
 
-static struct mac_addr null_mac_addr = { { 0, 0, 0, 0, 0, 0 } };
+static const u8 null_mac_addr[ETH_ALEN + 2] __long_aligned = {
+	0, 0, 0, 0, 0, 0
+};
 static u16 ad_ticks_per_sec;
 static const int ad_delta_in_ticks = (AD_TIMER_INTERVAL * HZ) / 1000;
 
-static const u8 lacpdu_mcast_addr[ETH_ALEN] = MULTICAST_LACPDU_ADDR;
+static const u8 lacpdu_mcast_addr[ETH_ALEN + 2] __long_aligned =
+	MULTICAST_LACPDU_ADDR;
 
 /* ================= main 802.3ad protocol functions ================== */
 static int ad_lacpdu_send(struct port *port);
@@ -1701,7 +1704,7 @@ static void ad_clear_agg(struct aggregator *aggregator)
 		aggregator->is_individual = false;
 		aggregator->actor_admin_aggregator_key = 0;
 		aggregator->actor_oper_aggregator_key = 0;
-		aggregator->partner_system = null_mac_addr;
+		eth_zero_addr(aggregator->partner_system.mac_addr_value);
 		aggregator->partner_system_priority = 0;
 		aggregator->partner_oper_aggregator_key = 0;
 		aggregator->receive_state = 0;
@@ -1723,7 +1726,7 @@ static void ad_initialize_agg(struct aggregator *aggregator)
 	if (aggregator) {
 		ad_clear_agg(aggregator);
 
-		aggregator->aggregator_mac_address = null_mac_addr;
+		eth_zero_addr(aggregator->aggregator_mac_address.mac_addr_value);
 		aggregator->aggregator_identifier = 0;
 		aggregator->slave = NULL;
 	}
drivers/net/bonding/bond_alb.c +2 -5
index 41bd9186d383..295d86ba63d3 100644
@@ -42,13 +42,10 @@
 
 
 
-#ifndef __long_aligned
-#define __long_aligned __attribute__((aligned((sizeof(long)))))
-#endif
-static const u8 mac_bcast[ETH_ALEN] __long_aligned = {
+static const u8 mac_bcast[ETH_ALEN + 2] __long_aligned = {
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff
 };
-static const u8 mac_v6_allmcast[ETH_ALEN] __long_aligned = {
+static const u8 mac_v6_allmcast[ETH_ALEN + 2] __long_aligned = {
 	0x33, 0x33, 0x00, 0x00, 0x00, 0x01
 };
 static const int alb_delta_in_ticks = HZ / ALB_TIMER_TICKS_PER_SEC;
drivers/net/bonding/bond_netlink.c +1 -2
index b8df0f5e8c25..3f320f470345 100644
@@ -628,8 +628,7 @@ static int bond_fill_info(struct sk_buff *skb,
 				goto nla_put_failure;
 
 			if (nla_put(skb, IFLA_BOND_AD_ACTOR_SYSTEM,
-				    sizeof(bond->params.ad_actor_system),
-				    &bond->params.ad_actor_system))
+				    ETH_ALEN, &bond->params.ad_actor_system))
 				goto nla_put_failure;
 		}
 		if (!bond_3ad_get_active_agg_info(bond, &info)) {
drivers/net/dsa/mv88e6xxx.c +5 -4
index e2414f2d7ba9..68ef738a7689 100644
@@ -2064,9 +2064,9 @@ static int mv88e6xxx_setup_port(struct dsa_switch *ds, int port)
 	 * the other bits clear.
 	 */
 	reg = 1 << port;
-	/* Disable learning for DSA and CPU ports */
-	if (dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port))
-		reg = PORT_ASSOC_VECTOR_LOCKED_PORT;
+	/* Disable learning for CPU port */
+	if (dsa_is_cpu_port(ds, port))
+		reg = 0;
 
 	ret = _mv88e6xxx_reg_write(ds, REG_PORT(port), PORT_ASSOC_VECTOR, reg);
 	if (ret)
@@ -2150,7 +2150,8 @@ static int mv88e6xxx_setup_port(struct dsa_switch *ds, int port)
 	 * database, and allow every port to egress frames on all other ports.
 	 */
 	reg = BIT(ps->num_ports) - 1; /* all ports */
-	ret = _mv88e6xxx_port_vlan_map_set(ds, port, reg & ~port);
+	reg &= ~BIT(port); /* except itself */
+	ret = _mv88e6xxx_port_vlan_map_set(ds, port, reg);
 	if (ret)
 		goto abort;
 
drivers/net/ethernet/agere/et131x.c +1 -1
index e0f3d197e7f2..8ff10fd70b02 100644
@@ -3854,7 +3854,7 @@ static void et131x_tx_timeout(struct net_device *netdev)
 	unsigned long flags;
 
 	/* If the device is closed, ignore the timeout */
-	if (~(adapter->flags & FMP_ADAPTER_INTERRUPT_IN_USE))
+	if (!(adapter->flags & FMP_ADAPTER_INTERRUPT_IN_USE))
 		return;
 
 	/* Any nonrecoverable hardware error?
drivers/net/ethernet/broadcom/bcmsysport.c +3 -2
index 3cb99ce7325b..94f06c35ad9c 100644
@@ -396,7 +396,7 @@ static void bcm_sysport_get_stats(struct net_device *dev,
 		else
 			p = (char *)priv;
 		p += s->stat_offset;
-		data[i] = *(u32 *)p;
+		data[i] = *(unsigned long *)p;
 	}
 }
 
@@ -526,7 +526,8 @@ static struct sk_buff *bcm_sysport_rx_refill(struct bcm_sysport_priv *priv,
 	dma_addr_t mapping;
 
 	/* Allocate a new SKB for a new packet */
-	skb = netdev_alloc_skb(priv->netdev, RX_BUF_LENGTH);
+	skb = __netdev_alloc_skb(priv->netdev, RX_BUF_LENGTH,
+				 GFP_ATOMIC | __GFP_NOWARN);
 	if (!skb) {
 		priv->mib.alloc_rx_buff_failed++;
 		netif_err(priv, rx_err, ndev, "SKB alloc failed\n");
drivers/net/ethernet/broadcom/bnxt/bnxt.c +4 -2
index d91953eabfeb..a3949c1a0c23 100644
@@ -4250,6 +4250,10 @@ static void bnxt_del_napi(struct bnxt *bp)
 		napi_hash_del(&bnapi->napi);
 		netif_napi_del(&bnapi->napi);
 	}
+	/* We called napi_hash_del() before netif_napi_del(), we need
+	 * to respect an RCU grace period before freeing napi structures.
+	 */
+	synchronize_net();
 }
 
 static void bnxt_init_napi(struct bnxt *bp)
@@ -4306,9 +4310,7 @@ static void bnxt_tx_disable(struct bnxt *bp)
 			bnapi = bp->bnapi[i];
 			txr = &bnapi->tx_ring;
 			txq = netdev_get_tx_queue(bp->dev, i);
-			__netif_tx_lock(txq, smp_processor_id());
 			txr->dev_state = BNXT_DEV_STATE_CLOSING;
-			__netif_tx_unlock(txq);
 		}
 	}
 	/* Stop all TX queues */
drivers/net/ethernet/broadcom/genet/bcmgenet.c +8 -3
index 34fae5576b60..bae8df951780 100644
@@ -927,7 +927,11 @@ static void bcmgenet_get_ethtool_stats(struct net_device *dev,
 		else
 			p = (char *)priv;
 		p += s->stat_offset;
-		data[i] = *(u32 *)p;
+		if (sizeof(unsigned long) != sizeof(u32) &&
+		    s->stat_sizeof == sizeof(unsigned long))
+			data[i] = *(unsigned long *)p;
+		else
+			data[i] = *(u32 *)p;
 	}
 }
 
@@ -1346,7 +1350,7 @@ static int bcmgenet_xmit_single(struct net_device *dev,
 
 	tx_cb_ptr->skb = skb;
 
-	skb_len = skb_headlen(skb) < ETH_ZLEN ? ETH_ZLEN : skb_headlen(skb);
+	skb_len = skb_headlen(skb);
 
 	mapping = dma_map_single(kdev, skb->data, skb_len, DMA_TO_DEVICE);
 	ret = dma_mapping_error(kdev, mapping);
@@ -1575,7 +1579,8 @@ static struct sk_buff *bcmgenet_rx_refill(struct bcmgenet_priv *priv,
 	dma_addr_t mapping;
 
 	/* Allocate a new Rx skb */
-	skb = netdev_alloc_skb(priv->dev, priv->rx_buf_len + SKB_ALIGNMENT);
+	skb = __netdev_alloc_skb(priv->dev, priv->rx_buf_len + SKB_ALIGNMENT,
+				 GFP_ATOMIC | __GFP_NOWARN);
 	if (!skb) {
 		priv->mib.alloc_rx_buff_failed++;
 		netif_err(priv, rx_err, priv->dev,
drivers/net/ethernet/brocade/bna/bnad_ethtool.c +6 -1
index 18672ad773fb..856b7abe4b8a 100644
@@ -31,7 +31,7 @@
 #define BNAD_NUM_TXF_COUNTERS 12
 #define BNAD_NUM_RXF_COUNTERS 10
 #define BNAD_NUM_CQ_COUNTERS (3 + 5)
-#define BNAD_NUM_RXQ_COUNTERS 6
+#define BNAD_NUM_RXQ_COUNTERS 7
 #define BNAD_NUM_TXQ_COUNTERS 5
 
 #define BNAD_ETHTOOL_STATS_NUM						\
@@ -658,6 +658,8 @@ bnad_get_strings(struct net_device *netdev, u32 stringset, u8 *string)
 				string += ETH_GSTRING_LEN;
 				sprintf(string, "rxq%d_allocbuf_failed", q_num);
 				string += ETH_GSTRING_LEN;
+				sprintf(string, "rxq%d_mapbuf_failed", q_num);
+				string += ETH_GSTRING_LEN;
 				sprintf(string, "rxq%d_producer_index", q_num);
 				string += ETH_GSTRING_LEN;
 				sprintf(string, "rxq%d_consumer_index", q_num);
@@ -678,6 +680,9 @@ bnad_get_strings(struct net_device *netdev, u32 stringset, u8 *string)
 					sprintf(string, "rxq%d_allocbuf_failed",
 								q_num);
 					string += ETH_GSTRING_LEN;
+					sprintf(string, "rxq%d_mapbuf_failed",
+						q_num);
+					string += ETH_GSTRING_LEN;
 					sprintf(string, "rxq%d_producer_index",
 								q_num);
 					string += ETH_GSTRING_LEN;
drivers/net/ethernet/cadence/macb.c +2 -2
index 75bdb6aad352..78803e7de360 100644
@@ -1104,7 +1104,7 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
 			macb_writel(bp, NCR, ctrl | MACB_BIT(RE));
 
 			if (bp->caps & MACB_CAPS_ISR_CLEAR_ON_WRITE)
-				macb_writel(bp, ISR, MACB_BIT(RXUBR));
+				queue_writel(queue, ISR, MACB_BIT(RXUBR));
 		}
 
 		if (status & MACB_BIT(ISR_ROVR)) {
@@ -2904,7 +2904,7 @@ static int macb_probe(struct platform_device *pdev)
 	dev->irq = platform_get_irq(pdev, 0);
 	if (dev->irq < 0) {
 		err = dev->irq;
-		goto err_disable_clocks;
+		goto err_out_free_netdev;
 	}
 
 	mac = of_get_mac_address(np);
drivers/net/ethernet/chelsio/cxgb4/sge.c +1 -1
index b7b93e7a643d..d579f4770ee3 100644
@@ -1165,7 +1165,7 @@ out_free:	dev_kfree_skb_any(skb);
 
 	/* Discard the packet if the length is greater than mtu */
 	max_pkt_len = ETH_HLEN + dev->mtu;
-	if (skb_vlan_tag_present(skb))
+	if (skb_vlan_tagged(skb))
 		max_pkt_len += VLAN_HLEN;
 	if (!skb_shinfo(skb)->gso_size && (unlikely(skb->len > max_pkt_len)))
 		goto out_free;
drivers/net/ethernet/chelsio/cxgb4vf/sge.c +1 -1
index ec8ffd7eae33..735bcdeaa7de 100644
@@ -1188,7 +1188,7 @@ int t4vf_eth_xmit(struct sk_buff *skb, struct net_device *dev)
 
 	/* Discard the packet if the length is greater than mtu */
 	max_pkt_len = ETH_HLEN + dev->mtu;
-	if (skb_vlan_tag_present(skb))
+	if (skb_vlan_tagged(skb))
 		max_pkt_len += VLAN_HLEN;
 	if (!skb_shinfo(skb)->gso_size && (unlikely(skb->len > max_pkt_len)))
 		goto out_free;
drivers/net/ethernet/cirrus/ep93xx_eth.c +4 -0
index 796ee362ad70..24f69034f52c 100644
@@ -468,6 +468,9 @@ static void ep93xx_free_buffers(struct ep93xx_priv *ep)
 	struct device *dev = ep->dev->dev.parent;
 	int i;
 
+	if (!ep->descs)
+		return;
+
 	for (i = 0; i < RX_QUEUE_ENTRIES; i++) {
 		dma_addr_t d;
 
@@ -490,6 +493,7 @@ static void ep93xx_free_buffers(struct ep93xx_priv *ep)
 
 	dma_free_coherent(dev, sizeof(struct ep93xx_descs), ep->descs,
 							ep->descs_dma_addr);
+	ep->descs = NULL;
 }
 
 static int ep93xx_alloc_buffers(struct ep93xx_priv *ep)
drivers/net/ethernet/emulex/benet/be.h +1 -0
index 6ee78c203eca..e5fb5cf5401b 100644
@@ -531,6 +531,7 @@ struct be_adapter {
 
 	struct delayed_work be_err_detection_work;
 	u8 err_flags;
+	bool pcicfg_mapped;	/* pcicfg obtained via pci_iomap() */
 	u32 flags;
 	u32 cmd_privileges;
 	/* Ethtool knobs and info */
drivers/net/ethernet/emulex/benet/be_main.c +4 -0
index 7524a33b7032..7cd39324106d 100644
@@ -5526,6 +5526,8 @@ static void be_unmap_pci_bars(struct be_adapter *adapter)
 		pci_iounmap(adapter->pdev, adapter->csr);
 	if (adapter->db)
 		pci_iounmap(adapter->pdev, adapter->db);
+	if (adapter->pcicfg && adapter->pcicfg_mapped)
+		pci_iounmap(adapter->pdev, adapter->pcicfg);
 }
 
 static int db_bar(struct be_adapter *adapter)
@@ -5577,8 +5579,10 @@ static int be_map_pci_bars(struct be_adapter *adapter)
 			if (!addr)
 				goto pci_map_err;
 			adapter->pcicfg = addr;
+			adapter->pcicfg_mapped = true;
 		} else {
 			adapter->pcicfg = adapter->db + SRIOV_VF_PCICFG_OFFSET;
+			adapter->pcicfg_mapped = false;
 		}
 	}
 
drivers/net/ethernet/ethoc.c +5 -5
index 52f2230062e7..4d80d9f85c5d 100644
@@ -1088,7 +1088,7 @@ static int ethoc_probe(struct platform_device *pdev)
 	if (!priv->iobase) {
 		dev_err(&pdev->dev, "cannot remap I/O memory space\n");
 		ret = -ENXIO;
-		goto error;
+		goto free;
 	}
 
 	if (netdev->mem_end) {
@@ -1097,7 +1097,7 @@ static int ethoc_probe(struct platform_device *pdev)
 		if (!priv->membase) {
 			dev_err(&pdev->dev, "cannot remap memory space\n");
 			ret = -ENXIO;
-			goto error;
+			goto free;
 		}
 	} else {
 		/* Allocate buffer memory */
@@ -1108,7 +1108,7 @@ static int ethoc_probe(struct platform_device *pdev)
 			dev_err(&pdev->dev, "cannot allocate %dB buffer\n",
 				buffer_size);
 			ret = -ENOMEM;
-			goto error;
+			goto free;
 		}
 		netdev->mem_end = netdev->mem_start + buffer_size;
 		priv->dma_alloc = buffer_size;
@@ -1122,7 +1122,7 @@ static int ethoc_probe(struct platform_device *pdev)
 		128, (netdev->mem_end - netdev->mem_start + 1) / ETHOC_BUFSIZ);
 	if (num_bd < 4) {
 		ret = -ENODEV;
-		goto error;
+		goto free;
 	}
 	priv->num_bd = num_bd;
 	/* num_tx must be a power of two */
@@ -1135,7 +1135,7 @@ static int ethoc_probe(struct platform_device *pdev)
 	priv->vma = devm_kzalloc(&pdev->dev, num_bd*sizeof(void *), GFP_KERNEL);
 	if (!priv->vma) {
 		ret = -ENOMEM;
-		goto error;
+		goto free;
 	}
 
 	/* Allow the platform setup code to pass in a MAC address. */
drivers/net/ethernet/hisilicon/hns/hnae.c +7 -1
index 3ce41efe8a94..4dd57e6bb3f9 100644
@@ -331,8 +331,10 @@ struct hnae_handle *hnae_get_handle(struct device *owner_dev,
 		return ERR_PTR(-ENODEV);
 
 	handle = dev->ops->get_handle(dev, port_id);
-	if (IS_ERR(handle))
+	if (IS_ERR(handle)) {
+		put_device(&dev->cls_dev);
 		return handle;
+	}
 
 	handle->dev = dev;
 	handle->owner_dev = owner_dev;
@@ -355,6 +357,8 @@ out_when_init_queue:
 	for (j = i - 1; j >= 0; j--)
 		hnae_fini_queue(handle->qs[j]);
 
+	put_device(&dev->cls_dev);
+
 	return ERR_PTR(-ENOMEM);
 }
 EXPORT_SYMBOL(hnae_get_handle);
@@ -376,6 +380,8 @@ void hnae_put_handle(struct hnae_handle *h)
 		dev->ops->put_handle(h);
 
 	module_put(dev->owner);
+
+	put_device(&dev->cls_dev);
 }
 EXPORT_SYMBOL(hnae_put_handle);
 
drivers/net/ethernet/ibm/ehea/ehea_main.c +4 -5
index fdbba588c6db..efe84ca20da7 100644
@@ -1169,16 +1169,15 @@ static void ehea_parse_eqe(struct ehea_adapter *adapter, u64 eqe)
 	ec = EHEA_BMASK_GET(NEQE_EVENT_CODE, eqe);
 	portnum = EHEA_BMASK_GET(NEQE_PORTNUM, eqe);
 	port = ehea_get_port(adapter, portnum);
+	if (!port) {
+		netdev_err(NULL, "unknown portnum %x\n", portnum);
+		return;
+	}
 	dev = port->netdev;
 
 	switch (ec) {
 	case EHEA_EC_PORTSTATE_CHG:	/* port state change */
 
-		if (!port) {
-			netdev_err(dev, "unknown portnum %x\n", portnum);
-			break;
-		}
-
 		if (EHEA_BMASK_GET(NEQE_PORT_UP, eqe)) {
 			if (!netif_carrier_ok(dev)) {
 				ret = ehea_sense_port_attr(port);
drivers/net/ethernet/intel/i40e/i40e_hmc.c +1 -1
index 5ebe12d56ebf..a7c7b1d9b7c8 100644
@@ -49,7 +49,7 @@ i40e_status i40e_add_sd_table_entry(struct i40e_hw *hw,
 	struct i40e_hmc_sd_entry *sd_entry;
 	bool dma_mem_alloc_done = false;
 	struct i40e_dma_mem mem;
-	i40e_status ret_code;
+	i40e_status ret_code = I40E_SUCCESS;
 	u64 alloc_len;
 
 	if (NULL == hmc_info->sd_table.sd_entry) {
drivers/net/ethernet/marvell/mv643xx_eth.c +2 -2
index 82f080a5ed5c..7fe6c2cf1c62 100644
@@ -762,10 +762,10 @@ txq_put_data_tso(struct net_device *dev, struct tx_queue *txq,
 
 	if (length <= 8 && (uintptr_t)data & 0x7) {
 		/* Copy unaligned small data fragment to TSO header data area */
-		memcpy(txq->tso_hdrs + txq->tx_curr_desc * TSO_HEADER_SIZE,
+		memcpy(txq->tso_hdrs + tx_index * TSO_HEADER_SIZE,
 		       data, length);
 		desc->buf_ptr = txq->tso_hdrs_dma
-			+ txq->tx_curr_desc * TSO_HEADER_SIZE;
+			+ tx_index * TSO_HEADER_SIZE;
 	} else {
 		/* Alignment is okay, map buffer and hand off to hardware */
 		txq->tx_desc_mapping[tx_index] = DESC_DMA_MAP_SINGLE;
drivers/net/ethernet/marvell/mvneta.c +5 -6
index 1c300259d70a..575da945f151 100644
@@ -3058,26 +3058,25 @@ static void mvneta_ethtool_update_stats(struct mvneta_port *pp)
 	const struct mvneta_statistic *s;
 	void __iomem *base = pp->base;
 	u32 high, low, val;
+	u64 val64;
 	int i;
 
 	for (i = 0, s = mvneta_statistics;
 	     s < mvneta_statistics + ARRAY_SIZE(mvneta_statistics);
 	     s++, i++) {
-		val = 0;
-
 		switch (s->type) {
 		case T_REG_32:
 			val = readl_relaxed(base + s->offset);
+			pp->ethtool_stats[i] += val;
 			break;
 		case T_REG_64:
 			/* Docs say to read low 32-bit then high */
 			low = readl_relaxed(base + s->offset);
 			high = readl_relaxed(base + s->offset + 4);
-			val = (u64)high << 32 | low;
+			val64 = (u64)high << 32 | low;
+			pp->ethtool_stats[i] += val64;
 			break;
 		}
-
-		pp->ethtool_stats[i] += val;
 	}
 }
 
@@ -3406,7 +3405,7 @@ static int mvneta_probe(struct platform_device *pdev)
 	dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO;
 	dev->hw_features |= dev->features;
 	dev->vlan_features |= dev->features;
-	dev->priv_flags |= IFF_UNICAST_FLT | IFF_LIVE_ADDR_CHANGE;
+	dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
 	dev->gso_max_segs = MVNETA_MAX_TSO_SEGS;
 
 	err = register_netdev(dev);
drivers/net/ethernet/marvell/mvpp2.c +1 -1
index 03f0d20aa08b..b508345aeca6 100644
@@ -3305,7 +3305,7 @@ static void mvpp2_cls_init(struct mvpp2 *priv)
 	mvpp2_write(priv, MVPP2_CLS_MODE_REG, MVPP2_CLS_MODE_ACTIVE_MASK);
 
 	/* Clear classifier flow table */
-	memset(&fe.data, 0, MVPP2_CLS_FLOWS_TBL_DATA_WORDS);
+	memset(&fe.data, 0, sizeof(fe.data));
 	for (index = 0; index < MVPP2_CLS_FLOWS_TBL_SIZE; index++) {
 		fe.index = index;
 		mvpp2_cls_flow_write(priv, &fe);
drivers/net/ethernet/mellanox/mlx4/catas.c +9 -2
index e203d0c4e5a3..53daa6ca5d83 100644
@@ -182,10 +182,17 @@ void mlx4_enter_error_state(struct mlx4_dev_persistent *persist)
 		err = mlx4_reset_slave(dev);
 	else
 		err = mlx4_reset_master(dev);
-	BUG_ON(err != 0);
 
+	if (!err) {
+		mlx4_err(dev, "device was reset successfully\n");
+	} else {
+		/* EEH could have disabled the PCI channel during reset. That's
+		 * recoverable and the PCI error flow will handle it.
+		 */
+		if (!pci_channel_offline(dev->persist->pdev))
+			BUG_ON(1);
+	}
 	dev->persist->state |= MLX4_DEVICE_STATE_INTERNAL_ERROR;
-	mlx4_err(dev, "device was reset successfully\n");
 	mutex_unlock(&persist->device_state_mutex);
 
 	/* At that step HW was already reset, now notify clients */
drivers/net/ethernet/mellanox/mlx4/cmd.c +9 -0
index 9e104dcfa9dd..dc1cb6fc5b4e 100644
@@ -2451,6 +2451,7 @@ err_comm_admin:
 	kfree(priv->mfunc.master.slave_state);
 err_comm:
 	iounmap(priv->mfunc.comm);
+	priv->mfunc.comm = NULL;
 err_vhcr:
 	dma_free_coherent(&dev->persist->pdev->dev, PAGE_SIZE,
 			  priv->mfunc.vhcr,
@@ -2518,6 +2519,13 @@ void mlx4_report_internal_err_comm_event(struct mlx4_dev *dev)
 	int slave;
 	u32 slave_read;
 
+	/* If the comm channel has not yet been initialized,
+	 * skip reporting the internal error event to all
+	 * the communication channels.
+	 */
+	if (!priv->mfunc.comm)
+		return;
+
 	/* Report an internal error event to all
 	 * communication channels.
 	 */
@@ -2552,6 +2560,7 @@ void mlx4_multi_func_cleanup(struct mlx4_dev *dev)
 	}
 
 	iounmap(priv->mfunc.comm);
+	priv->mfunc.comm = NULL;
 }
 
 void mlx4_cmd_cleanup(struct mlx4_dev *dev, int cleanup_mask)
drivers/net/ethernet/mellanox/mlx4/en_netdev.c +21 -7
index 232191417b93..7d61a5de9d5a 100644
@@ -424,14 +424,18 @@ static int mlx4_en_vlan_rx_add_vid(struct net_device *dev,
 	mutex_lock(&mdev->state_lock);
 	if (mdev->device_up && priv->port_up) {
 		err = mlx4_SET_VLAN_FLTR(mdev->dev, priv);
-		if (err)
+		if (err) {
 			en_err(priv, "Failed configuring VLAN filter\n");
+			goto out;
+		}
 	}
-	if (mlx4_register_vlan(mdev->dev, priv->port, vid, &idx))
-		en_dbg(HW, priv, "failed adding vlan %d\n", vid);
-	mutex_unlock(&mdev->state_lock);
+	err = mlx4_register_vlan(mdev->dev, priv->port, vid, &idx);
+	if (err)
+		en_dbg(HW, priv, "Failed adding vlan %d\n", vid);
 
-	return 0;
+out:
+	mutex_unlock(&mdev->state_lock);
+	return err;
 }
 
 static int mlx4_en_vlan_rx_kill_vid(struct net_device *dev,
@@ -439,7 +443,7 @@ static int mlx4_en_vlan_rx_kill_vid(struct net_device *dev,
 {
 	struct mlx4_en_priv *priv = netdev_priv(dev);
 	struct mlx4_en_dev *mdev = priv->mdev;
-	int err;
+	int err = 0;
 
 	en_dbg(HW, priv, "Killing VID:%d\n", vid);
 
@@ -456,7 +460,7 @@ static int mlx4_en_vlan_rx_kill_vid(struct net_device *dev,
 	}
 	mutex_unlock(&mdev->state_lock);
 
-	return 0;
+	return err;
 }
 
 static void mlx4_en_u64_to_mac(unsigned char dst_mac[ETH_ALEN + 2], u64 src_mac)
@@ -1716,6 +1720,16 @@ int mlx4_en_start_port(struct net_device *dev)
 		vxlan_get_rx_port(dev);
 #endif
 	priv->port_up = true;
+
+	/* Process all completions if exist to prevent
+	 * the queues freezing if they are full
+	 */
+	for (i = 0; i < priv->rx_ring_num; i++) {
+		local_bh_disable();
+		napi_schedule(&priv->rx_cq[i]->napi);
+		local_bh_enable();
+	}
+
 	netif_tx_start_all_queues(dev);
 	netif_device_attach(dev);
 
drivers/net/ethernet/mellanox/mlx4/en_port.c +2 -2
index 3904b5fc0b7c..96fc35a9bb05 100644
@@ -164,7 +164,7 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset)
 		return PTR_ERR(mailbox);
 	err = mlx4_cmd_box(mdev->dev, 0, mailbox->dma, in_mod, 0,
 			   MLX4_CMD_DUMP_ETH_STATS, MLX4_CMD_TIME_CLASS_B,
-			   MLX4_CMD_WRAPPED);
+			   MLX4_CMD_NATIVE);
 	if (err)
 		goto out;
 
@@ -325,7 +325,7 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset)
 		err = mlx4_cmd_box(mdev->dev, 0, mailbox->dma,
 				   in_mod | MLX4_DUMP_ETH_STATS_FLOW_CONTROL,
 				   0, MLX4_CMD_DUMP_ETH_STATS,
-				   MLX4_CMD_TIME_CLASS_B, MLX4_CMD_WRAPPED);
+				   MLX4_CMD_TIME_CLASS_B, MLX4_CMD_NATIVE);
 		if (err)
 			goto out;
 	}
drivers/net/ethernet/mellanox/mlx4/fw.c +2 -3
index 033f99d2f15c..5ac6e62f7dcc 100644
@@ -610,8 +610,7 @@ int mlx4_QUERY_FUNC_CAP(struct mlx4_dev *dev, u8 gen_or_port,
 		MLX4_GET(func_cap->phys_port_id, outbox,
 			 QUERY_FUNC_CAP_PHYS_PORT_ID);
 
-	MLX4_GET(field, outbox, QUERY_FUNC_CAP_FLAGS0_OFFSET);
-	func_cap->flags |= (field & QUERY_FUNC_CAP_PHV_BIT);
+	MLX4_GET(func_cap->flags0, outbox, QUERY_FUNC_CAP_FLAGS0_OFFSET);
 
 	/* All other resources are allocated by the master, but we still report
 	 * 'num' and 'reserved' capabilities as follows:
@@ -2840,7 +2839,7 @@ int get_phv_bit(struct mlx4_dev *dev, u8 port, int *phv)
 	memset(&func_cap, 0, sizeof(func_cap));
 	err = mlx4_QUERY_FUNC_CAP(dev, port, &func_cap);
 	if (!err)
-		*phv = func_cap.flags & QUERY_FUNC_CAP_PHV_BIT;
+		*phv = func_cap.flags0 & QUERY_FUNC_CAP_PHV_BIT;
 	return err;
 }
 EXPORT_SYMBOL(get_phv_bit);
drivers/net/ethernet/mellanox/mlx4/fw.h +1 -1
index 08de5555c2f4..074631be342b 100644
@@ -150,7 +150,7 @@ struct mlx4_func_cap {
 	u32	qp1_proxy_qpn;
 	u32	reserved_lkey;
 	u8	physical_port;
-	u8	port_flags;
+	u8	flags0;
 	u8	flags1;
 	u64	phys_port_id;
 	u32	extra_flags;
drivers/net/ethernet/mellanox/mlx4/intf.c +3 -0
index 1a134e08f010..cfc2a7632201 100644
@@ -217,6 +217,9 @@ void mlx4_unregister_device(struct mlx4_dev *dev)
 	struct mlx4_priv *priv = mlx4_priv(dev);
 	struct mlx4_interface *intf;
 
+	if (!(dev->persist->interface_state & MLX4_INTERFACE_STATE_UP))
+		return;
+
 	mlx4_stop_catas_poll(dev);
 	if (dev->persist->interface_state & MLX4_INTERFACE_STATE_DELETION &&
 	    mlx4_is_slave(dev)) {
drivers/net/ethernet/mellanox/mlx4/main.c +24 -15
index a7d3144c2388..f8ac0e69d14b 100644
@@ -3854,45 +3854,53 @@ static pci_ers_result_t mlx4_pci_slot_reset(struct pci_dev *pdev)
 {
 	struct mlx4_dev_persistent *persist = pci_get_drvdata(pdev);
 	struct mlx4_dev	 *dev  = persist->dev;
-	struct mlx4_priv *priv = mlx4_priv(dev);
-	int               ret;
-	int nvfs[MLX4_MAX_PORTS + 1] = {0, 0, 0};
-	int total_vfs;
+	int err;
 
 	mlx4_err(dev, "mlx4_pci_slot_reset was called\n");
-	ret = pci_enable_device(pdev);
-	if (ret) {
-		mlx4_err(dev, "Can not re-enable device, ret=%d\n", ret);
+	err = pci_enable_device(pdev);
+	if (err) {
+		mlx4_err(dev, "Can not re-enable device, err=%d\n", err);
 		return PCI_ERS_RESULT_DISCONNECT;
 	}
 
 	pci_set_master(pdev);
 	pci_restore_state(pdev);
 	pci_save_state(pdev);
+	return PCI_ERS_RESULT_RECOVERED;
+}
+
+static void mlx4_pci_resume(struct pci_dev *pdev)
+{
+	struct mlx4_dev_persistent *persist = pci_get_drvdata(pdev);
+	struct mlx4_dev	 *dev  = persist->dev;
+	struct mlx4_priv *priv = mlx4_priv(dev);
+	int nvfs[MLX4_MAX_PORTS + 1] = {0, 0, 0};
+	int total_vfs;
+	int err;
 
+	mlx4_err(dev, "%s was called\n", __func__);
 	total_vfs = dev->persist->num_vfs;
 	memcpy(nvfs, dev->persist->nvfs, sizeof(dev->persist->nvfs));
 
 	mutex_lock(&persist->interface_state_mutex);
 	if (!(persist->interface_state & MLX4_INTERFACE_STATE_UP)) {
-		ret = mlx4_load_one(pdev, priv->pci_dev_data, total_vfs, nvfs,
+		err = mlx4_load_one(pdev, priv->pci_dev_data, total_vfs, nvfs,
 				    priv, 1);
-		if (ret) {
-			mlx4_err(dev, "%s: mlx4_load_one failed, ret=%d\n",
-				 __func__,  ret);
+		if (err) {
+			mlx4_err(dev, "%s: mlx4_load_one failed, err=%d\n",
+				 __func__,  err);
 			goto end;
 		}
 
-		ret = restore_current_port_types(dev, dev->persist->
+		err = restore_current_port_types(dev, dev->persist->
 						 curr_port_type, dev->persist->
 						 curr_port_poss_type);
-		if (ret)
-			mlx4_err(dev, "could not restore original port types (%d)\n", ret);
+		if (err)
+			mlx4_err(dev, "could not restore original port types (%d)\n", err);
 	}
 end:
 	mutex_unlock(&persist->interface_state_mutex);
 
-	return ret ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED;
 }
 
 static void mlx4_shutdown(struct pci_dev *pdev)
@@ -3909,6 +3917,7 @@ static void mlx4_shutdown(struct pci_dev *pdev)
 static const struct pci_error_handlers mlx4_err_handler = {
 	.error_detected = mlx4_pci_err_detected,
 	.slot_reset     = mlx4_pci_slot_reset,
+	.resume		= mlx4_pci_resume,
 };
 
 static struct pci_driver mlx4_driver = {
drivers/net/ethernet/mellanox/mlx4/mcg.c +8 -3
index 3bf63de3a725..15c8f53f2497 100644
@@ -1109,7 +1109,7 @@ int mlx4_qp_attach_common(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
 	struct mlx4_cmd_mailbox *mailbox;
 	struct mlx4_mgm *mgm;
 	u32 members_count;
-	int index, prev;
+	int index = -1, prev;
 	int link = 0;
 	int i;
 	int err;
@@ -1188,7 +1188,7 @@ int mlx4_qp_attach_common(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
 		goto out;
 
 out:
-	if (prot == MLX4_PROT_ETH) {
+	if (prot == MLX4_PROT_ETH && index != -1) {
 		/* manage the steering entry for promisc mode */
 		if (new_entry)
 			err = new_steering_entry(dev, port, steer,
@@ -1464,7 +1464,12 @@ EXPORT_SYMBOL_GPL(mlx4_multicast_detach);
 int mlx4_flow_steer_promisc_add(struct mlx4_dev *dev, u8 port,
 				u32 qpn, enum mlx4_net_trans_promisc_mode mode)
 {
-	struct mlx4_net_trans_rule rule;
+	struct mlx4_net_trans_rule rule = {
+		.queue_mode = MLX4_NET_TRANS_Q_FIFO,
+		.exclusive = 0,
+		.allow_loopback = 1,
+	};
+
 	u64 *regid_p;
 
 	switch (mode) {
drivers/net/ethernet/mellanox/mlx4/mlx4.h +2 -3
index db40387ffaf6..b0af462f5e04 100644
@@ -143,9 +143,10 @@ enum mlx4_resource {
 	RES_MTT,
 	RES_MAC,
 	RES_VLAN,
-	RES_EQ,
+	RES_NPORT_ID,
 	RES_COUNTER,
 	RES_FS_RULE,
+	RES_EQ,
 	MLX4_NUM_OF_RESOURCE_TYPE
 };
 
@@ -1312,8 +1313,6 @@ int mlx4_SET_VLAN_FLTR_wrapper(struct mlx4_dev *dev, int slave,
 			       struct mlx4_cmd_info *cmd);
 int mlx4_common_set_vlan_fltr(struct mlx4_dev *dev, int function,
 				     int port, void *buf);
-int mlx4_common_dump_eth_stats(struct mlx4_dev *dev, int slave, u32 in_mod,
-				struct mlx4_cmd_mailbox *outbox);
 int mlx4_DUMP_ETH_STATS_wrapper(struct mlx4_dev *dev, int slave,
 				   struct mlx4_vhcr *vhcr,
 				   struct mlx4_cmd_mailbox *inbox,
drivers/net/ethernet/mellanox/mlx4/port.c +1 -12
index a9c4818448f9..d764081ef675 100644
@@ -1155,24 +1155,13 @@ int mlx4_SET_VLAN_FLTR_wrapper(struct mlx4_dev *dev, int slave,
 	return err;
 }
 
-int mlx4_common_dump_eth_stats(struct mlx4_dev *dev, int slave,
-			       u32 in_mod, struct mlx4_cmd_mailbox *outbox)
-{
-	return mlx4_cmd_box(dev, 0, outbox->dma, in_mod, 0,
-			    MLX4_CMD_DUMP_ETH_STATS, MLX4_CMD_TIME_CLASS_B,
-			    MLX4_CMD_NATIVE);
-}
-
 int mlx4_DUMP_ETH_STATS_wrapper(struct mlx4_dev *dev, int slave,
 				struct mlx4_vhcr *vhcr,
 				struct mlx4_cmd_mailbox *inbox,
 				struct mlx4_cmd_mailbox *outbox,
 				struct mlx4_cmd_info *cmd)
 {
-	if (slave != dev->caps.function)
-		return 0;
-	return mlx4_common_dump_eth_stats(dev, slave,
-					  vhcr->in_modifier, outbox);
+	return 0;
 }
 
 int mlx4_get_slave_from_roce_gid(struct mlx4_dev *dev, int port, u8 *gid,
drivers/net/ethernet/mellanox/mlx4/resource_tracker.c +6 -4
index 170a49a6803e..6466edfc833b 100644
@@ -918,11 +918,13 @@ static int handle_existing_counter(struct mlx4_dev *dev, u8 slave, int port,
 
 	spin_lock_irq(mlx4_tlock(dev));
 	r = find_res(dev, counter_index, RES_COUNTER);
-	if (!r || r->owner != slave)
+	if (!r || r->owner != slave) {
 		ret = -EINVAL;
-	counter = container_of(r, struct res_counter, com);
-	if (!counter->port)
-		counter->port = port;
+	} else {
+		counter = container_of(r, struct res_counter, com);
+		if (!counter->port)
+			counter->port = port;
+	}
 
 	spin_unlock_irq(mlx4_tlock(dev));
 	return ret;
drivers/net/ethernet/mellanox/mlx5/core/cmd.c +64 -53

185 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en.h +1 -1
index 7a716733d9ca..717a381bcfd1 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +4 -4
index c1dd75fe935f..392fa74f1952 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +4 -3
index 1341b1d3c421..7e2026429d26 100644

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

drivers/net/ethernet/mellanox/mlx5/core/health.c +8 -3
index f5deb642d0d6..94594d47cae6 100644

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

drivers/net/ethernet/mellanox/mlx5/core/main.c +36 -48

84 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c +18 -8
index 4d3377b12657..9a6bd830d104 100644

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

drivers/net/ethernet/mellanox/mlx5/core/qp.c +1 -1
index 30e2ba3f5f16..a4f8c1b99f71 100644

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

drivers/net/ethernet/mellanox/mlx5/core/wq.c +8 -7
index ce21ee5b2357..821a087c7ae2 100644

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

drivers/net/ethernet/mellanox/mlxsw/pci.c +1 -1
index de69e719dc9d..75a590d1ae40 100644

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

drivers/net/ethernet/mellanox/mlxsw/port.h +1 -1
index 726f5435b32f..ae65b9940aed 100644

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

drivers/net/ethernet/mellanox/mlxsw/spectrum.c +8 -3
index cb165c2d4803..b23f508de811 100644

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

drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +2 -2
index d4c4c2b5156c..a1df4227ed9d 100644

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

drivers/net/ethernet/mellanox/mlxsw/switchx2.c +2 -1
index fb2d9a82ce3d..4d7b3edf6662 100644

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

drivers/net/ethernet/micrel/ks8842.c +6 -4
index 09d2e16fd6b0..cb0102dd7f70 100644

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

drivers/net/ethernet/moxa/moxart_ether.c +2 -2
index a10c928bbd6b..f1dde59c9fa6 100644

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

drivers/net/ethernet/qlogic/qede/qede_main.c +1 -1
index 8b63c9d183a2..c677b69bbb0b 100644

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

drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c +1 -1
index 98042a3701b5..621eac53ab01 100644

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

drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c +6 -2
index e5ea8e972b91..5174e0bd75d1 100644

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

drivers/net/ethernet/renesas/ravb_main.c +2 -0
index fedfd94699cb..5b6320f9c935 100644

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

drivers/net/ethernet/sfc/ef10.c +2 -1
index 6dcd436e6e32..e289cb47e6ab 100644

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

drivers/net/ethernet/sfc/efx.c +3 -0
index a3c42a376741..167ccb27e2f1 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c +11 -1
index b1e5f24708c9..05e46a82cdb1 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c +10 -1
index 68a58333bd74..f2f24f99d086 100644

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

drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c +10 -1
index 58c05acc2aab..a1ce018bf844 100644

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

drivers/net/ethernet/ti/cpsw-phy-sel.c +3 -0
index e9cc61e1ec74..7b0dfdced517 100644

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

drivers/net/ethernet/ti/cpsw.c +11 -3
index 9a9cb6b11e4c..6ee0bd72d89b 100644

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

drivers/net/ethernet/ti/davinci_emac.c +4 -3
index 8ecb24186b7f..e4c4747bdf32 100644

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

drivers/net/ethernet/xilinx/xilinx_axienet_main.c +2 -2
index 7f1a57bb2ab1..44870fc37f54 100644

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

drivers/net/geneve.c +11 -3
index f0961cbaf87e..1988bc00de3c 100644

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

drivers/net/macvlan.c +8 -2
index d5d4d109ee10..0c4e1ef80355 100644

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

drivers/net/macvtap.c +1 -1
index ed96fdefd8e5..3a76ca395103 100644

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

drivers/net/phy/at803x.c +3 -3
index 37333d38b576..f88e7cc813ef 100644

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

drivers/net/phy/bcm7xxx.c +1 -1
index bffa70e46202..b7bc27a89454 100644

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

drivers/net/phy/mdio-sun4i.c +3 -1
index afd76e07088b..0e8dd446e8c1 100644

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

drivers/net/phy/micrel.c +10 -2
index ba84fc3637b1..4eba646789c3 100644

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

drivers/net/phy/phy.c +28 -18

46 lines not on this page · raw message

drivers/net/phy/phy_device.c +2 -0
index b15eceb8b442..3b2b853ee3d3 100644

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

drivers/net/vrf.c +16 -161

177 lines not on this page · raw message

drivers/net/vxlan.c +36 -26

62 lines not on this page · raw message

drivers/net/wimax/i2400m/usb-fw.c +1 -0
index e74664b84925..4e4167976acf 100644

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

drivers/net/wireless/ath/ath10k/core.c +1 -1
index 0c23768aa1ec..ef9fb9ddde5e 100644

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

drivers/net/wireless/ath/ath9k/htc_hst.c +1 -1
index 2294709ee8b0..fd85f996c554 100644

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

drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c +16 -0
index 231c0ba6acb9..1992aae137cd 100644

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

drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c +17 -5
index 086cac3f86d6..7b120d841aed 100644

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

drivers/net/wireless/brcm80211/brcmfmac/msgbuf.c +2 -0
index 6f7138cea555..f944f356d9c5 100644

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

drivers/net/wireless/iwlwifi/iwl-7000.c +1 -1
index d9a4aee246a6..c7e34bb486c9 100644

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

drivers/net/wireless/mwifiex/pcie.h +5 -4
index 48e549c3b285..347ba45f1f2a 100644

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

drivers/net/wireless/mwifiex/sta_event.c +6 -4
index ff3ee9dfbbd5..23bae87d4d3d 100644

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

drivers/net/wireless/mwifiex/wmm.c +4 -2
index 3a2ecb6cf1c3..cad399221b61 100644

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

drivers/of/of_mdio.c +4 -1
index a87a868fed64..2b1ccb806249 100644

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

drivers/pci/pci-sysfs.c +3 -4
index 6ac6618c1c10..ac9c1172c84a 100644

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

drivers/pinctrl/bcm/pinctrl-bcm2835.c +1 -1
index 17dd8fe12b54..4ae15edde037 100644

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

drivers/pinctrl/pinctrl-tegra.c +1 -1
index a30e967d75c2..d3d1dceaec2d 100644

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

drivers/power/bq27xxx_battery.c +13 -7
index 6c3a447f378b..286122df3e01 100644

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

drivers/power/ipaq_micro_battery.c +1 -1
index f03014ea1dc4..65e9921c5a11 100644

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

drivers/power/test_power.c +2 -0
index 83c42ea88f2b..57246cdbd042 100644

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

drivers/power/tps65217_charger.c +5 -1
index 040a40b4b173..4c56e54af6ac 100644

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

drivers/regulator/core.c +12 -17
index f9b8c44677eb..fbf16603c494 100644

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

drivers/scsi/cxgbi/libcxgbi.c +1 -0
index 5eaf14c15590..59cb3af9a318 100644

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

drivers/staging/media/lirc/lirc_imon.c +2 -0
index 534b8103ae80..ff1926ca1f96 100644

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

drivers/staging/rtl8192u/r8192U_core.c +2 -2
index 0f6bc6b8e4c6..1e0d2a33787e 100644

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

drivers/target/target_core_configfs.c +3 -3
index b9b9ffde4c7a..d2ceefe4a076 100644

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

drivers/tty/serial/msm_serial.c +66 -33

99 lines not on this page · raw message

drivers/tty/serial/samsung.c +2 -2
index 12bac2cbae4b..8d485f82443e 100644

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

drivers/usb/gadget/function/f_acm.c +2 -2
index 67e474b13fca..670a89f197cd 100644

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

drivers/usb/gadget/udc/pch_udc.c +10 -20
index 2806457b4748..3fd603494e86 100644

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

drivers/usb/gadget/udc/udc-core.c +1 -1
index 89f7cd66f5e6..a6a1678cb927 100644

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

drivers/vfio/pci/vfio_pci_config.c +2 -1
index ad5929fbceb1..98a12be76c9c 100644

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

drivers/vfio/platform/reset/vfio_platform_amdxgbe.c +1 -1
index da5356f48d0b..d4030d0c38e9 100644

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

fs/btrfs/disk-io.c +1 -1
index 774728143b63..de63cb9bc64b 100644

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

fs/btrfs/extent-tree.c +1 -1
index 34ffc125763f..3bb731b2156c 100644

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

fs/cifs/connect.c +2 -0
index cf104bbe30a1..c9793ce0d336 100644

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

fs/gfs2/file.c +4 -1
index 8744bd773823..dec23fb358ec 100644

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

fs/nfs/nfs4proc.c +4 -0
index 08207001d475..0308b5689638 100644

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

include/asm-generic/preempt.h +2 -2
index 5d8ffa3e6f8c..c1cde3577551 100644

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

include/linux/cpufreq.h +0 -4
index e684a9ba98a3..a0e12cf8919c 100644

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

include/linux/ieee80211.h +9 -0
index 149a7a6687e9..e7a278ca1fde 100644

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

include/linux/mlx5/driver.h +2 -1
index 412aa988c6ad..06cc39623d13 100644

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

include/linux/mlx5/qp.h +1 -0
index a8786d27ab81..489fc317746a 100644

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

include/linux/mtd/nand.h +2 -2
index 5a9d1d4c2487..93fc37200793 100644

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

include/linux/netdevice.h +4 -1
index d999e503ba8a..c1a42027ee0e 100644

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

include/linux/sunrpc/msg_prot.h +2 -2
index 807371357160..59cbf16eaeb5 100644

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

include/net/bonding.h +6 -1
index d5abd3a80896..6fbfc21b27b1 100644

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

include/net/ip6_fib.h +2 -0
index fa5e703a14ed..a6bcb18ac4c3 100644

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

include/net/ip6_route.h +3 -0
index df6474c37ca0..8d0a9b1fc39a 100644

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

include/net/ip_fib.h +2 -1
index f6ff83b2ac87..b8dfab88c877 100644

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

include/net/route.h +3 -0
index d2a92d94ff72..6be55d00a200 100644

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

include/net/sch_generic.h +4 -1
index ccd2a964dad7..d236ce450da3 100644

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

include/net/sock.h +13 -5
index de4434284a34..be5ec94020f1 100644

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

include/net/xfrm.h +3 -1
index 631614856afc..89685c7bc7c0 100644

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

kernel/bpf/syscall.c +3 -1
index fd3fd8d17ef5..01431ef8cf07 100644

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

kernel/sched/fair.c +11 -16
index b42d2b8b283e..0daf4a40a985 100644

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

kernel/trace/bpf_trace.c +4 -0
index 3dd40c736067..a71bdad638d5 100644

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

lib/mpi/longlong.h +17 -17
index d2ecf0a09180..f1f31c754b3e 100644

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

net/batman-adv/main.c +1 -1
index 2bdbaff3279b..88cea5154113 100644

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

net/batman-adv/translation-table.c +4 -2
index 67ee7c83a28d..06f366d234ff 100644

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

net/bridge/br_fdb.c +27 -25

52 lines not on this page · raw message

net/bridge/br_input.c +2 -5
index e24754a0e052..920b7c0f1e2d 100644

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

net/core/dev.c +1 -0
index 108c32903a74..a1043225c0c0 100644

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

net/core/flow_dissector.c +9 -8
index 496bfcb787e7..189c3f2326f9 100644

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

net/core/rtnetlink.c +1 -0
index a9da58204afa..6f32d3086c7a 100644

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

net/core/skbuff.c +4 -6
index 2f63a90065e6..4e944fe98627 100644

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

net/core/sock.c +4 -3
index 0f4c15fcd87d..60b19c3bb0f7 100644

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

net/dccp/ipv4.c +1 -1
index ef4c44d46293..3f51280374f0 100644

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

net/dccp/ipv6.c +1 -1
index d2caa4d69159..10eabd1a60aa 100644

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

net/dsa/slave.c +5 -2
index 4256ac95a141..061c3939f93b 100644

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

net/ipv4/devinet.c +6 -6
index 03ccacff3c3d..b062f4c41306 100644

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

net/ipv4/fib_frontend.c +2 -1
index 1f7b47ca2243..7d98aaa3bcad 100644

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

net/ipv4/fib_semantics.c +6 -2
index 3109b9bb95d2..498d5a929d6f 100644

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

net/ipv4/fib_trie.c +3 -1
index 0d87639deb27..09b01b888583 100644

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

net/ipv4/fou.c +6 -0
index b5a137338e50..7ac370505e44 100644

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

net/ipv4/gre_offload.c +8 -0
index 79ae0d7becbf..d9268af2ea44 100644

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

net/ipv4/icmp.c +2 -2
index 031945bead36..9a9f49b55abd 100644

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

net/ipv4/ip_gre.c +34 -12

46 lines not on this page · raw message

net/ipv4/ip_sockglue.c +5 -2
index 1ea36bf778e6..9a7b60d6c670 100644

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

net/ipv4/netfilter/nft_dup_ipv4.c +4 -2
index bf855e64fc45..0c01a270bf9f 100644

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

net/ipv4/route.c +12 -5
index 74ae703c6909..29a87fadf01b 100644

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

net/ipv4/tcp_input.c +4 -1
index 88bfd663d9a2..64c7265793a5 100644

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

net/ipv4/udp.c +8 -5
index 0924f93a0aff..bb306996c15e 100644

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

net/ipv6/addrconf.c +19 -2
index 086cdf9f0501..583765a330ff 100644

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

net/ipv6/icmp.c +2 -3
index 3697cd08c515..d21e81cd6120 100644

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

net/ipv6/ip6_checksum.c +5 -2
index 391a8fedb27e..1132624edee9 100644

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

net/ipv6/ip6_vti.c +1 -3
index 4d273adcf130..2267920c086a 100644

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

net/ipv6/ip6mr.c +7 -6
index 91f16e679f63..20812e8b24dd 100644

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

net/ipv6/netfilter/nft_dup_ipv6.c +4 -2
index 8bfd470cbe72..831f86e1ec08 100644

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

net/ipv6/route.c +52 -23

75 lines not on this page · raw message

net/ipv6/tcp_ipv6.c +6 -1
index 6e7f99569bdf..6a36fcc5c4e1 100644

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

net/ipv6/udp.c +3 -3
index f4e06748f86b..73f111206e36 100644

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

net/ipv6/xfrm6_input.c +11 -4
index 0eaab1fa6be5..b5789562aded 100644

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

net/ipv6/xfrm6_tunnel.c +1 -1
index f9d493c59d6c..07b7b2540579 100644

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

net/irda/af_irda.c +2 -3
index 7cc9db38e1b6..0e8f8a3f7b23 100644

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

net/l2tp/l2tp_core.c +3 -0
index 2b8b5c57c7f0..8cbccddc0b1e 100644

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

net/mac80211/ieee80211_i.h +4 -0
index 72f76da88912..a991d1df6774 100644

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

net/mac80211/mlme.c +1 -1
index 031fbfd36d58..4ab78bc6c2ca 100644

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

net/mac80211/offchannel.c +2 -3
index b6be51940ead..af489405d5b3 100644

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

net/mac80211/rx.c +3 -5
index 2b7975c4dac7..a74a6ff18f91 100644

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

net/mac80211/status.c +2 -3
index d221300e59e5..618479e0d648 100644

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

net/mac80211/tdls.c +35 -8

43 lines not on this page · raw message

net/mac80211/tx.c +1 -1
index 41f3eb565ef3..98c34c3adf39 100644

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

net/mac80211/vht.c +25 -5
index c38b2f07a919..c77ef4e2daa3 100644

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

net/netfilter/nf_tables_api.c +3 -1
index a7967af0da82..6203995003a5 100644

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

net/netfilter/nf_tables_core.c +1 -1
index 99bc2f87a974..204be9374657 100644

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

net/netfilter/nfnetlink.c +3 -3
index 044559c10e98..f01764b94b34 100644

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

net/netfilter/nft_dynset.c +3 -0
index 0a5df0cbaa28..a6c29c5bbfbd 100644

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

net/nfc/nci/core.c +3 -3
index 67583ad7f610..6ac1a8d19b88 100644

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

net/openvswitch/actions.c +15 -5
index 7cb8184ac165..fd6c587b6a04 100644

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

net/rds/tcp.c +1 -1
index c10622a9321c..465756fe7958 100644

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

net/rds/tcp_listen.c +24 -16
index e353e3255206..5213cd781c24 100644

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

net/sched/cls_bpf.c +8 -5
index 3eef0215e53f..cdfb8d33bcba 100644

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

net/sched/cls_flower.c +13 -15
index 5ab8205f988b..a97096a7f801 100644

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

net/sched/sch_drr.c +4 -0
index d6e3ad43cecb..06e42727590a 100644

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

net/sched/sch_fq.c +18 -14
index eb814ffc0902..f4aa2ab4713a 100644

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

net/sched/sch_fq_codel.c +1 -1
index 1800f7977595..70e0dfd21f04 100644

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

net/sched/sch_generic.c +7 -4
index eec6dc2d3152..09cd65434748 100644

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

net/sched/sch_hfsc.c +4 -8
index d783d7cc3348..1ac9f9f03fe3 100644

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

net/sched/sch_prio.c +4 -0
index ca9fb2b0c14a..40ed14433f2c 100644

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

net/sched/sch_qfq.c +3 -0
index 8d2d8d953432..8dabd8257b49 100644

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

net/sched/sch_sfb.c +3 -0
index 10c0b184cdbe..624b5e6fa52f 100644

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

net/sched/sch_tbf.c +4 -0
index 05c7a66f64da..87dee4deb66e 100644

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

net/sctp/associola.c +1 -1
index f085b01b6603..f24d31f12cb4 100644

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

net/sctp/sm_make_chunk.c +5 -1
index 509e9426a056..e3e44237de1c 100644

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

net/sctp/transport.c +1 -1
index aab9e3f29755..fbbe268e34e7 100644

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

net/sunrpc/xprtrdma/backchannel.c +6 -16
index 2dcb44f69e53..ddd70aec4d88 100644

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

net/sunrpc/xprtrdma/transport.c +3 -0
index 8c545f7d7525..740bddcf3488 100644

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

net/sunrpc/xprtrdma/verbs.c +23 -18

41 lines not on this page · raw message

net/sunrpc/xprtrdma/xprt_rdma.h +1 -1
index ac7f8d4f632a..36ec6a602665 100644

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

net/tipc/udp_media.c +4 -1
index 78d6b78de29d..cb39f1c4251e 100644

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

net/xfrm/xfrm_input.c +7 -7
index 1c4ad477ce93..6e3f0254d8a1 100644

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

net/xfrm/xfrm_state.c +1 -0
index 787f2cac18c5..d3595f1d00f2 100644

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

net/xfrm/xfrm_user.c +9 -6
index dd0509ee14da..158f630cc7a6 100644

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

scripts/config +4 -1
index 026aeb4f32ee..73de17d39698 100755

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

sound/pci/fm801.c +43 -28

71 lines not on this page · raw message

sound/pci/hda/hda_intel.c +5 -4
index da9f6749b3be..8dd6cf0b8939 100644

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

sound/soc/fsl/fsl_ssi.c +7 -1
index d46e9ad600b4..06736bea422e 100644

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

sound/soc/intel/atom/sst/sst_stream.c +1 -1
index e83da42a8c03..c798f8d4ae43 100644

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

sound/soc/tegra/tegra_alc5632.c +8 -4
index ba272e21a6fa..deb597f7c302 100644

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

tools/perf/util/perf_regs.c +4 -4
index 6b8eb13e14e4..c4023f22f287 100644

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

tools/testing/selftests/ipc/msgque.c +1 -1
index 1b2ce334bb3f..47c074d73e61 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.