From: kernel test robot <lkp@intel.com>
To: Leonardo Bras <leobras.c@gmail.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Alexey Kardashevskiy <aik@ozlabs.ru>,
Thiago Jung Bauermann <bauerman@linux.ibm.com>,
Ram Pai <linuxram@us.ibm.com>
Cc: clang-built-linux@googlegroups.com, kbuild-all@lists.01.org,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/4] powerpc/pseries/iommu: Remove default DMA window before creating DDW
Date: Sat, 20 Jun 2020 14:13:01 +0800 [thread overview]
Message-ID: <202006201431.4eA8qrc2%lkp@intel.com> (raw)
In-Reply-To: <20200619050619.266888-5-leobras.c@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 17876 bytes --]
Hi Leonardo,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on powerpc/next]
[also build test WARNING on v5.8-rc1 next-20200618]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Leonardo-Bras/Remove-default-DMA-window-before-creating-DDW/20200619-131022
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-randconfig-r031-20200619 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 63700971ac9cdf198faa4a3a7c226fa579e49206)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> arch/powerpc/platforms/pseries/iommu.c:1111:6: warning: variable 'dfl_win' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (ret)
^~~
arch/powerpc/platforms/pseries/iommu.c:1234:6: note: uninitialized use occurs here
if (dfl_win)
^~~~~~~
arch/powerpc/platforms/pseries/iommu.c:1111:2: note: remove the 'if' if its condition is always false
if (ret)
^~~~~~~~
arch/powerpc/platforms/pseries/iommu.c:1079:34: note: initialize the variable 'dfl_win' to silence this warning
struct property *win64, *dfl_win;
^
= NULL
1 warning generated.
vim +1111 arch/powerpc/platforms/pseries/iommu.c
715a454e17d328 Leonardo Bras 2020-06-19 1056
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1057 /*
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1058 * If the PE supports dynamic dma windows, and there is space for a table
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1059 * that can map all pages in a linear offset, then setup such a table,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1060 * and record the dma-offset in the struct device.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1061 *
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1062 * dev: the pci device we are checking
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1063 * pdn: the parent pe node with the ibm,dma_window property
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1064 * Future: also check if we can remap the base window for our base page size
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1065 *
9ae2fddeda4cbf Christoph Hellwig 2019-02-13 1066 * returns the dma offset for use by the direct mapped DMA code.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1067 */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1068 static u64 enable_ddw(struct pci_dev *dev, struct device_node *pdn)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1069 {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1070 int len, ret;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1071 struct ddw_query_response query;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1072 struct ddw_create_response create;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1073 int page_shift;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1074 u64 dma_addr, max_addr;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1075 struct device_node *dn;
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1076 u32 ddw_avail[3];
3248d5f65aac44 Leonardo Bras 2020-06-19 1077
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1078 struct direct_window *window;
3248d5f65aac44 Leonardo Bras 2020-06-19 1079 struct property *win64, *dfl_win;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1080 struct dynamic_dma_window_prop *ddwprop;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1081 struct failed_ddw_pdn *fpdn;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1082
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1083 mutex_lock(&direct_window_init_mutex);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1084
b73a635f348610 Milton Miller 2011-05-11 1085 dma_addr = find_existing_ddw(pdn);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1086 if (dma_addr != 0)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1087 goto out_unlock;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1088
61435690a9c781 Nishanth Aravamudan 2013-03-07 1089 /*
61435690a9c781 Nishanth Aravamudan 2013-03-07 1090 * If we already went through this for a previous function of
61435690a9c781 Nishanth Aravamudan 2013-03-07 1091 * the same device and failed, we don't want to muck with the
61435690a9c781 Nishanth Aravamudan 2013-03-07 1092 * DMA window again, as it will race with in-flight operations
61435690a9c781 Nishanth Aravamudan 2013-03-07 1093 * and can lead to EEHs. The above mutex protects access to the
61435690a9c781 Nishanth Aravamudan 2013-03-07 1094 * list.
61435690a9c781 Nishanth Aravamudan 2013-03-07 1095 */
61435690a9c781 Nishanth Aravamudan 2013-03-07 1096 list_for_each_entry(fpdn, &failed_ddw_pdn_list, list) {
b7c670d673d118 Rob Herring 2017-08-21 1097 if (fpdn->pdn == pdn)
61435690a9c781 Nishanth Aravamudan 2013-03-07 1098 goto out_unlock;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1099 }
61435690a9c781 Nishanth Aravamudan 2013-03-07 1100
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1101 /*
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1102 * the ibm,ddw-applicable property holds the tokens for:
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1103 * ibm,query-pe-dma-window
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1104 * ibm,create-pe-dma-window
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1105 * ibm,remove-pe-dma-window
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1106 * for the given node in that order.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1107 * the property is actually in the parent, not the PE
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1108 */
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1109 ret = of_property_read_u32_array(pdn, "ibm,ddw-applicable",
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1110 &ddw_avail[0], 3);
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 @1111 if (ret)
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1112 goto out_failed;
25ebc45b93452d Nishanth Aravamudan 2012-05-15 1113
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1114 /*
3248d5f65aac44 Leonardo Bras 2020-06-19 1115 * First step of setting up DDW is removing the default DMA window,
3248d5f65aac44 Leonardo Bras 2020-06-19 1116 * if it's present. It will make all the resources available to the
3248d5f65aac44 Leonardo Bras 2020-06-19 1117 * new DDW window.
3248d5f65aac44 Leonardo Bras 2020-06-19 1118 * If anything fails after this, we need to restore it.
3248d5f65aac44 Leonardo Bras 2020-06-19 1119 */
3248d5f65aac44 Leonardo Bras 2020-06-19 1120
3248d5f65aac44 Leonardo Bras 2020-06-19 1121 dfl_win = of_find_property(pdn, "ibm,dma-window", NULL);
3248d5f65aac44 Leonardo Bras 2020-06-19 1122 if (dfl_win)
3248d5f65aac44 Leonardo Bras 2020-06-19 1123 remove_dma_window(pdn, ddw_avail, dfl_win);
3248d5f65aac44 Leonardo Bras 2020-06-19 1124
3248d5f65aac44 Leonardo Bras 2020-06-19 1125 /*
3248d5f65aac44 Leonardo Bras 2020-06-19 1126 * Query if there is a window of size to map the
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1127 * whole partition. Query returns number of windows, largest
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1128 * block assigned to PE (partition endpoint), and two bitmasks
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1129 * of page sizes: supported and supported for migrate-dma.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1130 */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1131 dn = pci_device_to_OF_node(dev);
0ef1ee0bda323e Leonardo Bras 2020-06-19 1132 ret = query_ddw(dev, ddw_avail, &query, pdn);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1133 if (ret != 0)
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1134 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1135
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1136 if (query.windows_available == 0) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1137 /*
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1138 * no additional windows are available for this device.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1139 * We might be able to reallocate the existing window,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1140 * trading in for a larger page size.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1141 */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1142 dev_dbg(&dev->dev, "no free dynamic windows");
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1143 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1144 }
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1145 if (query.page_size & 4) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1146 page_shift = 24; /* 16MB */
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1147 } else if (query.page_size & 2) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1148 page_shift = 16; /* 64kB */
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1149 } else if (query.page_size & 1) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1150 page_shift = 12; /* 4kB */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1151 } else {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1152 dev_dbg(&dev->dev, "no supported direct page size in mask %x",
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1153 query.page_size);
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1154 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1155 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1156 /* verify the window * number of ptes will map the partition */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1157 /* check largest block * page size > max memory hotplug addr */
68c0449ea16d77 Alexey Kardashevskiy 2018-12-19 1158 max_addr = ddw_memory_hotplug_max();
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1159 if (query.largest_available_block < (max_addr >> page_shift)) {
0ef1ee0bda323e Leonardo Bras 2020-06-19 1160 dev_dbg(&dev->dev, "can't map partition max 0x%llx with %llu "
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1161 "%llu-sized pages\n", max_addr, query.largest_available_block,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1162 1ULL << page_shift);
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1163 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1164 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1165 len = order_base_2(max_addr);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1166 win64 = kzalloc(sizeof(struct property), GFP_KERNEL);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1167 if (!win64) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1168 dev_info(&dev->dev,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1169 "couldn't allocate property for 64bit dma window\n");
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1170 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1171 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1172 win64->name = kstrdup(DIRECT64_PROPNAME, GFP_KERNEL);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1173 win64->value = ddwprop = kmalloc(sizeof(*ddwprop), GFP_KERNEL);
767303349e052a Nishanth Aravamudan 2011-05-06 1174 win64->length = sizeof(*ddwprop);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1175 if (!win64->name || !win64->value) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1176 dev_info(&dev->dev,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1177 "couldn't allocate property name and value\n");
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1178 goto out_free_prop;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1179 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1180
b73a635f348610 Milton Miller 2011-05-11 1181 ret = create_ddw(dev, ddw_avail, &create, page_shift, len);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1182 if (ret != 0)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1183 goto out_free_prop;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1184
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1185 ddwprop->liobn = cpu_to_be32(create.liobn);
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1186 ddwprop->dma_base = cpu_to_be64(((u64)create.addr_hi << 32) |
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1187 create.addr_lo);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1188 ddwprop->tce_shift = cpu_to_be32(page_shift);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1189 ddwprop->window_shift = cpu_to_be32(len);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1190
b7c670d673d118 Rob Herring 2017-08-21 1191 dev_dbg(&dev->dev, "created tce table LIOBN 0x%x for %pOF\n",
b7c670d673d118 Rob Herring 2017-08-21 1192 create.liobn, dn);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1193
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1194 window = kzalloc(sizeof(*window), GFP_KERNEL);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1195 if (!window)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1196 goto out_clear_window;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1197
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1198 ret = walk_system_ram_range(0, memblock_end_of_DRAM() >> PAGE_SHIFT,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1199 win64->value, tce_setrange_multi_pSeriesLP_walk);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1200 if (ret) {
b7c670d673d118 Rob Herring 2017-08-21 1201 dev_info(&dev->dev, "failed to map direct window for %pOF: %d\n",
b7c670d673d118 Rob Herring 2017-08-21 1202 dn, ret);
7a19081fc26581 Julia Lawall 2011-08-08 1203 goto out_free_window;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1204 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1205
79d1c712958f94 Nathan Fontenot 2012-10-02 1206 ret = of_add_property(pdn, win64);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1207 if (ret) {
b7c670d673d118 Rob Herring 2017-08-21 1208 dev_err(&dev->dev, "unable to add dma window property for %pOF: %d",
b7c670d673d118 Rob Herring 2017-08-21 1209 pdn, ret);
7a19081fc26581 Julia Lawall 2011-08-08 1210 goto out_free_window;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1211 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1212
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1213 window->device = pdn;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1214 window->prop = ddwprop;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1215 spin_lock(&direct_window_list_lock);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1216 list_add(&window->list, &direct_window_list);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1217 spin_unlock(&direct_window_list_lock);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1218
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1219 dma_addr = be64_to_cpu(ddwprop->dma_base);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1220 goto out_unlock;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1221
7a19081fc26581 Julia Lawall 2011-08-08 1222 out_free_window:
7a19081fc26581 Julia Lawall 2011-08-08 1223 kfree(window);
7a19081fc26581 Julia Lawall 2011-08-08 1224
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1225 out_clear_window:
5efbabe09d986f Gavin Shan 2014-08-11 1226 remove_ddw(pdn, true);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1227
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1228 out_free_prop:
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1229 kfree(win64->name);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1230 kfree(win64->value);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1231 kfree(win64);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1232
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1233 out_failed:
3248d5f65aac44 Leonardo Bras 2020-06-19 1234 if (dfl_win)
3248d5f65aac44 Leonardo Bras 2020-06-19 1235 reset_dma_window(dev, pdn);
25ebc45b93452d Nishanth Aravamudan 2012-05-15 1236
61435690a9c781 Nishanth Aravamudan 2013-03-07 1237 fpdn = kzalloc(sizeof(*fpdn), GFP_KERNEL);
61435690a9c781 Nishanth Aravamudan 2013-03-07 1238 if (!fpdn)
61435690a9c781 Nishanth Aravamudan 2013-03-07 1239 goto out_unlock;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1240 fpdn->pdn = pdn;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1241 list_add(&fpdn->list, &failed_ddw_pdn_list);
61435690a9c781 Nishanth Aravamudan 2013-03-07 1242
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1243 out_unlock:
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1244 mutex_unlock(&direct_window_init_mutex);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1245 return dma_addr;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1246 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1247
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 40351 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 4/4] powerpc/pseries/iommu: Remove default DMA window before creating DDW
Date: Sat, 20 Jun 2020 14:13:01 +0800 [thread overview]
Message-ID: <202006201431.4eA8qrc2%lkp@intel.com> (raw)
In-Reply-To: <20200619050619.266888-5-leobras.c@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 18118 bytes --]
Hi Leonardo,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on powerpc/next]
[also build test WARNING on v5.8-rc1 next-20200618]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Leonardo-Bras/Remove-default-DMA-window-before-creating-DDW/20200619-131022
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-randconfig-r031-20200619 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 63700971ac9cdf198faa4a3a7c226fa579e49206)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> arch/powerpc/platforms/pseries/iommu.c:1111:6: warning: variable 'dfl_win' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (ret)
^~~
arch/powerpc/platforms/pseries/iommu.c:1234:6: note: uninitialized use occurs here
if (dfl_win)
^~~~~~~
arch/powerpc/platforms/pseries/iommu.c:1111:2: note: remove the 'if' if its condition is always false
if (ret)
^~~~~~~~
arch/powerpc/platforms/pseries/iommu.c:1079:34: note: initialize the variable 'dfl_win' to silence this warning
struct property *win64, *dfl_win;
^
= NULL
1 warning generated.
vim +1111 arch/powerpc/platforms/pseries/iommu.c
715a454e17d328 Leonardo Bras 2020-06-19 1056
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1057 /*
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1058 * If the PE supports dynamic dma windows, and there is space for a table
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1059 * that can map all pages in a linear offset, then setup such a table,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1060 * and record the dma-offset in the struct device.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1061 *
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1062 * dev: the pci device we are checking
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1063 * pdn: the parent pe node with the ibm,dma_window property
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1064 * Future: also check if we can remap the base window for our base page size
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1065 *
9ae2fddeda4cbf Christoph Hellwig 2019-02-13 1066 * returns the dma offset for use by the direct mapped DMA code.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1067 */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1068 static u64 enable_ddw(struct pci_dev *dev, struct device_node *pdn)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1069 {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1070 int len, ret;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1071 struct ddw_query_response query;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1072 struct ddw_create_response create;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1073 int page_shift;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1074 u64 dma_addr, max_addr;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1075 struct device_node *dn;
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1076 u32 ddw_avail[3];
3248d5f65aac44 Leonardo Bras 2020-06-19 1077
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1078 struct direct_window *window;
3248d5f65aac44 Leonardo Bras 2020-06-19 1079 struct property *win64, *dfl_win;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1080 struct dynamic_dma_window_prop *ddwprop;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1081 struct failed_ddw_pdn *fpdn;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1082
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1083 mutex_lock(&direct_window_init_mutex);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1084
b73a635f348610 Milton Miller 2011-05-11 1085 dma_addr = find_existing_ddw(pdn);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1086 if (dma_addr != 0)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1087 goto out_unlock;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1088
61435690a9c781 Nishanth Aravamudan 2013-03-07 1089 /*
61435690a9c781 Nishanth Aravamudan 2013-03-07 1090 * If we already went through this for a previous function of
61435690a9c781 Nishanth Aravamudan 2013-03-07 1091 * the same device and failed, we don't want to muck with the
61435690a9c781 Nishanth Aravamudan 2013-03-07 1092 * DMA window again, as it will race with in-flight operations
61435690a9c781 Nishanth Aravamudan 2013-03-07 1093 * and can lead to EEHs. The above mutex protects access to the
61435690a9c781 Nishanth Aravamudan 2013-03-07 1094 * list.
61435690a9c781 Nishanth Aravamudan 2013-03-07 1095 */
61435690a9c781 Nishanth Aravamudan 2013-03-07 1096 list_for_each_entry(fpdn, &failed_ddw_pdn_list, list) {
b7c670d673d118 Rob Herring 2017-08-21 1097 if (fpdn->pdn == pdn)
61435690a9c781 Nishanth Aravamudan 2013-03-07 1098 goto out_unlock;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1099 }
61435690a9c781 Nishanth Aravamudan 2013-03-07 1100
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1101 /*
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1102 * the ibm,ddw-applicable property holds the tokens for:
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1103 * ibm,query-pe-dma-window
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1104 * ibm,create-pe-dma-window
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1105 * ibm,remove-pe-dma-window
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1106 * for the given node in that order.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1107 * the property is actually in the parent, not the PE
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1108 */
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1109 ret = of_property_read_u32_array(pdn, "ibm,ddw-applicable",
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1110 &ddw_avail[0], 3);
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 @1111 if (ret)
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1112 goto out_failed;
25ebc45b93452d Nishanth Aravamudan 2012-05-15 1113
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1114 /*
3248d5f65aac44 Leonardo Bras 2020-06-19 1115 * First step of setting up DDW is removing the default DMA window,
3248d5f65aac44 Leonardo Bras 2020-06-19 1116 * if it's present. It will make all the resources available to the
3248d5f65aac44 Leonardo Bras 2020-06-19 1117 * new DDW window.
3248d5f65aac44 Leonardo Bras 2020-06-19 1118 * If anything fails after this, we need to restore it.
3248d5f65aac44 Leonardo Bras 2020-06-19 1119 */
3248d5f65aac44 Leonardo Bras 2020-06-19 1120
3248d5f65aac44 Leonardo Bras 2020-06-19 1121 dfl_win = of_find_property(pdn, "ibm,dma-window", NULL);
3248d5f65aac44 Leonardo Bras 2020-06-19 1122 if (dfl_win)
3248d5f65aac44 Leonardo Bras 2020-06-19 1123 remove_dma_window(pdn, ddw_avail, dfl_win);
3248d5f65aac44 Leonardo Bras 2020-06-19 1124
3248d5f65aac44 Leonardo Bras 2020-06-19 1125 /*
3248d5f65aac44 Leonardo Bras 2020-06-19 1126 * Query if there is a window of size to map the
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1127 * whole partition. Query returns number of windows, largest
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1128 * block assigned to PE (partition endpoint), and two bitmasks
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1129 * of page sizes: supported and supported for migrate-dma.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1130 */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1131 dn = pci_device_to_OF_node(dev);
0ef1ee0bda323e Leonardo Bras 2020-06-19 1132 ret = query_ddw(dev, ddw_avail, &query, pdn);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1133 if (ret != 0)
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1134 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1135
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1136 if (query.windows_available == 0) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1137 /*
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1138 * no additional windows are available for this device.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1139 * We might be able to reallocate the existing window,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1140 * trading in for a larger page size.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1141 */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1142 dev_dbg(&dev->dev, "no free dynamic windows");
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1143 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1144 }
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1145 if (query.page_size & 4) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1146 page_shift = 24; /* 16MB */
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1147 } else if (query.page_size & 2) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1148 page_shift = 16; /* 64kB */
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1149 } else if (query.page_size & 1) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1150 page_shift = 12; /* 4kB */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1151 } else {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1152 dev_dbg(&dev->dev, "no supported direct page size in mask %x",
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1153 query.page_size);
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1154 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1155 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1156 /* verify the window * number of ptes will map the partition */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1157 /* check largest block * page size > max memory hotplug addr */
68c0449ea16d77 Alexey Kardashevskiy 2018-12-19 1158 max_addr = ddw_memory_hotplug_max();
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1159 if (query.largest_available_block < (max_addr >> page_shift)) {
0ef1ee0bda323e Leonardo Bras 2020-06-19 1160 dev_dbg(&dev->dev, "can't map partition max 0x%llx with %llu "
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1161 "%llu-sized pages\n", max_addr, query.largest_available_block,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1162 1ULL << page_shift);
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1163 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1164 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1165 len = order_base_2(max_addr);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1166 win64 = kzalloc(sizeof(struct property), GFP_KERNEL);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1167 if (!win64) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1168 dev_info(&dev->dev,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1169 "couldn't allocate property for 64bit dma window\n");
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1170 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1171 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1172 win64->name = kstrdup(DIRECT64_PROPNAME, GFP_KERNEL);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1173 win64->value = ddwprop = kmalloc(sizeof(*ddwprop), GFP_KERNEL);
767303349e052a Nishanth Aravamudan 2011-05-06 1174 win64->length = sizeof(*ddwprop);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1175 if (!win64->name || !win64->value) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1176 dev_info(&dev->dev,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1177 "couldn't allocate property name and value\n");
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1178 goto out_free_prop;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1179 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1180
b73a635f348610 Milton Miller 2011-05-11 1181 ret = create_ddw(dev, ddw_avail, &create, page_shift, len);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1182 if (ret != 0)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1183 goto out_free_prop;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1184
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1185 ddwprop->liobn = cpu_to_be32(create.liobn);
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1186 ddwprop->dma_base = cpu_to_be64(((u64)create.addr_hi << 32) |
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1187 create.addr_lo);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1188 ddwprop->tce_shift = cpu_to_be32(page_shift);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1189 ddwprop->window_shift = cpu_to_be32(len);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1190
b7c670d673d118 Rob Herring 2017-08-21 1191 dev_dbg(&dev->dev, "created tce table LIOBN 0x%x for %pOF\n",
b7c670d673d118 Rob Herring 2017-08-21 1192 create.liobn, dn);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1193
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1194 window = kzalloc(sizeof(*window), GFP_KERNEL);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1195 if (!window)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1196 goto out_clear_window;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1197
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1198 ret = walk_system_ram_range(0, memblock_end_of_DRAM() >> PAGE_SHIFT,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1199 win64->value, tce_setrange_multi_pSeriesLP_walk);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1200 if (ret) {
b7c670d673d118 Rob Herring 2017-08-21 1201 dev_info(&dev->dev, "failed to map direct window for %pOF: %d\n",
b7c670d673d118 Rob Herring 2017-08-21 1202 dn, ret);
7a19081fc26581 Julia Lawall 2011-08-08 1203 goto out_free_window;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1204 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1205
79d1c712958f94 Nathan Fontenot 2012-10-02 1206 ret = of_add_property(pdn, win64);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1207 if (ret) {
b7c670d673d118 Rob Herring 2017-08-21 1208 dev_err(&dev->dev, "unable to add dma window property for %pOF: %d",
b7c670d673d118 Rob Herring 2017-08-21 1209 pdn, ret);
7a19081fc26581 Julia Lawall 2011-08-08 1210 goto out_free_window;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1211 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1212
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1213 window->device = pdn;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1214 window->prop = ddwprop;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1215 spin_lock(&direct_window_list_lock);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1216 list_add(&window->list, &direct_window_list);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1217 spin_unlock(&direct_window_list_lock);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1218
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1219 dma_addr = be64_to_cpu(ddwprop->dma_base);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1220 goto out_unlock;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1221
7a19081fc26581 Julia Lawall 2011-08-08 1222 out_free_window:
7a19081fc26581 Julia Lawall 2011-08-08 1223 kfree(window);
7a19081fc26581 Julia Lawall 2011-08-08 1224
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1225 out_clear_window:
5efbabe09d986f Gavin Shan 2014-08-11 1226 remove_ddw(pdn, true);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1227
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1228 out_free_prop:
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1229 kfree(win64->name);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1230 kfree(win64->value);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1231 kfree(win64);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1232
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1233 out_failed:
3248d5f65aac44 Leonardo Bras 2020-06-19 1234 if (dfl_win)
3248d5f65aac44 Leonardo Bras 2020-06-19 1235 reset_dma_window(dev, pdn);
25ebc45b93452d Nishanth Aravamudan 2012-05-15 1236
61435690a9c781 Nishanth Aravamudan 2013-03-07 1237 fpdn = kzalloc(sizeof(*fpdn), GFP_KERNEL);
61435690a9c781 Nishanth Aravamudan 2013-03-07 1238 if (!fpdn)
61435690a9c781 Nishanth Aravamudan 2013-03-07 1239 goto out_unlock;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1240 fpdn->pdn = pdn;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1241 list_add(&fpdn->list, &failed_ddw_pdn_list);
61435690a9c781 Nishanth Aravamudan 2013-03-07 1242
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1243 out_unlock:
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1244 mutex_unlock(&direct_window_init_mutex);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1245 return dma_addr;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1246 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1247
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 40351 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Leonardo Bras <leobras.c@gmail.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Alexey Kardashevskiy <aik@ozlabs.ru>,
Thiago Jung Bauermann <bauerman@linux.ibm.com>,
Ram Pai <linuxram@us.ibm.com>
Cc: kbuild-all@lists.01.org, clang-built-linux@googlegroups.com,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/4] powerpc/pseries/iommu: Remove default DMA window before creating DDW
Date: Sat, 20 Jun 2020 14:13:01 +0800 [thread overview]
Message-ID: <202006201431.4eA8qrc2%lkp@intel.com> (raw)
In-Reply-To: <20200619050619.266888-5-leobras.c@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 17876 bytes --]
Hi Leonardo,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on powerpc/next]
[also build test WARNING on v5.8-rc1 next-20200618]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Leonardo-Bras/Remove-default-DMA-window-before-creating-DDW/20200619-131022
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-randconfig-r031-20200619 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 63700971ac9cdf198faa4a3a7c226fa579e49206)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> arch/powerpc/platforms/pseries/iommu.c:1111:6: warning: variable 'dfl_win' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (ret)
^~~
arch/powerpc/platforms/pseries/iommu.c:1234:6: note: uninitialized use occurs here
if (dfl_win)
^~~~~~~
arch/powerpc/platforms/pseries/iommu.c:1111:2: note: remove the 'if' if its condition is always false
if (ret)
^~~~~~~~
arch/powerpc/platforms/pseries/iommu.c:1079:34: note: initialize the variable 'dfl_win' to silence this warning
struct property *win64, *dfl_win;
^
= NULL
1 warning generated.
vim +1111 arch/powerpc/platforms/pseries/iommu.c
715a454e17d328 Leonardo Bras 2020-06-19 1056
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1057 /*
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1058 * If the PE supports dynamic dma windows, and there is space for a table
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1059 * that can map all pages in a linear offset, then setup such a table,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1060 * and record the dma-offset in the struct device.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1061 *
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1062 * dev: the pci device we are checking
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1063 * pdn: the parent pe node with the ibm,dma_window property
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1064 * Future: also check if we can remap the base window for our base page size
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1065 *
9ae2fddeda4cbf Christoph Hellwig 2019-02-13 1066 * returns the dma offset for use by the direct mapped DMA code.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1067 */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1068 static u64 enable_ddw(struct pci_dev *dev, struct device_node *pdn)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1069 {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1070 int len, ret;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1071 struct ddw_query_response query;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1072 struct ddw_create_response create;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1073 int page_shift;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1074 u64 dma_addr, max_addr;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1075 struct device_node *dn;
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1076 u32 ddw_avail[3];
3248d5f65aac44 Leonardo Bras 2020-06-19 1077
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1078 struct direct_window *window;
3248d5f65aac44 Leonardo Bras 2020-06-19 1079 struct property *win64, *dfl_win;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1080 struct dynamic_dma_window_prop *ddwprop;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1081 struct failed_ddw_pdn *fpdn;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1082
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1083 mutex_lock(&direct_window_init_mutex);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1084
b73a635f348610 Milton Miller 2011-05-11 1085 dma_addr = find_existing_ddw(pdn);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1086 if (dma_addr != 0)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1087 goto out_unlock;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1088
61435690a9c781 Nishanth Aravamudan 2013-03-07 1089 /*
61435690a9c781 Nishanth Aravamudan 2013-03-07 1090 * If we already went through this for a previous function of
61435690a9c781 Nishanth Aravamudan 2013-03-07 1091 * the same device and failed, we don't want to muck with the
61435690a9c781 Nishanth Aravamudan 2013-03-07 1092 * DMA window again, as it will race with in-flight operations
61435690a9c781 Nishanth Aravamudan 2013-03-07 1093 * and can lead to EEHs. The above mutex protects access to the
61435690a9c781 Nishanth Aravamudan 2013-03-07 1094 * list.
61435690a9c781 Nishanth Aravamudan 2013-03-07 1095 */
61435690a9c781 Nishanth Aravamudan 2013-03-07 1096 list_for_each_entry(fpdn, &failed_ddw_pdn_list, list) {
b7c670d673d118 Rob Herring 2017-08-21 1097 if (fpdn->pdn == pdn)
61435690a9c781 Nishanth Aravamudan 2013-03-07 1098 goto out_unlock;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1099 }
61435690a9c781 Nishanth Aravamudan 2013-03-07 1100
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1101 /*
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1102 * the ibm,ddw-applicable property holds the tokens for:
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1103 * ibm,query-pe-dma-window
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1104 * ibm,create-pe-dma-window
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1105 * ibm,remove-pe-dma-window
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1106 * for the given node in that order.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1107 * the property is actually in the parent, not the PE
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1108 */
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1109 ret = of_property_read_u32_array(pdn, "ibm,ddw-applicable",
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1110 &ddw_avail[0], 3);
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 @1111 if (ret)
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1112 goto out_failed;
25ebc45b93452d Nishanth Aravamudan 2012-05-15 1113
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1114 /*
3248d5f65aac44 Leonardo Bras 2020-06-19 1115 * First step of setting up DDW is removing the default DMA window,
3248d5f65aac44 Leonardo Bras 2020-06-19 1116 * if it's present. It will make all the resources available to the
3248d5f65aac44 Leonardo Bras 2020-06-19 1117 * new DDW window.
3248d5f65aac44 Leonardo Bras 2020-06-19 1118 * If anything fails after this, we need to restore it.
3248d5f65aac44 Leonardo Bras 2020-06-19 1119 */
3248d5f65aac44 Leonardo Bras 2020-06-19 1120
3248d5f65aac44 Leonardo Bras 2020-06-19 1121 dfl_win = of_find_property(pdn, "ibm,dma-window", NULL);
3248d5f65aac44 Leonardo Bras 2020-06-19 1122 if (dfl_win)
3248d5f65aac44 Leonardo Bras 2020-06-19 1123 remove_dma_window(pdn, ddw_avail, dfl_win);
3248d5f65aac44 Leonardo Bras 2020-06-19 1124
3248d5f65aac44 Leonardo Bras 2020-06-19 1125 /*
3248d5f65aac44 Leonardo Bras 2020-06-19 1126 * Query if there is a window of size to map the
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1127 * whole partition. Query returns number of windows, largest
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1128 * block assigned to PE (partition endpoint), and two bitmasks
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1129 * of page sizes: supported and supported for migrate-dma.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1130 */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1131 dn = pci_device_to_OF_node(dev);
0ef1ee0bda323e Leonardo Bras 2020-06-19 1132 ret = query_ddw(dev, ddw_avail, &query, pdn);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1133 if (ret != 0)
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1134 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1135
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1136 if (query.windows_available == 0) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1137 /*
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1138 * no additional windows are available for this device.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1139 * We might be able to reallocate the existing window,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1140 * trading in for a larger page size.
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1141 */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1142 dev_dbg(&dev->dev, "no free dynamic windows");
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1143 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1144 }
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1145 if (query.page_size & 4) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1146 page_shift = 24; /* 16MB */
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1147 } else if (query.page_size & 2) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1148 page_shift = 16; /* 64kB */
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1149 } else if (query.page_size & 1) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1150 page_shift = 12; /* 4kB */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1151 } else {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1152 dev_dbg(&dev->dev, "no supported direct page size in mask %x",
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1153 query.page_size);
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1154 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1155 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1156 /* verify the window * number of ptes will map the partition */
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1157 /* check largest block * page size > max memory hotplug addr */
68c0449ea16d77 Alexey Kardashevskiy 2018-12-19 1158 max_addr = ddw_memory_hotplug_max();
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1159 if (query.largest_available_block < (max_addr >> page_shift)) {
0ef1ee0bda323e Leonardo Bras 2020-06-19 1160 dev_dbg(&dev->dev, "can't map partition max 0x%llx with %llu "
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1161 "%llu-sized pages\n", max_addr, query.largest_available_block,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1162 1ULL << page_shift);
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1163 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1164 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1165 len = order_base_2(max_addr);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1166 win64 = kzalloc(sizeof(struct property), GFP_KERNEL);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1167 if (!win64) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1168 dev_info(&dev->dev,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1169 "couldn't allocate property for 64bit dma window\n");
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1170 goto out_failed;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1171 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1172 win64->name = kstrdup(DIRECT64_PROPNAME, GFP_KERNEL);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1173 win64->value = ddwprop = kmalloc(sizeof(*ddwprop), GFP_KERNEL);
767303349e052a Nishanth Aravamudan 2011-05-06 1174 win64->length = sizeof(*ddwprop);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1175 if (!win64->name || !win64->value) {
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1176 dev_info(&dev->dev,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1177 "couldn't allocate property name and value\n");
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1178 goto out_free_prop;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1179 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1180
b73a635f348610 Milton Miller 2011-05-11 1181 ret = create_ddw(dev, ddw_avail, &create, page_shift, len);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1182 if (ret != 0)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1183 goto out_free_prop;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1184
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1185 ddwprop->liobn = cpu_to_be32(create.liobn);
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1186 ddwprop->dma_base = cpu_to_be64(((u64)create.addr_hi << 32) |
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1187 create.addr_lo);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1188 ddwprop->tce_shift = cpu_to_be32(page_shift);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1189 ddwprop->window_shift = cpu_to_be32(len);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1190
b7c670d673d118 Rob Herring 2017-08-21 1191 dev_dbg(&dev->dev, "created tce table LIOBN 0x%x for %pOF\n",
b7c670d673d118 Rob Herring 2017-08-21 1192 create.liobn, dn);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1193
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1194 window = kzalloc(sizeof(*window), GFP_KERNEL);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1195 if (!window)
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1196 goto out_clear_window;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1197
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1198 ret = walk_system_ram_range(0, memblock_end_of_DRAM() >> PAGE_SHIFT,
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1199 win64->value, tce_setrange_multi_pSeriesLP_walk);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1200 if (ret) {
b7c670d673d118 Rob Herring 2017-08-21 1201 dev_info(&dev->dev, "failed to map direct window for %pOF: %d\n",
b7c670d673d118 Rob Herring 2017-08-21 1202 dn, ret);
7a19081fc26581 Julia Lawall 2011-08-08 1203 goto out_free_window;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1204 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1205
79d1c712958f94 Nathan Fontenot 2012-10-02 1206 ret = of_add_property(pdn, win64);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1207 if (ret) {
b7c670d673d118 Rob Herring 2017-08-21 1208 dev_err(&dev->dev, "unable to add dma window property for %pOF: %d",
b7c670d673d118 Rob Herring 2017-08-21 1209 pdn, ret);
7a19081fc26581 Julia Lawall 2011-08-08 1210 goto out_free_window;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1211 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1212
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1213 window->device = pdn;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1214 window->prop = ddwprop;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1215 spin_lock(&direct_window_list_lock);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1216 list_add(&window->list, &direct_window_list);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1217 spin_unlock(&direct_window_list_lock);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1218
9410e0185e6539 Alexey Kardashevskiy 2014-09-25 1219 dma_addr = be64_to_cpu(ddwprop->dma_base);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1220 goto out_unlock;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1221
7a19081fc26581 Julia Lawall 2011-08-08 1222 out_free_window:
7a19081fc26581 Julia Lawall 2011-08-08 1223 kfree(window);
7a19081fc26581 Julia Lawall 2011-08-08 1224
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1225 out_clear_window:
5efbabe09d986f Gavin Shan 2014-08-11 1226 remove_ddw(pdn, true);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1227
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1228 out_free_prop:
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1229 kfree(win64->name);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1230 kfree(win64->value);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1231 kfree(win64);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1232
ae69e1eddc646f Nishanth Aravamudan 2014-01-10 1233 out_failed:
3248d5f65aac44 Leonardo Bras 2020-06-19 1234 if (dfl_win)
3248d5f65aac44 Leonardo Bras 2020-06-19 1235 reset_dma_window(dev, pdn);
25ebc45b93452d Nishanth Aravamudan 2012-05-15 1236
61435690a9c781 Nishanth Aravamudan 2013-03-07 1237 fpdn = kzalloc(sizeof(*fpdn), GFP_KERNEL);
61435690a9c781 Nishanth Aravamudan 2013-03-07 1238 if (!fpdn)
61435690a9c781 Nishanth Aravamudan 2013-03-07 1239 goto out_unlock;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1240 fpdn->pdn = pdn;
61435690a9c781 Nishanth Aravamudan 2013-03-07 1241 list_add(&fpdn->list, &failed_ddw_pdn_list);
61435690a9c781 Nishanth Aravamudan 2013-03-07 1242
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1243 out_unlock:
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1244 mutex_unlock(&direct_window_init_mutex);
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1245 return dma_addr;
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1246 }
4e8b0cf46b2570 Nishanth Aravamudan 2011-02-10 1247
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 40351 bytes --]
next prev parent reply other threads:[~2020-06-20 6:15 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-19 5:06 [PATCH 0/4] Remove default DMA window before creating DDW Leonardo Bras
2020-06-19 5:06 ` [PATCH 1/4] powerpc/pseries/iommu: Update call to ibm, query-pe-dma-windows Leonardo Bras
2020-06-19 5:06 ` [PATCH 1/4] powerpc/pseries/iommu: Update call to ibm,query-pe-dma-windows Leonardo Bras
2020-06-22 10:02 ` Alexey Kardashevskiy
2020-06-22 10:02 ` Alexey Kardashevskiy
2020-06-22 18:58 ` Leonardo Bras
2020-06-22 18:58 ` Leonardo Bras
2020-06-23 1:12 ` Alexey Kardashevskiy
2020-06-23 1:12 ` Alexey Kardashevskiy
2020-06-23 2:14 ` Leonardo Bras
2020-06-23 2:14 ` Leonardo Bras
2020-06-23 2:29 ` Alexey Kardashevskiy
2020-06-23 2:29 ` Alexey Kardashevskiy
2020-06-19 5:06 ` [PATCH 2/4] powerpc/pseries/iommu: Implement ibm, reset-pe-dma-windows rtas call Leonardo Bras
2020-06-19 5:06 ` [PATCH 2/4] powerpc/pseries/iommu: Implement ibm,reset-pe-dma-windows " Leonardo Bras
2020-06-22 10:02 ` Alexey Kardashevskiy
2020-06-22 18:58 ` Leonardo Bras
2020-06-23 1:11 ` Alexey Kardashevskiy
2020-06-23 2:20 ` Leonardo Bras
2020-06-19 5:06 ` [PATCH 3/4] powerpc/pseries/iommu: Move window-removing part of remove_ddw into remove_dma_window Leonardo Bras
2020-06-22 10:02 ` Alexey Kardashevskiy
2020-06-22 18:59 ` Leonardo Bras
2020-06-23 1:12 ` Alexey Kardashevskiy
2020-06-23 1:12 ` Alexey Kardashevskiy
2020-06-23 1:33 ` Oliver O'Halloran
2020-06-23 1:33 ` Oliver O'Halloran
2020-06-23 2:26 ` Leonardo Bras
2020-06-23 2:26 ` Leonardo Bras
2020-06-23 2:22 ` Leonardo Bras
2020-06-23 2:22 ` Leonardo Bras
2020-06-19 5:06 ` [PATCH 4/4] powerpc/pseries/iommu: Remove default DMA window before creating DDW Leonardo Bras
2020-06-20 6:13 ` kernel test robot [this message]
2020-06-20 6:13 ` kernel test robot
2020-06-20 6:13 ` kernel test robot
2020-06-22 10:02 ` Alexey Kardashevskiy
2020-06-22 18:59 ` Leonardo Bras
2020-06-23 1:11 ` Alexey Kardashevskiy
2020-06-23 2:31 ` Leonardo Bras
2020-06-23 2:35 ` Alexey Kardashevskiy
2020-06-23 2:43 ` Leonardo Bras
2020-06-23 3:52 ` Alexey Kardashevskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202006201431.4eA8qrc2%lkp@intel.com \
--to=lkp@intel.com \
--cc=aik@ozlabs.ru \
--cc=bauerman@linux.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=clang-built-linux@googlegroups.com \
--cc=kbuild-all@lists.01.org \
--cc=leobras.c@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=linuxram@us.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.