From: kernel test robot <lkp@intel.com>
To: Loke Forsberg <loke.forsberg@gmail.com>, linux-usb@vger.kernel.org
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
gregkh@linuxfoundation.org, khtsai@google.com,
raubcameo@gmail.com, kees@kernel.org,
linux-kernel@vger.kernel.org,
Loke Forsberg <Loke.Forsberg@gmail.com>
Subject: Re: [PATCH v2] usb: gadget: f_ncm: replace kzalloc with kzalloc_obj
Date: Wed, 18 Mar 2026 01:44:48 +0800 [thread overview]
Message-ID: <202603180133.Mwj8SBgf-lkp@intel.com> (raw)
In-Reply-To: <20260316092505.8841-1-Loke.Forsberg@gmail.com>
Hi Loke,
kernel test robot noticed the following build errors:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on usb/usb-next usb/usb-linus westeri-thunderbolt/next linus/master v7.0-rc4 next-20260316]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Loke-Forsberg/usb-gadget-f_ncm-replace-kzalloc-with-kzalloc_obj/20260316-173026
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
patch link: https://lore.kernel.org/r/20260316092505.8841-1-Loke.Forsberg%40gmail.com
patch subject: [PATCH v2] usb: gadget: f_ncm: replace kzalloc with kzalloc_obj
config: hexagon-randconfig-002-20260317 (https://download.01.org/0day-ci/archive/20260318/202603180133.Mwj8SBgf-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 4abb927bacf37f18f6359a41639a6d1b3bffffb5)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260318/202603180133.Mwj8SBgf-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/202603180133.Mwj8SBgf-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/usb/gadget/function/f_ncm.c:1459:17: error: incompatible pointer types assigning to 'struct usb_os_desc_table *' from 'typeof (os_desc_table) *' (aka 'struct usb_os_desc_table **'); dereference with * [-Wincompatible-pointer-types]
1459 | os_desc_table = kzalloc_obj(os_desc_table);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
| *( )
>> drivers/usb/gadget/function/f_ncm.c:1756:6: error: incompatible pointer types assigning to 'struct f_ncm *' from 'typeof (ncm) *' (aka 'struct f_ncm **'); dereference with * [-Wincompatible-pointer-types]
1756 | ncm = kzalloc_obj(ncm);
| ^ ~~~~~~~~~~~~~~~~
| *( )
2 errors generated.
vim +1459 drivers/usb/gadget/function/f_ncm.c
1441
1442 static int ncm_bind(struct usb_configuration *c, struct usb_function *f)
1443 {
1444 struct usb_composite_dev *cdev = c->cdev;
1445 struct f_ncm *ncm = func_to_ncm(f);
1446 struct f_ncm_opts *ncm_opts = func_to_ncm_opts(f);
1447 struct usb_string *us;
1448 int status = 0;
1449 struct usb_ep *ep;
1450
1451 struct usb_os_desc_table *os_desc_table __free(kfree) = NULL;
1452 struct net_device *netdev __free(free_gether_netdev) = NULL;
1453 struct usb_request *request __free(free_usb_request) = NULL;
1454
1455 if (!can_support_ecm(cdev->gadget))
1456 return -EINVAL;
1457
1458 if (cdev->use_os_string) {
> 1459 os_desc_table = kzalloc_obj(os_desc_table);
1460 if (!os_desc_table)
1461 return -ENOMEM;
1462 }
1463
1464 netdev = gether_setup_default();
1465 if (IS_ERR(netdev))
1466 return -ENOMEM;
1467
1468 scoped_guard(mutex, &ncm_opts->lock) {
1469 gether_apply_opts(netdev, &ncm_opts->net_opts);
1470 netdev->mtu = ncm_opts->max_segment_size - ETH_HLEN;
1471 }
1472
1473 gether_set_gadget(netdev, cdev->gadget);
1474 status = gether_register_netdev(netdev);
1475 if (status)
1476 return status;
1477
1478 /* export host's Ethernet address in CDC format */
1479 status = gether_get_host_addr_cdc(netdev, ncm->ethaddr,
1480 sizeof(ncm->ethaddr));
1481 if (status < 12)
1482 return -EINVAL;
1483 ncm_string_defs[STRING_MAC_IDX].s = ncm->ethaddr;
1484
1485 us = usb_gstrings_attach(cdev, ncm_strings,
1486 ARRAY_SIZE(ncm_string_defs));
1487 if (IS_ERR(us))
1488 return PTR_ERR(us);
1489
1490 ncm_control_intf.iInterface = us[STRING_CTRL_IDX].id;
1491 ncm_data_nop_intf.iInterface = us[STRING_DATA_IDX].id;
1492 ncm_data_intf.iInterface = us[STRING_DATA_IDX].id;
1493 ecm_desc.iMACAddress = us[STRING_MAC_IDX].id;
1494 ncm_iad_desc.iFunction = us[STRING_IAD_IDX].id;
1495
1496 /* allocate instance-specific interface IDs */
1497 status = usb_interface_id(c, f);
1498 if (status < 0)
1499 return status;
1500 ncm->ctrl_id = status;
1501 ncm_iad_desc.bFirstInterface = status;
1502
1503 ncm_control_intf.bInterfaceNumber = status;
1504 ncm_union_desc.bMasterInterface0 = status;
1505
1506 status = usb_interface_id(c, f);
1507 if (status < 0)
1508 return status;
1509 ncm->data_id = status;
1510
1511 ncm_data_nop_intf.bInterfaceNumber = status;
1512 ncm_data_intf.bInterfaceNumber = status;
1513 ncm_union_desc.bSlaveInterface0 = status;
1514
1515 ecm_desc.wMaxSegmentSize = cpu_to_le16(ncm_opts->max_segment_size);
1516
1517 /* allocate instance-specific endpoints */
1518 ep = usb_ep_autoconfig(cdev->gadget, &fs_ncm_in_desc);
1519 if (!ep)
1520 return -ENODEV;
1521 ncm->port.in_ep = ep;
1522
1523 ep = usb_ep_autoconfig(cdev->gadget, &fs_ncm_out_desc);
1524 if (!ep)
1525 return -ENODEV;
1526 ncm->port.out_ep = ep;
1527
1528 ep = usb_ep_autoconfig(cdev->gadget, &fs_ncm_notify_desc);
1529 if (!ep)
1530 return -ENODEV;
1531 ncm->notify = ep;
1532
1533 /* allocate notification request and buffer */
1534 request = usb_ep_alloc_request(ep, GFP_KERNEL);
1535 if (!request)
1536 return -ENOMEM;
1537 request->buf = kmalloc(NCM_STATUS_BYTECOUNT, GFP_KERNEL);
1538 if (!request->buf)
1539 return -ENOMEM;
1540 request->context = ncm;
1541 request->complete = ncm_notify_complete;
1542
1543 /*
1544 * support all relevant hardware speeds... we expect that when
1545 * hardware is dual speed, all bulk-capable endpoints work at
1546 * both speeds
1547 */
1548 hs_ncm_in_desc.bEndpointAddress = fs_ncm_in_desc.bEndpointAddress;
1549 hs_ncm_out_desc.bEndpointAddress = fs_ncm_out_desc.bEndpointAddress;
1550 hs_ncm_notify_desc.bEndpointAddress =
1551 fs_ncm_notify_desc.bEndpointAddress;
1552
1553 ss_ncm_in_desc.bEndpointAddress = fs_ncm_in_desc.bEndpointAddress;
1554 ss_ncm_out_desc.bEndpointAddress = fs_ncm_out_desc.bEndpointAddress;
1555 ss_ncm_notify_desc.bEndpointAddress =
1556 fs_ncm_notify_desc.bEndpointAddress;
1557
1558 status = usb_assign_descriptors(f, ncm_fs_function, ncm_hs_function,
1559 ncm_ss_function, ncm_ss_function);
1560 if (status)
1561 return status;
1562
1563 /*
1564 * NOTE: all that is done without knowing or caring about
1565 * the network link ... which is unavailable to this code
1566 * until we're activated via set_alt().
1567 */
1568
1569 ncm->port.open = ncm_open;
1570 ncm->port.close = ncm_close;
1571
1572 hrtimer_setup(&ncm->task_timer, ncm_tx_timeout, CLOCK_MONOTONIC, HRTIMER_MODE_REL_SOFT);
1573
1574 if (cdev->use_os_string) {
1575 os_desc_table[0].os_desc = &ncm_opts->ncm_os_desc;
1576 os_desc_table[0].if_id = ncm_iad_desc.bFirstInterface;
1577 f->os_desc_table = no_free_ptr(os_desc_table);
1578 f->os_desc_n = 1;
1579 }
1580 ncm->notify_req = no_free_ptr(request);
1581 ncm->netdev = no_free_ptr(netdev);
1582 ncm->port.ioport = netdev_priv(ncm->netdev);
1583
1584 DBG(cdev, "CDC Network: IN/%s OUT/%s NOTIFY/%s\n",
1585 ncm->port.in_ep->name, ncm->port.out_ep->name,
1586 ncm->notify->name);
1587 return 0;
1588 }
1589
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2026-03-17 17:45 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-16 9:25 [PATCH v2] usb: gadget: f_ncm: replace kzalloc with kzalloc_obj Loke Forsberg
2026-03-17 17:44 ` kernel test robot [this message]
2026-03-17 17:44 ` kernel test robot
2026-03-18 14:10 ` Greg KH
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=202603180133.Mwj8SBgf-lkp@intel.com \
--to=lkp@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=kees@kernel.org \
--cc=khtsai@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=loke.forsberg@gmail.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=raubcameo@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox