1. 24 5月, 2019 1 次提交
    • Y
      mac80211: handle deauthentication/disassociation from TDLS peer · 79c92ca4
      Yu Wang 提交于
      When receiving a deauthentication/disassociation frame from a TDLS
      peer, a station should not disconnect the current AP, but only
      disable the current TDLS link if it's enabled.
      
      Without this change, a TDLS issue can be reproduced by following the
      steps as below:
      
      1. STA-1 and STA-2 are connected to AP, bidirection traffic is running
         between STA-1 and STA-2.
      2. Set up TDLS link between STA-1 and STA-2, stay for a while, then
         teardown TDLS link.
      3. Repeat step #2 and monitor the connection between STA and AP.
      
      During the test, one STA may send a deauthentication/disassociation
      frame to another, after TDLS teardown, with reason code 6/7, which
      means: Class 2/3 frame received from nonassociated STA.
      
      On receive this frame, the receiver STA will disconnect the current
      AP and then reconnect. It's not a expected behavior, purpose of this
      frame should be disabling the TDLS link, not the link with AP.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NYu Wang <yyuwang@codeaurora.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      79c92ca4
  2. 14 5月, 2019 15 次提交
    • M
      wireless: Skip directory when generating certificates · 32b5a2c9
      Maxim Mikityanskiy 提交于
      Commit 715a1233 ("wireless: don't write C files on failures") drops
      the `test -f $$f` check. The list of targets contains the
      CONFIG_CFG80211_EXTRA_REGDB_KEYDIR directory itself, and this check used
      to filter it out. After the check was removed, the extra keydir option
      no longer works, failing with the following message:
      
      od: 'standard input': read error: Is a directory
      
      This commit restores the check to make extra keydir work again.
      
      Fixes: 715a1233 ("wireless: don't write C files on failures")
      Signed-off-by: NMaxim Mikityanskiy <maxtram95@gmail.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      32b5a2c9
    • L
      Merge tag 'gcc-plugins-v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/kees/linux · 63863ee8
      Linus Torvalds 提交于
      Pull gcc plugin fix from Kees Cook:
       "Fix ARM stack-protector-per-task plugin build for older GCC < 6 (Chris
        Packham)"
      
      * tag 'gcc-plugins-v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        gcc-plugins: arm_ssp_per_task_plugin: Fix for older GCC < 6
      63863ee8
    • T
      gfs2: Fix error path kobject memory leak · fbcde197
      Tobin C. Harding 提交于
      If a call to kobject_init_and_add() fails we must call kobject_put()
      otherwise we leak memory.
      
      Function gfs2_sys_fs_add always calls kobject_init_and_add() which
      always calls kobject_init().
      
      It is safe to leave object destruction up to the kobject release
      function and never free it manually.
      
      Remove call to kfree() and always call kobject_put() in the error path.
      Signed-off-by: NTobin C. Harding <tobin@kernel.org>
      Reviewed-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fbcde197
    • L
      Merge branch 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu · 3aff5fac
      Linus Torvalds 提交于
      Pull percpu updates from Dennis Zhou:
      
       - scan hint update which helps address performance issues with heavily
         fragmented blocks
      
       - lockdep fix when freeing an allocation causes balance work to be
         scheduled
      
      * 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu:
        percpu: remove spurious lock dependency between percpu and sched
        percpu: use chunk scan_hint to skip some scanning
        percpu: convert chunk hints to be based on pcpu_block_md
        percpu: make pcpu_block_md generic
        percpu: use block scan_hint to only scan forward
        percpu: remember largest area skipped during allocation
        percpu: add block level scan_hint
        percpu: set PCPU_BITMAP_BLOCK_SIZE to PAGE_SIZE
        percpu: relegate chunks unusable when failing small allocations
        percpu: manage chunks based on contig_bits instead of free_bytes
        percpu: introduce helper to determine if two regions overlap
        percpu: do not search past bitmap when allocating an area
        percpu: update free path with correct new free region
      3aff5fac
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 0aed4b28
      Linus Torvalds 提交于
      Pull input updates from Dmitry Torokhov:
       "A few new drivers:
      
         - driver for Azoteq IQS550/572/525 touch controllers
      
         - driver for Microchip AT42QT1050 keys
      
         - driver for GPIO controllable vibrators
      
         - support for GT5663 in Goodix driver
      
        ... along with miscellaneous driver fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: libps2 - mark expected switch fall-through
        Input: qt1050 - add Microchip AT42QT1050 support
        Input: add support for Azoteq IQS550/572/525
        Input: add a driver for GPIO controllable vibrators
        Input: synaptics-rmi4 - fix enum_fmt
        Input: synaptics-rmi4 - fill initial format
        HID: input: add mapping for KEY_KBD_LAYOUT_NEXT
        Input: add KEY_KBD_LAYOUT_NEXT
        Input: hyperv-keyboard - add module description
        Input: olpc_apsp - depend on ARCH_MMP
        Input: sun4i-a10-lradc-keys - add support for A83T
        Input: snvs_pwrkey - use dev_pm_set_wake_irq() to simplify code
        Input: lpc32xx-key - add clocks property and fix DT binding example
        Input: i8042 - signal wakeup from atkbd/psmouse
        Input: goodix - add GT5663 CTP support
        Input: goodix - add regulators suppot
        Input: evdev - use struct_size() in kzalloc() and vzalloc()
        Input: edt-ft5x06 - convert to use SPDX identifier
        Input: edt-ft5x06 - enable ACPI enumeration
      0aed4b28
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · a3958f5e
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
       "Fixes all over:
      
         1) Netdev refcnt leak in nf_flow_table, from Taehee Yoo.
      
         2) Fix RCU usage in nf_tables, from Florian Westphal.
      
         3) Fix DSA build when NET_DSA_TAG_BRCM_PREPEND is not set, from Yue
            Haibing.
      
         4) Add missing page read/write ops to realtek driver, from Heiner
            Kallweit.
      
         5) Endianness fix in qrtr code, from Nicholas Mc Guire.
      
         6) Fix various bugs in DSA_SKB_* macros, from Vladimir Oltean.
      
         7) Several BPF documentation cures, from Quentin Monnet.
      
         8) Fix undefined behavior in narrow load handling of BPF verifier,
            from Krzesimir Nowak.
      
         9) DMA ops crash in SGI Seeq driver due to not set netdev parent
            device pointer, from Thomas Bogendoerfer.
      
        10) Flow dissector has to disable preemption when invoking BPF
            program, from Eric Dumazet"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (48 commits)
        net: ethernet: stmmac: dwmac-sun8i: enable support of unicast filtering
        net: ethernet: ti: netcp_ethss: fix build
        flow_dissector: disable preemption around BPF calls
        bonding: fix arp_validate toggling in active-backup mode
        net: meson: fixup g12a glue ephy id
        net: phy: realtek: Replace phy functions with non-locked version in rtl8211e_config_init()
        net: seeq: fix crash caused by not set dev.parent
        of_net: Fix missing of_find_device_by_node ref count drop
        net: mvpp2: cls: Add missing NETIF_F_NTUPLE flag
        bpf: fix undefined behavior in narrow load handling
        libbpf: detect supported kernel BTF features and sanitize BTF
        selftests: bpf: Add files generated after build to .gitignore
        tools: bpf: synchronise BPF UAPI header with tools
        bpf: fix minor issues in documentation for BPF helpers.
        bpf: fix recurring typo in documentation for BPF helpers
        bpf: fix script for generating man page on BPF helpers
        bpf: add various test cases for backward jumps
        net: dccp : proto: remove Unneeded variable "err"
        net: dsa: Remove the now unused DSA_SKB_CB_COPY() macro
        net: dsa: Remove dangerous DSA_SKB_CLONE() macro
        ...
      a3958f5e
    • L
      Merge tag 'fsnotify_for_v5.2-rc1' of... · d4c60811
      Linus Torvalds 提交于
      Merge tag 'fsnotify_for_v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
      
      Pull fsnotify fixes from Jan Kara:
       "Two fsnotify fixes"
      
      * tag 'fsnotify_for_v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fsnotify: fix unlink performance regression
        fsnotify: Clarify connector assignment in fsnotify_add_mark_list()
      d4c60811
    • L
      Merge tag 'fs_for_v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 29c079ca
      Linus Torvalds 提交于
      Pull misc filesystem updates from Jan Kara:
       "A couple of small bugfixes and cleanups for quota, udf, ext2, and
        reiserfs"
      
      * tag 'fs_for_v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        quota: check time limit when back out space/inode change
        fs/quota: erase unused but set variable warning
        quota: fix wrong indentation
        udf: fix an uninitialized read bug and remove dead code
        fs/reiserfs/journal.c: Make remove_journal_hash static
        quota: remove trailing whitespaces
        quota: code cleanup for __dquot_alloc_space()
        ext2: Adjust the comment of function ext2_alloc_branch
        udf: Explain handling of load_nls() failure
      29c079ca
    • C
      net: ethernet: stmmac: dwmac-sun8i: enable support of unicast filtering · d4c26eb6
      Corentin Labbe 提交于
      When adding more MAC addresses to a dwmac-sun8i interface, the device goes
      directly in promiscuous mode.
      This is due to IFF_UNICAST_FLT missing flag.
      
      So since the hardware support unicast filtering, let's add IFF_UNICAST_FLT.
      
      Fixes: 9f93ac8d ("net-next: stmmac: Add dwmac-sun8i")
      Signed-off-by: NCorentin Labbe <clabbe@baylibre.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d4c26eb6
    • G
      net: ethernet: ti: netcp_ethss: fix build · a8577e13
      Grygorii Strashko 提交于
      Fix reported build fail:
      ERROR: "cpsw_ale_flush_multicast" [drivers/net/ethernet/ti/keystone_netcp_ethss.ko] undefined!
      ERROR: "cpsw_ale_create" [drivers/net/ethernet/ti/keystone_netcp_ethss.ko] undefined!
      ERROR: "cpsw_ale_add_vlan" [drivers/net/ethernet/ti/keystone_netcp_ethss.ko] undefined!
      
      Fixes: 16f54164 ("net: ethernet: ti: cpsw: drop CONFIG_TI_CPSW_ALE config option")
      Reported-by: Nkbuild test robot <lkp@intel.com>
      Signed-off-by: NGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a8577e13
    • E
      flow_dissector: disable preemption around BPF calls · b1c17a9a
      Eric Dumazet 提交于
      Various things in eBPF really require us to disable preemption
      before running an eBPF program.
      
      syzbot reported :
      
      BUG: assuming atomic context at net/core/flow_dissector.c:737
      in_atomic(): 0, irqs_disabled(): 0, pid: 24710, name: syz-executor.3
      2 locks held by syz-executor.3/24710:
       #0: 00000000e81a4bf1 (&tfile->napi_mutex){+.+.}, at: tun_get_user+0x168e/0x3ff0 drivers/net/tun.c:1850
       #1: 00000000254afebd (rcu_read_lock){....}, at: __skb_flow_dissect+0x1e1/0x4bb0 net/core/flow_dissector.c:822
      CPU: 1 PID: 24710 Comm: syz-executor.3 Not tainted 5.1.0+ #6
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
      Call Trace:
       __dump_stack lib/dump_stack.c:77 [inline]
       dump_stack+0x172/0x1f0 lib/dump_stack.c:113
       __cant_sleep kernel/sched/core.c:6165 [inline]
       __cant_sleep.cold+0xa3/0xbb kernel/sched/core.c:6142
       bpf_flow_dissect+0xfe/0x390 net/core/flow_dissector.c:737
       __skb_flow_dissect+0x362/0x4bb0 net/core/flow_dissector.c:853
       skb_flow_dissect_flow_keys_basic include/linux/skbuff.h:1322 [inline]
       skb_probe_transport_header include/linux/skbuff.h:2500 [inline]
       skb_probe_transport_header include/linux/skbuff.h:2493 [inline]
       tun_get_user+0x2cfe/0x3ff0 drivers/net/tun.c:1940
       tun_chr_write_iter+0xbd/0x156 drivers/net/tun.c:2037
       call_write_iter include/linux/fs.h:1872 [inline]
       do_iter_readv_writev+0x5fd/0x900 fs/read_write.c:693
       do_iter_write fs/read_write.c:970 [inline]
       do_iter_write+0x184/0x610 fs/read_write.c:951
       vfs_writev+0x1b3/0x2f0 fs/read_write.c:1015
       do_writev+0x15b/0x330 fs/read_write.c:1058
       __do_sys_writev fs/read_write.c:1131 [inline]
       __se_sys_writev fs/read_write.c:1128 [inline]
       __x64_sys_writev+0x75/0xb0 fs/read_write.c:1128
       do_syscall_64+0x103/0x670 arch/x86/entry/common.c:298
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      Fixes: d58e468b ("flow_dissector: implements flow dissector BPF hook")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Reported-by: Nsyzbot <syzkaller@googlegroups.com>
      Cc: Petar Penkov <ppenkov@google.com>
      Cc: Stanislav Fomichev <sdf@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b1c17a9a
    • J
      bonding: fix arp_validate toggling in active-backup mode · a9b8a2b3
      Jarod Wilson 提交于
      There's currently a problem with toggling arp_validate on and off with an
      active-backup bond. At the moment, you can start up a bond, like so:
      
      modprobe bonding mode=1 arp_interval=100 arp_validate=0 arp_ip_targets=192.168.1.1
      ip link set bond0 down
      echo "ens4f0" > /sys/class/net/bond0/bonding/slaves
      echo "ens4f1" > /sys/class/net/bond0/bonding/slaves
      ip link set bond0 up
      ip addr add 192.168.1.2/24 dev bond0
      
      Pings to 192.168.1.1 work just fine. Now turn on arp_validate:
      
      echo 1 > /sys/class/net/bond0/bonding/arp_validate
      
      Pings to 192.168.1.1 continue to work just fine. Now when you go to turn
      arp_validate off again, the link falls flat on it's face:
      
      echo 0 > /sys/class/net/bond0/bonding/arp_validate
      dmesg
      ...
      [133191.911987] bond0: Setting arp_validate to none (0)
      [133194.257793] bond0: bond_should_notify_peers: slave ens4f0
      [133194.258031] bond0: link status definitely down for interface ens4f0, disabling it
      [133194.259000] bond0: making interface ens4f1 the new active one
      [133197.330130] bond0: link status definitely down for interface ens4f1, disabling it
      [133197.331191] bond0: now running without any active interface!
      
      The problem lies in bond_options.c, where passing in arp_validate=0
      results in bond->recv_probe getting set to NULL. This flies directly in
      the face of commit 3fe68df9, which says we need to set recv_probe =
      bond_arp_recv, even if we're not using arp_validate. Said commit fixed
      this in bond_option_arp_interval_set, but missed that we can get to that
      same state in bond_option_arp_validate_set as well.
      
      One solution would be to universally set recv_probe = bond_arp_recv here
      as well, but I don't think bond_option_arp_validate_set has any business
      touching recv_probe at all, and that should be left to the arp_interval
      code, so we can just make things much tidier here.
      
      Fixes: 3fe68df9 ("bonding: always set recv_probe to bond_arp_rcv in arp monitor")
      CC: Jay Vosburgh <j.vosburgh@gmail.com>
      CC: Veaceslav Falico <vfalico@gmail.com>
      CC: Andy Gospodarek <andy@greyhouse.net>
      CC: "David S. Miller" <davem@davemloft.net>
      CC: netdev@vger.kernel.org
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NJay Vosburgh <jay.vosburgh@canonical.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a9b8a2b3
    • J
      net: meson: fixup g12a glue ephy id · 0ecfc7e1
      Jerome Brunet 提交于
      The phy id chosen by Amlogic is incorrectly set in the mdio mux and
      does not match the phy driver.
      
      It was not detected before because DT forces the use the correct driver
      for the internal PHY.
      
      Fixes: 70904251 ("net: phy: add amlogic g12a mdio mux support")
      Reported-by: NQi Duan <qi.duan@amlogic.com>
      Signed-off-by: NJerome Brunet <jbrunet@baylibre.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0ecfc7e1
    • K
      net: phy: realtek: Replace phy functions with non-locked version in rtl8211e_config_init() · dffe7d2e
      Kunihiko Hayashi 提交于
      After calling phy_select_page() and until calling phy_restore_page(),
      the mutex 'mdio_lock' is already locked, so the driver should use
      non-locked version of phy functions. Or there will be a deadlock with
      'mdio_lock'.
      
      This replaces phy functions called from rtl8211e_config_init() to avoid
      the deadlock issue.
      
      Fixes: f81dadbc ("net: phy: realtek: Add rtl8211e rx/tx delays config")
      Signed-off-by: NKunihiko Hayashi <hayashi.kunihiko@socionext.com>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dffe7d2e
    • T
      net: seeq: fix crash caused by not set dev.parent · 5afcd14c
      Thomas Bogendoerfer 提交于
      The old MIPS implementation of dma_cache_sync() didn't use the dev argument,
      but commit c9eb6172 ("dma-mapping: turn dma_cache_sync into a
      dma_map_ops method") changed that, so we now need to set dev.parent.
      Signed-off-by: NThomas Bogendoerfer <tbogendoerfer@suse.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5afcd14c
  3. 13 5月, 2019 24 次提交
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf · 3ebb41bf
      David S. Miller 提交于
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter fixes for net
      
      The following patchset contains Netfilter fixes for net:
      
      1) Postpone chain policy update to drop after transaction is complete,
         from Florian Westphal.
      
      2) Add entry to flowtable after confirmation to fix UDP flows with
         packets going in one single direction.
      
      3) Reference count leak in dst object, from Taehee Yoo.
      
      4) Check for TTL field in flowtable datapath, from Taehee Yoo.
      
      5) Fix h323 conntrack helper due to incorrect boundary check,
         from Jakub Jankowski.
      
      6) Fix incorrect rcu dereference when fetching basechain stats,
         from Florian Westphal.
      
      7) Missing error check when adding new entries to flowtable,
         from Taehee Yoo.
      
      8) Use version field in nfnetlink message to honor the nfgen_family
         field, from Kristian Evensen.
      
      9) Remove incorrect configuration check for CONFIG_NF_CONNTRACK_IPV6,
         from Subash Abhinov Kasiviswanathan.
      
      10) Prevent dying entries from being added to the flowtable,
          from Taehee Yoo.
      
      11) Don't hit WARN_ON() with malformed blob in ebtables with
          trailing data after last rule, reported by syzbot, patch
          from Florian Westphal.
      
      12) Remove NFT_CT_TIMEOUT enumeration, never used in the kernel
          code.
      
      13) Fix incorrect definition for NFT_LOGLEVEL_MAX, from Florian
          Westphal.
      
      This batch comes with a conflict that can be fixed with this patch:
      
      diff --cc include/uapi/linux/netfilter/nf_tables.h
      index 7bdb234f3d8c,f0cf7b0f4f35..505393c6e959
      --- a/include/uapi/linux/netfilter/nf_tables.h
      +++ b/include/uapi/linux/netfilter/nf_tables.h
      @@@ -966,6 -966,8 +966,7 @@@ enum nft_socket_keys
         * @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address)
         * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address)
         * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address)
       - * @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack
      +  * @NFT_CT_ID: conntrack id
         */
        enum nft_ct_keys {
        	NFT_CT_STATE,
      @@@ -991,6 -993,8 +992,7 @@@
        	NFT_CT_DST_IP,
        	NFT_CT_SRC_IP6,
        	NFT_CT_DST_IP6,
       -	NFT_CT_TIMEOUT,
      + 	NFT_CT_ID,
        	__NFT_CT_MAX
        };
        #define NFT_CT_MAX		(__NFT_CT_MAX - 1)
      
      That replaces the unused NFT_CT_TIMEOUT definition by NFT_CT_ID. If you prefer,
      I can also solve this conflict here, just let me know.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3ebb41bf
    • P
      of_net: Fix missing of_find_device_by_node ref count drop · 3ee9ae74
      Petr Štetiar 提交于
      of_find_device_by_node takes a reference to the embedded struct device
      which needs to be dropped after use.
      
      Fixes: d01f449c ("of_net: add NVMEM support to of_get_mac_address")
      Reported-by: Nkbuild test robot <lkp@intel.com>
      Reported-by: NJulia Lawall <julia.lawall@lip6.fr>
      Signed-off-by: NPetr Štetiar <ynezz@true.cz>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3ee9ae74
    • M
      net: mvpp2: cls: Add missing NETIF_F_NTUPLE flag · da86f59f
      Maxime Chevallier 提交于
      Now that the mvpp2 driver supports classification offloading, we must
      add the NETIF_F_NTUPLE to the features list.
      
      Since the current code doesn't allow disabling the feature, we don't set
      the flag in dev->hw_features.
      
      Fixes: 90b509b3 ("net: mvpp2: cls: Add Classification offload support")
      Reported-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Acked-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NMaxime Chevallier <maxime.chevallier@bootlin.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      da86f59f
    • L
      Merge tag 'iommu-updates-v5.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/joro/iommu · a13f0655
      Linus Torvalds 提交于
      Pull IOMMU updates from Joerg Roedel:
      
       - ATS support for ARM-SMMU-v3.
      
       - AUX domain support in the IOMMU-API and the Intel VT-d driver. This
         adds support for multiple DMA address spaces per (PCI-)device. The
         use-case is to multiplex devices between host and KVM guests in a
         more flexible way than supported by SR-IOV.
      
       - the rest are smaller cleanups and fixes, two of which needed to be
         reverted after testing in linux-next.
      
      * tag 'iommu-updates-v5.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (45 commits)
        Revert "iommu/amd: Flush not present cache in iommu_map_page"
        Revert "iommu/amd: Remove the leftover of bypass support"
        iommu/vt-d: Fix leak in intel_pasid_alloc_table on error path
        iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU
        iommu/vt-d: Set intel_iommu_gfx_mapped correctly
        iommu/amd: Flush not present cache in iommu_map_page
        iommu/vt-d: Cleanup: no spaces at the start of a line
        iommu/vt-d: Don't request page request irq under dmar_global_lock
        iommu/vt-d: Use struct_size() helper
        iommu/mediatek: Fix leaked of_node references
        iommu/amd: Remove amd_iommu_pd_list
        iommu/arm-smmu: Log CBFRSYNRA register on context fault
        iommu/arm-smmu-v3: Don't disable SMMU in kdump kernel
        iommu/arm-smmu-v3: Disable tagged pointers
        iommu/arm-smmu-v3: Add support for PCI ATS
        iommu/arm-smmu-v3: Link domains and devices
        iommu/arm-smmu-v3: Add a master->domain pointer
        iommu/arm-smmu-v3: Store SteamIDs in master
        iommu/arm-smmu-v3: Rename arm_smmu_master_data to arm_smmu_master
        ACPI/IORT: Check ATS capability in root complex nodes
        ...
      a13f0655
    • L
      Merge tag 'linux-watchdog-5.2-rc1' of git://www.linux-watchdog.org/linux-watchdog · 55472bae
      Linus Torvalds 提交于
      Pull watchdog updates from Wim Van Sebroeck:
      
       - a new watchdog driver for the ROHM BD70528 watchdog block
      
       - a new watchdog driver for the i.MX system controller watchdog
      
       - conversions to use device managed functions and other improvements
      
       - refactor watchdog_init_timeout
      
       - make watchdog core configurable as module
      
       - pretimeout governors improvements
      
       - a lot of other fixes
      
      * tag 'linux-watchdog-5.2-rc1' of git://www.linux-watchdog.org/linux-watchdog: (114 commits)
        watchdog: Enforce that at least one pretimeout governor is enabled
        watchdog: stm32: add dynamic prescaler support
        watchdog: Improve Kconfig entry ordering and dependencies
        watchdog: npcm: Enable modular builds
        watchdog: Make watchdog core configurable as module
        watchdog: Move pretimeout governor configuration up
        watchdog: Use depends instead of select for pretimeout governors
        watchdog: rtd119x: drop unused module.h include
        watchdog: intel_scu: make it explicitly non-modular
        watchdog: coh901327: make it explicitly non-modular
        watchdog: ziirave_wdt: drop warning after calling watchdog_init_timeout
        watchdog: xen_wdt: drop warning after calling watchdog_init_timeout
        watchdog: stm32_iwdg: drop warning after calling watchdog_init_timeout
        watchdog: st_lpc_wdt: drop warning after calling watchdog_init_timeout
        watchdog: sp5100_tco: drop warning after calling watchdog_init_timeout
        watchdog: renesas_wdt: drop warning after calling watchdog_init_timeout
        watchdog: nic7018_wdt: drop warning after calling watchdog_init_timeout
        watchdog: ni903x_wdt: drop warning after calling watchdog_init_timeout
        watchdog: imx_sc_wdt: drop warning after calling watchdog_init_timeout
        watchdog: i6300esb: drop warning after calling watchdog_init_timeout
        ...
      55472bae
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · 69dda13f
      David S. Miller 提交于
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf 2019-05-13
      
      The following pull-request contains BPF updates for your *net* tree.
      
      The main changes are:
      
      1) Fix out of bounds backwards jumps due to a bug in dead code
         removal, from Daniel.
      
      2) Fix libbpf users by detecting unsupported BTF kernel features
         and sanitize them before load, from Andrii.
      
      3) Fix undefined behavior in narrow load handling of context
         fields, from Krzesimir.
      
      4) Various BPF uapi header doc/man page fixes, from Quentin.
      
      5) Misc .gitignore fixups to exclude built files, from Kelsey.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      69dda13f
    • K
      bpf: fix undefined behavior in narrow load handling · e2f7fc0a
      Krzesimir Nowak 提交于
      Commit 31fd8581 ("bpf: permits narrower load from bpf program
      context fields") made the verifier add AND instructions to clear the
      unwanted bits with a mask when doing a narrow load. The mask is
      computed with
      
        (1 << size * 8) - 1
      
      where "size" is the size of the narrow load. When doing a 4 byte load
      of a an 8 byte field the verifier shifts the literal 1 by 32 places to
      the left. This results in an overflow of a signed integer, which is an
      undefined behavior. Typically, the computed mask was zero, so the
      result of the narrow load ended up being zero too.
      
      Cast the literal to long long to avoid overflows. Note that narrow
      load of the 4 byte fields does not have the undefined behavior,
      because the load size can only be either 1 or 2 bytes, so shifting 1
      by 8 or 16 places will not overflow it. And reading 4 bytes would not
      be a narrow load of a 4 bytes field.
      
      Fixes: 31fd8581 ("bpf: permits narrower load from bpf program context fields")
      Reviewed-by: NAlban Crequy <alban@kinvolk.io>
      Reviewed-by: NIago López Galeiras <iago@kinvolk.io>
      Signed-off-by: NKrzesimir Nowak <krzesimir@kinvolk.io>
      Cc: Yonghong Song <yhs@fb.com>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      e2f7fc0a
    • A
      libbpf: detect supported kernel BTF features and sanitize BTF · d7c4b398
      Andrii Nakryiko 提交于
      Depending on used versions of libbpf, Clang, and kernel, it's possible to
      have valid BPF object files with valid BTF information, that still won't
      load successfully due to Clang emitting newer BTF features (e.g.,
      BTF_KIND_FUNC, .BTF.ext's line_info/func_info, BTF_KIND_DATASEC, etc), that
      are not yet supported by older kernel.
      
      This patch adds detection of BTF features and sanitizes BPF object's BTF
      by substituting various supported BTF kinds, which have compatible layout:
        - BTF_KIND_FUNC -> BTF_KIND_TYPEDEF
        - BTF_KIND_FUNC_PROTO -> BTF_KIND_ENUM
        - BTF_KIND_VAR -> BTF_KIND_INT
        - BTF_KIND_DATASEC -> BTF_KIND_STRUCT
      
      Replacement is done in such a way as to preserve as much information as
      possible (names, sizes, etc) where possible without violating kernel's
      validation rules.
      
      v2->v3:
        - remove duplicate #defines from libbpf_util.h
      
      v1->v2:
        - add internal libbpf_internal.h w/ common stuff
        - switch SK storage BTF to use new libbpf__probe_raw_btf()
      Reported-by: NAlexei Starovoitov <ast@fb.com>
      Signed-off-by: NAndrii Nakryiko <andriin@fb.com>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      d7c4b398
    • K
      selftests: bpf: Add files generated after build to .gitignore · ff1f28c0
      Kelsey Skunberg 提交于
      The following files are generated after building /selftests/bpf/ and
      should be added to .gitignore:
      
      	- libbpf.pc
      	- libbpf.so.*
      Signed-off-by: NKelsey Skunberg <skunberg.kelsey@gmail.com>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      ff1f28c0
    • D
      Merge branch 'bpf-uapi-doc-fixes' · 6b1d90b7
      Daniel Borkmann 提交于
      Quentin Monnet says:
      
      ====================
      Another round of fixes for the doc in the BPF UAPI header, which can be
      turned into a manual page. First patch is the most important, as it fixes
      parsing for the bpf_strtoul() helper doc. Following patches are formatting
      fixes (nitpicks, mostly). The last one updates the copy of the header,
      located under tools/.
      ====================
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      6b1d90b7
    • Q
      tools: bpf: synchronise BPF UAPI header with tools · c1fe1e70
      Quentin Monnet 提交于
      Synchronise the bpf.h header under tools, to report the fixes and
      additions recently brought to the documentation for the BPF helpers.
      Signed-off-by: NQuentin Monnet <quentin.monnet@netronome.com>
      Acked-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      c1fe1e70
    • Q
      bpf: fix minor issues in documentation for BPF helpers. · 80867c5e
      Quentin Monnet 提交于
      This commit brings many minor fixes to the documentation for BPF helper
      functions. Mostly, this is limited to formatting fixes and improvements.
      In particular, fix broken formatting for bpf_skb_adjust_room().
      
      Besides formatting, replace the mention of "bpf_fullsock()" (that is not
      associated with any function or type exposed to the user) in the
      description of bpf_sk_storage_get() by "full socket".
      Signed-off-by: NQuentin Monnet <quentin.monnet@netronome.com>
      Acked-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      80867c5e
    • Q
      bpf: fix recurring typo in documentation for BPF helpers · 32e7dc28
      Quentin Monnet 提交于
      "Underlaying packet buffer" should be an "underlying" one, in the
      warning about invalidated data and data_end pointers. Through
      copy-and-paste, the typo occurred no fewer than 19 times in the
      documentation. Let's fix it.
      Signed-off-by: NQuentin Monnet <quentin.monnet@netronome.com>
      Acked-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      32e7dc28
    • Q
      bpf: fix script for generating man page on BPF helpers · 748c7c82
      Quentin Monnet 提交于
      The script broke on parsing function prototype for bpf_strtoul(). This
      is because the last argument for the function is a pointer to an
      "unsigned long". The current version of the script only accepts "const"
      and "struct", but not "unsigned", at the beginning of argument types
      made of several words.
      
      One solution could be to add "unsigned" to the list, but the issue could
      come up again in the future (what about "long int"?). It turns out we do
      not need to have such restrictions on the words: so let's simply accept
      any series of words instead.
      Reported-by: NYonghong Song <yhs@fb.com>
      Signed-off-by: NQuentin Monnet <quentin.monnet@netronome.com>
      Acked-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      748c7c82
    • D
      bpf: add various test cases for backward jumps · 98583812
      Daniel Borkmann 提交于
      Add a couple of tests to make sure branch(/call) offset adjustments
      are correctly performed.
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      98583812
    • L
      Merge tag 'upstream-5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/rw/ubifs · d7a02fa0
      Linus Torvalds 提交于
      Pull UBI/UBIFS updates from Richard Weinberger:
      
       - fscrypt framework usage updates
      
       - One huge fix for xattr unlink
      
       - Cleanup of fscrypt ifdefs
      
       - Fix for our new UBIFS auth feature
      
      * tag 'upstream-5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/rw/ubifs:
        ubi: wl: Fix uninitialized variable
        ubifs: Drop unnecessary setting of zbr->znode
        ubifs: Remove ifdefs around CONFIG_UBIFS_ATIME_SUPPORT
        ubifs: Remove #ifdef around CONFIG_FS_ENCRYPTION
        ubifs: Limit number of xattrs per inode
        ubifs: orphan: Handle xattrs like files
        ubifs: journal: Handle xattrs like files
        ubifs: find.c: replace swap function with built-in one
        ubifs: Do not skip hash checking in data nodes
        ubifs: work around high stack usage with clang
        ubifs: remove unused function __ubifs_shash_final
        ubifs: remove unnecessary #ifdef around fscrypt_ioctl_get_policy()
        ubifs: remove unnecessary calls to set up directory key
      d7a02fa0
    • L
      Merge tag 'mtd/for-5.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 4dbf09fe
      Linus Torvalds 提交于
      Pull MTD updates from Richard Weinberger:
       "MTD core changes:
         - New AFS partition parser
         - Update MAINTAINERS entry
         - Use of fall-throughs markers
      
        NAND core changes:
         - Support having the bad block markers in either the first, second or
           last page of a block. The combination of all three location is now
           possible.
         - Constification of NAND_OP_PARSER(_PATTERN) elements.
         - Generic NAND DT bindings changed to yaml format (can be used to
           check the proposed bindings. First platform to be fully supported:
           sunxi.
         - Stopped using several legacy hooks.
         - Preparation to use the generic NAND layer with the addition of
           several helpers and the removal of the struct nand_chip from
           generic functions.
         - Kconfig cleanup to prepare the introduction of external ECC engines
           support.
         - Fallthrough comments.
         - Introduction of the SPI-mem dirmap API for SPI-NAND devices.
      
        Raw NAND controller drivers changes:
         - nandsim:
            - Switch to ->exec-op().
         - meson:
            - Misc cleanups and fixes.
            - New OOB layout.
         - Sunxi:
            - A23/A33 NAND DMA support.
         - Ingenic:
            - Full reorganization and cleanup.
            - Clear separation between NAND controller and ECC engine.
            - Support JZ4740 an JZ4725B.
         - Denali:
            - Clear controller/chip separation.
            - ->exec_op() migration.
            - Various cleanups.
         - fsl_elbc:
            - Enable software ECC support.
         - Atmel:
            - Sam9x60 support.
         - GPMI:
            - Introduce the GPMI_IS_MXS() macro.
         - Various trivial/spelling/coding style fixes.
      
        SPI NOR core changes:
         - Print all JEDEC ID bytes on error
         - Fix comment of spi_nor_find_best_erase_type()
         - Add region locking flags for s25fl512s
      
        SPI NOR controller drivers changes:
         - intel-spi:
            - Avoid crossing 4K address boundary on read/write
            - Add support for Intel Comet Lake SPI serial flash"
      
      * tag 'mtd/for-5.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (120 commits)
        mtd: part: fix incorrect format specifier for an unsigned long long
        mtd: lpddr_cmds: Mark expected switch fall-through
        mtd: phram: Mark expected switch fall-throughs
        mtd: cfi_cmdset_0002: Mark expected switch fall-throughs
        mtd: cfi_util: mark expected switch fall-throughs
        MAINTAINERS: MTD Git repository is hosted on kernel.org
        MAINTAINERS: Update jffs2 entry
        mtd: afs: add v2 partition parsing
        mtd: afs: factor the IIS read into partition parser
        mtd: afs: factor footer parsing into the v1 part parsing
        mtd: factor out v1 partition parsing
        mtd: afs: simplify partition detection
        mtd: afs: simplify partition parsing
        mtd: partitions: Add OF support to AFS partitions
        mtd: partitions: Add AFS partitions DT bindings
        mtd: afs: Move AFS partition parser to parsers subdir
        mtd: maps: Make uclinux_ram_map static
        mtd: maps: Allow MTD_PHYSMAP with MTD_RAM
        MAINTAINERS: Add myself as MTD maintainer
        MAINTAINERS: Remove my name from the MTD and NAND entries
        ...
      4dbf09fe
    • L
      Merge tag 'for-linus-5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/rw/uml · 983dfa4b
      Linus Torvalds 提交于
      Pull UML updates from Richard Weinberger:
      
       - Kconfig cleanups
      
       - Fix cpu_all_mask() usage
      
       - Various bug fixes
      
      * tag 'for-linus-5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: irq: don't set the chip for all irqs
        um: define set_pte_at() as a static inline function, not a macro
        um: remove uses of variable length arrays
        um: remove unused variable
        uml: fix a boot splat wrt use of cpu_all_mask
        um: Do not unlock mutex that is not hold.
        hostfs: fix mismatch between link_file definition and declaration
        arch: um: drivers: Kconfig: pedantic formatting
        arch: um: Kconfig: pedantic indention cleanups
        um: Revert to using stack for pt_regs in signal handling
      983dfa4b
    • H
      net: dccp : proto: remove Unneeded variable "err" · 3285a9aa
      Hariprasad Kelam 提交于
      Fix below issue reported by coccicheck
      
      net/dccp/proto.c:266:5-8: Unneeded variable: "err". Return "0" on line
      310
      Signed-off-by: NHariprasad Kelam <hariprasad.kelam@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3285a9aa
    • D
      Merge branch 'dsa-Fix-a-bug-and-avoid-dangerous-usage-patterns' · 08b0dec4
      David S. Miller 提交于
      Vladimir Oltean says:
      
      ====================
      Fix a bug and avoid dangerous usage patterns around DSA_SKB_CB
      
      Making DSA use the sk_buff control block was my idea during the
      'Traffic-support-for-SJA1105-DSA-driver' patchset, and I had also
      introduced a series of macro helpers that turned out to not be so
      helpful:
      
      1. DSA_SKB_ZERO() zeroizes the 48-byte skb->cb area, but due to the high
         performance impact in the hotpath it was only intended to be called
         from the timestamping path. But it turns out that not zeroizing it
         has uncovered the reading of an uninitialized member field of
         DSA_SKB_CB, so in the future just be careful about what needs
         initialization and remove this macro.
      2. DSA_SKB_CLONE() contains a flaw in its body definition (originally
         put there to silence checkpatch.pl) and is unusable at this point
         (will only cause NPE's when used). So remove it.
      3. For DSA_SKB_COPY() the same performance considerations apply as above
         and therefore it's best to prune this function before it reaches a
         stable kernel and potentially any users.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      08b0dec4
    • V
      net: dsa: Remove the now unused DSA_SKB_CB_COPY() macro · 1c9b1420
      Vladimir Oltean 提交于
      It's best to not expose this, due to the performance hit it may cause
      when calling it.
      
      Fixes: b68b0dd0 ("net: dsa: Keep private info in the skb->cb")
      Signed-off-by: NVladimir Oltean <olteanv@gmail.com>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1c9b1420
    • V
      net: dsa: Remove dangerous DSA_SKB_CLONE() macro · 506f0e09
      Vladimir Oltean 提交于
      This does not cause any bug now because it has no users, but its body
      contains two pointer definitions within a code block:
      
      		struct sk_buff *clone = _clone;	\
      		struct sk_buff *skb = _skb;	\
      
      When calling the macro as DSA_SKB_CLONE(clone, skb), these variables
      would obscure the arguments that the macro was called with, and the
      initializers would be a no-op instead of doing their job (undefined
      behavior, by the way, but GCC nicely puts NULL pointers instead).
      
      So simply remove this broken macro and leave users to simply call
      "DSA_SKB_CB(skb)->clone = clone" by hand when needed.
      
      There is one functional difference when doing what I just suggested
      above: the control block won't be transferred from the original skb into
      the clone. Since there's no foreseen need for the control block in the
      clone ATM, this is ok.
      
      Fixes: b68b0dd0 ("net: dsa: Keep private info in the skb->cb")
      Signed-off-by: NVladimir Oltean <olteanv@gmail.com>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      506f0e09
    • V
      net: dsa: Initialize DSA_SKB_CB(skb)->deferred_xmit variable · 87671375
      Vladimir Oltean 提交于
      The sk_buff control block can have any contents on xmit put there by the
      stack, so initialization is mandatory, since we are checking its value
      after the actual DSA xmit (the tagger may have changed it).
      
      The DSA_SKB_ZERO() macro could have been used for this purpose, but:
      - Zeroizing a 48-byte memory region in the hotpath is best avoided.
      - It would have triggered a warning with newer compilers since
        __dsa_skb_cb contains a structure within a structure, and the {0}
        initializer was incorrect for that purpose.
      
      So simply remove the DSA_SKB_ZERO() macro and initialize the
      deferred_xmit variable by hand (which should be done for all further
      dsa_skb_cb variables which need initialization - currently none - to
      avoid the performance penalty).
      
      Fixes: 97a69a0d ("net: dsa: Add support for deferred xmit")
      Signed-off-by: NVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      87671375
    • F
      netfilter: nf_tables: correct NFT_LOGLEVEL_MAX value · 92285a07
      Florian Westphal 提交于
      should be same as NFT_LOGLEVEL_AUDIT, so use -, not +.
      
      Fixes: 7eced5ab ("netfilter: nf_tables: add NFT_LOGLEVEL_* enumeration and use it")
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      92285a07