Jason Gunthorpe
d901b2760d
lib/scatterlist: Provide a DMA page iterator
...
Commit 2db76d7c3c ("lib/scatterlist: sg_page_iter: support sg lists w/o
backing pages") introduced the sg_page_iter_dma_address() function without
providing a way to use it in the general case. If the sg_dma_len() is not
equal to the sg length callers cannot safely use the
for_each_sg_page/sg_page_iter_dma_address combination.
Resolve this API mistake by providing a DMA specific iterator,
for_each_sg_dma_page(), that uses the right length so
sg_page_iter_dma_address() works as expected with all sglists.
A new iterator type is introduced to provide compile-time safety against
wrongly mixing accessors and iterators.
Acked-by: Christoph Hellwig <hch@lst.de > (for scatterlist)
Acked-by: Thomas Hellstrom <thellstrom@vmware.com >
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com > (ipu3-cio2)
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com >
2019-02-11 15:02:33 -07:00
..
2019-01-09 13:21:02 -08:00
2019-01-07 22:47:48 +01:00
2019-01-01 15:45:48 -08:00
2018-12-28 20:54:57 -08:00
2018-12-28 20:00:21 -08:00
2019-01-15 06:24:36 +12:00
2019-02-04 14:33:02 -07:00
2018-12-28 16:52:18 -08:00
2018-12-28 20:54:57 -08:00
2018-12-20 18:20:26 -08:00
2019-01-12 21:07:14 -08:00
2019-01-02 18:56:59 -08:00
2018-12-28 20:22:45 -08:00
2019-01-25 15:32:28 -08:00
2018-12-20 08:53:23 -08:00
2019-02-01 15:46:23 -08:00
2018-12-28 16:52:18 -08:00
2019-01-02 16:35:23 -08:00
2018-12-25 15:01:46 -08:00
2019-01-22 14:39:38 -07:00
2019-01-05 13:18:59 -08:00
2019-01-24 11:11:45 -07:00
2018-12-21 08:47:05 -07:00
2018-12-28 14:48:06 -08:00
2019-01-05 21:32:38 -08:00
2019-01-11 18:05:41 -08:00
2019-01-04 13:13:45 -08:00
2019-01-18 13:43:10 -07:00
2018-12-28 12:11:43 -08:00
2019-01-09 11:36:41 +01:00
2019-01-21 07:23:42 +13:00
2019-01-09 11:36:41 +01:00
2019-01-09 11:36:41 +01:00
2019-01-30 19:27:00 +01:00
2018-12-19 13:52:44 -05:00
2018-12-23 11:52:45 +08:00
2019-01-30 11:02:11 -08:00
2019-01-04 09:02:17 +01:00
2019-01-08 07:58:49 -05:00
2018-12-20 09:51:31 -07:00
2019-01-06 09:46:51 +09:00
2019-01-02 09:43:14 -08:00
2019-01-16 17:42:35 +01:00
2018-12-19 09:40:13 +01:00
2019-01-02 16:01:24 -08:00
2018-12-19 10:42:08 +01:00
2019-01-30 11:02:11 -08:00
2018-12-31 11:46:59 -08:00
2019-01-04 13:13:46 -08:00
2018-12-20 09:51:31 -07:00
2018-12-28 12:11:52 -08:00
2019-01-16 14:29:48 +01:00
2018-12-28 12:11:47 -08:00
2018-12-28 12:11:52 -08:00
2018-12-28 12:11:50 -08:00
2019-01-09 14:20:47 -05:00
2019-01-31 08:25:09 -07:00
2019-01-24 22:45:34 -08:00
2019-01-18 00:18:45 +01:00
2018-12-19 11:32:08 +01:00
2018-12-19 11:32:08 +01:00
2019-01-06 09:46:51 +09:00
2019-01-06 09:46:51 +09:00
2018-12-28 12:11:44 -08:00
2019-01-04 13:13:47 -08:00
2018-12-26 17:03:51 -08:00
2018-12-30 08:33:06 +00:00
2018-12-26 17:03:51 -08:00
2018-12-21 11:28:22 +01:00
2018-12-25 14:52:50 -08:00
2018-12-18 23:13:12 -05:00
2019-01-21 09:57:43 -08:00
2018-12-21 11:50:02 -05:00
2018-12-21 22:31:26 -06:00
2018-12-21 22:31:26 -06:00
2018-12-28 12:11:49 -08:00
2018-12-28 12:11:48 -08:00
2019-02-01 15:46:23 -08:00
2018-12-28 12:11:52 -08:00
2018-12-28 12:11:51 -08:00
2019-01-04 13:13:48 -08:00
2019-02-07 12:54:02 -07:00
2019-01-04 13:13:48 -08:00
2018-12-28 12:11:50 -08:00
2019-01-08 17:15:11 -08:00
2018-12-25 12:26:34 -08:00
2019-01-09 10:35:56 +01:00
2018-12-20 16:32:56 +00:00
2018-12-19 11:32:08 +01:00
2018-12-19 11:21:37 -08:00
2019-01-06 09:46:51 +09:00
2019-01-06 09:46:51 +09:00
2018-12-20 16:43:54 -08:00
2018-12-19 13:52:45 -05:00
2018-12-19 13:52:46 -05:00
2018-12-19 13:52:46 -05:00
2019-01-10 16:24:44 -06:00
2018-12-28 12:11:48 -08:00
2018-12-28 12:11:44 -08:00
2018-12-28 12:11:50 -08:00
2018-12-28 12:11:46 -08:00
2018-12-28 12:11:51 -08:00
2018-12-28 12:11:48 -08:00
2019-01-05 17:57:34 -08:00
2019-01-08 07:58:37 -05:00
2019-01-05 17:57:34 -08:00
2019-01-19 10:03:08 -08:00
2019-01-04 12:19:40 +01:00
2019-01-30 22:49:06 +01:00
2018-12-19 10:31:50 +01:00
2019-01-04 13:13:46 -08:00
2019-01-01 11:58:33 -08:00
2019-01-10 17:04:45 -06:00
2018-12-19 18:38:13 +00:00
2019-01-03 18:57:57 -08:00
2019-01-07 16:38:26 +01:00
2018-12-18 22:53:29 +01:00
2018-12-20 12:17:05 -07:00
2019-02-11 15:02:33 -07:00
2019-02-03 09:08:12 -08:00
2018-12-21 11:50:02 -05:00
2019-01-18 14:05:14 -08:00
2018-12-20 23:47:09 +01:00
2018-12-28 12:11:44 -08:00
2018-12-29 11:21:49 -08:00
2018-12-28 12:45:04 -08:00
2018-12-22 22:50:29 -05:00
2018-12-28 12:11:47 -08:00
2019-01-02 09:48:13 -08:00
2018-12-18 14:08:12 -08:00
2019-01-04 12:56:09 -08:00
2019-01-11 18:05:40 -08:00
2019-01-14 20:15:17 -05:00
2018-12-28 12:11:51 -08:00
2018-12-22 12:15:29 +01:00
2019-01-17 07:19:42 -05:00
2018-12-28 12:11:46 -08:00