<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/dma/ioat, branch v3.19</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>dmaengine: ioatdma: fix dma mapping errors</title>
<updated>2014-12-09T09:22:05+00:00</updated>
<author>
<name>Prarit Bhargava</name>
<email>prarit@redhat.com</email>
</author>
<published>2014-10-23T11:38:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4ff2fd839ce86b1e2b1fed543886930a493de588'/>
<id>4ff2fd839ce86b1e2b1fed543886930a493de588</id>
<content type='text'>
Several systems are showing the following stack trace:

WARNING: CPU: 0 PID: 2352 at lib/dma-debug.c:1140 check_unmap+0x4ee/0x9e0()
ioatdma 0000:00:04.0: DMA-API: device driver failed to check map error[device address=0x0000000465bad000] [size=4096 bytes] [mapped as page]
Modules linked in: ioatdma(E+) nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul crc32c_intel cdc_ether ses ghash_clmulni_intel usbnet mii enclosure aesni_intel lrw gf128mul glue_helper iTCO_wdt shpchp ablk_helper iTCO_vendor_support cryptd pcspkr ipmi_devintf sb_edac lpc_ich edac_core mfd_core ipmi_si i2c_i801 wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt drm_kms_helper ttm igb drm ptp pps_core dca i2c_algo_bit i2ccore megaraid_sas dm_mirror dm_region_hash dm_log dm_mod [last unloaded: ioatdma]
CPU: 0 PID: 2352 Comm: insmod Tainted: G            E  3.17.0-rc4+ #14
Hardware name: HP ProLiant m300 Server Cartridge/, BIOS H02 01/30/2014
 0000000000000009 ffff88007994b7d8 ffffffff816e7225 ffff88007994b820
 ffff88007994b810 ffffffff8107e51d ffff88045fc56c00 ffff88046643ee90
 ffffffff8338ccd0 0000000000000286 ffffffff81956629 ffff88007994b870
Call Trace:
 [&lt;ffffffff816e7225&gt;] dump_stack+0x4d/0x66
 [&lt;ffffffff8107e51d&gt;] warn_slowpath_common+0x7d/0xa0
 [&lt;ffffffff8107e58c&gt;] warn_slowpath_fmt+0x4c/0x50
 [&lt;ffffffff81381e6e&gt;] check_unmap+0x4ee/0x9e0
 [&lt;ffffffff813823bf&gt;] debug_dma_unmap_page+0x5f/0x70
 [&lt;ffffffffa04546d8&gt;] ioat_xor_val_self_test+0x498/0xcf0 [ioatdma]
 [&lt;ffffffff81204f0a&gt;] ? kfree+0xda/0x2b0
 [&lt;ffffffffa044d510&gt;] ? ioat_dma_setup_interrupts+0x120/0x2d0 [ioatdma]
 [&lt;ffffffffa0454f4e&gt;] ioat3_dma_self_test+0x1e/0x30 [ioatdma]
 [&lt;ffffffffa044f904&gt;] ioat_probe+0xf4/0x110 [ioatdma]
 [&lt;ffffffffa04550f8&gt;] ioat3_dma_probe+0x198/0x3a0 [ioatdma]
 [&lt;ffffffffa044d18e&gt;] ioat_pci_probe+0x11e/0x1b0 [ioatdma]
 [&lt;ffffffff81393a15&gt;] local_pci_probe+0x45/0xa0
 [&lt;ffffffff81394be5&gt;] ? pci_match_device+0xe5/0x110
 [&lt;ffffffff81394d29&gt;] pci_device_probe+0xd9/0x130
 [&lt;ffffffff81462860&gt;] driver_probe_device+0x90/0x3c0
 [&lt;ffffffff81462c63&gt;] __driver_attach+0x93/0xa0
 [&lt;ffffffff81462bd0&gt;] ? __device_attach+0x40/0x40
 [&lt;ffffffff8146080b&gt;] bus_for_each_dev+0x6b/0xb0
 [&lt;ffffffff814622ce&gt;] driver_attach+0x1e/0x20
 [&lt;ffffffff81461ed8&gt;] bus_add_driver+0x188/0x260
 [&lt;ffffffffa0423000&gt;] ? 0xffffffffa0423000
 [&lt;ffffffff81463734&gt;] driver_register+0x64/0xf0
 [&lt;ffffffff813933a0&gt;] __pci_register_driver+0x60/0x70
 [&lt;ffffffffa0423089&gt;] ioat_init_module+0x89/0x1000 [ioatdma]
 [&lt;ffffffff8100212c&gt;] do_one_initcall+0xbc/0x200
 [&lt;ffffffff811e8b22&gt;] ? __vunmap+0xd2/0x120
 [&lt;ffffffff8111e73c&gt;] load_module+0x14ec/0x1b50
 [&lt;ffffffff81119970&gt;] ? store_uevent+0x40/0x40
 [&lt;ffffffff8111ef36&gt;] SyS_finit_module+0x86/0xb0
 [&lt;ffffffff816f1469&gt;] system_call_fastpath+0x16/0x1b
---[ end trace 1052ccbbc3db4d08 ]---
Mapped at:
 [&lt;ffffffff81380be1&gt;] debug_dma_map_page+0x91/0x140
 [&lt;ffffffffa045440e&gt;] ioat_xor_val_self_test+0x1ce/0xcf0 [ioatdma]
 [&lt;ffffffffa0454f4e&gt;] ioat3_dma_self_test+0x1e/0x30 [ioatdma]
 [&lt;ffffffffa044f904&gt;] ioat_probe+0xf4/0x110 [ioatdma]
 [&lt;ffffffffa04550f8&gt;] ioat3_dma_probe+0x198/0x3a0 [ioatdma]

This happens because the current ioatdma DMA test code does not check the return
value of dma_map_page() calls with dma_mapping_error().  In addition, it was
noticed that mapping for the variable dest_dma is free'd before the last use.

This patch fixes these errors by initializing the dma_srcs[] array and checking
the returns with dma_mapping_error().

Signed-off-by: Prarit Bhargava &lt;prarit@redhat.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Several systems are showing the following stack trace:

WARNING: CPU: 0 PID: 2352 at lib/dma-debug.c:1140 check_unmap+0x4ee/0x9e0()
ioatdma 0000:00:04.0: DMA-API: device driver failed to check map error[device address=0x0000000465bad000] [size=4096 bytes] [mapped as page]
Modules linked in: ioatdma(E+) nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul crc32c_intel cdc_ether ses ghash_clmulni_intel usbnet mii enclosure aesni_intel lrw gf128mul glue_helper iTCO_wdt shpchp ablk_helper iTCO_vendor_support cryptd pcspkr ipmi_devintf sb_edac lpc_ich edac_core mfd_core ipmi_si i2c_i801 wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt drm_kms_helper ttm igb drm ptp pps_core dca i2c_algo_bit i2ccore megaraid_sas dm_mirror dm_region_hash dm_log dm_mod [last unloaded: ioatdma]
CPU: 0 PID: 2352 Comm: insmod Tainted: G            E  3.17.0-rc4+ #14
Hardware name: HP ProLiant m300 Server Cartridge/, BIOS H02 01/30/2014
 0000000000000009 ffff88007994b7d8 ffffffff816e7225 ffff88007994b820
 ffff88007994b810 ffffffff8107e51d ffff88045fc56c00 ffff88046643ee90
 ffffffff8338ccd0 0000000000000286 ffffffff81956629 ffff88007994b870
Call Trace:
 [&lt;ffffffff816e7225&gt;] dump_stack+0x4d/0x66
 [&lt;ffffffff8107e51d&gt;] warn_slowpath_common+0x7d/0xa0
 [&lt;ffffffff8107e58c&gt;] warn_slowpath_fmt+0x4c/0x50
 [&lt;ffffffff81381e6e&gt;] check_unmap+0x4ee/0x9e0
 [&lt;ffffffff813823bf&gt;] debug_dma_unmap_page+0x5f/0x70
 [&lt;ffffffffa04546d8&gt;] ioat_xor_val_self_test+0x498/0xcf0 [ioatdma]
 [&lt;ffffffff81204f0a&gt;] ? kfree+0xda/0x2b0
 [&lt;ffffffffa044d510&gt;] ? ioat_dma_setup_interrupts+0x120/0x2d0 [ioatdma]
 [&lt;ffffffffa0454f4e&gt;] ioat3_dma_self_test+0x1e/0x30 [ioatdma]
 [&lt;ffffffffa044f904&gt;] ioat_probe+0xf4/0x110 [ioatdma]
 [&lt;ffffffffa04550f8&gt;] ioat3_dma_probe+0x198/0x3a0 [ioatdma]
 [&lt;ffffffffa044d18e&gt;] ioat_pci_probe+0x11e/0x1b0 [ioatdma]
 [&lt;ffffffff81393a15&gt;] local_pci_probe+0x45/0xa0
 [&lt;ffffffff81394be5&gt;] ? pci_match_device+0xe5/0x110
 [&lt;ffffffff81394d29&gt;] pci_device_probe+0xd9/0x130
 [&lt;ffffffff81462860&gt;] driver_probe_device+0x90/0x3c0
 [&lt;ffffffff81462c63&gt;] __driver_attach+0x93/0xa0
 [&lt;ffffffff81462bd0&gt;] ? __device_attach+0x40/0x40
 [&lt;ffffffff8146080b&gt;] bus_for_each_dev+0x6b/0xb0
 [&lt;ffffffff814622ce&gt;] driver_attach+0x1e/0x20
 [&lt;ffffffff81461ed8&gt;] bus_add_driver+0x188/0x260
 [&lt;ffffffffa0423000&gt;] ? 0xffffffffa0423000
 [&lt;ffffffff81463734&gt;] driver_register+0x64/0xf0
 [&lt;ffffffff813933a0&gt;] __pci_register_driver+0x60/0x70
 [&lt;ffffffffa0423089&gt;] ioat_init_module+0x89/0x1000 [ioatdma]
 [&lt;ffffffff8100212c&gt;] do_one_initcall+0xbc/0x200
 [&lt;ffffffff811e8b22&gt;] ? __vunmap+0xd2/0x120
 [&lt;ffffffff8111e73c&gt;] load_module+0x14ec/0x1b50
 [&lt;ffffffff81119970&gt;] ? store_uevent+0x40/0x40
 [&lt;ffffffff8111ef36&gt;] SyS_finit_module+0x86/0xb0
 [&lt;ffffffff816f1469&gt;] system_call_fastpath+0x16/0x1b
---[ end trace 1052ccbbc3db4d08 ]---
Mapped at:
 [&lt;ffffffff81380be1&gt;] debug_dma_map_page+0x91/0x140
 [&lt;ffffffffa045440e&gt;] ioat_xor_val_self_test+0x1ce/0xcf0 [ioatdma]
 [&lt;ffffffffa0454f4e&gt;] ioat3_dma_self_test+0x1e/0x30 [ioatdma]
 [&lt;ffffffffa044f904&gt;] ioat_probe+0xf4/0x110 [ioatdma]
 [&lt;ffffffffa04550f8&gt;] ioat3_dma_probe+0x198/0x3a0 [ioatdma]

This happens because the current ioatdma DMA test code does not check the return
value of dma_map_page() calls with dma_mapping_error().  In addition, it was
noticed that mapping for the variable dest_dma is free'd before the last use.

This patch fixes these errors by initializing the dma_srcs[] array and checking
the returns with dma_mapping_error().

Signed-off-by: Prarit Bhargava &lt;prarit@redhat.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net_dma: simple removal</title>
<updated>2014-09-28T14:05:16+00:00</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2013-12-30T20:37:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=7bced397510ab569d31de4c70b39e13355046387'/>
<id>7bced397510ab569d31de4c70b39e13355046387</id>
<content type='text'>
Per commit "77873803363c net_dma: mark broken" net_dma is no longer used
and there is no plan to fix it.

This is the mechanical removal of bits in CONFIG_NET_DMA ifdef guards.
Reverting the remainder of the net_dma induced changes is deferred to
subsequent patches.

Marked for stable due to Roman's report of a memory leak in
dma_pin_iovec_pages():

    https://lkml.org/lkml/2014/9/3/177

Cc: Dave Jiang &lt;dave.jiang@intel.com&gt;
Cc: Vinod Koul &lt;vinod.koul@intel.com&gt;
Cc: David Whipple &lt;whipple@securedatainnovations.ch&gt;
Cc: Alexander Duyck &lt;alexander.h.duyck@intel.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Reported-by: Roman Gushchin &lt;klamm@yandex-team.ru&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Per commit "77873803363c net_dma: mark broken" net_dma is no longer used
and there is no plan to fix it.

This is the mechanical removal of bits in CONFIG_NET_DMA ifdef guards.
Reverting the remainder of the net_dma induced changes is deferred to
subsequent patches.

Marked for stable due to Roman's report of a memory leak in
dma_pin_iovec_pages():

    https://lkml.org/lkml/2014/9/3/177

Cc: Dave Jiang &lt;dave.jiang@intel.com&gt;
Cc: Vinod Koul &lt;vinod.koul@intel.com&gt;
Cc: David Whipple &lt;whipple@securedatainnovations.ch&gt;
Cc: Alexander Duyck &lt;alexander.h.duyck@intel.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Reported-by: Roman Gushchin &lt;klamm@yandex-team.ru&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ioat: Use time_before_jiffies()</title>
<updated>2014-08-21T18:39:22+00:00</updated>
<author>
<name>Manuel Schölling</name>
<email>manuel.schoelling@gmx.de</email>
</author>
<published>2014-05-22T20:11:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e628ce70cae5ccd67830b0e2c3d038831746d86b'/>
<id>e628ce70cae5ccd67830b0e2c3d038831746d86b</id>
<content type='text'>
To be future-proof and for better readability the time comparisons are modified
to use time_before_jiffies() instead of plain, error-prone math.

Signed-off-by: Manuel Schölling &lt;manuel.schoelling@gmx.de&gt;
[djbw: use time_before_jiffies() to make argument order more clear]
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To be future-proof and for better readability the time comparisons are modified
to use time_before_jiffies() instead of plain, error-prone math.

Signed-off-by: Manuel Schölling &lt;manuel.schoelling@gmx.de&gt;
[djbw: use time_before_jiffies() to make argument order more clear]
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ioat: Use pci_enable_msix_exact() instead of pci_enable_msix()</title>
<updated>2014-04-10T19:17:35+00:00</updated>
<author>
<name>Alexander Gordeev</name>
<email>agordeev@redhat.com</email>
</author>
<published>2014-03-06T20:11:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=368da992b93eaf8861f1ef2d27bbe22c01140733'/>
<id>368da992b93eaf8861f1ef2d27bbe22c01140733</id>
<content type='text'>
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range()  or pci_enable_msi_exact()
and pci_enable_msix_range() or pci_enable_msix_exact()
interfaces.

Function pci_enable_msix() returns a tri-state value while
pci_enable_msi_exact() is a canonical zero/-errno variant.
The former is being phased out in favor of the latter.
In case of 'ioat' there (should be) no difference.

Cc: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As result of deprecation of MSI-X/MSI enablement functions
pci_enable_msix() and pci_enable_msi_block() all drivers
using these two interfaces need to be updated to use the
new pci_enable_msi_range()  or pci_enable_msi_exact()
and pci_enable_msix_range() or pci_enable_msix_exact()
interfaces.

Function pci_enable_msix() returns a tri-state value while
pci_enable_msi_exact() is a canonical zero/-errno variant.
The former is being phased out in favor of the latter.
In case of 'ioat' there (should be) no difference.

Cc: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Alexander Gordeev &lt;agordeev@redhat.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers: dma: Include appropriate header file in dca.c</title>
<updated>2014-04-10T19:17:35+00:00</updated>
<author>
<name>Rashika</name>
<email>rashika.kheria@gmail.com</email>
</author>
<published>2013-12-16T10:14:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2358b820d42a33f1d1052b438489c90a4cc8f3fc'/>
<id>2358b820d42a33f1d1052b438489c90a4cc8f3fc</id>
<content type='text'>
Includes an appropriate header file dma_v2.h in ioat/dca.c because
functions ioat2_dca_init() and ioat3_dca_init() have their function
declarations in dma_v2.h.

This eliminates the following warning in ioat/dca.c:
drivers/dma/ioat/dca.c:410:22: warning: no previous prototype for ‘ioat2_dca_init’ [-Wmissing-prototypes]
drivers/dma/ioat/dca.c:624:22: warning: no previous prototype for ‘ioat3_dca_init’ [-Wmissing-prototypes]

Signed-off-by: Rashika Kheria &lt;rashika.kheria@gmail.com&gt;
Reviewed-by: Josh Triplett &lt;josh@joshtriplett.org&gt;
Acked-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Includes an appropriate header file dma_v2.h in ioat/dca.c because
functions ioat2_dca_init() and ioat3_dca_init() have their function
declarations in dma_v2.h.

This eliminates the following warning in ioat/dca.c:
drivers/dma/ioat/dca.c:410:22: warning: no previous prototype for ‘ioat2_dca_init’ [-Wmissing-prototypes]
drivers/dma/ioat/dca.c:624:22: warning: no previous prototype for ‘ioat3_dca_init’ [-Wmissing-prototypes]

Signed-off-by: Rashika Kheria &lt;rashika.kheria@gmail.com&gt;
Reviewed-by: Josh Triplett &lt;josh@joshtriplett.org&gt;
Acked-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers: dma: Mark functions as static in dma_v3.c</title>
<updated>2014-04-10T19:17:35+00:00</updated>
<author>
<name>Rashika</name>
<email>rashika.kheria@gmail.com</email>
</author>
<published>2013-12-16T10:10:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8d1d32767ca0df1b5cd75cdc1be3915bc6887ed1'/>
<id>8d1d32767ca0df1b5cd75cdc1be3915bc6887ed1</id>
<content type='text'>
Mark the functions ioat3_prep_xor_val(), ioat3_prep_pq_val() and
ioat3_prep_pqxor_val() as static in dma_v3.c because they are not used
outside this file.

This eliminates the following warnings in dma_v3.c:
drivers/dma/ioat/dma_v3.c:741:1: warning: no previous prototype for ‘ioat3_prep_xor_val’ [-Wmissing-prototypes]
drivers/dma/ioat/dma_v3.c:1092:1: warning: no previous prototype for ‘ioat3_prep_pq_val’ [-Wmissing-prototypes]
drivers/dma/ioat/dma_v3.c:1134:1: warning: no previous prototype for ‘ioat3_prep_pqxor_val’ [-Wmissing-prototypes]

Signed-off-by: Rashika Kheria &lt;rashika.kheria@gmail.com&gt;
Reviewed-by: Josh Triplett &lt;josh@joshtriplett.org&gt;
Acked-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mark the functions ioat3_prep_xor_val(), ioat3_prep_pq_val() and
ioat3_prep_pqxor_val() as static in dma_v3.c because they are not used
outside this file.

This eliminates the following warnings in dma_v3.c:
drivers/dma/ioat/dma_v3.c:741:1: warning: no previous prototype for ‘ioat3_prep_xor_val’ [-Wmissing-prototypes]
drivers/dma/ioat/dma_v3.c:1092:1: warning: no previous prototype for ‘ioat3_prep_pq_val’ [-Wmissing-prototypes]
drivers/dma/ioat/dma_v3.c:1134:1: warning: no previous prototype for ‘ioat3_prep_pqxor_val’ [-Wmissing-prototypes]

Signed-off-by: Rashika Kheria &lt;rashika.kheria@gmail.com&gt;
Reviewed-by: Josh Triplett &lt;josh@joshtriplett.org&gt;
Acked-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ioat/dca: Use dev_is_pci() to check whether it is pci device</title>
<updated>2014-04-10T19:17:34+00:00</updated>
<author>
<name>Yijing Wang</name>
<email>wangyijing@huawei.com</email>
</author>
<published>2013-12-05T11:31:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1fde2548460c1ded9fe71220b506473f0b7de768'/>
<id>1fde2548460c1ded9fe71220b506473f0b7de768</id>
<content type='text'>
Use PCI standard marco dev_is_pci() instead of directly compare
pci_bus_type to check whether it is pci device.

Signed-off-by: Yijing Wang &lt;wangyijing@huawei.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use PCI standard marco dev_is_pci() instead of directly compare
pci_bus_type to check whether it is pci device.

Signed-off-by: Yijing Wang &lt;wangyijing@huawei.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ioat: fix tasklet tear down</title>
<updated>2014-02-25T17:44:20+00:00</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2014-02-20T00:19:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=da87ca4d4ca101f177fffd84f1f0a5e4c0343557'/>
<id>da87ca4d4ca101f177fffd84f1f0a5e4c0343557</id>
<content type='text'>
Since commit 77873803363c "net_dma: mark broken" we no longer pin dma
engines active for the network-receive-offload use case.  As a result
the -&gt;free_chan_resources() that occurs after the driver self test no
longer has a NET_DMA induced -&gt;alloc_chan_resources() to back it up.  A
late firing irq can lead to ksoftirqd spinning indefinitely due to the
tasklet_disable() performed by -&gt;free_chan_resources().  Only
-&gt;alloc_chan_resources() can clear this condition in affected kernels.

This problem has been present since commit 3e037454bcfa "I/OAT: Add
support for MSI and MSI-X" in 2.6.24, but is now exposed. Given the
NET_DMA use case is deprecated we can revisit moving the driver to use
threaded irqs.  For now, just tear down the irq and tasklet properly by:

1/ Disable the irq from triggering the tasklet

2/ Disable the irq from re-arming

3/ Flush inflight interrupts

4/ Flush the timer

5/ Flush inflight tasklets

References:
https://lkml.org/lkml/2014/1/27/282
https://lkml.org/lkml/2014/2/19/672

Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Reported-by: Mike Galbraith &lt;bitbucket@online.de&gt;
Reported-by: Stanislav Fomichev &lt;stfomichev@yandex-team.ru&gt;
Tested-by: Mike Galbraith &lt;bitbucket@online.de&gt;
Tested-by: Stanislav Fomichev &lt;stfomichev@yandex-team.ru&gt;
Reviewed-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since commit 77873803363c "net_dma: mark broken" we no longer pin dma
engines active for the network-receive-offload use case.  As a result
the -&gt;free_chan_resources() that occurs after the driver self test no
longer has a NET_DMA induced -&gt;alloc_chan_resources() to back it up.  A
late firing irq can lead to ksoftirqd spinning indefinitely due to the
tasklet_disable() performed by -&gt;free_chan_resources().  Only
-&gt;alloc_chan_resources() can clear this condition in affected kernels.

This problem has been present since commit 3e037454bcfa "I/OAT: Add
support for MSI and MSI-X" in 2.6.24, but is now exposed. Given the
NET_DMA use case is deprecated we can revisit moving the driver to use
threaded irqs.  For now, just tear down the irq and tasklet properly by:

1/ Disable the irq from triggering the tasklet

2/ Disable the irq from re-arming

3/ Flush inflight interrupts

4/ Flush the timer

5/ Flush inflight tasklets

References:
https://lkml.org/lkml/2014/1/27/282
https://lkml.org/lkml/2014/2/19/672

Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Reported-by: Mike Galbraith &lt;bitbucket@online.de&gt;
Reported-by: Stanislav Fomichev &lt;stfomichev@yandex-team.ru&gt;
Tested-by: Mike Galbraith &lt;bitbucket@online.de&gt;
Tested-by: Stanislav Fomichev &lt;stfomichev@yandex-team.ru&gt;
Reviewed-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/dma/ioat/dma.c: check DMA mapping error in ioat_dma_self_test()</title>
<updated>2014-01-02T22:40:30+00:00</updated>
<author>
<name>Jiang Liu</name>
<email>jiang.liu@linux.intel.com</email>
</author>
<published>2014-01-02T20:58:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3532e5660fa4b610b982fe5c09d3e8ab065c55dc'/>
<id>3532e5660fa4b610b982fe5c09d3e8ab065c55dc</id>
<content type='text'>
Check DMA mapping return values in function ioat_dma_self_test() to get
rid of following warning message.

  ------------[ cut here ]------------
  WARNING: CPU: 0 PID: 1203 at lib/dma-debug.c:937 check_unmap+0x4c0/0x9a0()
  ioatdma 0000:00:04.0: DMA-API: device driver failed to check map error[device address=0x000000085191b000] [size=2000 bytes] [mapped as single]
  Modules linked in: ioatdma(+) mac_hid wmi acpi_pad lp parport hidd_generic usbhid hid ixgbe isci dca libsas ahci ptp libahci scsi_transport_sas meegaraid_sas pps_core mdio
  CPU: 0 PID: 1203 Comm: systemd-udevd Not tainted 3.13.0-rc4+ #8
  Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRIVTIIN1.86B.0044.L09.1311181644 11/18/2013
  Call Trace:
    dump_stack+0x4d/0x66
    warn_slowpath_common+0x7d/0xa0
    warn_slowpath_fmt+0x4c/0x50
    check_unmap+0x4c0/0x9a0
    debug_dma_unmap_page+0x81/0x90
    ioat_dma_self_test+0x3d2/0x680 [ioatdma]
    ioat3_dma_self_test+0x12/0x30 [ioatdma]
    ioat_probe+0xf4/0x110 [ioatdma]
    ioat3_dma_probe+0x268/0x410 [ioatdma]
    ioat_pci_probe+0x122/0x1b0 [ioatdma]
    local_pci_probe+0x45/0xa0
    pci_device_probe+0xd9/0x130
    driver_probe_device+0x171/0x490
    __driver_attach+0x93/0xa0
    bus_for_each_dev+0x6b/0xb0
    driver_attach+0x1e/0x20
    bus_add_driver+0x1f8/0x2b0
    driver_register+0x81/0x110
    __pci_register_driver+0x60/0x70
    ioat_init_module+0x89/0x1000 [ioatdma]
    do_one_initcall+0xe2/0x250
    load_module+0x2313/0x2a00
    SyS_init_module+0xd9/0x130
    system_call_fastpath+0x1a/0x1f
  ---[ end trace 990c591681d27c31 ]---
  Mapped at:
    debug_dma_map_page+0xbe/0x180
    ioat_dma_self_test+0x1ab/0x680 [ioatdma]
    ioat3_dma_self_test+0x12/0x30 [ioatdma]
    ioat_probe+0xf4/0x110 [ioatdma]
    ioat3_dma_probe+0x268/0x410 [ioatdma]

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Cc: Vinod Koul &lt;vinod.koul@intel.com&gt;
Cc: Dan Williams &lt;dan.j.williams@intel.com&gt;
Cc: Bartlomiej Zolnierkiewicz &lt;b.zolnierkie@samsung.com&gt;
Cc: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check DMA mapping return values in function ioat_dma_self_test() to get
rid of following warning message.

  ------------[ cut here ]------------
  WARNING: CPU: 0 PID: 1203 at lib/dma-debug.c:937 check_unmap+0x4c0/0x9a0()
  ioatdma 0000:00:04.0: DMA-API: device driver failed to check map error[device address=0x000000085191b000] [size=2000 bytes] [mapped as single]
  Modules linked in: ioatdma(+) mac_hid wmi acpi_pad lp parport hidd_generic usbhid hid ixgbe isci dca libsas ahci ptp libahci scsi_transport_sas meegaraid_sas pps_core mdio
  CPU: 0 PID: 1203 Comm: systemd-udevd Not tainted 3.13.0-rc4+ #8
  Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRIVTIIN1.86B.0044.L09.1311181644 11/18/2013
  Call Trace:
    dump_stack+0x4d/0x66
    warn_slowpath_common+0x7d/0xa0
    warn_slowpath_fmt+0x4c/0x50
    check_unmap+0x4c0/0x9a0
    debug_dma_unmap_page+0x81/0x90
    ioat_dma_self_test+0x3d2/0x680 [ioatdma]
    ioat3_dma_self_test+0x12/0x30 [ioatdma]
    ioat_probe+0xf4/0x110 [ioatdma]
    ioat3_dma_probe+0x268/0x410 [ioatdma]
    ioat_pci_probe+0x122/0x1b0 [ioatdma]
    local_pci_probe+0x45/0xa0
    pci_device_probe+0xd9/0x130
    driver_probe_device+0x171/0x490
    __driver_attach+0x93/0xa0
    bus_for_each_dev+0x6b/0xb0
    driver_attach+0x1e/0x20
    bus_add_driver+0x1f8/0x2b0
    driver_register+0x81/0x110
    __pci_register_driver+0x60/0x70
    ioat_init_module+0x89/0x1000 [ioatdma]
    do_one_initcall+0xe2/0x250
    load_module+0x2313/0x2a00
    SyS_init_module+0xd9/0x130
    system_call_fastpath+0x1a/0x1f
  ---[ end trace 990c591681d27c31 ]---
  Mapped at:
    debug_dma_map_page+0xbe/0x180
    ioat_dma_self_test+0x1ab/0x680 [ioatdma]
    ioat3_dma_self_test+0x12/0x30 [ioatdma]
    ioat_probe+0xf4/0x110 [ioatdma]
    ioat3_dma_probe+0x268/0x410 [ioatdma]

Signed-off-by: Jiang Liu &lt;jiang.liu@linux.intel.com&gt;
Cc: Vinod Koul &lt;vinod.koul@intel.com&gt;
Cc: Dan Williams &lt;dan.j.williams@intel.com&gt;
Cc: Bartlomiej Zolnierkiewicz &lt;b.zolnierkie@samsung.com&gt;
Cc: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge commit 'dmaengine-3.13-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/dmaengine</title>
<updated>2013-11-16T06:32:36+00:00</updated>
<author>
<name>Vinod Koul</name>
<email>vinod.koul@intel.com</email>
</author>
<published>2013-11-16T06:24:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=df12a3178d340319b1955be6b973a4eb84aff754'/>
<id>df12a3178d340319b1955be6b973a4eb84aff754</id>
<content type='text'>
Pull dmaengine changes from Dan

1/ Bartlomiej and Dan finalized a rework of the dma address unmap
   implementation.

2/ In the course of testing 1/ a collection of enhancements to dmatest
   fell out.  Notably basic performance statistics, and fixed / enhanced
   test control through new module parameters 'run', 'wait', 'noverify',
   and 'verbose'.  Thanks to Andriy and Linus for their review.

3/ Testing the raid related corner cases of 1/ triggered bugs in the
   recently added 16-source operation support in the ioatdma driver.

4/ Some minor fixes / cleanups to mv_xor and ioatdma.

Conflicts:
	drivers/dma/dmatest.c

Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull dmaengine changes from Dan

1/ Bartlomiej and Dan finalized a rework of the dma address unmap
   implementation.

2/ In the course of testing 1/ a collection of enhancements to dmatest
   fell out.  Notably basic performance statistics, and fixed / enhanced
   test control through new module parameters 'run', 'wait', 'noverify',
   and 'verbose'.  Thanks to Andriy and Linus for their review.

3/ Testing the raid related corner cases of 1/ triggered bugs in the
   recently added 16-source operation support in the ioatdma driver.

4/ Some minor fixes / cleanups to mv_xor and ioatdma.

Conflicts:
	drivers/dma/dmatest.c

Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
