Message ID | 20161126095100.15053-1-pbrobinson@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Hi Peter, [auto build test ERROR on linus/master] [also build test ERROR on v4.9-rc6 next-20161125] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Peter-Robinson/dma-make-platform-drivers-depend-on-their-associated-SoC/20161126-175336 config: i386-allmodconfig (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): vim +/find_next_zero_bit +56 include/linux/bitops.h 3e037454 Shannon Nelson 2007-10-16 40 (bit) < (size); \ 3e037454 Shannon Nelson 2007-10-16 41 (bit) = find_next_bit((addr), (size), (bit) + 1)) 3e037454 Shannon Nelson 2007-10-16 42 1e2ad28f Robert Richter 2011-11-18 43 /* same as for_each_set_bit() but use bit as value to start with */ 307b1cd7 Akinobu Mita 2012-03-23 44 #define for_each_set_bit_from(bit, addr, size) \ 1e2ad28f Robert Richter 2011-11-18 45 for ((bit) = find_next_bit((addr), (size), (bit)); \ 1e2ad28f Robert Richter 2011-11-18 46 (bit) < (size); \ 1e2ad28f Robert Richter 2011-11-18 47 (bit) = find_next_bit((addr), (size), (bit) + 1)) 1e2ad28f Robert Richter 2011-11-18 48 03f4a822 Akinobu Mita 2012-03-23 49 #define for_each_clear_bit(bit, addr, size) \ 03f4a822 Akinobu Mita 2012-03-23 50 for ((bit) = find_first_zero_bit((addr), (size)); \ 03f4a822 Akinobu Mita 2012-03-23 51 (bit) < (size); \ 03f4a822 Akinobu Mita 2012-03-23 52 (bit) = find_next_zero_bit((addr), (size), (bit) + 1)) 03f4a822 Akinobu Mita 2012-03-23 53 03f4a822 Akinobu Mita 2012-03-23 54 /* same as for_each_clear_bit() but use bit as value to start with */ 03f4a822 Akinobu Mita 2012-03-23 55 #define for_each_clear_bit_from(bit, addr, size) \ 03f4a822 Akinobu Mita 2012-03-23 @56 for ((bit) = find_next_zero_bit((addr), (size), (bit)); \ 03f4a822 Akinobu Mita 2012-03-23 57 (bit) < (size); \ 03f4a822 Akinobu Mita 2012-03-23 58 (bit) = find_next_zero_bit((addr), (size), (bit) + 1)) 03f4a822 Akinobu Mita 2012-03-23 59 1a1d48a4 Denys Vlasenko 2015-08-04 60 static inline int get_bitmask_order(unsigned int count) ^1da177e Linus Torvalds 2005-04-16 61 { ^1da177e Linus Torvalds 2005-04-16 62 int order; ^1da177e Linus Torvalds 2005-04-16 63 ^1da177e Linus Torvalds 2005-04-16 64 order = fls(count); :::::: The code at line 56 was first introduced by commit :::::: 03f4a8226c2f9c14361f75848d1e93139bab90c4 bitops: introduce for_each_clear_bit() :::::: TO: Akinobu Mita <akinobu.mita@gmail.com> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Peter, [auto build test ERROR on linus/master] [also build test ERROR on v4.9-rc6 next-20161125] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Peter-Robinson/dma-make-platform-drivers-depend-on-their-associated-SoC/20161126-175336 config: arm-allmodconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=arm All errors (new ones prefixed by >>): In file included from drivers/dma/ioat/dca.c:32:0: drivers/dma/ioat/dma.h: In function 'ioat_chansts': drivers/dma/ioat/dma.h:249:9: error: implicit declaration of function 'readq' [-Werror=implicit-function-declaration] return readq(ioat_chan->reg_base + IOAT_CHANSTS_OFFSET); ^~~~~ drivers/dma/ioat/dca.c: In function 'dca_enabled_in_bios': >> drivers/dma/ioat/dca.c:86:18: error: implicit declaration of function 'cpuid_eax' [-Werror=implicit-function-declaration] cpuid_level_9 = cpuid_eax(9); ^~~~~~~~~ drivers/dma/ioat/dca.c: In function 'system_has_dca_enabled': >> drivers/dma/ioat/dca.c:96:6: error: implicit declaration of function 'boot_cpu_has' [-Werror=implicit-function-declaration] if (boot_cpu_has(X86_FEATURE_DCA)) ^~~~~~~~~~~~ >> drivers/dma/ioat/dca.c:96:19: error: 'X86_FEATURE_DCA' undeclared (first use in this function) if (boot_cpu_has(X86_FEATURE_DCA)) ^~~~~~~~~~~~~~~ drivers/dma/ioat/dca.c:96:19: note: each undeclared identifier is reported only once for each function it appears in drivers/dma/ioat/dca.c: In function 'ioat_dca_get_tag': >> drivers/dma/ioat/dca.c:207:12: error: implicit declaration of function 'cpu_physical_id' [-Werror=implicit-function-declaration] apic_id = cpu_physical_id(cpu); ^~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/cpuid_eax +86 drivers/dma/ioat/dca.c 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 26 #ifndef CONFIG_SMP 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 27 #include <asm/smp.h> 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 28 #undef cpu_physical_id 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 29 #define cpu_physical_id(cpu) (cpuid_ebx(1) >> 24) 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 30 #endif 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 31 584ec227 drivers/dma/ioat/dca.c Dan Williams 2009-07-28 @32 #include "dma.h" 584ec227 drivers/dma/ioat/dca.c Dan Williams 2009-07-28 33 #include "registers.h" 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 34 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 35 /* 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 36 * Bit 7 of a tag map entry is the "valid" bit, if it is set then bits 0:6 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 37 * contain the bit number of the APIC ID to map into the DCA tag. If the valid 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 38 * bit is not set, then the value must be 0 or 1 and defines the bit in the tag. 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 39 */ 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 40 #define DCA_TAG_MAP_VALID 0x80 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 41 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 42 #define DCA3_TAG_MAP_BIT_TO_INV 0x80 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 43 #define DCA3_TAG_MAP_BIT_TO_SEL 0x40 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 44 #define DCA3_TAG_MAP_LITERAL_VAL 0x1 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 45 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 46 #define DCA_TAG_MAP_MASK 0xDF 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 47 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 48 /* expected tag map bytes for I/OAT ver.2 */ 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 49 #define DCA2_TAG_MAP_BYTE0 0x80 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 50 #define DCA2_TAG_MAP_BYTE1 0x0 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 51 #define DCA2_TAG_MAP_BYTE2 0x81 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 52 #define DCA2_TAG_MAP_BYTE3 0x82 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 53 #define DCA2_TAG_MAP_BYTE4 0x82 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 54 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 55 /* verify if tag map matches expected values */ 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 56 static inline int dca2_tag_map_valid(u8 *tag_map) 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 57 { 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 58 return ((tag_map[0] == DCA2_TAG_MAP_BYTE0) && 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 59 (tag_map[1] == DCA2_TAG_MAP_BYTE1) && 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 60 (tag_map[2] == DCA2_TAG_MAP_BYTE2) && 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 61 (tag_map[3] == DCA2_TAG_MAP_BYTE3) && 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 62 (tag_map[4] == DCA2_TAG_MAP_BYTE4)); 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 63 } 49bc4636 drivers/dma/ioat_dca.c Maciej Sosnowski 2009-02-26 64 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 65 /* 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 66 * "Legacy" DCA systems do not implement the DCA register set in the 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 67 * I/OAT device. Software needs direct support for their tag mappings. 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 68 */ 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 69 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 70 #define APICID_BIT(x) (DCA_TAG_MAP_VALID | (x)) 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 71 #define IOAT_TAG_MAP_LEN 8 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 72 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 73 /* pack PCI B/D/F into a u16 */ 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 74 static inline u16 dcaid_from_pcidev(struct pci_dev *pci) 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 75 { 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 76 return (pci->bus->number << 8) | pci->devfn; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 77 } 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 78 5149fd01 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-18 79 static int dca_enabled_in_bios(struct pci_dev *pdev) 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 80 { 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 81 /* CPUID level 9 returns DCA configuration */ 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 82 /* Bit 0 indicates DCA enabled by the BIOS */ 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 83 unsigned long cpuid_level_9; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 84 int res; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 85 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 @86 cpuid_level_9 = cpuid_eax(9); 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 87 res = test_bit(0, &cpuid_level_9); 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 88 if (!res) e22dde99 drivers/dma/ioat/dca.c Dan Williams 2009-11-17 89 dev_dbg(&pdev->dev, "DCA is disabled in BIOS\n"); 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 90 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 91 return res; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 92 } 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 93 228c4f5c drivers/dma/ioat/dca.c Dan Williams 2009-11-19 94 int system_has_dca_enabled(struct pci_dev *pdev) 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 95 { 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 @96 if (boot_cpu_has(X86_FEATURE_DCA)) 5149fd01 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-18 97 return dca_enabled_in_bios(pdev); 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 98 e22dde99 drivers/dma/ioat/dca.c Dan Williams 2009-11-17 99 dev_dbg(&pdev->dev, "boot cpu doesn't have X86_FEATURE_DCA\n"); 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 100 return 0; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 101 } 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 102 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 103 struct ioat_dca_slot { 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 104 struct pci_dev *pdev; /* requester device */ 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 105 u16 rid; /* requester id, as used by IOAT */ 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 106 }; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 107 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 108 #define IOAT_DCA_MAX_REQ 6 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 109 #define IOAT3_DCA_MAX_REQ 2 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 110 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 111 struct ioat_dca_priv { 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 112 void __iomem *iobase; 53a0c98e drivers/dma/ioat_dca.c Al Viro 2008-03-29 113 void __iomem *dca_base; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 114 int max_requesters; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 115 int requester_count; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 116 u8 tag_map[IOAT_TAG_MAP_LEN]; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 117 struct ioat_dca_slot req_slots[0]; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 118 }; 2ed6dc34 drivers/dma/ioat_dca.c Shannon Nelson 2007-10-16 119 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 120 static int ioat_dca_dev_managed(struct dca_provider *dca, 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 121 struct device *dev) 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 122 { 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 123 struct ioat_dca_priv *ioatdca = dca_priv(dca); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 124 struct pci_dev *pdev; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 125 int i; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 126 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 127 pdev = to_pci_dev(dev); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 128 for (i = 0; i < ioatdca->max_requesters; i++) { 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 129 if (ioatdca->req_slots[i].pdev == pdev) 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 130 return 1; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 131 } 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 132 return 0; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 133 } 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 134 3372de58 drivers/dma/ioat/dca.c Dave Jiang 2015-08-11 135 static int ioat_dca_add_requester(struct dca_provider *dca, struct device *dev) 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 136 { 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 137 struct ioat_dca_priv *ioatdca = dca_priv(dca); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 138 struct pci_dev *pdev; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 139 int i; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 140 u16 id; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 141 u16 global_req_table; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 142 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 143 /* This implementation only supports PCI-Express */ 1fde2548 drivers/dma/ioat/dca.c Yijing Wang 2013-12-05 144 if (!dev_is_pci(dev)) 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 145 return -ENODEV; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 146 pdev = to_pci_dev(dev); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 147 id = dcaid_from_pcidev(pdev); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 148 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 149 if (ioatdca->requester_count == ioatdca->max_requesters) 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 150 return -ENODEV; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 151 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 152 for (i = 0; i < ioatdca->max_requesters; i++) { 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 153 if (ioatdca->req_slots[i].pdev == NULL) { 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 154 /* found an empty slot */ 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 155 ioatdca->requester_count++; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 156 ioatdca->req_slots[i].pdev = pdev; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 157 ioatdca->req_slots[i].rid = id; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 158 global_req_table = 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 159 readw(ioatdca->dca_base + IOAT3_DCA_GREQID_OFFSET); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 160 writel(id | IOAT_DCA_GREQID_VALID, 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 161 ioatdca->iobase + global_req_table + (i * 4)); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 162 return i; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 163 } 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 164 } 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 165 /* Error, ioatdma->requester_count is out of whack */ 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 166 return -EFAULT; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 167 } 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 168 3372de58 drivers/dma/ioat/dca.c Dave Jiang 2015-08-11 169 static int ioat_dca_remove_requester(struct dca_provider *dca, 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 170 struct device *dev) 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 171 { 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 172 struct ioat_dca_priv *ioatdca = dca_priv(dca); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 173 struct pci_dev *pdev; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 174 int i; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 175 u16 global_req_table; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 176 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 177 /* This implementation only supports PCI-Express */ 1fde2548 drivers/dma/ioat/dca.c Yijing Wang 2013-12-05 178 if (!dev_is_pci(dev)) 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 179 return -ENODEV; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 180 pdev = to_pci_dev(dev); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 181 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 182 for (i = 0; i < ioatdca->max_requesters; i++) { 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 183 if (ioatdca->req_slots[i].pdev == pdev) { 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 184 global_req_table = 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 185 readw(ioatdca->dca_base + IOAT3_DCA_GREQID_OFFSET); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 186 writel(0, ioatdca->iobase + global_req_table + (i * 4)); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 187 ioatdca->req_slots[i].pdev = NULL; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 188 ioatdca->req_slots[i].rid = 0; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 189 ioatdca->requester_count--; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 190 return i; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 191 } 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 192 } 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 193 return -ENODEV; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 194 } 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 195 3372de58 drivers/dma/ioat/dca.c Dave Jiang 2015-08-11 196 static u8 ioat_dca_get_tag(struct dca_provider *dca, 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 197 struct device *dev, 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 198 int cpu) 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 199 { 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 200 u8 tag; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 201 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 202 struct ioat_dca_priv *ioatdca = dca_priv(dca); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 203 int i, apic_id, bit, value; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 204 u8 entry; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 205 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 206 tag = 0; 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 @207 apic_id = cpu_physical_id(cpu); 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 208 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 209 for (i = 0; i < IOAT_TAG_MAP_LEN; i++) { 7f1b358a drivers/dma/ioat_dca.c Maciej Sosnowski 2008-07-22 210 entry = ioatdca->tag_map[i]; :::::: The code at line 86 was first introduced by commit :::::: 2ed6dc34f9ed39bb8e4c81ea1056f0ba56315841 I/OAT: Add DCA services :::::: TO: Shannon Nelson <shannon.nelson@intel.com> :::::: CC: Linus Torvalds <torvalds@woody.linux-foundation.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index af63a6b..33280a2 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -108,7 +108,7 @@ config COH901318 config DMA_BCM2835 tristate "BCM2835 DMA engine support" - depends on ARCH_BCM2835 + depends on ARCH_BCM2835 || COMPILE_TEST select DMA_ENGINE select DMA_VIRTUAL_CHANNELS @@ -147,7 +147,7 @@ config DMA_SA11X0 config DMA_SUN4I tristate "Allwinner A10 DMA SoCs support" - depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I + depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || COMPILE_TEST default (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I) select DMA_ENGINE select DMA_VIRTUAL_CHANNELS @@ -184,7 +184,7 @@ config FSL_DMA config FSL_EDMA tristate "Freescale eDMA engine support" - depends on OF + depends on OF && (FSL_SOC || COMPILE_TEST) select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help @@ -230,6 +230,7 @@ config IMX_SDMA config INTEL_IDMA64 tristate "Intel integrated DMA 64-bit support" + depends on X86 || COMPILE_TEST select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help @@ -238,7 +239,7 @@ config INTEL_IDMA64 config INTEL_IOATDMA tristate "Intel I/OAT DMA support" - depends on PCI && X86_64 + depends on PCI && (X86_64 || COMPILE_TEST) select DMA_ENGINE select DMA_ENGINE_RAID select DCA @@ -252,7 +253,7 @@ config INTEL_IOATDMA config INTEL_IOP_ADMA tristate "Intel IOP ADMA support" - depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_IOP13XX + depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_IOP13XX || COMPILE_TEST select DMA_ENGINE select ASYNC_TX_ENABLE_CHANNEL_SWITCH help @@ -339,7 +340,7 @@ config MV_XOR config MV_XOR_V2 bool "Marvell XOR engine version 2 support " - depends on ARM64 + depends on ARM64 && (ARCH_MVEBU || COMPILE_TEST) select DMA_ENGINE select DMA_ENGINE_RAID select ASYNC_TX_ENABLE_CHANNEL_SWITCH @@ -383,7 +384,7 @@ config MX3_IPU_IRQS config NBPFAXI_DMA tristate "Renesas Type-AXI NBPF DMA support" select DMA_ENGINE - depends on ARM || COMPILE_TEST + depends on (ARM && ARCH_RENESAS) || COMPILE_TEST help Support for "Type-AXI" NBPF DMA IPs from Renesas @@ -493,7 +494,7 @@ config TEGRA210_ADMA config TIMB_DMA tristate "Timberdale FPGA DMA support" - depends on MFD_TIMBERDALE || COMPILE_TEST + depends on MFD_TIMBERDALE && (X86 || COMPILE_TEST) select DMA_ENGINE help Enable support for the Timberdale FPGA DMA engine. @@ -531,7 +532,7 @@ config XGENE_DMA config XILINX_DMA tristate "Xilinx AXI DMAS Engine" - depends on (ARCH_ZYNQ || MICROBLAZE || ARM64) + depends on (ARCH_ZYNQ || ARCH_ZYNQMP || MICROBLAZE || COMPILE_TEST) select DMA_ENGINE help Enable support for Xilinx AXI VDMA Soft IP. @@ -550,7 +551,7 @@ config XILINX_DMA config XILINX_ZYNQMP_DMA tristate "Xilinx ZynqMP DMA Engine" - depends on (ARCH_ZYNQ || MICROBLAZE || ARM64) + depends on (ARCH_ZYNQ || ARCH_ZYNQMP || MICROBLAZE || COMPILE_TEST) select DMA_ENGINE help Enable support for Xilinx ZynqMP DMA controller.
There's not much point in enabling SoC specific DMA drivers for platform drivers unless their actual SoC is enabled. They're not useful without it. Add lashings of COMPILE_TEST to ensure continued build and test coverage. Signed-off-by: Peter Robinson <pbrobinson@gmail.com> --- drivers/dma/Kconfig | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) v1 -> v2 Add more COMPILE_TEST