1. 27 1月, 2017 1 次提交
  2. 09 12月, 2016 1 次提交
  3. 08 12月, 2016 1 次提交
    • L
      Revert "default exported asm symbols to zero" · f27c2f69
      Linus Torvalds 提交于
      This reverts commit 8ab2ae65.
      
      I loved that commit because of how it explained what the problem with
      newer versions of binutils were, but the actual patch itself turns out
      to not work very well.
      
      It has two problems:
      
       - a zero CRC value isn't actually right.  It happens to work for the
         case where both sides of the equation fail at giving the symbol a
         crc, but there are cases where the users of the exported symbol get
         the right crc (due to seeing the C declarations), but the actual
         exporting itself does not (due to the whole weak asm symbol issue).
      
         So then the module load fails after all - we did have a crc for the
         symbol, but we couldn't match it with the loaded module.
      
       - it seems that the alpha assembler has special semantics for the
         '.set' directive, and on alpha it doesn't actually set the value of
         the specified symbol at all, it is instead used to set various
         assembly modes (eg ".set noat" and ".set noreorder").
      
         So using ".set" to set the symbol value would just cause build
         failures on alpha.
      
      I'm sure we'll find some other workaround for these issues (hopefully
      that involves getting rid of modversions entirely some day, but people
      are also talking about just using smarter tools).  But for now we'll
      just fall back on commit faaae2a5 ("Re-enable CONFIG_MODVERSIONS in
      a slightly weaker form") that just let's a missing crc through.
      Reported-by: NJan Stancek <jstancek@redhat.com>
      Reported-by: NPhilip Müller <philm@manjaro.org>
      Reported-by: NGuenter Roeck <linux@roeck-us.net>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f27c2f69
  4. 07 12月, 2016 2 次提交
    • M
      can: raw: raw_setsockopt: limit number of can_filter that can be set · 332b05ca
      Marc Kleine-Budde 提交于
      This patch adds a check to limit the number of can_filters that can be
      set via setsockopt on CAN_RAW sockets. Otherwise allocations > MAX_ORDER
      are not prevented resulting in a warning.
      
      Reference: https://lkml.org/lkml/2016/12/2/230Reported-by: NAndrey Konovalov <andreyknvl@google.com>
      Tested-by: NAndrey Konovalov <andreyknvl@google.com>
      Cc: linux-stable <stable@vger.kernel.org>
      Signed-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      332b05ca
    • D
      acpi, nfit, libnvdimm: fix / harden ars_status output length handling · efda1b5d
      Dan Williams 提交于
      Given ambiguities in the ACPI 6.1 definition of the "Output (Size)"
      field of the ARS (Address Range Scrub) Status command, a firmware
      implementation may in practice return 0, 4, or 8 to indicate that there
      is no output payload to process.
      
      The specification states "Size of Output Buffer in bytes, including this
      field.". However, 'Output Buffer' is also the name of the entire
      payload, and earlier in the specification it states "Max Query ARS
      Status Output Buffer Size: Maximum size of buffer (including the Status
      and Extended Status fields)".
      
      Without this fix if the BIOS happens to return 0 it causes memory
      corruption as evidenced by this result from the acpi_nfit_ctl() unit
      test.
      
       ars_status00000000: 00020000 00000000                    ........
       BUG: stack guard page was hit at ffffc90001750000 (stack is ffffc9000174c000..ffffc9000174ffff)
       kernel stack overflow (page fault): 0000 [#1] SMP DEBUG_PAGEALLOC
       task: ffff8803332d2ec0 task.stack: ffffc9000174c000
       RIP: 0010:[<ffffffff814cfe72>]  [<ffffffff814cfe72>] __memcpy+0x12/0x20
       RSP: 0018:ffffc9000174f9a8  EFLAGS: 00010246
       RAX: ffffc9000174fab8 RBX: 0000000000000000 RCX: 000000001fffff56
       RDX: 0000000000000000 RSI: ffff8803231f5a08 RDI: ffffc90001750000
       RBP: ffffc9000174fa88 R08: ffffc9000174fab0 R09: ffff8803231f54b8
       R10: 0000000000000008 R11: 0000000000000001 R12: 0000000000000000
       R13: 0000000000000000 R14: 0000000000000003 R15: ffff8803231f54a0
       FS:  00007f3a611af640(0000) GS:ffff88033ed00000(0000) knlGS:0000000000000000
       CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: ffffc90001750000 CR3: 0000000325b20000 CR4: 00000000000406e0
       Stack:
        ffffffffa00bc60d 0000000000000008 ffffc90000000001 ffffc9000174faac
        0000000000000292 ffffffffa00c24e4 ffffffffa00c2914 0000000000000000
        0000000000000000 ffffffff00000003 ffff880331ae8ad0 0000000800000246
       Call Trace:
        [<ffffffffa00bc60d>] ? acpi_nfit_ctl+0x49d/0x750 [nfit]
        [<ffffffffa01f4fe0>] nfit_test_probe+0x670/0xb1b [nfit_test]
      
      Cc: <stable@vger.kernel.org>
      Fixes: 747ffe11 ("libnvdimm, tools/testing/nvdimm: fix 'ars_status' output buffer sizing")
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      efda1b5d
  5. 06 12月, 2016 3 次提交
  6. 05 12月, 2016 2 次提交
  7. 03 12月, 2016 1 次提交
    • A
      default exported asm symbols to zero · 8ab2ae65
      Arnd Bergmann 提交于
      With binutils-2.26 and before, a weak missing symbol was kept during the
      final link, and a missing CRC for an export would lead to that CRC being
      treated as zero implicitly.  With binutils-2.27, the crc symbol gets
      dropped, and any module trying to use it will fail to load.
      
      This sets the weak CRC symbol to zero explicitly, making it defined in
      vmlinux, which in turn lets us load the modules referring to that CRC.
      
      The comment above the __CRC_SYMBOL macro suggests that this was always
      the intention, although it also seems that all symbols defined in C have
      a correct CRC these days, and only the exports that are now done in
      assembly need this.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Tested-by: NAdam Borowski <kilobyte@angband.pl>
      Cc: stable@kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8ab2ae65
  8. 02 12月, 2016 3 次提交
  9. 01 12月, 2016 5 次提交
  10. 30 11月, 2016 2 次提交
    • S
      crypto: drbg - prevent invalid SG mappings · 51029812
      Stephan Mueller 提交于
      When using SGs, only heap memory (memory that is valid as per
      virt_addr_valid) is allowed to be referenced. The CTR DRBG used to
      reference the caller-provided memory directly in an SG. In case the
      caller provided stack memory pointers, the SG mapping is not considered
      to be valid. In some cases, this would even cause a paging fault.
      
      The change adds a new scratch buffer that is used unconditionally to
      catch the cases where the caller-provided buffer is not suitable for
      use in an SG. The crypto operation of the CTR DRBG produces its output
      with that scratch buffer and finally copies the content of the
      scratch buffer to the caller's buffer.
      
      The scratch buffer is allocated during allocation time of the CTR DRBG
      as its access is protected with the DRBG mutex.
      Signed-off-by: NStephan Mueller <smueller@chronox.de>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      51029812
    • J
      of_mdio: add helper to deregister fixed-link PHYs · 3f65047c
      Johan Hovold 提交于
      Add helper to deregister fixed-link PHYs registered using
      of_phy_register_fixed_link().
      
      Convert the two drivers that care to deregister their fixed-link PHYs to
      use the new helper, but note that most drivers currently fail to do so.
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3f65047c
  11. 29 11月, 2016 2 次提交
  12. 24 11月, 2016 5 次提交
    • F
      netfilter: nat: fix crash when conntrack entry is re-used · 5173bc67
      Florian Westphal 提交于
      Stas Nichiporovich reports oops in nf_nat_bysource_cmp(), trying to
      access nf_conn struct at address 0xffffffffffffff50.
      
      This is the result of fetching a null rhash list (struct embedded at
      offset 176; 0 - 176 gets us ...fff50).
      
      The problem is that conntrack entries are allocated from a
      SLAB_DESTROY_BY_RCU cache, i.e. entries can be free'd and reused
      on another cpu while nf nat bysource hash access the same conntrack entry.
      
      Freeing is fine (we hold rcu read lock); zeroing rhlist_head isn't.
      
      -> Move the rhlist struct outside of the memset()-inited area.
      
      Fixes: 7c966435 ("netfilter: move nat hlist_head to nf_conn")
      Reported-by: NStas Nichiporovich <stasn77@gmail.com>
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      5173bc67
    • A
      netfilter: nf_tables: fix inconsistent element expiration calculation · d3e2a111
      Anders K. Pedersen 提交于
      As Liping Zhang reports, after commit a8b1e36d ("netfilter: nft_dynset:
      fix element timeout for HZ != 1000"), priv->timeout was stored in jiffies,
      while set->timeout was stored in milliseconds. This is inconsistent and
      incorrect.
      
      Firstly, we already call msecs_to_jiffies in nft_set_elem_init, so
      priv->timeout will be converted to jiffies twice.
      
      Secondly, if the user did not specify the NFTA_DYNSET_TIMEOUT attr,
      set->timeout will be used, but we forget to call msecs_to_jiffies
      when do update elements.
      
      Fix this by using jiffies internally for traditional sets and doing the
      conversions to/from msec when interacting with userspace - as dynset
      already does.
      
      This is preferable to doing the conversions, when elements are inserted or
      updated, because this can happen very frequently on busy dynsets.
      
      Fixes: a8b1e36d ("netfilter: nft_dynset: fix element timeout for HZ != 1000")
      Reported-by: NLiping Zhang <zlpnobody@gmail.com>
      Signed-off-by: NAnders K. Pedersen <akp@cohaesio.com>
      Acked-by: NLiping Zhang <zlpnobody@gmail.com>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      d3e2a111
    • F
      netfilter: nat: switch to new rhlist interface · 7223ecd4
      Florian Westphal 提交于
      I got offlist bug report about failing connections and high cpu usage.
      This happens because we hit 'elasticity' checks in rhashtable that
      refuses bucket list exceeding 16 entries.
      
      The nat bysrc hash unfortunately needs to insert distinct objects that
      share same key and are identical (have same source tuple), this cannot
      be avoided.
      
      Switch to the rhlist interface which is designed for this.
      
      The nulls_base is removed here, I don't think its needed:
      
      A (unlikely) false positive results in unneeded port clash resolution,
      a false negative results in packet drop during conntrack confirmation,
      when we try to insert the duplicate into main conntrack hash table.
      
      Tested by adding multiple ip addresses to host, then adding
      iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      
      ... and then creating multiple connections, from same source port but
      different addresses:
      
      for i in $(seq 2000 2032);do nc -p 1234 192.168.7.1 $i > /dev/null  & done
      
      (all of these then get hashed to same bysource slot)
      
      Then, to test that nat conflict resultion is working:
      
      nc -s 10.0.0.1 -p 1234 192.168.7.1 2000
      nc -s 10.0.0.2 -p 1234 192.168.7.1 2000
      
      tcp  .. src=10.0.0.1 dst=192.168.7.1 sport=1234 dport=2000 src=192.168.7.1 dst=192.168.7.10 sport=2000 dport=1024 [ASSURED]
      tcp  .. src=10.0.0.2 dst=192.168.7.1 sport=1234 dport=2000 src=192.168.7.1 dst=192.168.7.10 sport=2000 dport=1025 [ASSURED]
      tcp  .. src=192.168.7.10 dst=192.168.7.1 sport=1234 dport=2000 src=192.168.7.1 dst=192.168.7.10 sport=2000 dport=1234 [ASSURED]
      tcp  .. src=192.168.7.10 dst=192.168.7.1 sport=1234 dport=2001 src=192.168.7.1 dst=192.168.7.10 sport=2001 dport=1234 [ASSURED]
      [..]
      
      -> nat altered source ports to 1024 and 1025, respectively.
      This can also be confirmed on destination host which shows
      ESTAB      0      0   192.168.7.1:2000      192.168.7.10:1024
      ESTAB      0      0   192.168.7.1:2000      192.168.7.10:1025
      ESTAB      0      0   192.168.7.1:2000      192.168.7.10:1234
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Fixes: 870190a9 ("netfilter: nat: convert nat bysrc hash to rhashtable")
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      7223ecd4
    • R
      netdevice.h: fix kernel-doc warning · 920c1cd3
      Randy Dunlap 提交于
      Fix kernel-doc warning in <linux/netdevice.h> (missing ':'):
      
      ..//include/linux/netdevice.h:1904: warning: No description found for parameter 'prio_tc_map[TC_BITMASK + 1]'
      Signed-off-by: NRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      920c1cd3
    • J
      PCI: Export pcie_find_root_port · e784930b
      Johannes Thumshirn 提交于
      Export pcie_find_root_port() so we can use it outside of PCIe-AER error
      injection.
      Signed-off-by: NJohannes Thumshirn <jthumshirn@suse.de>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      e784930b
  13. 23 11月, 2016 1 次提交
  14. 22 11月, 2016 1 次提交
  15. 20 11月, 2016 2 次提交
    • P
      kvm: kvmclock: let KVM_GET_CLOCK return whether the master clock is in use · e3fd9a93
      Paolo Bonzini 提交于
      Userspace can read the exact value of kvmclock by reading the TSC
      and fetching the timekeeping parameters out of guest memory.  This
      however is brittle and not necessary anymore with KVM 4.11.  Provide
      a mechanism that lets userspace know if the new KVM_GET_CLOCK
      semantics are in effect, and---since we are at it---if the clock
      is stable across all VCPUs.
      
      Cc: Radim Krčmář <rkrcmar@redhat.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NRadim Krčmář <rkrcmar@redhat.com>
      e3fd9a93
    • D
      iommu/vt-d: Fix PASID table allocation · 91017044
      David Woodhouse 提交于
      Somehow I ended up with an off-by-three error in calculating the size of
      the PASID and PASID State tables, which triggers allocations failures as
      those tables unfortunately have to be physically contiguous.
      
      In fact, even the *correct* maximum size of 8MiB is problematic and is
      wont to lead to allocation failures. Since I have extracted a promise
      that this *will* be fixed in hardware, I'm happy to limit it on the
      current hardware to a maximum of 0x20000 PASIDs, which gives us 1MiB
      tables — still not ideal, but better than before.
      
      Reported by Mika Kuoppala <mika.kuoppala@linux.intel.com> and also by
      Xunlei Pang <xlpang@redhat.com> who submitted a simpler patch to fix
      only the allocation (and not the free) to the "correct" limit... which
      was still problematic.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      Cc: stable@vger.kernel.org
      91017044
  16. 19 11月, 2016 1 次提交
  17. 18 11月, 2016 1 次提交
    • A
      mremap: fix race between mremap() and page cleanning · 5d190420
      Aaron Lu 提交于
      Prior to 3.15, there was a race between zap_pte_range() and
      page_mkclean() where writes to a page could be lost.  Dave Hansen
      discovered by inspection that there is a similar race between
      move_ptes() and page_mkclean().
      
      We've been able to reproduce the issue by enlarging the race window with
      a msleep(), but have not been able to hit it without modifying the code.
      So, we think it's a real issue, but is difficult or impossible to hit in
      practice.
      
      The zap_pte_range() issue is fixed by commit 1cf35d47("mm: split
      'tlb_flush_mmu()' into tlb flushing and memory freeing parts").  And
      this patch is to fix the race between page_mkclean() and mremap().
      
      Here is one possible way to hit the race: suppose a process mmapped a
      file with READ | WRITE and SHARED, it has two threads and they are bound
      to 2 different CPUs, e.g.  CPU1 and CPU2.  mmap returned X, then thread
      1 did a write to addr X so that CPU1 now has a writable TLB for addr X
      on it.  Thread 2 starts mremaping from addr X to Y while thread 1
      cleaned the page and then did another write to the old addr X again.
      The 2nd write from thread 1 could succeed but the value will get lost.
      
              thread 1                           thread 2
           (bound to CPU1)                    (bound to CPU2)
      
        1: write 1 to addr X to get a
           writeable TLB on this CPU
      
                                              2: mremap starts
      
                                              3: move_ptes emptied PTE for addr X
                                                 and setup new PTE for addr Y and
                                                 then dropped PTL for X and Y
      
        4: page laundering for N by doing
           fadvise FADV_DONTNEED. When done,
           pageframe N is deemed clean.
      
        5: *write 2 to addr X
      
                                              6: tlb flush for addr X
      
        7: munmap (Y, pagesize) to make the
           page unmapped
      
        8: fadvise with FADV_DONTNEED again
           to kick the page off the pagecache
      
        9: pread the page from file to verify
           the value. If 1 is there, it means
           we have lost the written 2.
      
        *the write may or may not cause segmentation fault, it depends on
        if the TLB is still on the CPU.
      
      Please note that this is only one specific way of how the race could
      occur, it didn't mean that the race could only occur in exact the above
      config, e.g. more than 2 threads could be involved and fadvise() could
      be done in another thread, etc.
      
      For anonymous pages, they could race between mremap() and page reclaim:
      THP: a huge PMD is moved by mremap to a new huge PMD, then the new huge
      PMD gets unmapped/splitted/pagedout before the flush tlb happened for
      the old huge PMD in move_page_tables() and we could still write data to
      it.  The normal anonymous page has similar situation.
      
      To fix this, check for any dirty PTE in move_ptes()/move_huge_pmd() and
      if any, did the flush before dropping the PTL.  If we did the flush for
      every move_ptes()/move_huge_pmd() call then we do not need to do the
      flush in move_pages_tables() for the whole range.  But if we didn't, we
      still need to do the whole range flush.
      
      Alternatively, we can track which part of the range is flushed in
      move_ptes()/move_huge_pmd() and which didn't to avoid flushing the whole
      range in move_page_tables().  But that would require multiple tlb
      flushes for the different sub-ranges and should be less efficient than
      the single whole range flush.
      
      KBuild test on my Sandybridge desktop doesn't show any noticeable change.
      v4.9-rc4:
        real    5m14.048s
        user    32m19.800s
        sys     4m50.320s
      
      With this commit:
        real    5m13.888s
        user    32m19.330s
        sys     4m51.200s
      Reported-by: NDave Hansen <dave.hansen@intel.com>
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5d190420
  18. 17 11月, 2016 3 次提交
  19. 16 11月, 2016 1 次提交
  20. 15 11月, 2016 1 次提交
  21. 14 11月, 2016 1 次提交
    • S
      sunrpc: svc_age_temp_xprts_now should not call setsockopt non-tcp transports · ea08e392
      Scott Mayhew 提交于
      This fixes the following panic that can occur with NFSoRDMA.
      
      general protection fault: 0000 [#1] SMP
      Modules linked in: rpcrdma ib_isert iscsi_target_mod ib_iser libiscsi
      scsi_transport_iscsi ib_srpt target_core_mod ib_srp scsi_transport_srp
      scsi_tgt ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad rdma_cm ib_cm iw_cm
      mlx5_ib ib_core intel_powerclamp coretemp kvm_intel kvm sg ioatdma
      ipmi_devintf ipmi_ssif dcdbas iTCO_wdt iTCO_vendor_support pcspkr
      irqbypass sb_edac shpchp dca crc32_pclmul ghash_clmulni_intel edac_core
      lpc_ich aesni_intel lrw gf128mul glue_helper ablk_helper mei_me mei
      ipmi_si cryptd wmi ipmi_msghandler acpi_pad acpi_power_meter nfsd
      auth_rpcgss nfs_acl lockd grace sunrpc ip_tables xfs libcrc32c sd_mod
      crc_t10dif crct10dif_generic mgag200 i2c_algo_bit drm_kms_helper
      syscopyarea sysfillrect sysimgblt ahci fb_sys_fops ttm libahci mlx5_core
      tg3 crct10dif_pclmul drm crct10dif_common
      ptp i2c_core libata crc32c_intel pps_core fjes dm_mirror dm_region_hash
      dm_log dm_mod
      CPU: 1 PID: 120 Comm: kworker/1:1 Not tainted 3.10.0-514.el7.x86_64 #1
      Hardware name: Dell Inc. PowerEdge R320/0KM5PX, BIOS 2.4.2 01/29/2015
      Workqueue: events check_lifetime
      task: ffff88031f506dd0 ti: ffff88031f584000 task.ti: ffff88031f584000
      RIP: 0010:[<ffffffff8168d847>]  [<ffffffff8168d847>]
      _raw_spin_lock_bh+0x17/0x50
      RSP: 0018:ffff88031f587ba8  EFLAGS: 00010206
      RAX: 0000000000020000 RBX: 20041fac02080072 RCX: ffff88031f587fd8
      RDX: 0000000000000000 RSI: 0000000000000000 RDI: 20041fac02080072
      RBP: ffff88031f587bb0 R08: 0000000000000008 R09: ffffffff8155be77
      R10: ffff880322a59b00 R11: ffffea000bf39f00 R12: 20041fac02080072
      R13: 000000000000000d R14: ffff8800c4fbd800 R15: 0000000000000001
      FS:  0000000000000000(0000) GS:ffff880322a40000(0000)
      knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007f3c52d4547e CR3: 00000000019ba000 CR4: 00000000001407e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Stack:
      20041fac02080002 ffff88031f587bd0 ffffffff81557830 20041fac02080002
      ffff88031f587c78 ffff88031f587c40 ffffffff8155ae08 000000010157df32
      0000000800000001 ffff88031f587c20 ffffffff81096acb ffffffff81aa37d0
      Call Trace:
      [<ffffffff81557830>] lock_sock_nested+0x20/0x50
      [<ffffffff8155ae08>] sock_setsockopt+0x78/0x940
      [<ffffffff81096acb>] ? lock_timer_base.isra.33+0x2b/0x50
      [<ffffffff8155397d>] kernel_setsockopt+0x4d/0x50
      [<ffffffffa0386284>] svc_age_temp_xprts_now+0x174/0x1e0 [sunrpc]
      [<ffffffffa03b681d>] nfsd_inetaddr_event+0x9d/0xd0 [nfsd]
      [<ffffffff81691ebc>] notifier_call_chain+0x4c/0x70
      [<ffffffff810b687d>] __blocking_notifier_call_chain+0x4d/0x70
      [<ffffffff810b68b6>] blocking_notifier_call_chain+0x16/0x20
      [<ffffffff815e8538>] __inet_del_ifa+0x168/0x2d0
      [<ffffffff815e8cef>] check_lifetime+0x25f/0x270
      [<ffffffff810a7f3b>] process_one_work+0x17b/0x470
      [<ffffffff810a8d76>] worker_thread+0x126/0x410
      [<ffffffff810a8c50>] ? rescuer_thread+0x460/0x460
      [<ffffffff810b052f>] kthread+0xcf/0xe0
      [<ffffffff810b0460>] ? kthread_create_on_node+0x140/0x140
      [<ffffffff81696418>] ret_from_fork+0x58/0x90
      [<ffffffff810b0460>] ? kthread_create_on_node+0x140/0x140
      Code: ca 75 f1 5d c3 0f 1f 80 00 00 00 00 eb d9 66 0f 1f 44 00 00 0f 1f
      44 00 00 55 48 89 e5 53 48 89 fb e8 7e 04 a0 ff b8 00 00 02 00 <f0> 0f
      c1 03 89 c2 c1 ea 10 66 39 c2 75 03 5b 5d c3 83 e2 fe 0f
      RIP  [<ffffffff8168d847>] _raw_spin_lock_bh+0x17/0x50
      RSP <ffff88031f587ba8>
      Signed-off-by: NScott Mayhew <smayhew@redhat.com>
      Fixes: c3d4879e ("sunrpc: Add a function to close temporary transports immediately")
      Reviewed-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      ea08e392