diff options
author | Vinod Koul <vinod.koul@intel.com> | 2016-12-13 22:36:23 -0500 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2016-12-13 22:36:23 -0500 |
commit | 3f809e844c6ba46fe5e16b20ad70ac4027341b36 (patch) | |
tree | 2bd7f7ceb11d3ecd03c43aa3bc2bd4db8bb99478 | |
parent | 7fc3b3f946341a035f05e13756f7b2c441492c55 (diff) | |
parent | 7393fca924e22ad3c071d8bbcc5acda21d0c2710 (diff) |
Merge branch 'topic/ioat' into for-linus
-rw-r--r-- | drivers/dma/ioat/dma.c | 11 | ||||
-rw-r--r-- | drivers/dma/ioat/init.c | 18 |
2 files changed, 18 insertions, 11 deletions
diff --git a/drivers/dma/ioat/dma.c b/drivers/dma/ioat/dma.c index c867db765936..a371b07a0981 100644 --- a/drivers/dma/ioat/dma.c +++ b/drivers/dma/ioat/dma.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include "../dmaengine.h" | 39 | #include "../dmaengine.h" |
40 | 40 | ||
41 | static char *chanerr_str[] = { | 41 | static char *chanerr_str[] = { |
42 | "DMA Transfer Source Address Error", | ||
42 | "DMA Transfer Destination Address Error", | 43 | "DMA Transfer Destination Address Error", |
43 | "Next Descriptor Address Error", | 44 | "Next Descriptor Address Error", |
44 | "Descriptor Error", | 45 | "Descriptor Error", |
@@ -66,7 +67,6 @@ static char *chanerr_str[] = { | |||
66 | "Result Guard Tag verification Error", | 67 | "Result Guard Tag verification Error", |
67 | "Result Application Tag verification Error", | 68 | "Result Application Tag verification Error", |
68 | "Result Reference Tag verification Error", | 69 | "Result Reference Tag verification Error", |
69 | NULL | ||
70 | }; | 70 | }; |
71 | 71 | ||
72 | static void ioat_eh(struct ioatdma_chan *ioat_chan); | 72 | static void ioat_eh(struct ioatdma_chan *ioat_chan); |
@@ -75,13 +75,10 @@ static void ioat_print_chanerrs(struct ioatdma_chan *ioat_chan, u32 chanerr) | |||
75 | { | 75 | { |
76 | int i; | 76 | int i; |
77 | 77 | ||
78 | for (i = 0; i < 32; i++) { | 78 | for (i = 0; i < ARRAY_SIZE(chanerr_str); i++) { |
79 | if ((chanerr >> i) & 1) { | 79 | if ((chanerr >> i) & 1) { |
80 | if (chanerr_str[i]) { | 80 | dev_err(to_dev(ioat_chan), "Err(%d): %s\n", |
81 | dev_err(to_dev(ioat_chan), "Err(%d): %s\n", | 81 | i, chanerr_str[i]); |
82 | i, chanerr_str[i]); | ||
83 | } else | ||
84 | break; | ||
85 | } | 82 | } |
86 | } | 83 | } |
87 | } | 84 | } |
diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/init.c index a7af149e7ba2..90eddd9f07e4 100644 --- a/drivers/dma/ioat/init.c +++ b/drivers/dma/ioat/init.c | |||
@@ -340,11 +340,13 @@ static int ioat_dma_self_test(struct ioatdma_device *ioat_dma) | |||
340 | dma_src = dma_map_single(dev, src, IOAT_TEST_SIZE, DMA_TO_DEVICE); | 340 | dma_src = dma_map_single(dev, src, IOAT_TEST_SIZE, DMA_TO_DEVICE); |
341 | if (dma_mapping_error(dev, dma_src)) { | 341 | if (dma_mapping_error(dev, dma_src)) { |
342 | dev_err(dev, "mapping src buffer failed\n"); | 342 | dev_err(dev, "mapping src buffer failed\n"); |
343 | err = -ENOMEM; | ||
343 | goto free_resources; | 344 | goto free_resources; |
344 | } | 345 | } |
345 | dma_dest = dma_map_single(dev, dest, IOAT_TEST_SIZE, DMA_FROM_DEVICE); | 346 | dma_dest = dma_map_single(dev, dest, IOAT_TEST_SIZE, DMA_FROM_DEVICE); |
346 | if (dma_mapping_error(dev, dma_dest)) { | 347 | if (dma_mapping_error(dev, dma_dest)) { |
347 | dev_err(dev, "mapping dest buffer failed\n"); | 348 | dev_err(dev, "mapping dest buffer failed\n"); |
349 | err = -ENOMEM; | ||
348 | goto unmap_src; | 350 | goto unmap_src; |
349 | } | 351 | } |
350 | flags = DMA_PREP_INTERRUPT; | 352 | flags = DMA_PREP_INTERRUPT; |
@@ -827,16 +829,20 @@ static int ioat_xor_val_self_test(struct ioatdma_device *ioat_dma) | |||
827 | op = IOAT_OP_XOR; | 829 | op = IOAT_OP_XOR; |
828 | 830 | ||
829 | dest_dma = dma_map_page(dev, dest, 0, PAGE_SIZE, DMA_FROM_DEVICE); | 831 | dest_dma = dma_map_page(dev, dest, 0, PAGE_SIZE, DMA_FROM_DEVICE); |
830 | if (dma_mapping_error(dev, dest_dma)) | 832 | if (dma_mapping_error(dev, dest_dma)) { |
833 | err = -ENOMEM; | ||
831 | goto free_resources; | 834 | goto free_resources; |
835 | } | ||
832 | 836 | ||
833 | for (i = 0; i < IOAT_NUM_SRC_TEST; i++) | 837 | for (i = 0; i < IOAT_NUM_SRC_TEST; i++) |
834 | dma_srcs[i] = DMA_ERROR_CODE; | 838 | dma_srcs[i] = DMA_ERROR_CODE; |
835 | for (i = 0; i < IOAT_NUM_SRC_TEST; i++) { | 839 | for (i = 0; i < IOAT_NUM_SRC_TEST; i++) { |
836 | dma_srcs[i] = dma_map_page(dev, xor_srcs[i], 0, PAGE_SIZE, | 840 | dma_srcs[i] = dma_map_page(dev, xor_srcs[i], 0, PAGE_SIZE, |
837 | DMA_TO_DEVICE); | 841 | DMA_TO_DEVICE); |
838 | if (dma_mapping_error(dev, dma_srcs[i])) | 842 | if (dma_mapping_error(dev, dma_srcs[i])) { |
843 | err = -ENOMEM; | ||
839 | goto dma_unmap; | 844 | goto dma_unmap; |
845 | } | ||
840 | } | 846 | } |
841 | tx = dma->device_prep_dma_xor(dma_chan, dest_dma, dma_srcs, | 847 | tx = dma->device_prep_dma_xor(dma_chan, dest_dma, dma_srcs, |
842 | IOAT_NUM_SRC_TEST, PAGE_SIZE, | 848 | IOAT_NUM_SRC_TEST, PAGE_SIZE, |
@@ -904,8 +910,10 @@ static int ioat_xor_val_self_test(struct ioatdma_device *ioat_dma) | |||
904 | for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) { | 910 | for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) { |
905 | dma_srcs[i] = dma_map_page(dev, xor_val_srcs[i], 0, PAGE_SIZE, | 911 | dma_srcs[i] = dma_map_page(dev, xor_val_srcs[i], 0, PAGE_SIZE, |
906 | DMA_TO_DEVICE); | 912 | DMA_TO_DEVICE); |
907 | if (dma_mapping_error(dev, dma_srcs[i])) | 913 | if (dma_mapping_error(dev, dma_srcs[i])) { |
914 | err = -ENOMEM; | ||
908 | goto dma_unmap; | 915 | goto dma_unmap; |
916 | } | ||
909 | } | 917 | } |
910 | tx = dma->device_prep_dma_xor_val(dma_chan, dma_srcs, | 918 | tx = dma->device_prep_dma_xor_val(dma_chan, dma_srcs, |
911 | IOAT_NUM_SRC_TEST + 1, PAGE_SIZE, | 919 | IOAT_NUM_SRC_TEST + 1, PAGE_SIZE, |
@@ -957,8 +965,10 @@ static int ioat_xor_val_self_test(struct ioatdma_device *ioat_dma) | |||
957 | for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) { | 965 | for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) { |
958 | dma_srcs[i] = dma_map_page(dev, xor_val_srcs[i], 0, PAGE_SIZE, | 966 | dma_srcs[i] = dma_map_page(dev, xor_val_srcs[i], 0, PAGE_SIZE, |
959 | DMA_TO_DEVICE); | 967 | DMA_TO_DEVICE); |
960 | if (dma_mapping_error(dev, dma_srcs[i])) | 968 | if (dma_mapping_error(dev, dma_srcs[i])) { |
969 | err = -ENOMEM; | ||
961 | goto dma_unmap; | 970 | goto dma_unmap; |
971 | } | ||
962 | } | 972 | } |
963 | tx = dma->device_prep_dma_xor_val(dma_chan, dma_srcs, | 973 | tx = dma->device_prep_dma_xor_val(dma_chan, dma_srcs, |
964 | IOAT_NUM_SRC_TEST + 1, PAGE_SIZE, | 974 | IOAT_NUM_SRC_TEST + 1, PAGE_SIZE, |