Skip to content
  1. Aug 08, 2020
  2. Aug 07, 2020
    • Xie He's avatar
      drivers/net/wan/lapbether: Added needed_headroom and a skb->len check · c7ca03c2
      Xie He authored
      
      
      1. Added a skb->len check
      
      This driver expects upper layers to include a pseudo header of 1 byte
      when passing down a skb for transmission. This driver will read this
      1-byte header. This patch added a skb->len check before reading the
      header to make sure the header exists.
      
      2. Changed to use needed_headroom instead of hard_header_len to request
      necessary headroom to be allocated
      
      In net/packet/af_packet.c, the function packet_snd first reserves a
      headroom of length (dev->hard_header_len + dev->needed_headroom).
      Then if the socket is a SOCK_DGRAM socket, it calls dev_hard_header,
      which calls dev->header_ops->create, to create the link layer header.
      If the socket is a SOCK_RAW socket, it "un-reserves" a headroom of
      length (dev->hard_header_len), and assumes the user to provide the
      appropriate link layer header.
      
      So according to the logic of af_packet.c, dev->hard_header_len should
      be the length of the header that would be created by
      dev->header_ops->create.
      
      However, this driver doesn't provide dev->header_ops, so logically
      dev->hard_header_len should be 0.
      
      So we should use dev->needed_headroom instead of dev->hard_header_len
      to request necessary headroom to be allocated.
      
      This change fixes kernel panic when this driver is used with AF_PACKET
      SOCK_RAW sockets.
      
      Call stack when panic:
      
      [  168.399197] skbuff: skb_under_panic: text:ffffffff819d95fb len:20
      put:14 head:ffff8882704c0a00 data:ffff8882704c09fd tail:0x11 end:0xc0
      dev:veth0
      ...
      [  168.399255] Call Trace:
      [  168.399259]  skb_push.cold+0x14/0x24
      [  168.399262]  eth_header+0x2b/0xc0
      [  168.399267]  lapbeth_data_transmit+0x9a/0xb0 [lapbether]
      [  168.399275]  lapb_data_transmit+0x22/0x2c [lapb]
      [  168.399277]  lapb_transmit_buffer+0x71/0xb0 [lapb]
      [  168.399279]  lapb_kick+0xe3/0x1c0 [lapb]
      [  168.399281]  lapb_data_request+0x76/0xc0 [lapb]
      [  168.399283]  lapbeth_xmit+0x56/0x90 [lapbether]
      [  168.399286]  dev_hard_start_xmit+0x91/0x1f0
      [  168.399289]  ? irq_init_percpu_irqstack+0xc0/0x100
      [  168.399291]  __dev_queue_xmit+0x721/0x8e0
      [  168.399295]  ? packet_parse_headers.isra.0+0xd2/0x110
      [  168.399297]  dev_queue_xmit+0x10/0x20
      [  168.399298]  packet_sendmsg+0xbf0/0x19b0
      ......
      
      Cc: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
      Cc: Martin Schiller <ms@dev.tdt.de>
      Cc: Brian Norris <briannorris@chromium.org>
      Signed-off-by: default avatarXie He <xie.he.0141@gmail.com>
      Acked-by: default avatarWillem de Bruijn <willemb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c7ca03c2
    • Colin Ian King's avatar
      net: hns3: fix spelling mistake "could'nt" -> "couldn't" · 8912fd6a
      Colin Ian King authored
      
      
      There is a spelling mistake in a dev_err message. Fix it.
      
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8912fd6a
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-5.9' of git://github.com/cschaufler/smack-next · bfdd5aaa
      Linus Torvalds authored
      Pull smack updates from Casey Schaufler:
       "Minor fixes to Smack for the v5.9 release.
      
        All were found by automated checkers and have straightforward
        resolution"
      
      * tag 'Smack-for-5.9' of git://github.com/cschaufler/smack-next:
        Smack: prevent underflow in smk_set_cipso()
        Smack: fix another vsscanf out of bounds
        Smack: fix use-after-free in smk_write_relabel_self()
      bfdd5aaa
    • Linus Torvalds's avatar
      Merge tag 'mips_5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · b62e4197
      Linus Torvalds authored
      Pull MIPS upates from Thomas Bogendoerfer:
      
       - improvements for Loongson64
      
       - extended ingenic support
      
       - removal of not maintained paravirt system type
      
       - cleanups and fixes
      
      * tag 'mips_5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (81 commits)
        MIPS: SGI-IP27: always enable NUMA in Kconfig
        MAINTAINERS: Update KVM/MIPS maintainers
        MIPS: Update default config file for Loongson-3
        MIPS: KVM: Add kvm guest support for Loongson-3
        dt-bindings: mips: Document Loongson kvm guest board
        MIPS: handle Loongson-specific GSExc exception
        MIPS: add definitions for Loongson-specific CP0.Diag1 register
        MIPS: only register FTLBPar exception handler for supported models
        MIPS: ingenic: Hardcode mem size for qi,lb60 board
        MIPS: DTS: ingenic/qi,lb60: Add model and memory node
        MIPS: ingenic: Use fw_passed_dtb even if CONFIG_BUILTIN_DTB
        MIPS: head.S: Init fw_passed_dtb to builtin DTB
        of: address: Fix parser address/size cells initialization
        of_address: Guard of_bus_pci_get_flags with CONFIG_PCI
        MIPS: DTS: Fix number of msi vectors for Loongson64G
        MIPS: Loongson64: Add ISA node for LS7A PCH
        MIPS: Loongson64: DTS: Fix ISA and PCI I/O ranges for RS780E PCH
        MIPS: Loongson64: Enlarge IO_SPACE_LIMIT
        MIPS: Loongson64: Process ISA Node in DeviceTree
        of_address: Add bus type match for pci ranges parser
        ...
      b62e4197
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 40ddad19
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - add arch/arm/Kbuild from Masahiro Yamada.
      
       - simplify act_mm macro, since it contains an open-coded
         get_thread_info.
      
       - VFP updates for Clang from Stefan Agner.
      
       - Fix unwinder for Clang from Nathan Huckleberry.
      
       - Remove unused it8152 PCI host controller, used by the removed cm-x2xx
         platforms from Mike Rapoport.
      
       - Further explanation of __range_ok().
      
       - Remove kimage_voffset that isn't used anymore from Marc Zyngier.
      
       - Drop ancient Thumb-2 workaround for old binutils from Ard Biesheuvel.
      
       - Documentation cleanup for mach-* from Pete Zaitcev.
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 8996/1: Documentation/Clean up the description of mach-<class>
        ARM: 8995/1: drop Thumb-2 workaround for ancient binutils
        ARM: 8994/1: mm: drop kimage_voffset which was only used by KVM
        ARM: uaccess: add further explanation of __range_ok()
        ARM: 8993/1: remove it8152 PCI controller driver
        ARM: 8992/1: Fix unwind_frame for clang-built kernels
        ARM: 8991/1: use VFP assembler mnemonics if available
        ARM: 8990/1: use VFP assembler mnemonics in register load/store macros
        ARM: 8989/1: use .fpu assembler directives instead of assembler arguments
        ARM: 8982/1: mm: Simplify act_mm macro
        ARM: 8981/1: add arch/arm/Kbuild
      40ddad19
    • Linus Torvalds's avatar
      Merge tag 'csky-for-linus-5.9-rc1' of https://github.com/c-sky/csky-linux · 2044513f
      Linus Torvalds authored
      Pull arch/csky updates from Guo Ren:
       "New features:
         - seccomp-filter
         - err-injection
         - top-down&random mmap-layout
         - irq_work
         - show_ipi
         - context-tracking
      
        Fixes & Optimizations:
         - kprobe_on_ftrace
         - optimize panic print"
      
      * tag 'csky-for-linus-5.9-rc1' of https://github.com/c-sky/csky-linux:
        csky: Add context tracking support
        csky: Add arch_show_interrupts for IPI interrupts
        csky: Add irq_work support
        csky: Fixup warning by EXPORT_SYMBOL(kmap)
        csky: Set CONFIG_NR_CPU 4 as default
        csky: Use top-down mmap layout
        csky: Optimize the trap processing flow
        csky: Add support for function error injection
        csky: Fixup kprobes handler couldn't change pc
        csky: Fixup duplicated restore sp in RESTORE_REGS_FTRACE
        csky: Add cpu feature register hint for smp
        csky: Add SECCOMP_FILTER supported
        csky: remove unusued thread_saved_pc and *_segments functions/macros
      2044513f
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20200805' of git://github.com/jcmvbkbc/linux-xtensa · bbcf9cd1
      Linus Torvalds authored
      Pull Xtensa updates from Max Filippov:
      
       - add syscall audit support
      
       - add seccomp filter support
      
       - clean up make rules under arch/xtensa/boot
      
       - fix state management for exclusive access opcodes
      
       - fix build with PMU enabled
      
      * tag 'xtensa-20200805' of git://github.com/jcmvbkbc/linux-xtensa:
        xtensa: add missing exclusive access state management
        xtensa: fix xtensa_pmu_setup prototype
        xtensa: add boot subdirectories build artifacts to 'targets'
        xtensa: add uImage and xipImage to targets
        xtensa: move vmlinux.bin[.gz] to boot subdirectory
        xtensa: initialize_mmu.h: fix a duplicated word
        selftests/seccomp: add xtensa support
        xtensa: add seccomp support
        xtensa: expose syscall through user_pt_regs
        xtensa: add audit support
      bbcf9cd1
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux · 9ab9bc51
      Linus Torvalds authored
      Pull hyperv updates from Wei Liu:
      
       - A patch series from Andrea to improve vmbus code
      
       - Two clean-up patches from Alexander and Randy
      
      * tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        hyperv: hyperv.h: drop a duplicated word
        tools: hv: change http to https in hv_kvp_daemon.c
        Drivers: hv: vmbus: Remove the lock field from the vmbus_channel struct
        scsi: storvsc: Introduce the per-storvsc_device spinlock
        Drivers: hv: vmbus: Remove unnecessary channel->lock critical sections (sc_list updaters)
        Drivers: hv: vmbus: Use channel_mutex in channel_vp_mapping_show()
        Drivers: hv: vmbus: Remove unnecessary channel->lock critical sections (sc_list readers)
        Drivers: hv: vmbus: Replace cpumask_test_cpu(, cpu_online_mask) with cpu_online()
        Drivers: hv: vmbus: Remove the numa_node field from the vmbus_channel struct
        Drivers: hv: vmbus: Remove the target_vp field from the vmbus_channel struct
      9ab9bc51
  3. Aug 06, 2020
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 47ec5303
      Linus Torvalds authored
      Pull networking updates from David Miller:
      
       1) Support 6Ghz band in ath11k driver, from Rajkumar Manoharan.
      
       2) Support UDP segmentation in code TSO code, from Eric Dumazet.
      
       3) Allow flashing different flash images in cxgb4 driver, from Vishal
          Kulkarni.
      
       4) Add drop frames counter and flow status to tc flower offloading,
          from Po Liu.
      
       5) Support n-tuple filters in cxgb4, from Vishal Kulkarni.
      
       6) Various new indirect call avoidance, from Eric Dumazet and Brian
          Vazquez.
      
       7) Fix BPF verifier failures on 32-bit pointer arithmetic, from
          Yonghong Song.
      
       8) Support querying and setting hardware address of a port function via
          devlink, use this in mlx5, from Parav Pandit.
      
       9) Support hw ipsec offload on bonding slaves, from Jarod Wilson.
      
      10) Switch qca8k driver over to phylink, from Jonathan McDowell.
      
      11) In bpftool, show list of processes holding BPF FD references to
          maps, programs, links, and btf objects. From Andrii Nakryiko.
      
      12) Several conversions over to generic power management, from Vaibhav
          Gupta.
      
      13) Add support for SO_KEEPALIVE et al. to bpf_setsockopt(), from Dmitry
          Yakunin.
      
      14) Various https url conversions, from Alexander A. Klimov.
      
      15) Timestamping and PHC support for mscc PHY driver, from Antoine
          Tenart.
      
      16) Support bpf iterating over tcp and udp sockets, from Yonghong Song.
      
      17) Support 5GBASE-T i40e NICs, from Aleksandr Loktionov.
      
      18) Add kTLS RX HW offload support to mlx5e, from Tariq Toukan.
      
      19) Fix the ->ndo_start_xmit() return type to be netdev_tx_t in several
          drivers. From Luc Van Oostenryck.
      
      20) XDP support for xen-netfront, from Denis Kirjanov.
      
      21) Support receive buffer autotuning in MPTCP, from Florian Westphal.
      
      22) Support EF100 chip in sfc driver, from Edward Cree.
      
      23) Add XDP support to mvpp2 driver, from Matteo Croce.
      
      24) Support MPTCP in sock_diag, from Paolo Abeni.
      
      25) Commonize UDP tunnel offloading code by creating udp_tunnel_nic
          infrastructure, from Jakub Kicinski.
      
      26) Several pci_ --> dma_ API conversions, from Christophe JAILLET.
      
      27) Add FLOW_ACTION_POLICE support to mlxsw, from Ido Schimmel.
      
      28) Add SK_LOOKUP bpf program type, from Jakub Sitnicki.
      
      29) Refactor a lot of networking socket option handling code in order to
          avoid set_fs() calls, from Christoph Hellwig.
      
      30) Add rfc4884 support to icmp code, from Willem de Bruijn.
      
      31) Support TBF offload in dpaa2-eth driver, from Ioana Ciornei.
      
      32) Support XDP_REDIRECT in qede driver, from Alexander Lobakin.
      
      33) Support PCI relaxed ordering in mlx5 driver, from Aya Levin.
      
      34) Support TCP syncookies in MPTCP, from Flowian Westphal.
      
      35) Fix several tricky cases of PMTU handling wrt. briding, from Stefano
          Brivio.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2056 commits)
        net: thunderx: initialize VF's mailbox mutex before first usage
        usb: hso: remove bogus check for EINPROGRESS
        usb: hso: no complaint about kmalloc failure
        hso: fix bailout in error case of probe
        ip_tunnel_core: Fix build for archs without _HAVE_ARCH_IPV6_CSUM
        selftests/net: relax cpu affinity requirement in msg_zerocopy test
        mptcp: be careful on subflow creation
        selftests: rtnetlink: make kci_test_encap() return sub-test result
        selftests: rtnetlink: correct the final return value for the test
        net: dsa: sja1105: use detected device id instead of DT one on mismatch
        tipc: set ub->ifindex for local ipv6 address
        ipv6: add ipv6_dev_find()
        net: openvswitch: silence suspicious RCU usage warning
        Revert "vxlan: fix tos value before xmit"
        ptp: only allow phase values lower than 1 period
        farsync: switch from 'pci_' to 'dma_' API
        wan: wanxl: switch from 'pci_' to 'dma_' API
        hv_netvsc: do not use VF device if link is down
        dpaa2-eth: Fix passing zero to 'PTR_ERR' warning
        net: macb: Properly handle phylink on at91sam9x
        ...
      47ec5303
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2020-08-06' of git://anongit.freedesktop.org/drm/drm · 81867496
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "New xilinx displayport driver, AMD support for two new GPUs (more
        header files), i915 initial support for RocketLake and some work on
        their DG1 (discrete chip).
      
        The core also grew some lockdep annotations to try and constrain what
        drivers do with dma-fences, and added some documentation on why the
        idea of indefinite fences doesn't work.
      
        The long list is below.
      
        I do have some fixes trees outstanding, but I'll follow up with those
        later.
      
        core:
         - add user def flag to cmd line modes
         - dma_fence_wait added might_sleep
         - dma-fence lockdep annotations
         - indefinite fences are bad documentation
         - gem CMA functions used in more drivers
         - struct mutex removal
         - more drm_ debug macro usage
         - set/drop master api fixes
         - fix for drm/mm hole size comparison
         - drm/mm remove invalid entry optimization
         - optimise drm/mm hole handling
         - VRR debugfs added
         - uncompressed AFBC modifier support
         - multiple display id blocks in EDID
         - multiple driver sg handling fixes
         - __drm_atomic_helper_crtc_reset in all drivers
         - managed vram helpers
      
        ttm:
         - ttm_mem_reg handling cleanup
         - remove bo offset field
         - drop CMA memtype flag
         - drop mappable flag
      
        xilinx:
         - New Xilinx ZynqMP DisplayPort Subsystem driver
      
        nouveau:
         - add CRC support
         - start using NVIDIA published class header files
         - convert all push buffer emission to new macros
         - Proper push buffer space management for EVO/NVD channels.
         - firmware loading fixes
         - 2MiB system memory pages support on Pascal and newer
      
        vkms:
         - larger cursor support
      
        i915:
         - Rocketlake platform enablement
         - Early DG1 enablement
         - Numerous GEM refactorings
         - DP MST fixes
         - FBC, PSR, Cursor, Color, Gamma fixes
         - TGL, RKL, EHL workaround updates
         - TGL 8K display support fixes
         - SDVO/HDMI/DVI fixes
      
        amdgpu:
         - Initial support for Sienna Cichlid GPU
         - Initial support for Navy Flounder GPU
         - SI UVD/VCE support
         - expose rotation property
         - Add support for unique id on Arcturus
         - Enable runtime PM on vega10 boards that support BACO
         - Skip BAR resizing if the bios already did id
         - Major swSMU code cleanup
         - Fixes for DCN bandwidth calculations
      
        amdkfd:
         - Track SDMA usage per process
         - SMI events interface
      
        radeon:
         - Default to on chip GART for AGP boards on all arches
         - Runtime PM reference count fixes
      
        msm:
         - headers regenerated causing churn
         - a650/a640 display and GPU enablement
         - dpu dither support for 6bpc panels
         - dpu cursor fix
         - dsi/mdp5 enablement for sdm630/sdm636/sdm66
      
        tegra:
         - video capture prep support
         - reflection support
      
        mediatek:
         - convert mtk_dsi to bridge API
      
        meson:
         - FBC support
      
        sun4i:
         - iommu support
      
        rockchip:
         - register locking fix
         - per-pixel alpha support PX30 VOP
      
        mgag200:
         - ported to simple and shmem helpers
         - device init cleanups
         - use managed pci functions
         - dropped hw cursor support
      
        ast:
         - use managed pci functions
         - use managed VRAM helpers
         - rework cursor support
      
        malidp:
         - dev_groups support
      
        hibmc:
         - refactor hibmc_drv_vdac:
      
        vc4:
         - create TXP CRTC
      
        imx:
         - error path fixes and cleanups
      
        etnaviv:
         - clock handling and error handling cleanups
         - use pin_user_pages"
      
      * tag 'drm-next-2020-08-06' of git://anongit.freedesktop.org/drm/drm: (1747 commits)
        drm/msm: use kthread_create_worker instead of kthread_run
        drm/msm/mdp5: Add MDP5 configuration for SDM636/660
        drm/msm/dsi: Add DSI configuration for SDM660
        drm/msm/mdp5: Add MDP5 configuration for SDM630
        drm/msm/dsi: Add phy configuration for SDM630/636/660
        drm/msm/a6xx: add A640/A650 hwcg
        drm/msm/a6xx: hwcg tables in gpulist
        drm/msm/dpu: add SM8250 to hw catalog
        drm/msm/dpu: add SM8150 to hw catalog
        drm/msm/dpu: intf timing path for displayport
        drm/msm/dpu: set missing flush bits for INTF_2 and INTF_3
        drm/msm/dpu: don't use INTF_INPUT_CTRL feature on sdm845
        drm/msm/dpu: move some sspp caps to dpu_caps
        drm/msm/dpu: update UBWC config for sm8150 and sm8250
        drm/msm/dpu: use right setup_blend_config for sm8150 and sm8250
        drm/msm/a6xx: set ubwc config for A640 and A650
        drm/msm/adreno: un-open-code some packets
        drm/msm: sync generated headers
        drm/msm/a6xx: add build_bw_table for A640/A650
        drm/msm/a6xx: fix crashstate capture for A650
        ...
      81867496
    • Linus Torvalds's avatar
      Merge tag 'leds-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds · e4a7b2dc
      Linus Torvalds authored
      Pull LED updates from Pavel Machek:
       "Okay, so... this one is interesting. RGB LEDs are very common, and we
        need to have some kind of support for them. Multicolor is for
        arbitrary set of LEDs in one package, RGB is for LEDs that can produce
        full range of colors. We do not have real multicolor LED that is not
        RGB in the pipeline, so that one is disabled for now.
      
        You can expect this saga to continue with next pull requests"
      
      * tag 'leds-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds: (37 commits)
        MAINTAINERS: Remove myself as LED subsystem maintainer
        leds: disallow /sys/class/leds/*:multi:* for now
        leds: add RGB color option, as that is different from multicolor.
        Make LEDS_LP55XX_COMMON depend on I2C to fix build errors:
        Documentation: ABI: leds-turris-omnia: document sysfs attribute
        leds: initial support for Turris Omnia LEDs
        dt-bindings: leds: add cznic,turris-omnia-leds binding
        leds: pattern trigger -- check pattern for validity
        leds: Replace HTTP links with HTTPS ones
        leds: trigger: add support for LED-private device triggers
        leds: lp5521: Add multicolor framework multicolor brightness support
        leds: lp5523: Update the lp5523 code to add multicolor brightness function
        leds: lp55xx: Add multicolor framework support to lp55xx
        leds: lp55xx: Convert LED class registration to devm_*
        dt-bindings: leds: Convert leds-lp55xx to yaml
        leds: multicolor: Introduce a multicolor class definition
        leds: Add multicolor ID to the color ID list
        dt: bindings: Add multicolor class dt bindings documention
        leds: lp5523: Fix various formatting issues in the code
        leds: lp55xx: Fix file permissions to use DEVICE_ATTR macros
        ...
      e4a7b2dc
    • Dean Nelson's avatar
      net: thunderx: initialize VF's mailbox mutex before first usage · c1055b76
      Dean Nelson authored
      A VF's mailbox mutex is not getting initialized by nicvf_probe() until after
      it is first used. And such usage is resulting in...
      
      [   28.270927] ------------[ cut here ]------------
      [   28.270934] DEBUG_LOCKS_WARN_ON(lock->magic != lock)
      [   28.270980] WARNING: CPU: 9 PID: 675 at kernel/locking/mutex.c:938 __mutex_lock+0xdac/0x12f0
      [   28.270985] Modules linked in: ast(+) nicvf(+) i2c_algo_bit drm_vram_helper drm_ttm_helper ttm nicpf(+) drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm ixgbe(+) sg thunder_bgx mdio i2c_thunderx mdio_thunder thunder_xcv mdio_cavium dm_mirror dm_region_hash dm_log dm_mod
      [   28.271064] CPU: 9 PID: 675 Comm: systemd-udevd Not tainted 4.18.0+ #1
      [   28.271070] Hardware name: GIGABYTE R120-T34-00/MT30-GS2-00, BIOS F02 08/06/2019
      [   28.271078] pstate: 60000005 (nZCv daif -PAN -UAO)
      [   28.271086] pc : __mutex_lock+0xdac/0x12f0
      [   28.271092] lr : __mutex_lock+0xdac/0x12f0
      [   28.271097] sp : ffff800d42146fb0
      [   28.271103] x29: ffff800d42146fb0 x28: 0000000000000000
      [   28.271113] x27: ffff800d24361180 x26: dfff200000000000
      [   28.271122] x25: 0000000000000000 x24: 0000000000000002
      [   28.271132] x23: ffff20001597cc80 x22: ffff2000139e9848
      [   28.271141] x21: 0000000000000000 x20: 1ffff001a8428e0c
      [   28.271151] x19: ffff200015d5d000 x18: 1ffff001ae0f2184
      [   28.271160] x17: 0000000000000000 x16: 0000000000000000
      [   28.271170] x15: ffff800d70790c38 x14: ffff20001597c000
      [   28.271179] x13: ffff20001597cc80 x12: ffff040002b2f779
      [   28.271189] x11: 1fffe40002b2f778 x10: ffff040002b2f778
      [   28.271199] x9 : 0000000000000000 x8 : 00000000f1f1f1f1
      [   28.271208] x7 : 00000000f2f2f2f2 x6 : 0000000000000000
      [   28.271217] x5 : 1ffff001ae0f2186 x4 : 1fffe400027eb03c
      [   28.271227] x3 : dfff200000000000 x2 : ffff1001a8428dbe
      [   28.271237] x1 : c87fdfac7ea11d00 x0 : 0000000000000000
      [   28.271246] Call trace:
      [   28.271254]  __mutex_lock+0xdac/0x12f0
      [   28.271261]  mutex_lock_nested+0x3c/0x50
      [   28.271297]  nicvf_send_msg_to_pf+0x40/0x3a0 [nicvf]
      [   28.271316]  nicvf_register_misc_interrupt+0x20c/0x328 [nicvf]
      [   28.271334]  nicvf_probe+0x508/0xda0 [nicvf]
      [   28.271344]  local_pci_probe+0xc4/0x180
      [   28.271352]  pci_device_probe+0x3ec/0x528
      [   28.271363]  driver_probe_device+0x21c/0xb98
      [   28.271371]  device_driver_attach+0xe8/0x120
      [   28.271379]  __driver_attach+0xe0/0x2a0
      [   28.271386]  bus_for_each_dev+0x118/0x190
      [   28.271394]  driver_attach+0x48/0x60
      [   28.271401]  bus_add_driver+0x328/0x558
      [   28.271409]  driver_register+0x148/0x398
      [   28.271416]  __pci_register_driver+0x14c/0x1b0
      [   28.271437]  nicvf_init_module+0x54/0x10000 [nicvf]
      [   28.271447]  do_one_initcall+0x18c/0xc18
      [   28.271457]  do_init_module+0x18c/0x618
      [   28.271464]  load_module+0x2bc0/0x4088
      [   28.271472]  __se_sys_finit_module+0x110/0x188
      [   28.271479]  __arm64_sys_finit_module+0x70/0xa0
      [   28.271490]  el0_svc_handler+0x15c/0x380
      [   28.271496]  el0_svc+0x8/0xc
      [   28.271502] irq event stamp: 52649
      [   28.271513] hardirqs last  enabled at (52649): [<ffff200011b4d790>] _raw_spin_unlock_irqrestore+0xc0/0xd8
      [   28.271522] hardirqs last disabled at (52648): [<ffff200011b4d3c4>] _raw_spin_lock_irqsave+0x3c/0xf0
      [   28.271530] softirqs last  enabled at (52330): [<ffff200010082af4>] __do_softirq+0xacc/0x117c
      [   28.271540] softirqs last disabled at (52313): [<ffff20001019b354>] irq_exit+0x3cc/0x500
      [   28.271545] ---[ end trace a9b90324c8a0d4ee ]---
      
      This problem is resolved by moving the call to mutex_init() up earlier
      in nicvf_probe().
      
      Fixes: 609ea65c
      
       ("net: thunderx: add mutex to protect mailbox from concurrent calls for same VF")
      Signed-off-by: default avatarDean Nelson <dnelson@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c1055b76
    • David S. Miller's avatar
      Merge branch 'misc-bug-fixes-for-the-hso-driver' · 0063fc3d
      David S. Miller authored
      
      
      Oliver Neukum says:
      
      ====================
      misc bug fixes for the hso driver
      
      1. Code reuse led to an unregistration of a net driver that has not been
      registered
      2. The kernel complains generically if kmalloc with GFP_KERNEL fails
      3. A race that can lead to an URB that is in use being reused or
      a use after free
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0063fc3d
    • Oliver Neukum's avatar
      usb: hso: remove bogus check for EINPROGRESS · abaf00ff
      Oliver Neukum authored
      
      
      This check an inherent race. It opens a race where
      an error code has already been set or cleared yet
      the URB has not been given back. We cannot do
      such an optimization and must unlink unconditionally.
      
      Signed-off-by: default avatarOliver Neukum <oneukum@suse.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      abaf00ff
    • Oliver Neukum's avatar
      usb: hso: no complaint about kmalloc failure · 11c5f6d2
      Oliver Neukum authored
      
      
      If this fails, kmalloc() will print a report including
      a stack trace. There is no need for a separate complaint.
      
      Signed-off-by: default avatarOliver Neukum <oneukum@suse.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      11c5f6d2
    • Oliver Neukum's avatar
      hso: fix bailout in error case of probe · 5fcfb6d0
      Oliver Neukum authored
      
      
      The driver tries to reuse code for disconnect in case
      of a failed probe.
      If resources need to be freed after an error in probe, the
      netdev must not be freed because it has never been registered.
      Fix it by telling the helper which path we are in.
      
      Signed-off-by: default avatarOliver Neukum <oneukum@suse.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5fcfb6d0
    • Mike Rapoport's avatar
      MIPS: SGI-IP27: always enable NUMA in Kconfig · 6c86a302
      Mike Rapoport authored
      
      
      When a configuration has NUMA disabled and SGI_IP27 enabled, the build
      fails:
      
        CC      kernel/bounds.s
        CC      arch/mips/kernel/asm-offsets.s
      In file included from arch/mips/include/asm/topology.h:11,
                       from include/linux/topology.h:36,
                       from include/linux/gfp.h:9,
                       from include/linux/slab.h:15,
                       from include/linux/crypto.h:19,
                       from include/crypto/hash.h:11,
                       from include/linux/uio.h:10,
                       from include/linux/socket.h:8,
                       from include/linux/compat.h:15,
                       from arch/mips/kernel/asm-offsets.c:12:
      include/linux/topology.h: In function 'numa_node_id':
      arch/mips/include/asm/mach-ip27/topology.h:16:27: error: implicit declaration of function 'cputonasid'; did you mean 'cpu_vpe_id'? [-Werror=implicit-function-declaration]
       #define cpu_to_node(cpu) (cputonasid(cpu))
                                 ^~~~~~~~~~
      include/linux/topology.h:119:9: note: in expansion of macro 'cpu_to_node'
        return cpu_to_node(raw_smp_processor_id());
               ^~~~~~~~~~~
      include/linux/topology.h: In function 'cpu_cpu_mask':
      arch/mips/include/asm/mach-ip27/topology.h:19:7: error: implicit declaration of function 'hub_data' [-Werror=implicit-function-declaration]
            &hub_data(node)->h_cpus)
             ^~~~~~~~
      include/linux/topology.h:210:9: note: in expansion of macro 'cpumask_of_node'
        return cpumask_of_node(cpu_to_node(cpu));
               ^~~~~~~~~~~~~~~
      arch/mips/include/asm/mach-ip27/topology.h:19:21: error: invalid type argument of '->' (have 'int')
            &hub_data(node)->h_cpus)
                           ^~
      include/linux/topology.h:210:9: note: in expansion of macro 'cpumask_of_node'
        return cpumask_of_node(cpu_to_node(cpu));
               ^~~~~~~~~~~~~~~
      
      Before switch from discontigmem to sparsemem, there always was
      CONFIG_NEED_MULTIPLE_NODES=y because it was selected by DISCONTIGMEM.
      Without DISCONTIGMEM it is possible to have SPARSEMEM without NUMA for
      SGI_IP27 and as many things there rely on custom node definition, the
      build breaks.
      
      As Thomas noted "... there are right now too many places in IP27 code,
      which assumes NUMA enabled", the simplest solution would be to always
      enable NUMA for SGI-IP27 builds.
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Fixes: 397dc00e
      
       ("mips: sgi-ip27: switch from DISCONTIGMEM to SPARSEMEM")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      6c86a302
    • Jacek Anaszewski's avatar
      MAINTAINERS: Remove myself as LED subsystem maintainer · bba37471
      Jacek Anaszewski authored
      
      
      It don't have enough time for reviewing patches and thus don't
      want to be listed as regular LED maintainer. Nonetheless I may still
      give a review from time to time.
      
      Signed-off-by: default avatarJacek Anaszewski <jacek.anaszewski@gmail.com>
      Signed-off-by: default avatarPavel Machek <pavel@ucw.cz>
      bba37471
    • Linus Torvalds's avatar
      Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · fffe3ae0
      Linus Torvalds authored
      Pull hmm updates from Jason Gunthorpe:
       "Ralph has been working on nouveau's use of hmm_range_fault() and
        migrate_vma() which resulted in this small series. It adds reporting
        of the page table order from hmm_range_fault() and some optimization
        of migrate_vma():
      
         - Report the size of the page table mapping out of hmm_range_fault().
      
           This makes it easier to establish a large/huge/etc mapping in the
           device's page table.
      
         - Allow devices to ignore the invalidations during migration in cases
           where the migration is not going to change pages.
      
           For instance migrating pages to a device does not require the
           device to invalidate pages already in the device.
      
         - Update nouveau and hmm_tests to use the above"
      
      * tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        mm/hmm/test: use the new migration invalidation
        nouveau/svm: use the new migration invalidation
        mm/notifier: add migration invalidation type
        mm/migrate: add a flags parameter to migrate_vma
        nouveau: fix storing invalid ptes
        nouveau/hmm: support mapping large sysmem pages
        nouveau: fix mapping 2MB sysmem pages
        nouveau/hmm: fault one page at a time
        mm/hmm: add tests for hmm_pfn_to_map_order()
        mm/hmm: provide the page mapping order in hmm_range_fault()
      fffe3ae0
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 8f7be629
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
      
         - Add a new host cap bit and a corresponding DT property, to support
           power cycling of the card by FW at system suspend/resume.
      
         - Fix clock rate setting for SDIO in SDR12/SDR25 speed-mode
      
         - Fix switch to 1/4-bit mode at system suspend/resume for SD-combo
           cards
      
         - Convert the mmc-pwrseq DT bindings to the json-schema
      
         - Always allow the card detect uevent to be consumed by userspace
      
        MMC host controllers:
      
         - Convert a few DT bindings to the json-schema
      
         - mtk-sd:
            - Add support for command queue through cqhci
            - Add support for the MT6779 variant
      
         - renesas_sdhi_internal_dmac:
            - Fix dma unmapping in the error path
      
         - sdhci_am654:
            - Add support for the AM65x PG2.0 variant
            - Extend support for phys/clocks
      
         - sdhci-cadence:
            - Drop incorrect HW tuning for SD mode
      
         - sdhci-msm:
            - Add support for interconnect bandwidth scaling
            - Enable internal voltage control
            - Enable low power state for pinctrls
      
         - sdhci-of-at91:
            - Ludovic Desroches handovers maintenance to Eugen Hristev
      
         - sdhci-pci-gli:
            - Improve clock handling for GL975x
      
         - sdhci-pci-o2micro:
            - Add HW tuning for SDR104 mode
            - Fix support for O2 host controller Seabird1"
      
      * tag 'mmc-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (66 commits)
        mmc: mediatek: make function msdc_cqe_disable() static
        MAINTAINERS: mmc: sdhci-of-at91: handover maintenance to Eugen Hristev
        dt-bindings: mmc: mediatek: Add document for mt6779
        mmc: mediatek: command queue support
        mmc: mediatek: refine msdc timeout api
        mmc: mediatek: add MT6779 MMC driver support
        mmc: sdhci-pci-o2micro: Add HW tuning for SDR104 mode
        mmc: sdhci-pci-o2micro: Bug fix for O2 host controller Seabird1
        mmc: via-sdmmc: use generic power management
        memstick: jmb38x_ms: use generic power management
        mmc: sdhci-cadence: do not use hardware tuning for SD mode
        mmc: sdhci-pci-gli: Set SDR104's clock to 205MHz and enable SSC for GL975x
        mmc: cqhci: Fix a print format for the task descriptor
        mmc: sdhci-of-arasan: fix timings allocation code
        mmc: sdhci: Fix a potential uninitialized variable
        dt-bindings: mmc: renesas,sdhi: convert to YAML
        dt-bindings: mmc: convert arasan sdhci bindings to yaml
        mmc: sdhci: Fix potential null pointer access while accessing vqmmc
        mmc: core: Add MMC_CAP2_FULL_PWR_CYCLE_IN_SUSPEND
        dt-bindings: mmc: Add full-pwr-cycle-in-suspend property
        ...
      8f7be629
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 9aebd325
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "Highlights:
         - New driver for Sparx5 SoC temperature sensot
         - New driver for Corsair Commander Pro
         - MAX20710 support added to max20730 driver
      
        Enhancements:
         - max6697: Allow max6581 to create tempX_offset attributes
         - gsc (Gateworks System Controller): add 16bit pre-scaled voltage mode
         - adm1275: Enable adm1278 ADM1278_TEMP1_EN
         - dell-smm: Add Latitude 5480 to fan control whitelist
      
        Fixes:
         - adc128d818: Fix advanced configuration register init
         - pmbus/core: Use s64 instead of long for calculations to fix
           overflow issues with 32-bit architectures
      
        Plus various cleanups in several drivers"
      
      * tag 'hwmon-for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (32 commits)
        hwmon: (adc128d818) Fix advanced configuration register init
        hwmon: (axi-fan-control) remove duplicate macros
        hwmon: (i5k_amb, vt8231) Drop uses of pci_read_config_*() return value
        hwmon: (sparx5) Make symbol 's5_temp_match' static
        hwmon: (corsair-cpro) add reading pwm values
        hwmon: sparx5: Add Sparx5 SoC temperature driver
        dt-bindings: hwmon: Add Sparx5 temperature sensor
        hwmon: (tmp401) Replace HTTP links with HTTPS ones
        hwmon: (lm95234) Replace HTTP links with HTTPS ones
        hwmon: (lm90) Replace HTTP links with HTTPS ones
        hwmon: (k8temp) Replace HTTP links with HTTPS ones
        hwmon: (jc42) Replace HTTP links with HTTPS ones
        hwmon: (ina2xx) Replace HTTP links with HTTPS ones
        hwmon: (ina209) Replace HTTP links with HTTPS ones
        hwmon: Replace HTTP links with HTTPS ones
        docs: hwmon: Replace HTTP links with HTTPS ones
        hwmon: (adm1025) Replace HTTP links with HTTPS ones
        hwmon: add Corsair Commander Pro driver
        hwmon: (max6697) Allow max6581 to create tempX_offset
        hwmon: (tmmp513) Replace HTTP links with HTTPS links
        ...
      9aebd325
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 44197797
      Linus Torvalds authored
      Pull Devicetree updates from Rob Herring:
      
       - Improve device links cycle detection and breaking. Add more bindings
         for device link dependencies.
      
       - Refactor parsing 'no-map' in __reserved_mem_alloc_size()
      
       - Improve DT unittest 'ranges' and 'dma-ranges' test case to check
         differing cell sizes
      
       - Various http to https link conversions
      
       - Add a schema check to prevent 'syscon' from being used by itself
         without a more specific compatible
      
       - A bunch more DT binding conversions to schema
      
      * tag 'devicetree-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (55 commits)
        of: reserved-memory: remove duplicated call to of_get_flat_dt_prop() for no-map node
        of: unittest: Use bigger address cells to catch parser regressions
        dt-bindings: memory-controllers: Convert mmdc to json-schema
        dt-bindings: mtd: Convert imx nand to json-schema
        dt-bindings: mtd: Convert gpmi nand to json-schema
        dt-bindings: iio: io-channel-mux: Fix compatible string in example code
        of: property: Add device link support for pinctrl-0 through pinctrl-8
        of: property: Add device link support for multiple DT bindings
        dt-bindings: phy: ti: phy-gmii-sel: convert bindings to json-schema
        dt-bindings: mux: mux.h: drop a duplicated word
        dt-bindings: misc: Convert olpc,xo1.75-ec to json-schema
        dt-bindings: aspeed-lpc: Replace HTTP links with HTTPS ones
        dt-bindings: drm/bridge: Replace HTTP links with HTTPS ones
        drm/tilcdc: Replace HTTP links with HTTPS ones
        dt-bindings: iommu: renesas,ipmmu-vmsa: Add r8a774e1 support
        dt-bindings: fpga: Replace HTTP links with HTTPS ones
        dt-bindings: virtio: Replace HTTP links with HTTPS ones
        dt-bindings: media: imx274: Add optional input clock and supplies
        dt-bindings: i2c-gpio: Use 'deprecated' keyword on deprecated properties
        dt-bindings: interrupt-controller: Fix typos in loongson,liointc.yaml
        ...
      44197797
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 1d8ce0e0
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v5.9 kernel cycle.
      
        There is nothing too exciting in it, but a new macro that fixes a
        build failure on a minor ARM32 platform that appeared yesterday is
        part of it so we better merge it.
      
        Core changes:
      
         - Introduce the for_each_requested_gpio() macro to help in dependent
           code all over the place. Also patch a few locations to use it while
           we are at it.
      
         - Split out the sysfs code into its own file.
      
         - Split out the character device code into its own file, then make a
           set of refactorings and improvements to this code. We are setting
           the stage to revamp the userspace API a bit in the next cycle.
      
         - Fix a whole slew of kerneldoc that was wrong or missing.
      
        New drivers:
      
         - The PCA953x driver now supports the PCAL9535.
      
        Driver improvements:
      
         - A host of incremental modernizations and improvements to the
           PCA953x driver.
      
         - Incremental improvements to the Xilinx Zynq driver.
      
         - Some improvements to the GPIO aggregator driver.
      
         - I ran all over the place switching all threaded and other drivers
           requesting their own IRQ while using the core GPIO IRQ helpers to
           pass the GPIO irq chip as a template instead of calling the
           explicit set-up functions. Next merge window we may retire the old
           code altogether"
      
      * tag 'gpio-v5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (97 commits)
        gpio: wcove: Request IRQ after all initialisation done
        gpio: crystalcove: Free IRQ on error path
        gpio: pca953x: Request IRQ after all initialisation done
        gpio: don't use same lockdep class for all devm_gpiochip_add_data users
        gpio: max732x: Use irqchip template
        gpio: stmpe: Move chip registration
        gpio: rcar: Use irqchip template
        gpio: regmap: fix type clash
        gpio: Correct kernel-doc inconsistency
        gpio: pci-idio-16: Use irqchip template
        gpio: pcie-idio-24: Use irqchip template
        gpio: 104-idio-16: Use irqchip template
        gpio: 104-idi-48: Use irqchip template
        gpio: 104-dio-48e: Use irqchip template
        gpio: ws16c48: Use irqchip template
        gpio: omap: improve coding style for pin config flags
        gpio: dln2: Use irqchip template
        gpio: sch: Add a blank line between declaration and code
        gpio: sch: changed every 'unsigned' to 'unsigned int'
        gpio: ich: changed every 'unsigned' to 'unsigned int'
        ...
      1d8ce0e0
    • Linus Torvalds's avatar
      random: random.h should include archrandom.h, not the other way around · 58552408
      Linus Torvalds authored
      
      
      This is hopefully the final piece of the crazy puzzle with random.h
      dependencies.
      
      And by "hopefully" I obviously mean "Linus is a hopeless optimist".
      
      Reported-and-tested-by: default avatarDaniel Díaz <daniel.diaz@linaro.org>
      Acked-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      58552408
    • Stefano Brivio's avatar
      ip_tunnel_core: Fix build for archs without _HAVE_ARCH_IPV6_CSUM · 8ed54f16
      Stefano Brivio authored
      
      
      On architectures defining _HAVE_ARCH_IPV6_CSUM, we get
      csum_ipv6_magic() defined by means of arch checksum.h headers. On
      other architectures, we actually need to include net/ip6_checksum.h
      to be able to use it.
      
      Without this include, building with defconfig breaks at least for
      s390.
      
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Fixes: 4cb47a86
      
       ("tunnels: PMTU discovery support for directly bridged IP packets")
      Signed-off-by: default avatarStefano Brivio <sbrivio@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8ed54f16
    • Willem de Bruijn's avatar
      selftests/net: relax cpu affinity requirement in msg_zerocopy test · 16f6458f
      Willem de Bruijn authored
      The msg_zerocopy test pins the sender and receiver threads to separate
      cores to reduce variance between runs.
      
      But it hardcodes the cores and skips core 0, so it fails on machines
      with the selected cores offline, or simply fewer cores.
      
      The test mainly gives code coverage in automated runs. The throughput
      of zerocopy ('-z') and non-zerocopy runs is logged for manual
      inspection.
      
      Continue even when sched_setaffinity fails. Just log to warn anyone
      interpreting the data.
      
      Fixes: 07b65c5b
      
       ("test: add msg_zerocopy test")
      Reported-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarWillem de Bruijn <willemb@google.com>
      Acked-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      16f6458f
    • Paolo Abeni's avatar
      mptcp: be careful on subflow creation · adf73410
      Paolo Abeni authored
      
      
      Nicolas reported the following oops:
      
      [ 1521.392541] BUG: kernel NULL pointer dereference, address: 00000000000000c0
      [ 1521.394189] #PF: supervisor read access in kernel mode
      [ 1521.395376] #PF: error_code(0x0000) - not-present page
      [ 1521.396607] PGD 0 P4D 0
      [ 1521.397156] Oops: 0000 [#1] SMP PTI
      [ 1521.398020] CPU: 0 PID: 22986 Comm: kworker/0:2 Not tainted 5.8.0-rc4+ #109
      [ 1521.399618] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
      [ 1521.401728] Workqueue: events mptcp_worker
      [ 1521.402651] RIP: 0010:mptcp_subflow_create_socket+0xf1/0x1c0
      [ 1521.403954] Code: 24 08 89 44 24 04 48 8b 7a 18 e8 2a 48 d4 ff 8b 44 24 04 85 c0 75 7a 48 8b 8b 78 02 00 00 48 8b 54 24 08 48 8d bb 80 00 00 00 <48> 8b 89 c0 00 00 00 48 89 8a c0 00 00 00 48 8b 8b 78 02 00 00 8b
      [ 1521.408201] RSP: 0000:ffffabc4002d3c60 EFLAGS: 00010246
      [ 1521.409433] RAX: 0000000000000000 RBX: ffffa0b9ad8c9a00 RCX: 0000000000000000
      [ 1521.411096] RDX: ffffa0b9ae78a300 RSI: 00000000fffffe01 RDI: ffffa0b9ad8c9a80
      [ 1521.412734] RBP: ffffa0b9adff2e80 R08: ffffa0b9af02d640 R09: ffffa0b9ad923a00
      [ 1521.414333] R10: ffffabc4007139f8 R11: fefefefefefefeff R12: ffffabc4002d3cb0
      [ 1521.415918] R13: ffffa0b9ad91fa58 R14: ffffa0b9ad8c9f9c R15: 0000000000000000
      [ 1521.417592] FS:  0000000000000000(0000) GS:ffffa0b9af000000(0000) knlGS:0000000000000000
      [ 1521.419490] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [ 1521.420839] CR2: 00000000000000c0 CR3: 000000002951e006 CR4: 0000000000160ef0
      [ 1521.422511] Call Trace:
      [ 1521.423103]  __mptcp_subflow_connect+0x94/0x1f0
      [ 1521.425376]  mptcp_pm_create_subflow_or_signal_addr+0x200/0x2a0
      [ 1521.426736]  mptcp_worker+0x31b/0x390
      [ 1521.431324]  process_one_work+0x1fc/0x3f0
      [ 1521.432268]  worker_thread+0x2d/0x3b0
      [ 1521.434197]  kthread+0x117/0x130
      [ 1521.435783]  ret_from_fork+0x22/0x30
      
      on some unconventional configuration.
      
      The MPTCP protocol is trying to create a subflow for an
      unaccepted server socket. That is allowed by the RFC, even
      if subflow creation will likely fail.
      Unaccepted sockets have still a NULL sk_socket field,
      avoid the issue by failing earlier.
      
      Reported-and-tested-by: default avatarNicolas Rybowski <nicolas.rybowski@tessares.net>
      Fixes: 7d14b0d2
      
       ("mptcp: set correct vfs info for subflows")
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Reviewed-by: default avatarMatthieu Baerts <matthieu.baerts@tessares.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      adf73410
    • David S. Miller's avatar
      Merge branch 'selftests-rtnetlink-Fix-for-false-negative-return-values' · 889579d0
      David S. Miller authored
      
      
      Po-Hsu Lin says:
      
      ====================
      selftests: rtnetlink: Fix for false-negative return values
      
      This patchset will address the false-negative return value issue
      caused by the following:
        1. The return value "ret" in this script will be reset to 0 from
           the beginning of each sub-test in rtnetlink.sh, therefore this
           rtnetlink test will always pass if the last sub-test has passed.
        2. The test result from two sub-tests in kci_test_encap() were not
           being processed, thus they will not affect the final test result
           of this test.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      889579d0
    • Po-Hsu Lin's avatar
      selftests: rtnetlink: make kci_test_encap() return sub-test result · 72f70c15
      Po-Hsu Lin authored
      
      
      kci_test_encap() is actually composed by two different sub-tests,
      kci_test_encap_vxlan() and kci_test_encap_fou()
      
      Therefore we should check the test result of these two in
      kci_test_encap() to let the script be aware of the pass / fail status.
      Otherwise it will generate false-negative result like below:
          $ sudo ./test.sh
          PASS: policy routing
          PASS: route get
          PASS: preferred_lft addresses have expired
          PASS: promote_secondaries complete
          PASS: tc htb hierarchy
          PASS: gre tunnel endpoint
          PASS: gretap
          PASS: ip6gretap
          PASS: erspan
          PASS: ip6erspan
          PASS: bridge setup
          PASS: ipv6 addrlabel
          PASS: set ifalias 5b193daf-0a08-46d7-af2c-e7aadd422ded for test-dummy0
          PASS: vrf
          PASS: vxlan
          FAIL: can't add fou port 7777, skipping test
          PASS: macsec
          PASS: bridge fdb get
          PASS: neigh get
          $ echo $?
          0
      
      Signed-off-by: default avatarPo-Hsu Lin <po-hsu.lin@canonical.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      72f70c15
    • Po-Hsu Lin's avatar
      selftests: rtnetlink: correct the final return value for the test · c2a4d274
      Po-Hsu Lin authored
      
      
      The return value "ret" will be reset to 0 from the beginning of each
      sub-test in rtnetlink.sh, therefore this test will always pass if the
      last sub-test has passed:
          $ sudo ./rtnetlink.sh
          PASS: policy routing
          PASS: route get
          PASS: preferred_lft addresses have expired
          PASS: promote_secondaries complete
          PASS: tc htb hierarchy
          PASS: gre tunnel endpoint
          PASS: gretap
          PASS: ip6gretap
          PASS: erspan
          PASS: ip6erspan
          PASS: bridge setup
          PASS: ipv6 addrlabel
          PASS: set ifalias a39ee707-e36b-41d3-802f-63179ed4d580 for test-dummy0
          PASS: vrf
          PASS: vxlan
          FAIL: can't add fou port 7777, skipping test
          PASS: macsec
          PASS: ipsec
          3,7c3,7
          < sa[0]    spi=0x00000009 proto=0x32 salt=0x64636261 crypt=1
          < sa[0]    key=0x31323334 35363738 39303132 33343536
          < sa[1] rx ipaddr=0x00000000 00000000 00000000 c0a87b03
          < sa[1]    spi=0x00000009 proto=0x32 salt=0x64636261 crypt=1
          < sa[1]    key=0x31323334 35363738 39303132 33343536
          ---
          > sa[0]    spi=0x00000009 proto=0x32 salt=0x61626364 crypt=1
          > sa[0]    key=0x34333231 38373635 32313039 36353433
          > sa[1] rx ipaddr=0x00000000 00000000 00000000 037ba8c0
          > sa[1]    spi=0x00000009 proto=0x32 salt=0x61626364 crypt=1
          > sa[1]    key=0x34333231 38373635 32313039 36353433
          FAIL: ipsec_offload incorrect driver data
          FAIL: ipsec_offload
          PASS: bridge fdb get
          PASS: neigh get
          $ echo $?
          0
      
      Make "ret" become a local variable for all sub-tests.
      Also, check the sub-test results in kci_test_rtnl() and return the
      final result for this test.
      
      Signed-off-by: default avatarPo-Hsu Lin <po-hsu.lin@canonical.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c2a4d274
    • Vladimir Oltean's avatar
      net: dsa: sja1105: use detected device id instead of DT one on mismatch · 0b0e2997
      Vladimir Oltean authored
      
      
      Although we can detect the chip revision 100% at runtime, it is useful
      to specify it in the device tree compatible string too, because
      otherwise there would be no way to assess the correctness of device tree
      bindings statically, without booting a board (only some switch versions
      have internal RGMII delays and/or an SGMII port).
      
      But for testing the P/Q/R/S support, what I have is a reworked board
      with the SJA1105T replaced by a pin-compatible SJA1105Q, and I don't
      want to keep a separate device tree blob just for this one-off board.
      Since just the chip has been replaced, its RGMII delay setup is
      inherently the same (meaning: delays added by the PHY on the slave
      ports, and by PCB traces on the fixed-link CPU port).
      
      For this board, I'd rather have the driver shout at me, but go ahead and
      use what it found even if it doesn't match what it's been told is there.
      
      [    2.970826] sja1105 spi0.1: Device tree specifies chip SJA1105T but found SJA1105Q, please fix it!
      [    2.980010] sja1105 spi0.1: Probed switch chip: SJA1105Q
      [    3.005082] sja1105 spi0.1: Enabled switch tagging
      
      Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0b0e2997
    • David S. Miller's avatar
      Merge branch 'net-fix-a-mcast-issue-for-tipc-udp-media' · 273d405b
      David S. Miller authored
      
      
      Xin Long says:
      
      ====================
      net: fix a mcast issue for tipc udp media
      
      Patch 1 is to add a function to get the dev by source address,
      which will be used by Patch 2.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      273d405b
    • Xin Long's avatar
      tipc: set ub->ifindex for local ipv6 address · 5a6f6f57
      Xin Long authored
      
      
      Without ub->ifindex set for ipv6 address in tipc_udp_enable(),
      ipv6_sock_mc_join() may make the wrong dev join the multicast
      address in enable_mcast(). This causes that tipc links would
      never be created.
      
      So fix it by getting the right netdev and setting ub->ifindex,
      as it does for ipv4 address.
      
      Reported-by: default avatarShuang Li <shuali@redhat.com>
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Acked-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5a6f6f57
    • Xin Long's avatar
      ipv6: add ipv6_dev_find() · 81f6cb31
      Xin Long authored
      
      
      This is to add an ip_dev_find like function for ipv6, used to find
      the dev by saddr.
      
      It will be used by TIPC protocol. So also export it.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Acked-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      81f6cb31
    • Linus Torvalds's avatar
      Merge tag 'usb-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · ecfd7940
      Linus Torvalds authored
      Pull USB/Thunderbolt updates from Greg KH:
       "Here is the large set of USB and Thunderbolt patches for 5.9-rc1.
      
        Nothing really magic/major in here, just lots of little changes and
        updates:
      
         - clean up language usages in USB core and some drivers
      
         - Thunderbolt driver updates and additions
      
         - USB Gadget driver updates
      
         - dwc3 driver updates (like always...)
      
         - build with "W=1" warning fixups
      
         - mtu3 driver updates
      
         - usb-serial driver updates and device ids
      
         - typec additions and updates for new hardware
      
         - xhci debug code updates for future platforms
      
         - cdns3 driver updates
      
         - lots of other minor driver updates and fixes and cleanups
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (330 commits)
        usb: common: usb-conn-gpio: Register charger
        usb: mtu3: simplify mtu3_req_complete()
        usb: mtu3: clear dual mode of u3port when disable device
        usb: mtu3: use MTU3_EP_WEDGE flag
        usb: mtu3: remove useless member @busy in mtu3_ep struct
        usb: mtu3: remove repeated error log
        usb: mtu3: add ->udc_set_speed()
        usb: mtu3: introduce a funtion to check maximum speed
        usb: mtu3: clear interrupts status when disable interrupts
        usb: mtu3: reinitialize CSR registers
        usb: mtu3: fix macro for maximum number of packets
        usb: mtu3: remove unnecessary pointer checks
        usb: xhci: Fix ASMedia ASM1142 DMA addressing
        usb: xhci: define IDs for various ASMedia host controllers
        usb: musb: convert to devm_platform_ioremap_resource_byname
        usb: gadget: tegra-xudc: convert to devm_platform_ioremap_resource_byname
        usb: gadget: r8a66597: convert to devm_platform_ioremap_resource_byname
        usb: dwc3: convert to devm_platform_ioremap_resource_byname
        usb: cdns3: convert to devm_platform_ioremap_resource_byname
        usb: phy: am335x: convert to devm_platform_ioremap_resource_byname
        ...
      ecfd7940
    • Tonghao Zhang's avatar
      net: openvswitch: silence suspicious RCU usage warning · 5845589e
      Tonghao Zhang authored
      ovs_flow_tbl_destroy always is called from RCU callback
      or error path. It is no need to check if rcu_read_lock
      or lockdep_ovsl_is_held was held.
      
      ovs_dp_cmd_fill_info always is called with ovs_mutex,
      So use the rcu_dereference_ovsl instead of rcu_dereference
      in ovs_flow_tbl_masks_cache_size.
      
      Fixes: 9bf24f59
      
       ("net: openvswitch: make masks cache size configurable")
      Cc: Eelco Chaudron <echaudro@redhat.com>
      Reported-by: default avatar <syzbot+c0eb9e7cdde04e4eb4be@syzkaller.appspotmail.com>
      Reported-by: default avatar <syzbot+f612c02823acb02ff9bc@syzkaller.appspotmail.com>
      Signed-off-by: default avatarTonghao Zhang <xiangxia.m.yue@gmail.com>
      Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5845589e
    • Hangbin Liu's avatar
      Revert "vxlan: fix tos value before xmit" · a0dced17
      Hangbin Liu authored
      This reverts commit 71130f29.
      
      In commit 71130f29 ("vxlan: fix tos value before xmit") we want to
      make sure the tos value are filtered by RT_TOS() based on RFC1349.
      
             0     1     2     3     4     5     6     7
          +-----+-----+-----+-----+-----+-----+-----+-----+
          |   PRECEDENCE    |          TOS          | MBZ |
          +-----+-----+-----+-----+-----+-----+-----+-----+
      
      But RFC1349 has been obsoleted by RFC2474. The new DSCP field defined like
      
             0     1     2     3     4     5     6     7
          +-----+-----+-----+-----+-----+-----+-----+-----+
          |          DS FIELD, DSCP           | ECN FIELD |
          +-----+-----+-----+-----+-----+-----+-----+-----+
      
      So with
      
      IPTOS_TOS_MASK          0x1E
      RT_TOS(tos)		((tos)&IPTOS_TOS_MASK)
      
      the first 3 bits DSCP info will get lost.
      
      To take all the DSCP info in xmit, we should revert the patch and just push
      all tos bits to ip_tunnel_ecn_encap(), which will handling ECN field later.
      
      Fixes: 71130f29
      
       ("vxlan: fix tos value before xmit")
      Signed-off-by: default avatarHangbin Liu <liuhangbin@gmail.com>
      Acked-by: default avatarGuillaume Nault <gnault@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a0dced17
    • Vladimir Oltean's avatar
      ptp: only allow phase values lower than 1 period · c29f9aa3
      Vladimir Oltean authored
      
      
      The way we define the phase (the difference between the time of the
      signal's rising edge, and the closest integer multiple of the period),
      it doesn't make sense to have a phase value equal or larger than 1
      period.
      
      So deny these settings coming from the user.
      
      Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Acked-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c29f9aa3