From: kernel test robot <lkp@intel.com>
To: Atish Patra <atishp@rivosinc.com>
Cc: oe-kbuild-all@lists.linux.dev, Atish Patra <Atish.Patra@wdc.com>
Subject: [atishp04:smmc_working_package 3/3] drivers/irqchip/irq-riscv-smmc.c:217:26: error: implicit declaration of function 'acpi_extract_package'
Date: Wed, 3 Jul 2024 21:52:27 +0800 [thread overview]
Message-ID: <202407032142.RKidHaB4-lkp@intel.com> (raw)
tree: https://github.com/atishp04/linux smmc_working_package
head: c5f4dcedbb148c0b500d39f8387e4488af669c4c
commit: c5f4dcedbb148c0b500d39f8387e4488af669c4c [3/3] Add SMMC driver package based.
config: riscv-allnoconfig (https://download.01.org/0day-ci/archive/20240703/202407032142.RKidHaB4-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240703/202407032142.RKidHaB4-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202407032142.RKidHaB4-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
In file included from include/asm-generic/bug.h:22,
from arch/riscv/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/thread_info.h:13,
from include/asm-generic/preempt.h:5,
from ./arch/riscv/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:79,
from include/linux/spinlock.h:56,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:7,
from include/linux/slab.h:16,
from include/linux/resource_ext.h:11,
from include/linux/acpi.h:13,
from drivers/irqchip/irq-riscv-smmc.c:8:
drivers/irqchip/irq-riscv-smmc.c: In function 'smmc_find_dres_for_gsi':
>> include/linux/kern_levels.h:5:25: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u64' {aka 'long long unsigned int'} [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap'
436 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:507:9: note: in expansion of macro 'printk'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
11 | #define KERN_ERR KERN_SOH "3" /* error conditions */
| ^~~~~~~~
include/linux/printk.h:507:16: note: in expansion of macro 'KERN_ERR'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~
drivers/irqchip/irq-riscv-smmc.c:48:17: note: in expansion of macro 'pr_err'
48 | pr_err("gsino %d regs %lx ah %lx\n", devres->cfg->gsino, devres->regs, devres->cfg->addr_hi);
| ^~~~~~
include/linux/kern_levels.h:5:25: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'void *' [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap'
436 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:507:9: note: in expansion of macro 'printk'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
11 | #define KERN_ERR KERN_SOH "3" /* error conditions */
| ^~~~~~~~
include/linux/printk.h:507:16: note: in expansion of macro 'KERN_ERR'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~
drivers/irqchip/irq-riscv-smmc.c:48:17: note: in expansion of macro 'pr_err'
48 | pr_err("gsino %d regs %lx ah %lx\n", devres->cfg->gsino, devres->regs, devres->cfg->addr_hi);
| ^~~~~~
include/linux/kern_levels.h:5:25: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'u64' {aka 'long long unsigned int'} [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap'
436 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:507:9: note: in expansion of macro 'printk'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
11 | #define KERN_ERR KERN_SOH "3" /* error conditions */
| ^~~~~~~~
include/linux/printk.h:507:16: note: in expansion of macro 'KERN_ERR'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~
drivers/irqchip/irq-riscv-smmc.c:48:17: note: in expansion of macro 'pr_err'
48 | pr_err("gsino %d regs %lx ah %lx\n", devres->cfg->gsino, devres->regs, devres->cfg->addr_hi);
| ^~~~~~
drivers/irqchip/irq-riscv-smmc.c: In function 'smmc_msi_write_msg':
>> include/linux/kern_levels.h:5:25: warning: format '%d' expects argument of type 'int', but argument 4 has type 'irq_hw_number_t' {aka 'long unsigned int'} [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap'
436 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:507:9: note: in expansion of macro 'printk'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
11 | #define KERN_ERR KERN_SOH "3" /* error conditions */
| ^~~~~~~~
include/linux/printk.h:507:16: note: in expansion of macro 'KERN_ERR'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~
drivers/irqchip/irq-riscv-smmc.c:103:9: note: in expansion of macro 'pr_err'
103 | pr_err("%s: In d->irq %d hwirq %d msg_hi %lx msg_low %lx data %lx\n",
| ^~~~~~
>> include/linux/kern_levels.h:5:25: warning: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'u32' {aka 'unsigned int'} [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap'
436 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:507:9: note: in expansion of macro 'printk'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
11 | #define KERN_ERR KERN_SOH "3" /* error conditions */
| ^~~~~~~~
include/linux/printk.h:507:16: note: in expansion of macro 'KERN_ERR'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~
drivers/irqchip/irq-riscv-smmc.c:103:9: note: in expansion of macro 'pr_err'
103 | pr_err("%s: In d->irq %d hwirq %d msg_hi %lx msg_low %lx data %lx\n",
| ^~~~~~
include/linux/kern_levels.h:5:25: warning: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'u32' {aka 'unsigned int'} [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap'
436 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:507:9: note: in expansion of macro 'printk'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
11 | #define KERN_ERR KERN_SOH "3" /* error conditions */
| ^~~~~~~~
include/linux/printk.h:507:16: note: in expansion of macro 'KERN_ERR'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~
drivers/irqchip/irq-riscv-smmc.c:103:9: note: in expansion of macro 'pr_err'
103 | pr_err("%s: In d->irq %d hwirq %d msg_hi %lx msg_low %lx data %lx\n",
| ^~~~~~
include/linux/kern_levels.h:5:25: warning: format '%lx' expects argument of type 'long unsigned int', but argument 7 has type 'u32' {aka 'unsigned int'} [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap'
436 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:507:9: note: in expansion of macro 'printk'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
11 | #define KERN_ERR KERN_SOH "3" /* error conditions */
| ^~~~~~~~
include/linux/printk.h:507:16: note: in expansion of macro 'KERN_ERR'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~
drivers/irqchip/irq-riscv-smmc.c:103:9: note: in expansion of macro 'pr_err'
103 | pr_err("%s: In d->irq %d hwirq %d msg_hi %lx msg_low %lx data %lx\n",
| ^~~~~~
drivers/irqchip/irq-riscv-smmc.c: In function 'smmc_parse_package_resource':
>> drivers/irqchip/irq-riscv-smmc.c:217:26: error: implicit declaration of function 'acpi_extract_package' [-Werror=implicit-function-declaration]
217 | status = acpi_extract_package(&(smmc_obj->package.elements[i]),
| ^~~~~~~~~~~~~~~~~~~~
include/linux/kern_levels.h:5:25: warning: format '%d' expects argument of type 'int', but argument 4 has type 'u64' {aka 'long long unsigned int'} [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap'
436 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:507:9: note: in expansion of macro 'printk'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
11 | #define KERN_ERR KERN_SOH "3" /* error conditions */
| ^~~~~~~~
include/linux/printk.h:507:16: note: in expansion of macro 'KERN_ERR'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~
drivers/irqchip/irq-riscv-smmc.c:224:17: note: in expansion of macro 'pr_err'
224 | pr_err("%s: smmc_obj data package i %d: %d %lx %lx \n", __func__, i, res->cfg->gsino, res->cfg->addr_low, res->cfg->addr_hi);
| ^~~~~~
include/linux/kern_levels.h:5:25: warning: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'u64' {aka 'long long unsigned int'} [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap'
436 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:507:9: note: in expansion of macro 'printk'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
11 | #define KERN_ERR KERN_SOH "3" /* error conditions */
| ^~~~~~~~
include/linux/printk.h:507:16: note: in expansion of macro 'KERN_ERR'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~
drivers/irqchip/irq-riscv-smmc.c:224:17: note: in expansion of macro 'pr_err'
224 | pr_err("%s: smmc_obj data package i %d: %d %lx %lx \n", __func__, i, res->cfg->gsino, res->cfg->addr_low, res->cfg->addr_hi);
| ^~~~~~
include/linux/kern_levels.h:5:25: warning: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'u64' {aka 'long long unsigned int'} [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:436:25: note: in definition of macro 'printk_index_wrap'
436 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:507:9: note: in expansion of macro 'printk'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
11 | #define KERN_ERR KERN_SOH "3" /* error conditions */
| ^~~~~~~~
include/linux/printk.h:507:16: note: in expansion of macro 'KERN_ERR'
507 | printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~
drivers/irqchip/irq-riscv-smmc.c:224:17: note: in expansion of macro 'pr_err'
224 | pr_err("%s: smmc_obj data package i %d: %d %lx %lx \n", __func__, i, res->cfg->gsino, res->cfg->addr_low, res->cfg->addr_hi);
| ^~~~~~
drivers/irqchip/irq-riscv-smmc.c: In function 'smmc_probe':
>> drivers/irqchip/irq-riscv-smmc.c:284:9: error: implicit declaration of function 'acpi_dev_clear_dependencies' [-Werror=implicit-function-declaration]
284 | acpi_dev_clear_dependencies(ACPI_COMPANION(dev));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/irqchip/irq-riscv-smmc.c: At top level:
>> drivers/irqchip/irq-riscv-smmc.c:289:36: warning: 'smmc_acpi_match' defined but not used [-Wunused-const-variable=]
289 | static const struct acpi_device_id smmc_acpi_match[] = {
| ^~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for RISCV_SMMC
Depends on [n]: ACPI [=n] && RISCV [=y]
Selected by [y]:
- RISCV [=y]
vim +/acpi_extract_package +217 drivers/irqchip/irq-riscv-smmc.c
169
170 static int smmc_parse_package_resource(struct platform_device *pdev, struct smmc_data *data)
171 {
172 struct device *dev = &pdev->dev;
173 int result = -EFAULT;
174 acpi_status status = AE_OK;
175 struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
176 union acpi_object *smmc_obj = NULL;
177 struct acpi_buffer format = {sizeof("NNNNN"), "NNNNN"};
178 struct acpi_buffer state = {0, NULL};
179 struct smmc_dev_res *res;
180 int i;
181
182 struct acpi_handle *handle = ACPI_HANDLE_FWNODE(dev->fwnode);
183
184 status = acpi_evaluate_object_typed(handle, "CFGN", NULL,
185 &buffer, ACPI_TYPE_PACKAGE);
186 if (status == AE_NOT_FOUND)
187 return 0;
188 if (ACPI_FAILURE(status))
189 return -ENODEV;
190
191 smmc_obj = buffer.pointer;
192 if (!smmc_obj || smmc_obj->package.count != 2) {
193 pr_err("Invalid SMMC data\n");
194 goto end;
195 }
196
197 pr_err("%s: package count %d\n", __func__, smmc_obj->package.count);
198
199 for (i = 0; i < smmc_obj->package.count; i++) {
200 res = devm_kzalloc(dev, sizeof(*res), GFP_KERNEL);
201 if (!res)
202 goto end_nomem;
203 res->cfg = devm_kzalloc(dev, sizeof(struct smmc_dev_cfg), GFP_KERNEL);
204 if (!res->cfg)
205 goto end_nomem;
206
207 res->regs = devm_platform_ioremap_resource(pdev, i);
208 if (IS_ERR(res->regs)) {
209 result = PTR_ERR(res->regs);
210 //TODO: Free up the list/memory for cfg
211 goto end;
212 }
213
214 state.length = sizeof(struct smmc_dev_cfg);
215 state.pointer = res->cfg;
216
> 217 status = acpi_extract_package(&(smmc_obj->package.elements[i]),
218 &format, &state);
219 if (ACPI_FAILURE(status)) {
220 pr_err("Invalid SMMC CFG %d\n", status);
221 goto end;
222 }
223
> 224 pr_err("%s: smmc_obj data package i %d: %d %lx %lx \n", __func__, i, res->cfg->gsino, res->cfg->addr_low, res->cfg->addr_hi);
225 list_add(&res->list, &data->dev_res_list);
226 }
227 result = 0;
228
229 end_nomem:
230 result = -ENOMEM;
231 end:
232 kfree(buffer.pointer);
233 return result;
234 }
235
236 static int smmc_probe(struct platform_device *pdev)
237 {
238 struct device *dev = &pdev->dev;
239 int rc = 0;
240 const struct imsic_global_config *imsic_global;
241 struct irq_domain *msi_domain;
242 struct smmc_data *data;
243
244 /* SMMC device is only valid for ACPI supported platforms */
245 if (acpi_disabled)
246 return -ENODEV;
247
248 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
249 if (!data)
250 return -ENOMEM;
251
252 data->dev = dev;
253 INIT_LIST_HEAD(&data->dev_res_list);
254
255 rc = riscv_acpi_get_gsi_info(dev->fwnode, &data->gsi_base, &data->id,
256 &data->nr_irqs, NULL);
257 if (rc) {
258 dev_err(dev, "failed to find GSI mapping\n");
259 return rc;
260 }
261
262 smmc_parse_package_resource(pdev, data);
263 //TODO: Setup any initial state of the device and enable MSI delivery
264
265 imsic_global = imsic_get_global_config();
266 if (!imsic_global) {
267 dev_err(dev, "IMSIC global config not found\n");
268 return -ENODEV;
269 }
270
271 if (!dev_get_msi_domain(dev)) {
272 msi_domain = irq_find_matching_fwnode(imsic_acpi_get_fwnode(dev),
273 DOMAIN_BUS_PLATFORM_MSI);
274 if (msi_domain)
275 dev_set_msi_domain(dev, msi_domain);
276 }
277
278 if (!msi_create_device_irq_domain(dev, MSI_DEFAULT_DOMAIN, &smmc_msi_template,
279 data->nr_irqs + 1, data, data)) {
280 dev_err(dev, "failed to create MSI irq domain\n");
281 return -ENOMEM;
282 }
283
> 284 acpi_dev_clear_dependencies(ACPI_COMPANION(dev));
285
286 return rc;
287 }
288
> 289 static const struct acpi_device_id smmc_acpi_match[] = {
290 { "RSCV0005", 0 },
291 {}
292 };
293 MODULE_DEVICE_TABLE(acpi, smmc_acpi_match);
294
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2024-07-03 13:52 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202407032142.RKidHaB4-lkp@intel.com \
--to=lkp@intel.com \
--cc=Atish.Patra@wdc.com \
--cc=atishp@rivosinc.com \
--cc=oe-kbuild-all@lists.linux.dev \
/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.