1. 01 11月, 2017 2 次提交
  2. 29 10月, 2017 1 次提交
  3. 28 10月, 2017 1 次提交
    • F
      liquidio: fix kernel panic in VF driver · aa28667c
      Felix Manlunas 提交于
      Doing ifconfig down on VF driver in the middle of receiving line rate
      traffic causes a kernel panic:
      
          LiquidIO_VF 0000:02:00.3: should not come here should not get rx when poll mode = 0 for vf
          BUG: unable to handle kernel NULL pointer dereference at           (null)
          .
          .
          .
          Call Trace:
           <IRQ>
           ? tasklet_action+0x102/0x120
           __do_softirq+0x91/0x292
           irq_exit+0xb6/0xc0
           do_IRQ+0x4f/0xd0
           common_interrupt+0x93/0x93
           </IRQ>
          RIP: 0010:cpuidle_enter_state+0x142/0x2f0
          RSP: 0018:ffffffffa6403e20 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff59
          RAX: 0000000000000000 RBX: 0000000000000003 RCX: 000000000000001f
          RDX: 0000000000000000 RSI: 000000002ab7519f RDI: 0000000000000000
          RBP: ffffffffa6403e58 R08: 0000000000000084 R09: 0000000000000018
          R10: ffffffffa6403df0 R11: 00000000000003c7 R12: 0000000000000003
          R13: ffffd27ebd806800 R14: ffffffffa64d40d8 R15: 0000007be072823f
           cpuidle_enter+0x17/0x20
           call_cpuidle+0x23/0x40
           do_idle+0x18c/0x1f0
           cpu_startup_entry+0x64/0x70
           rest_init+0xa5/0xb0
           start_kernel+0x45e/0x46b
           x86_64_start_reservations+0x24/0x26
           x86_64_start_kernel+0x6f/0x72
           secondary_startup_64+0xa5/0xa5
          Code:  Bad RIP value.
          RIP:           (null) RSP: ffff9246ed003f28
          CR2: 0000000000000000
          ---[ end trace 92731e80f31b7d7d ]---
          Kernel panic - not syncing: Fatal exception in interrupt
          Kernel Offset: 0x24000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
          ---[ end Kernel panic - not syncing: Fatal exception in interrupt
      
      Reason is:  in the function assigned to net_device_ops->ndo_stop, the steps
      for bringing down the interface are done in the wrong order.  The step that
      notifies the NIC firmware to stop forwarding packets to host is done too
      late.  Fix it by moving that step to the beginning.
      Signed-off-by: NFelix Manlunas <felix.manlunas@cavium.com>
      Signed-off-by: NRaghu Vatsavayi <raghu.vatsavayi@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      aa28667c
  4. 27 10月, 2017 2 次提交
  5. 24 10月, 2017 1 次提交
  6. 19 10月, 2017 2 次提交
  7. 14 10月, 2017 1 次提交
    • A
      liquidio: fix timespec64_to_ns typo · e7ad9793
      Arnd Bergmann 提交于
      While experimenting with changes to the timekeeping code, I
      ran into a build error in the liquidio driver:
      
      drivers/net/ethernet/cavium/liquidio/lio_main.c: In function 'liquidio_ptp_settime':
      drivers/net/ethernet/cavium/liquidio/lio_main.c:1850:22: error: passing argument 1 of 'timespec_to_ns' from incompatible pointer type [-Werror=incompatible-pointer-types]
      
      The driver had a type mismatch since it was first merged, but
      this never caused problems because it is only built on 64-bit
      architectures that define timespec and timespec64 to the same
      type.
      
      If we ever want to compile-test the driver on 32-bit or change
      the way that 64-bit timespec64 is defined, we need to fix it,
      so let's just do it now.
      
      Fixes: f21fb3ed ("Add support of Cavium Liquidio ethernet adapters")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NFelix Manlunas <felix.manlunas@cavium.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e7ad9793
  8. 26 9月, 2017 3 次提交
  9. 31 8月, 2017 1 次提交
  10. 30 8月, 2017 1 次提交
  11. 29 8月, 2017 1 次提交
    • Y
      smp: Avoid using two cache lines for struct call_single_data · 966a9671
      Ying Huang 提交于
      struct call_single_data is used in IPIs to transfer information between
      CPUs.  Its size is bigger than sizeof(unsigned long) and less than
      cache line size.  Currently it is not allocated with any explicit alignment
      requirements.  This makes it possible for allocated call_single_data to
      cross two cache lines, which results in double the number of the cache lines
      that need to be transferred among CPUs.
      
      This can be fixed by requiring call_single_data to be aligned with the
      size of call_single_data. Currently the size of call_single_data is the
      power of 2.  If we add new fields to call_single_data, we may need to
      add padding to make sure the size of new definition is the power of 2
      as well.
      
      Fortunately, this is enforced by GCC, which will report bad sizes.
      
      To set alignment requirements of call_single_data to the size of
      call_single_data, a struct definition and a typedef is used.
      
      To test the effect of the patch, I used the vm-scalability multiple
      thread swap test case (swap-w-seq-mt).  The test will create multiple
      threads and each thread will eat memory until all RAM and part of swap
      is used, so that huge number of IPIs are triggered when unmapping
      memory.  In the test, the throughput of memory writing improves ~5%
      compared with misaligned call_single_data, because of faster IPIs.
      Suggested-by: NPeter Zijlstra <peterz@infradead.org>
      Signed-off-by: NHuang, Ying <ying.huang@intel.com>
      [ Add call_single_data_t and align with size of call_single_data. ]
      Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Aaron Lu <aaron.lu@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: Juergen Gross <jgross@suse.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/87bmnqd6lz.fsf@yhuang-mobile.sh.intel.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      966a9671
  12. 24 8月, 2017 1 次提交
  13. 23 8月, 2017 2 次提交
  14. 21 8月, 2017 1 次提交
  15. 19 8月, 2017 4 次提交
  16. 18 8月, 2017 1 次提交
  17. 17 8月, 2017 1 次提交
  18. 16 8月, 2017 4 次提交
  19. 15 8月, 2017 10 次提交