1. 25 5月, 2019 1 次提交
  2. 24 5月, 2019 4 次提交
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf · 71e15f76
      David S. Miller 提交于
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter/IPVS fixes for net
      
      The following patchset contains Netfilter/IPVS fixes for your net tree:
      
      1) Fix crash when dumping rules after conversion to RCU,
         from Florian Westphal.
      
      2) Fix incorrect hook reinjection from nf_queue in case NF_REPEAT,
         from Jagdish Motwani.
      
      3) Fix check for route existence in fib extension, from Phil Sutter.
      
      4) Fix use after free in ip_vs_in() hook, from YueHaibing.
      
      5) Check for veth existence from netfilter selftests,
         from Jeffrin Jose T.
      
      6) Checksum corruption in UDP NAT helpers due to typo,
         from Florian Westphal.
      
      7) Pass up packets to classic forwarding path regardless of
         IPv4 DF bit, patch for the flowtable infrastructure from Florian.
      
      8) Set liberal TCP tracking for flows that are placed in the
         flowtable, in case they need to go back to classic forwarding path,
         also from Florian.
      
      9) Don't add flow with sequence adjustment to flowtable, from Florian.
      
      10) Skip IPv4 options from IPv6 datapath in flowtable, from Florian.
      
      11) Add selftest for the flowtable infrastructure, from Florian.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      71e15f76
    • R
      cxgb4: offload VLAN flows regardless of VLAN ethtype · b5730061
      Raju Rangoju 提交于
      VLAN flows never get offloaded unless ivlan_vld is set in filter spec.
      It's not compulsory for vlan_ethtype to be set.
      
      So, always enable ivlan_vld bit for offloading VLAN flows regardless of
      vlan_ethtype is set or not.
      
      Fixes: ad9af3e0 (cxgb4: add tc flower match support for vlan)
      Signed-off-by: NRaju Rangoju <rajur@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b5730061
    • A
      hsr: fix don't prune the master node from the node_db · d2daa127
      Andreas Oetken 提交于
      Don't prune the master node in the hsr_prune_nodes function.
      Neither time_in[HSR_PT_SLAVE_A] nor time_in[HSR_PT_SLAVE_B]
      will ever be updated by hsr_register_frame_in for the master port.
      Thus, the master node will be repeatedly pruned leading to
      repeated packet loss.
      This bug never appeared because the hsr_prune_nodes function
      was only called once. Since commit 5150b45f
      ("net: hsr: Fix node prune function for forget time expiry") this issue
      is fixed unveiling the issue described above.
      
      Fixes: 5150b45f ("net: hsr: Fix node prune function for forget time expiry")
      Signed-off-by: NAndreas Oetken <andreas.oetken@siemens.com>
      Tested-by: NMurali Karicheri <m-karicheri2@ti.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d2daa127
    • M
      net: mvpp2: cls: Fix leaked ethtool_rx_flow_rule · 3f6f7a17
      Maxime Chevallier 提交于
      The flow_rule is only used when configuring the classification tables,
      and should be free'd once we're done using it. The current code only
      frees it in the error path.
      
      Fixes: 90b509b3 ("net: mvpp2: cls: Add Classification offload support")
      Signed-off-by: NMaxime Chevallier <maxime.chevallier@bootlin.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3f6f7a17
  3. 23 5月, 2019 22 次提交
  4. 22 5月, 2019 13 次提交
    • L
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 54dee406
      Linus Torvalds 提交于
      Pull arm64 fixes from Will Deacon:
      
       - Fix SPE probe failure when backing auxbuf with high-order pages
      
       - Fix handling of DMA allocations from outside of the vmalloc area
      
       - Fix generation of build-id ELF section for vDSO object
      
       - Disable huge I/O mappings if kernel page table dumping is enabled
      
       - A few other minor fixes (comments, kconfig etc)
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: vdso: Explicitly add build-id option
        arm64/mm: Inhibit huge-vmap with ptdump
        arm64: Print physical address of page table base in show_pte()
        arm64: don't trash config with compat symbol if COMPAT is disabled
        arm64: assembler: Update comment above cond_yield_neon() macro
        drivers/perf: arm_spe: Don't error on high-order pages for aux buf
        arm64/iommu: handle non-remapped addresses in ->mmap and ->get_sgtable
      54dee406
    • L
      Merge tag 'gfs2-5.1.fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 651bae98
      Linus Torvalds 提交于
      Pull gfs2 fix from Andreas Gruenbacher:
       "Fix a gfs2 sign extension bug introduced in v4.3"
      
      * tag 'gfs2-5.1.fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Fix sign extension bug in gfs2_update_stats
      651bae98
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · f75b6f30
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Clear up some recent tipc regressions because of registration
          ordering. Fix from Junwei Hu.
      
       2) tipc's TLV_SET() can read past the end of the supplied buffer during
          the copy. From Chris Packham.
      
       3) ptp example program doesn't match the kernel, from Richard Cochran.
      
       4) Outgoing message type fix in qrtr, from Bjorn Andersson.
      
       5) Flow control regression in stmmac, from Tan Tee Min.
      
       6) Fix inband autonegotiation in phylink, from Russell King.
      
       7) Fix sk_bound_dev_if handling in rawv6_bind(), from Mike Manning.
      
       8) Fix usbnet crash after disconnect, from Kloetzke Jan.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (21 commits)
        usbnet: fix kernel crash after disconnect
        selftests: fib_rule_tests: use pre-defined DEV_ADDR
        net-next: net: Fix typos in ip-sysctl.txt
        ipv6: Consider sk_bound_dev_if when binding a raw socket to an address
        net: phylink: ensure inband AN works correctly
        usbnet: ipheth: fix racing condition
        net: stmmac: dma channel control register need to be init first
        net: stmmac: fix ethtool flow control not able to get/set
        net: qrtr: Fix message type of outgoing packets
        networking: : fix typos in code comments
        ptp: Fix example program to match kernel.
        fddi: fix typos in code comments
        selftests: fib_rule_tests: enable forwarding before ipv4 from/iif test
        selftests: fib_rule_tests: fix local IPv4 address typo
        tipc: Avoid copying bytes beyond the supplied data
        2/2] net: xilinx_emaclite: use readx_poll_timeout() in mdio wait function
        1/2] net: axienet: use readx_poll_timeout() in mdio wait function
        vlan: Mark expected switch fall-through
        macvlan: Mark expected switch fall-through
        net/mlx4_en: ethtool, Remove unsupported SFP EEPROM high pages query
        ...
      f75b6f30
    • L
      Merge tag 'for-5.2/dm-fix-1' of... · 86f9e56d
      Linus Torvalds 提交于
      Merge tag 'for-5.2/dm-fix-1' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fix from Mike Snitzer:
       "Fix a particularly glaring oversight in a DM core commit from 5.1 that
        doesn't properly trim special IOs (e.g. discards) relative to
        corresponding target's max_io_len_target_boundary()"
      
      * tag 'for-5.2/dm-fix-1' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm: make sure to obey max_io_len_target_boundary
      86f9e56d
    • A
      gfs2: Fix sign extension bug in gfs2_update_stats · 5a5ec83d
      Andreas Gruenbacher 提交于
      Commit 4d207133 changed the types of the statistic values in struct
      gfs2_lkstats from s64 to u64.  Because of that, what should be a signed
      value in gfs2_update_stats turned into an unsigned value.  When shifted
      right, we end up with a large positive value instead of a small negative
      value, which results in an incorrect variance estimate.
      
      Fixes: 4d207133 ("gfs2: Make statistics unsigned, suitable for use with do_div()")
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Cc: stable@vger.kernel.org # v4.4+
      5a5ec83d
    • F
      selftests: netfilter: add flowtable test script · 2de03b45
      Florian Westphal 提交于
      Exercises 3 cases:
      
      1. no pmtu discovery (need to frag)
      2. no PMTUd + NAT (don't flag packets as invalid from conntrack)
      3. PMTU + NAT (need to send icmp error)
      
      The first two cases make sure we handle fragments correctly, i.e.
      pass them to classic forwarding path.
      
      Third case checks we offload everything (in the test case,
      PMTUd will kick in so all packets should be within link mtu).
      
      Nftables rules will filter packets that are supposed to be
      handled by the fast-path.
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      2de03b45
    • F
      netfilter: nft_flow_offload: IPCB is only valid for ipv4 family · 69aeb538
      Florian Westphal 提交于
      Guard this with a check vs. ipv4, IPCB isn't valid in ipv6 case.
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      69aeb538
    • F
      netfilter: nft_flow_offload: don't offload when sequence numbers need adjustment · 91a9048f
      Florian Westphal 提交于
      We can't deal with tcp sequence number rewrite in flow_offload.
      While at it, simplify helper check, we only need to know if the extension
      is present, we don't need the helper data.
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      91a9048f
    • F
      netfilter: nft_flow_offload: set liberal tracking mode for tcp · 8437a620
      Florian Westphal 提交于
      Without it, whenever a packet has to be pushed up the stack (e.g. because
      of mtu mismatch), then conntrack will flag packets as invalid, which in
      turn breaks NAT.
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      8437a620
    • F
      netfilter: nf_flow_table: ignore DF bit setting · e75b3e1c
      Florian Westphal 提交于
      Its irrelevant if the DF bit is set or not, we must pass packet to
      stack in either case.
      
      If the DF bit is set, we must pass it to stack so the appropriate
      ICMP error can be generated.
      
      If the DF is not set, we must pass it to stack for fragmentation.
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      e75b3e1c
    • M
      dm: make sure to obey max_io_len_target_boundary · 51b86f9a
      Michael Lass 提交于
      Commit 61697a6a ("dm: eliminate 'split_discard_bios' flag from DM
      target interface") incorrectly removed code from
      __send_changing_extent_only() that is required to impose a per-target IO
      boundary on IO that exceeds max_io_len_target_boundary().  Otherwise
      "special" IO (e.g. DISCARD, WRITE SAME, WRITE ZEROES) can write beyond
      where allowed.
      
      Fix this by restoring the max_io_len_target_boundary() limit in
      __send_changing_extent_only()
      
      Fixes: 61697a6a ("dm: eliminate 'split_discard_bios' flag from DM target interface")
      Cc: stable@vger.kernel.org # 5.1+
      Signed-off-by: NMichael Lass <bevan@bi-co.net>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      51b86f9a
    • K
      usbnet: fix kernel crash after disconnect · ad70411a
      Kloetzke Jan 提交于
      When disconnecting cdc_ncm the kernel sporadically crashes shortly
      after the disconnect:
      
        [   57.868812] Unable to handle kernel NULL pointer dereference at virtual address 00000000
        ...
        [   58.006653] PC is at 0x0
        [   58.009202] LR is at call_timer_fn+0xec/0x1b4
        [   58.013567] pc : [<0000000000000000>] lr : [<ffffff80080f5130>] pstate: 00000145
        [   58.020976] sp : ffffff8008003da0
        [   58.024295] x29: ffffff8008003da0 x28: 0000000000000001
        [   58.029618] x27: 000000000000000a x26: 0000000000000100
        [   58.034941] x25: 0000000000000000 x24: ffffff8008003e68
        [   58.040263] x23: 0000000000000000 x22: 0000000000000000
        [   58.045587] x21: 0000000000000000 x20: ffffffc68fac1808
        [   58.050910] x19: 0000000000000100 x18: 0000000000000000
        [   58.056232] x17: 0000007f885aff8c x16: 0000007f883a9f10
        [   58.061556] x15: 0000000000000001 x14: 000000000000006e
        [   58.066878] x13: 0000000000000000 x12: 00000000000000ba
        [   58.072201] x11: ffffffc69ff1db30 x10: 0000000000000020
        [   58.077524] x9 : 8000100008001000 x8 : 0000000000000001
        [   58.082847] x7 : 0000000000000800 x6 : ffffff8008003e70
        [   58.088169] x5 : ffffffc69ff17a28 x4 : 00000000ffff138b
        [   58.093492] x3 : 0000000000000000 x2 : 0000000000000000
        [   58.098814] x1 : 0000000000000000 x0 : 0000000000000000
        ...
        [   58.205800] [<          (null)>]           (null)
        [   58.210521] [<ffffff80080f5298>] expire_timers+0xa0/0x14c
        [   58.215937] [<ffffff80080f542c>] run_timer_softirq+0xe8/0x128
        [   58.221702] [<ffffff8008081120>] __do_softirq+0x298/0x348
        [   58.227118] [<ffffff80080a6304>] irq_exit+0x74/0xbc
        [   58.232009] [<ffffff80080e17dc>] __handle_domain_irq+0x78/0xac
        [   58.237857] [<ffffff8008080cf4>] gic_handle_irq+0x80/0xac
        ...
      
      The crash happens roughly 125..130ms after the disconnect. This
      correlates with the 'delay' timer that is started on certain USB tx/rx
      errors in the URB completion handler.
      
      The problem is a race of usbnet_stop() with usbnet_start_xmit(). In
      usbnet_stop() we call usbnet_terminate_urbs() to cancel all URBs in
      flight. This only makes sense if no new URBs are submitted
      concurrently, though. But the usbnet_start_xmit() can run at the same
      time on another CPU which almost unconditionally submits an URB. The
      error callback of the new URB will then schedule the timer after it was
      already stopped.
      
      The fix adds a check if the tx queue is stopped after the tx list lock
      has been taken. This should reliably prevent the submission of new URBs
      while usbnet_terminate_urbs() does its job. The same thing is done on
      the rx side even though it might be safe due to other flags that are
      checked there.
      Signed-off-by: NJan Klötzke <Jan.Kloetzke@preh.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ad70411a
    • H
      selftests: fib_rule_tests: use pre-defined DEV_ADDR · 34632975
      Hangbin Liu 提交于
      DEV_ADDR is defined but not used. Use it in address setting.
      Do the same with IPv6 for consistency.
      Reported-by: NDavid Ahern <dsahern@gmail.com>
      Fixes: fc82d93e ("selftests: fib_rule_tests: fix local IPv4 address typo")
      Signed-off-by: NHangbin Liu <liuhangbin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      34632975