Skip to content
  1. Apr 03, 2018
    • Szymon Janc's avatar
      Bluetooth: Fix connection if directed advertising and privacy is used · 082f2300
      Szymon Janc authored
      Local random address needs to be updated before creating connection if
      RPA from LE Direct Advertising Report was resolved in host. Otherwise
      remote device might ignore connection request due to address mismatch.
      
      This was affecting following qualification test cases:
      GAP/CONN/SCEP/BV-03-C, GAP/CONN/GCEP/BV-05-C, GAP/CONN/DCEP/BV-05-C
      
      Before patch:
      < HCI Command: LE Set Random Address (0x08|0x0005) plen 6          #11350 [hci0] 84680.231216
              Address: 56:BC:E8:24:11:68 (Resolvable)
                Identity type: Random (0x01)
                Identity: F2:F1:06:3D:9C:42 (Static)
      > HCI Event: Command Complete (0x0e) plen 4                        #11351 [hci0] 84680.246022
            LE Set Random Address (0x08|0x0005) ncmd 1
              Status: Success (0x00)
      < HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7         #11352 [hci0] 84680.246417
              Type: Passive (0x00)
              Interval: 60.000 msec (0x0060)
              Window: 30.000 msec (0x0030...
      082f2300
  2. Mar 31, 2018
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v4.16-3' of... · b5dbc287
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v4.16-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - fix missed rebuild of TRIM_UNUSED_KSYMS
      
       - fix rpm-pkg for GNU tar >= 1.29
      
       - include scripts/dtc/include-prefixes/* to kernel header deb-pkg
      
       - add -no-integrated-as option ealier to fix building with Clang
      
       - fix netfilter Makefile for parallel building
      
      * tag 'kbuild-fixes-v4.16-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        netfilter: nf_nat_snmp_basic: add correct dependency to Makefile
        kbuild: rpm-pkg: Support GNU tar >= 1.29
        builddeb: Fix header package regarding dtc source links
        kbuild: set no-integrated-as before incl. arch Makefile
        kbuild: make scripts/adjust_autoksyms.sh robust against timestamp races
      b5dbc287
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · a44406ec
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix RCU locking in xfrm_local_error(), from Taehee Yoo.
      
       2) Fix return value assignments and thus error checking in
          iwl_mvm_start_ap_ibss(), from Johannes Berg.
      
       3) Don't count header length twice in vti4, from Stefano Brivio.
      
       4) Fix deadlock in rt6_age_examine_exception, from Eric Dumazet.
      
       5) Fix out-of-bounds access in nf_sk_lookup_slow{v4,v6}() from Subash
          Abhinov.
      
       6) Check nladdr size in netlink_connect(), from Alexander Potapenko.
      
       7) VF representor SQ numbers are 32 not 16 bits, in mlx5 driver, from
          Or Gerlitz.
      
       8) Out of bounds read in skb_network_protocol(), from Eric Dumazet.
      
       9) r8169 driver sets driver data pointer after register_netdev() which
          is too late. Fix from Heiner Kallweit.
      
      10) Fix memory leak in mlx4 driver, from Moshe Shemesh.
      
      11) The multi-VLAN decap fix added a regression when dealing with device
          that lack a MAC header, such as tun. Fix from Toshiaki Makita.
      
      12) Fix integer overflow in dynamic interrupt coalescing code. From Tal
          Gilboa.
      
      13) Use after free in vrf code, from David Ahern.
      
      14) IPV6 route leak between VRFs fix, also from David Ahern.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (81 commits)
        net: mvneta: fix enable of all initialized RXQs
        net/ipv6: Fix route leaking between VRFs
        vrf: Fix use after free and double free in vrf_finish_output
        ipv6: sr: fix seg6 encap performances with TSO enabled
        net/dim: Fix int overflow
        vlan: Fix vlan insertion for packets without ethernet header
        net: Fix untag for vlan packets without ethernet header
        atm: iphase: fix spelling mistake: "Receiverd" -> "Received"
        vhost: validate log when IOTLB is enabled
        qede: Do not drop rx-checksum invalidated packets.
        hv_netvsc: enable multicast if necessary
        ip_tunnel: Resolve ipsec merge conflict properly.
        lan78xx: Crash in lan78xx_writ_reg (Workqueue: events lan78xx_deferred_multicast_write)
        qede: Fix barrier usage after tx doorbell write.
        vhost: correctly remove wait queue during poll failure
        net/mlx4_core: Fix memory leak while delete slave's resources
        net/mlx4_en: Fix mixed PFC and Global pause user control requests
        net/smc: use announced length in sock_recvmsg()
        llc: properly handle dev_queue_xmit() return value
        strparser: Fix sign of err codes
        ...
      a44406ec
    • Yelena Krivosheev's avatar
      net: mvneta: fix enable of all initialized RXQs · e81b5e01
      Yelena Krivosheev authored
      
      
      In mvneta_port_up() we enable relevant RX and TX port queues by write
      queues bit map to an appropriate register.
      
      q_map must be ZERO in the beginning of this process.
      
      Signed-off-by: default avatarYelena Krivosheev <yelena@marvell.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@bootlin.com>
      Acked-by: default avatarThomas Petazzoni <thomas.petazzoni@bootlin.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e81b5e01
    • David Ahern's avatar
      net/ipv6: Fix route leaking between VRFs · b6cdbc85
      David Ahern authored
      Donald reported that IPv6 route leaking between VRFs is not working.
      The root cause is the strict argument in the call to rt6_lookup when
      validating the nexthop spec.
      
      ip6_route_check_nh validates the gateway and device (if given) of a
      route spec. It in turn could call rt6_lookup (e.g., lookup in a given
      table did not succeed so it falls back to a full lookup) and if so
      sets the strict argument to 1. That means if the egress device is given,
      the route lookup needs to return a result with the same device. This
      strict requirement does not work with VRFs (IPv4 or IPv6) because the
      oif in the flow struct is overridden with the index of the VRF device
      to trigger a match on the l3mdev rule and force the lookup to its table.
      
      The right long term solution is to add an l3mdev index to the flow
      struct such that the oif is not overridden. That solution will not
      backport well, so this patch aims for a simpler solution to relax the
      strict argument if the route spec device is an l3mdev slave. As done
      in other places, use the FLOWI_FLAG_SKIP_NH_OIF to know that the
      RT6_LOOKUP_F_IFACE flag needs to be removed.
      
      Fixes: ca254490
      
       ("net: Add VRF support to IPv6 stack")
      Reported-by: default avatarDonald Sharp <sharpd@cumulusnetworks.com>
      Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b6cdbc85
    • David Ahern's avatar
      vrf: Fix use after free and double free in vrf_finish_output · 82dd0d2a
      David Ahern authored
      Miguel reported an skb use after free / double free in vrf_finish_output
      when neigh_output returns an error. The vrf driver should return after
      the call to neigh_output as it takes over the skb on error path as well.
      
      Patch is a simplified version of Miguel's patch which was written for 4.9,
      and updated to top of tree.
      
      Fixes: 8f58336d
      
       ("net: Add ethernet header for pass through VRF device")
      Signed-off-by: default avatarMiguel Fadon Perlines <mfadon@teldat.com>
      Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      82dd0d2a
    • David Lebrun's avatar
      ipv6: sr: fix seg6 encap performances with TSO enabled · 5807b22c
      David Lebrun authored
      
      
      Enabling TSO can lead to abysmal performances when using seg6 in
      encap mode, such as with the ixgbe driver. This patch adds a call to
      iptunnel_handle_offloads() to remove the encapsulation bit if needed.
      
      Before:
      root@comp4-seg6bpf:~# iperf3 -c fc00::55
      Connecting to host fc00::55, port 5201
      [  4] local fc45::4 port 36592 connected to fc00::55 port 5201
      [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
      [  4]   0.00-1.00   sec   196 KBytes  1.60 Mbits/sec   47   6.66 KBytes
      [  4]   1.00-2.00   sec   304 KBytes  2.49 Mbits/sec  100   5.33 KBytes
      [  4]   2.00-3.00   sec   284 KBytes  2.32 Mbits/sec   92   5.33 KBytes
      
      After:
      root@comp4-seg6bpf:~# iperf3 -c fc00::55
      Connecting to host fc00::55, port 5201
      [  4] local fc45::4 port 43062 connected to fc00::55 port 5201
      [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
      [  4]   0.00-1.00   sec  1.03 GBytes  8.89 Gbits/sec    0    743 KBytes
      [  4]   1.00-2.00   sec  1.03 GBytes  8.87 Gbits/sec    0    743 KBytes
      [  4]   2.00-3.00   sec  1.03 GBytes  8.87 Gbits/sec    0    743 KBytes
      
      Reported-by: default avatarTom Herbert <tom@quantonium.net>
      Fixes: 6c8702c6
      
       ("ipv6: sr: add support for SRH encapsulation and injection with lwtunnels")
      Signed-off-by: default avatarDavid Lebrun <dlebrun@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5807b22c
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.16-rc8' of git://github.com/ceph/ceph-client · 9dd23268
      Linus Torvalds authored
      Pull ceph fix from Ilya Dryomov:
       "A fix for a dio-enabled loop on ceph deadlock from Zheng, marked for
        stable"
      
      * tag 'ceph-for-4.16-rc8' of git://github.com/ceph/ceph-client:
        ceph: only dirty ITER_IOVEC pages for direct read
      9dd23268
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 72573481
      Linus Torvalds authored
      Pull KVM fixes from Radim Krčmář:
       "PPC:
         - Fix a bug causing occasional machine check exceptions on POWER8
           hosts (introduced in 4.16-rc1)
      
        x86:
         - Fix a guest crashing regression with nested VMX and restricted
           guest (introduced in 4.16-rc1)
      
         - Fix dependency check for pv tlb flush (the wrong dependency that
           effectively disabled the feature was added in 4.16-rc4, the
           original feature in 4.16-rc1, so it got decent testing)"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86: Fix pv tlb flush dependencies
        KVM: nVMX: sync vmcs02 segment regs prior to vmx_set_cr0
        KVM: PPC: Book3S HV: Fix duplication of host SLB entries
      72573481
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · bd886137
      Linus Torvalds authored
      Pull i2c fix from Wolfram Sang:
       "A simple but worthwhile I2C driver fix for 4.16"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: i2c-stm32f7: fix no check on returned setup
      bd886137
    • Linus Torvalds's avatar
      Merge tag 'sound-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · ef82f598
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Very small fixes (all one-liners) at this time.
      
        One fix is for a PCM core stuff to correct the mmap behavior on
        non-x86. It doesn't show on most machines but mostly only for exotic
        non-interleaved formats"
      
      * tag 'sound-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: pcm: potential uninitialized return values
        ALSA: pcm: Use dma_bytes as size parameter in dma_mmap_coherent()
        ALSA: usb-audio: Add native DSD support for TEAC UD-301
      ef82f598
    • Tal Gilboa's avatar
      net/dim: Fix int overflow · f97c3dc3
      Tal Gilboa authored
      When calculating difference between samples, the values
      are multiplied by 100. Large values may cause int overflow
      when multiplied (usually on first iteration).
      Fixed by forcing 100 to be of type unsigned long.
      
      Fixes: 4c4dbb4a
      
       ("net/mlx5e: Move dynamic interrupt coalescing code to include/linux")
      Signed-off-by: default avatarTal Gilboa <talgi@mellanox.com>
      Reviewed-by: default avatarAndy Gospodarek <gospo@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f97c3dc3
    • David S. Miller's avatar
      Merge branch 'vlan-fix' · 52a9692a
      David S. Miller authored
      
      
      Toshiaki Makita says:
      
      ====================
      Fix vlan tag handling for vlan packets without ethernet headers
      
      Eric Dumazet reported syzbot found a new bug which leads to underflow of
      size argument of memmove(), causing crash[1]. This can be triggered by tun
      devices.
      
      The underflow happened because skb_vlan_untag() did not expect vlan packets
      without ethernet headers, and tun can produce such packets.
      I also checked vlan_insert_inner_tag() and found a similar bug.
      
      This series fixes these problems.
      
      [1] https://marc.info/?l=linux-netdev&m=152221753920510&w=2
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      52a9692a
    • Toshiaki Makita's avatar
      vlan: Fix vlan insertion for packets without ethernet header · c769accd
      Toshiaki Makita authored
      In some situation vlan packets do not have ethernet headers. One example
      is packets from tun devices. Users can specify vlan protocol in tun_pi
      field instead of IP protocol. When we have a vlan device with reorder_hdr
      disabled on top of the tun device, such packets from tun devices are
      untagged in skb_vlan_untag() and vlan headers will be inserted back in
      vlan_insert_inner_tag().
      
      vlan_insert_inner_tag() however did not expect packets without ethernet
      headers, so in such a case size argument for memmove() underflowed.
      
      We don't need to copy headers for packets which do not have preceding
      headers of vlan headers, so skip memmove() in that case.
      Also don't write vlan protocol in skb->data when it does not have enough
      room for it.
      
      Fixes: cbe7128c
      
       ("vlan: Fix out of order vlan headers with reorder header off")
      Signed-off-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c769accd
    • Toshiaki Makita's avatar
      net: Fix untag for vlan packets without ethernet header · ae474573
      Toshiaki Makita authored
      In some situation vlan packets do not have ethernet headers. One example
      is packets from tun devices. Users can specify vlan protocol in tun_pi
      field instead of IP protocol, and skb_vlan_untag() attempts to untag such
      packets.
      
      skb_vlan_untag() (more precisely, skb_reorder_vlan_header() called by it)
      however did not expect packets without ethernet headers, so in such a case
      size argument for memmove() underflowed and triggered crash.
      
      ====
      BUG: unable to handle kernel paging request at ffff8801cccb8000
      IP: __memmove+0x24/0x1a0 arch/x86/lib/memmove_64.S:43
      PGD 9cee067 P4D 9cee067 PUD 1d9401063 PMD 1cccb7063 PTE 2810100028101
      Oops: 000b [#1] SMP KASAN
      Dumping ftrace buffer:
         (ftrace buffer empty)
      Modules linked in:
      CPU: 1 PID: 17663 Comm: syz-executor2 Not tainted 4.16.0-rc7+ #368
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
      RIP: 0010:__memmove+0x24/0x1a0 arch/x86/lib/memmove_64.S:43
      RSP: 0018:ffff8801cc046e28 EFLAGS: 00010287
      RAX: ffff8801ccc244c4 RBX: fffffffffffffffe RCX: fffffffffff6c4c2
      RDX: fffffffffffffffe RSI: ffff8801cccb7ffc RDI: ffff8801cccb8000
      RBP: ffff8801cc046e48 R08: ffff8801ccc244be R09: ffffed0039984899
      R10: 0000000000000001 R11: ffffed0039984898 R12: ffff8801ccc244c4
      R13: ffff8801ccc244c0 R14: ffff8801d96b7c06 R15: ffff8801d96b7b40
      FS:  00007febd562d700(0000) GS:ffff8801db300000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: ffff8801cccb8000 CR3: 00000001ccb2f006 CR4: 00000000001606e0
      DR0: 0000000020000000 DR1: 0000000020000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
      Call Trace:
       memmove include/linux/string.h:360 [inline]
       skb_reorder_vlan_header net/core/skbuff.c:5031 [inline]
       skb_vlan_untag+0x470/0xc40 net/core/skbuff.c:5061
       __netif_receive_skb_core+0x119c/0x3460 net/core/dev.c:4460
       __netif_receive_skb+0x2c/0x1b0 net/core/dev.c:4627
       netif_receive_skb_internal+0x10b/0x670 net/core/dev.c:4701
       netif_receive_skb+0xae/0x390 net/core/dev.c:4725
       tun_rx_batched.isra.50+0x5ee/0x870 drivers/net/tun.c:1555
       tun_get_user+0x299e/0x3c20 drivers/net/tun.c:1962
       tun_chr_write_iter+0xb9/0x160 drivers/net/tun.c:1990
       call_write_iter include/linux/fs.h:1782 [inline]
       new_sync_write fs/read_write.c:469 [inline]
       __vfs_write+0x684/0x970 fs/read_write.c:482
       vfs_write+0x189/0x510 fs/read_write.c:544
       SYSC_write fs/read_write.c:589 [inline]
       SyS_write+0xef/0x220 fs/read_write.c:581
       do_syscall_64+0x281/0x940 arch/x86/entry/common.c:287
       entry_SYSCALL_64_after_hwframe+0x42/0xb7
      RIP: 0033:0x454879
      RSP: 002b:00007febd562cc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      RAX: ffffffffffffffda RBX: 00007febd562d6d4 RCX: 0000000000454879
      RDX: 0000000000000157 RSI: 0000000020000180 RDI: 0000000000000014
      RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 00000000ffffffff
      R13: 00000000000006b0 R14: 00000000006fc120 R15: 0000000000000000
      Code: 90 90 90 90 90 90 90 48 89 f8 48 83 fa 20 0f 82 03 01 00 00 48 39 fe 7d 0f 49 89 f0 49 01 d0 49 39 f8 0f 8f 9f 00 00 00 48 89 d1 <f3> a4 c3 48 81 fa a8 02 00 00 72 05 40 38 fe 74 3b 48 83 ea 20
      RIP: __memmove+0x24/0x1a0 arch/x86/lib/memmove_64.S:43 RSP: ffff8801cc046e28
      CR2: ffff8801cccb8000
      ====
      
      We don't need to copy headers for packets which do not have preceding
      headers of vlan headers, so skip memmove() in that case.
      
      Fixes: 4bbb3e0e
      
       ("net: Fix vlan untag for bridge and vlan_dev with reorder_hdr off")
      Reported-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ae474573
  3. Mar 30, 2018
    • Colin Ian King's avatar
      atm: iphase: fix spelling mistake: "Receiverd" -> "Received" · a9645b27
      Colin Ian King authored
      
      
      Trivial fix to spelling mistake in message text
      
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a9645b27
    • Yan, Zheng's avatar
      ceph: only dirty ITER_IOVEC pages for direct read · 85784f93
      Yan, Zheng authored
      
      
      If a page is already locked, attempting to dirty it leads to a deadlock
      in lock_page().  This is what currently happens to ITER_BVEC pages when
      a dio-enabled loop device is backed by ceph:
      
        $ losetup --direct-io /dev/loop0 /mnt/cephfs/img
        $ xfs_io -c 'pread 0 4k' /dev/loop0
      
      Follow other file systems and only dirty ITER_IOVEC pages.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatar"Yan, Zheng" <zyan@redhat.com>
      Reviewed-by: default avatarIlya Dryomov <idryomov@gmail.com>
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      85784f93
    • Linus Torvalds's avatar
      Merge tag 'for-4.16/dm-fixes-4' of... · c2a98384
      Linus Torvalds authored
      Merge tag 'for-4.16/dm-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fixes from Mike Snitzer:
      
       - Fix a DM multipath regression introduced in a v4.16-rc6 commit:
         restore support for loading, and attaching, scsi_dh modules during
         multipath table load. Otherwise some users may find themselves unable
         to boot, as was reported today:
      
           https://marc.info/?l=linux-scsi&m=152231276114962&w=2
      
       - Fix a DM core ioctl permission check regression introduced in a
         v4.16-rc5 commit.
      
      * tag 'for-4.16/dm-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm: fix dropped return code from dm_get_bdev_for_ioctl
        dm mpath: fix support for loading scsi_dh modules during table load
      c2a98384
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · d89b9f50
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "It has been fairly silent lately on our -rc front. Big queue of
        patches on the mailing list going to for-next though.
      
        Bug fixes:
         - qedr driver bugfixes causing application hangs, wrong uapi errnos,
           and a race condition
         - three syzkaller found bugfixes in the ucma uapi
      
        Regression fixes for things introduced in 4.16:
         - Crash on error introduced in mlx5 UMR flow
         - Crash on module unload/etc introduced by bad interaction of
           restrack and mlx5 patches this cycle
         - Typo in a two line syzkaller bugfix causing a bad regression
         - Coverity report of nonsense code in hns driver"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/ucma: Introduce safer rdma_addr_size() variants
        RDMA/hns: ensure for-loop actually iterates and free's buffers
        RDMA/ucma: Check that device exists prior to accessing it
        RDMA/ucma: Check that device is connected prior to access it
        RDMA/rdma_cm: Fix use after free race with process_one_req
        RDMA/qedr: Fix QP state initialization race
        RDMA/qedr: Fix rc initialization on CNQ allocation failure
        RDMA/qedr: fix QP's ack timeout configuration
        RDMA/ucma: Correct option size check using optlen
        RDMA/restrack: Move restrack_clean to be symmetrical to restrack_init
        IB/mlx5: Don't clean uninitialized UMR resources
      d89b9f50
    • Linus Torvalds's avatar
      Merge tag 'mtd/fixes-for-4.16' of git://git.infradead.org/linux-mtd · ab12762b
      Linus Torvalds authored
      Pull MTD fixes from Boris Brezillon:
       "Two fixes, one in the atmel NAND driver and another one in the
        CFI/JEDEC code.
      
        Summary:
      
         - Fix a bug in Atmel ECC engine driver
      
         - Fix a bug in the CFI/JEDEC driver"
      
      * tag 'mtd/fixes-for-4.16' of git://git.infradead.org/linux-mtd:
        mtd: jedec_probe: Fix crash in jedec_read_mfr()
        mtd: nand: atmel: Fix get_sectorsize() function
      ab12762b
    • Mike Snitzer's avatar
      dm: fix dropped return code from dm_get_bdev_for_ioctl · da5dadb4
      Mike Snitzer authored
      dm_get_bdev_for_ioctl()'s return of 0 or 1 must be the result from
      prepare_ioctl (1 means the ioctl was issued to a partition, 0 means it
      wasn't).  Unfortunately commit 519049af ("dm: use blkdev_get rather
      than bdgrab when issuing pass-through ioctl") reused the variable 'r'
      to store the return from blkdev_get() that follows prepare_ioctl()
      -- whereby dropping prepare_ioctl()'s result on the floor.
      
      This can lead to an ioctl or persistent reservation being issued to a
      partition going unnoticed, which implies the extra permission check for
      CAP_SYS_RAWIO is skipped.
      
      Fix this by using a different variable to store blkdev_get()'s return.
      
      Fixes: 519049af
      
       ("dm: use blkdev_get rather than bdgrab when issuing pass-through ioctl")
      Reported-by: default avatarAlasdair G Kergon <agk@redhat.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      da5dadb4
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · 74957cbf
      David S. Miller authored
      
      
      Daniel Borkman says:
      
      ====================
      pull-request: bpf 2018-03-29
      
      The following pull-request contains BPF updates for your *net* tree.
      
      The main changes are:
      
      1) Fix nfp to properly check max insn count while emitting
         instructions in the JIT which was wrongly comparing bytes
         against number of instructions before, from Jakub.
      
      2) Fix for bpftool to avoid usage of hex numbers in JSON
         output since JSON doesn't accept hex numbers with 0x
         prefix, also from Jakub.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      74957cbf
    • Mike Snitzer's avatar
      dm mpath: fix support for loading scsi_dh modules during table load · e457edf0
      Mike Snitzer authored
      The ability to have multipath dynamically attach a scsi_dh, that the user
      specified in the multipath table, was broken by commit e8f74a0f ("dm
      mpath: eliminate need to use scsi_device_from_queue").
      
      Restore the ability to load, and attach, a particular scsi_dh module if
      one is specified (as noticed by checking m->hw_handler_name).
      
      Fixes: e8f74a0f
      
       ("dm mpath: eliminate need to use scsi_device_from_queue")
      Reported-by: default avatarPaul Mackerras <paulus@ozlabs.org>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      e457edf0
    • Jason Wang's avatar
      vhost: validate log when IOTLB is enabled · d65026c6
      Jason Wang authored
      Vq log_base is the userspace address of bitmap which has nothing to do
      with IOTLB. So it needs to be validated unconditionally otherwise we
      may try use 0 as log_base which may lead to pin pages that will lead
      unexpected result (e.g trigger BUG_ON() in set_bit_to_user()).
      
      Fixes: 6b1e6cc7
      
       ("vhost: new device IOTLB API")
      Reported-by: default avatar <syzbot+6304bf97ef436580fede@syzkaller.appspotmail.com>
      Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
      Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d65026c6
    • Manish Chopra's avatar
      qede: Do not drop rx-checksum invalidated packets. · 58f101bf
      Manish Chopra authored
      
      
      Today, driver drops received packets which are indicated as
      invalid checksum by the device. Instead of dropping such packets,
      pass them to the stack with CHECKSUM_NONE indication in skb.
      
      Signed-off-by: default avatarAriel Elior <ariel.elior@cavium.com>
      Signed-off-by: default avatarManish Chopra <manish.chopra@cavium.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      58f101bf
    • Linus Walleij's avatar
      mtd: jedec_probe: Fix crash in jedec_read_mfr() · 87a73eb5
      Linus Walleij authored
      It turns out that the loop where we read manufacturer
      jedec_read_mfd() can under some circumstances get a
      CFI_MFR_CONTINUATION repeatedly, making the loop go
      over all banks and eventually hit the end of the
      map and crash because of an access violation:
      
      Unable to handle kernel paging request at virtual address c4980000
      pgd = (ptrval)
      [c4980000] *pgd=03808811, *pte=00000000, *ppte=00000000
      Internal error: Oops: 7 [#1] PREEMPT ARM
      CPU: 0 PID: 1 Comm: swapper Not tainted 4.16.0-rc1+ #150
      Hardware name: Gemini (Device Tree)
      PC is at jedec_probe_chip+0x6ec/0xcd0
      LR is at 0x4
      pc : [<c03a2bf4>]    lr : [<00000004>]    psr: 60000013
      sp : c382dd18  ip : 0000ffff  fp : 00000000
      r10: c0626388  r9 : 00020000  r8 : c0626340
      r7 : 00000000  r6 : 00000001  r5 : c3a71afc  r4 : c382dd70
      r3 : 00000001  r2 : c4900000  r1 : 00000002  r0 : 00080000
      Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
      Control: 0000397f  Table: 00004000  DAC: 00000053
      Process swapper (pid: 1, stack limit = 0x(ptrval))
      
      Fix this by breaking the loop with a return 0 if
      the offset exceeds the map size.
      
      Fixes: 5c9c11e1
      
       ("[MTD] [NOR] Add support for flash chips with ID in bank other than 0")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
      87a73eb5
    • Boris Brezillon's avatar
      mtd: nand: atmel: Fix get_sectorsize() function · 2b1b1b4a
      Boris Brezillon authored
      get_sectorsize() was not using the appropriate macro to extract the
      ECC sector size from the config cache, which led to buggy ECC when
      using 1024 byte sectors.
      
      Fixes: f88fc122
      
       ("mtd: nand: Cleanup/rework the atmel_nand driver")
      Cc: <stable@vger.kernel.org>
      Reported-by: default avatarOlivier Schonken <olivier.schonken@gmail.com>
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
      Reviewed-by: default avatarRichard Weinberger <richard@nod.at>
      Acked-by: default avatarNicolas Ferre <nicolas.ferre@microchip.com>
      Tested-by: default avatarOlivier Schonken <olivier.schonken@gmail.com>
      2b1b1b4a
  4. Mar 29, 2018
    • Stephen Hemminger's avatar
      hv_netvsc: enable multicast if necessary · f03dbb06
      Stephen Hemminger authored
      My recent change to netvsc drive in how receive flags are handled
      broke multicast.  The Hyper-v/Azure virtual interface there is not a
      multicast filter list, filtering is only all or none. The driver must
      enable all multicast if any multicast address is present.
      
      Fixes: 009f766c
      
       ("hv_netvsc: filter multicast/broadcast")
      Signed-off-by: default avatarStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f03dbb06
    • David S. Miller's avatar
      ip_tunnel: Resolve ipsec merge conflict properly. · 5568cdc3
      David S. Miller authored
      
      
      We want to use dev_set_mtu() regardless of how we calculate
      the mtu value.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5568cdc3
    • Raghuram Chary J's avatar
      lan78xx: Crash in lan78xx_writ_reg (Workqueue: events lan78xx_deferred_multicast_write) · 2d2d99ec
      Raghuram Chary J authored
      Description:
      Crash was reported with syzkaller pointing to lan78xx_write_reg routine.
      
      Root-cause:
      Proper cleanup of workqueues and init/setup routines was not happening
      in failure conditions.
      
      Fix:
      Handled the error conditions by cleaning up the queues and init/setup
      routines.
      
      Fixes: 55d7de9d
      
       ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver")
      Reported-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Signed-off-by: default avatarRaghuram Chary J <raghuramchary.jallipalli@microchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2d2d99ec
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec · 020295d9
      David S. Miller authored
      Steffen Klassert says:
      
      ====================
      pull request (net): ipsec 2018-03-29
      
      1) Fix a rcu_read_lock/rcu_read_unlock imbalance
         in the error path of xfrm_local_error().
         From Taehee Yoo.
      
      2) Some VTI MTU fixes. From Stefano Brivio.
      
      3) Fix a too early overwritten skb control buffer
         on xfrm transport mode.
      
      Please note that this pull request has a merge conflict
      in net/ipv4/ip_tunnel.c.
      
      The conflict is between
      
      commit f6cc9c05 ("ip_tunnel: Emit events for post-register MTU changes")
      
      from the net tree and
      
      commit 24fc7979
      
       ("ip_tunnel: Clamp MTU to bounds on new link")
      
      from the ipsec tree.
      
      It can be solved as it is currently done in linux-next.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      020295d9
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-for-v4.16-rc8' of git://people.freedesktop.org/~airlied/linux · 0b412605
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Nothing serious, two amdkfd and two tegra fixes"
      
      * tag 'drm-fixes-for-v4.16-rc8' of git://people.freedesktop.org/~airlied/linux:
        drm/tegra: dc: Using NULL instead of plain integer
        drm/amdkfd: Deallocate SDMA queues correctly
        drm/amdkfd: Fix scratch memory with HWS enabled
        drm/tegra: dc: Use correct format array for Tegra124
      0b412605
    • Masahiro Yamada's avatar
      netfilter: nf_nat_snmp_basic: add correct dependency to Makefile · 28913ee8
      Masahiro Yamada authored
      nf_nat_snmp_basic_main.c includes a generated header, but the
      necessary dependency is missing in Makefile. This could cause
      build error in parallel building.
      
      Remove a weird line, and add a correct one.
      
      Fixes: cc2d5863
      
       ("netfilter: nf_nat_snmp_basic: use asn1 decoder library")
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      28913ee8
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 68b8dffc
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "8 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        MAINTAINERS: demote ARM port to "odd fixes"
        MAINTAINERS: correct rmk's email address
        mm/kmemleak.c: wait for scan completion before disabling free
        mm/memcontrol.c: fix parameter description mismatch
        mm/vmstat.c: fix vmstat_update() preemption BUG
        mm/page_owner: fix recursion bug after changing skip entries
        ipc/shm.c: add split function to shm_vm_ops
        mm, slab: memcg_link the SLAB's kmem_cache
      68b8dffc
    • Dave Airlie's avatar
      Merge tag 'drm/tegra/for-4.16-fixes' of git://anongit.freedesktop.org/tegra/linux into drm-fixes · ef55d153
      Dave Airlie authored
      drm/tegra: Fixes for v4.16
      
      This contains two small fixes, one which fixes a typo that causes a
      crash with the new framebuffer modifier query support and another that
      fixes a build warning.
      
      * tag 'drm/tegra/for-4.16-fixes' of git://anongit.freedesktop.org/tegra/linux:
        drm/tegra: dc: Using NULL instead of plain integer
        drm/tegra: dc: Use correct format array for Tegra124
      ef55d153
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.16-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · a2601d78
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Some more powerpc fixes for 4.16. Apologies if this is a bit big at
        rc7, but they're all reasonably important fixes. None are actually for
        new code, so they aren't indicative of 4.16 being in bad shape from
        our point of view.
      
         - Fix missing AT_BASE_PLATFORM (in auxv) when we're using a new
           firmware interface for describing CPU features.
      
         - Fix lost pending interrupts due to a race in our interrupt
           soft-masking code.
      
         - A workaround for a nest MMU bug with TLB invalidations on Power9.
      
         - A workaround for broadcast TLB invalidations on Power9.
      
         - Fix a bug in our instruction SLB miss handler, when handling bad
           addresses (eg. >= TASK_SIZE), which could corrupt non-volatile user
           GPRs.
      
        Thanks to: Aneesh Kumar K.V, Balbir Singh, Benjamin Herrenschmidt,
        Nicholas Piggin"
      
      * tag 'powerpc-4.16-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/64s: Fix i-side SLB miss bad address handler saving nonvolatile GPRs
        powerpc/mm: Fixup tlbie vs store ordering issue on POWER9
        powerpc/mm/radix: Move the functions that does the actual tlbie closer
        powerpc/mm/radix: Remove unused code
        powerpc/mm: Workaround Nest MMU bug with TLB invalidations
        powerpc/mm: Add tracking of the number of coprocessors using a context
        powerpc/64s: Fix lost pending interrupt due to race causing lost update to irq_happened
        powerpc/64s: Fix NULL AT_BASE_PLATFORM when using DT CPU features
      a2601d78
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 616d8cf0
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "Here are are a couple of last-minute fixes for 4.16, mostly for
        regressions. As usual, the majory are device tree changes:
      
         - USB 3 support on rk3399 didn't work and is being reverted for now
      
         - One fix for an old suspend/resume bug on rk3399
      
         - A few regulator related fixes on Banana Pi M2, and on imx7d-sdb
      
         - A boot regression fix for all Aspeed SoCs failing to find their
           memory
      
         - One more dtc warning fix
      
        The other changes are:
      
         - A few updates to the MAINTAINERS file
      
         - A revert for an incorrect orion5x cleanup
      
         - Two power management fixes for OMAP"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: OMAP: Fix SRAM W+X mapping
        ARM: dts: aspeed: Add default memory node
        mailmap: Update email address for Gregory CLEMENT
        ARM: davinci: fix the GPIO lookup for omapl138-hawk
        MAINTAINERS: Update Tegra IOMMU maintainer
        ARM: dts: imx7d-sdb: Fix regulator-usb-otg2-vbus node name
        ARM: ux500: Fix PMU IRQ regression
        ARM: dts: rockchip: Add missing #sound-dai-cells on rk3288
        Revert "arm64: dts: rockchip: add usb3-phy otg-port support for rk3399"
        arm64: dts: rockchip: Fix rk3399-gru-* s2r (pinctrl hogs, wifi reset)
        ARM: OMAP: Fix dmtimer init for omap1
        MAINTAINERS: update email address for Maxime Ripard
        ARM: dts: sun6i: a31s: bpi-m2: add missing regulators
        ARM: dts: sun6i: a31s: bpi-m2: improve pmic properties
      616d8cf0
    • Russell King's avatar
      MAINTAINERS: demote ARM port to "odd fixes" · 18bd4904
      Russell King authored
      
      
      As of the start of 2018, I am no longer paid to support the core 32-bit
      ARM architecture code.  This means that this code is no longer
      commercially supported, and is now only supported through voluntary
      effort.
      
      I will continue to merge patches as and when able, but this will be at a
      lower priority than before (which means a longer latency.) I have also
      be scaled back the amount of time spent reading email, so email that is
      intended for my attention needs to make itself plainly obvious, or I
      will miss it.
      
      In an attempt to reduce the amount of email Cc'd to me, exclude
      arch/arm/boot/dts from the maintainers patterns, but add entries for the
      SolidRun platforms I look after.
      
      Link: http://lkml.kernel.org/r/E1ezkgn-0002fO-52@rmk-PC.armlinux.org.uk
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      18bd4904
    • Russell King's avatar
      MAINTAINERS: correct rmk's email address · 5b634e8e
      Russell King authored
      
      
      Correct my email address in the MAINTAINTERS file.
      
      Link: http://lkml.kernel.org/r/E1ezkgi-0002fH-01@rmk-PC.armlinux.org.uk
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5b634e8e
    • Vinayak Menon's avatar
      mm/kmemleak.c: wait for scan completion before disabling free · 914b6dff
      Vinayak Menon authored
      A crash is observed when kmemleak_scan accesses the object->pointer,
      likely due to the following race.
      
        TASK A             TASK B                     TASK C
        kmemleak_write
         (with "scan" and
         NOT "scan=on")
        kmemleak_scan()
                           create_object
                           kmem_cache_alloc fails
                           kmemleak_disable
                           kmemleak_do_cleanup
                           kmemleak_free_enabled = 0
                                                      kfree
                                                      kmemleak_free bails out
                                                       (kmemleak_free_enabled is 0)
                                                      slub frees object->pointer
        update_checksum
        crash - object->pointer
         freed (DEBUG_PAGEALLOC)
      
      kmemleak_do_cleanup waits for the scan thread to complete, but not for
      direct call to kmemleak_scan via kmemleak_write.  So add a wait for
      kmemleak_scan completion before...
      914b6dff