1. 15 11月, 2013 2 次提交
  2. 14 11月, 2013 1 次提交
  3. 23 8月, 2013 2 次提交
  4. 04 7月, 2013 1 次提交
  5. 16 4月, 2013 5 次提交
  6. 15 4月, 2013 9 次提交
  7. 23 3月, 2013 1 次提交
  8. 14 2月, 2013 1 次提交
  9. 13 2月, 2013 1 次提交
    • D
      ioatdma: fix race between updating ioat->head and IOAT_COMPLETION_PENDING · 4dec23d7
      Dave Jiang 提交于
      There is a race that can hit during __cleanup() when the ioat->head pointer is
      incremented during descriptor submission. The __cleanup() can clear the
      PENDING flag when it does not see any active descriptors. This causes new
      submitted descriptors to be ignored because the COMPLETION_PENDING flag is
      cleared. This was introduced when code was adapted from ioatdma v1 to ioatdma
      v2. For v2 and v3, IOAT_COMPLETION_PENDING flag will be abandoned and a new
      flag IOAT_CHAN_ACTIVE will be utilized. This flag will also be protected under
      the prep_lock when being modified in order to avoid the race.
      Signed-off-by: NDave Jiang <dave.jiang@intel.com>
      Reviewed-by: NDan Williams <djbw@fb.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      4dec23d7
  10. 08 1月, 2013 4 次提交
  11. 07 1月, 2013 1 次提交
    • S
      ioat: Fix DMA memory sync direction correct flag · ac498987
      Shuah Khan 提交于
      ioat does DMA memory sync with DMA_TO_DEVICE direction on a buffer allocated
      for DMA_FROM_DEVICE dma, resulting in the following warning from dma debug.
      Fixed the dma_sync_single_for_device() call to use the correct direction.
      
      [  226.288947] WARNING: at lib/dma-debug.c:990 check_sync+0x132/0x550()
      [  226.288948] Hardware name: ProLiant DL380p Gen8
      [  226.288951] ioatdma 0000:00:04.0: DMA-API: device driver syncs DMA memory with different direction [device address=0x00000000ffff7000] [size=4096 bytes] [mapped with DMA_FROM_DEVICE] [synced with DMA_TO_DEVICE]
      [  226.288953] Modules linked in: iTCO_wdt(+) sb_edac(+) ioatdma(+) microcode serio_raw pcspkr edac_core hpwdt(+) iTCO_vendor_support hpilo(+) dca acpi_power_meter ata_generic pata_acpi sd_mod crc_t10dif ata_piix libata hpsa tg3 netxen_nic(+) sunrpc dm_mirror dm_region_hash dm_log dm_mod
      [  226.288967] Pid: 1055, comm: work_for_cpu Tainted: G        W    3.3.0-0.20.el7.x86_64 #1
      [  226.288968] Call Trace:
      [  226.288974]  [<ffffffff810644cf>] warn_slowpath_common+0x7f/0xc0
      [  226.288977]  [<ffffffff810645c6>] warn_slowpath_fmt+0x46/0x50
      [  226.288980]  [<ffffffff81345502>] check_sync+0x132/0x550
      [  226.288983]  [<ffffffff81345c9f>] debug_dma_sync_single_for_device+0x3f/0x50
      [  226.288988]  [<ffffffff81661002>] ? wait_for_common+0x72/0x180
      [  226.288995]  [<ffffffffa019590f>] ioat_xor_val_self_test+0x3e5/0x832 [ioatdma]
      [  226.288999]  [<ffffffff811a5739>] ? kfree+0x259/0x270
      [  226.289004]  [<ffffffffa0195d77>] ioat3_dma_self_test+0x1b/0x20 [ioatdma]
      [  226.289008]  [<ffffffffa01952c3>] ioat_probe+0x2f8/0x348 [ioatdma]
      [  226.289011]  [<ffffffffa0195f51>] ioat3_dma_probe+0x1d5/0x2aa [ioatdma]
      [  226.289016]  [<ffffffffa0194d12>] ioat_pci_probe+0x139/0x17c [ioatdma]
      [  226.289020]  [<ffffffff81354b8c>] local_pci_probe+0x5c/0xd0
      [  226.289023]  [<ffffffff81083e50>] ? destroy_work_on_stack+0x20/0x20
      [  226.289025]  [<ffffffff81083e68>] do_work_for_cpu+0x18/0x30
      [  226.289029]  [<ffffffff8108d997>] kthread+0xb7/0xc0
      [  226.289033]  [<ffffffff8166cef4>] kernel_thread_helper+0x4/0x10
      [  226.289036]  [<ffffffff81662d20>] ? _raw_spin_unlock_irq+0x30/0x50
      [  226.289038]  [<ffffffff81663234>] ? retint_restore_args+0x13/0x13
      [  226.289041]  [<ffffffff8108d8e0>] ? kthread_worker_fn+0x1a0/0x1a0
      [  226.289044]  [<ffffffff8166cef0>] ? gs_change+0x13/0x13
      [  226.289045] ---[ end trace e1618afc7a606089 ]---
      [  226.289047] Mapped at:
      [  226.289048]  [<ffffffff81345307>] debug_dma_map_page+0x87/0x150
      [  226.289050]  [<ffffffffa019653c>] dma_map_page.constprop.18+0x70/0xb34 [ioatdma]
      [  226.289054]  [<ffffffffa0195702>] ioat_xor_val_self_test+0x1d8/0x832 [ioatdma]
      [  226.289058]  [<ffffffffa0195d77>] ioat3_dma_self_test+0x1b/0x20 [ioatdma]
      [  226.289061]  [<ffffffffa01952c3>] ioat_probe+0x2f8/0x348 [ioatdma]
      Signed-off-by: NShuah Khan <shuah.khan@hp.com>
      CC: <stable@vger.kernel.org>
      Signed-off-by: NVinod Koul <vinod.koul@linux.intel.com>
      ac498987
  12. 04 1月, 2013 1 次提交
    • G
      Drivers: dma: remove __dev* attributes. · 4bf27b8b
      Greg Kroah-Hartman 提交于
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit, __devexit_p, __devinitconst,
      and __devexit from these drivers.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: Viresh Kumar <viresh.linux@gmail.com>
      Cc: Dan Williams <djbw@fb.com>
      Cc: Vinod Koul <vinod.koul@intel.com>
      Cc: Barry Song <baohua.song@csr.com>
      Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Cc: Alexander Duyck <alexander.h.duyck@intel.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Jassi Brar <jassisinghbrar@gmail.com>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4bf27b8b
  13. 29 11月, 2012 1 次提交
  14. 15 11月, 2012 1 次提交
    • A
      ioat: Do not enable DCA if tag map is invalid · 07bd34db
      Alexander Duyck 提交于
      I have encountered several systems that have an invalid tag map.  This
      invalid tag map results in only two tags being generated 0x1F which is
      usually applied to the first core in a Hyper-threaded pair and 0x00 which
      is applied to the second core in a Hyper-threaded pair.  The net result of
      all this is that DCA causes significant cache thrash because the 0x1F tag
      will send traffic to the second socket, which the 0x00 tag will not DCA tag
      the frame resulting in no benefit.
      
      For now the best solution from the driver's perspective is to just disable
      DCA if the tag map is invalid.  The correct solution for this would be to
      have the BIOS on affected systems updated so that the correct tags are
      generated for a given APIC ID.
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@intel.com>
      Tested-by: NStephen Ko <stephen.s.ko@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      07bd34db
  15. 18 9月, 2012 1 次提交
  16. 01 9月, 2012 1 次提交
  17. 31 8月, 2012 1 次提交
  18. 06 4月, 2012 2 次提交
  19. 24 3月, 2012 1 次提交
  20. 13 3月, 2012 3 次提交