Re: [PATCH v5 2/2] bluetooth: Add MGMT Adv Monitor Device Found/Lost events

From: kernel test robot
Date: Sat Nov 20 2021 - 15:15:46 EST


Hi Manish,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on bluetooth-next/master]
[also build test WARNING on next-20211118]
[cannot apply to bluetooth/master v5.16-rc1]
[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]

url: https://github.com/0day-ci/linux/commits/Manish-Mandlik/bluetooth-Handle-MSFT-Monitor-Device-Event/20211121-004127
base: https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git master
config: m68k-randconfig-r016-20211121 (attached as .config)
compiler: m68k-linux-gcc (GCC) 11.2.0
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
# https://github.com/0day-ci/linux/commit/9d49f17ae7d7c8f17e51a8d1e0fece8f76cc2dd6
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Manish-Mandlik/bluetooth-Handle-MSFT-Monitor-Device-Event/20211121-004127
git checkout 9d49f17ae7d7c8f17e51a8d1e0fece8f76cc2dd6
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=m68k

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> net/bluetooth/mgmt.c:9542:6: warning: no previous prototype for 'mgmt_adv_monitor_device_found' [-Wmissing-prototypes]
9542 | void mgmt_adv_monitor_device_found(struct hci_dev *hdev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/mgmt_adv_monitor_device_found +9542 net/bluetooth/mgmt.c

9541
> 9542 void mgmt_adv_monitor_device_found(struct hci_dev *hdev,
9543 struct mgmt_ev_device_found *ev,
9544 size_t ev_size, bool discovering)
9545 {
9546 char buf[518];
9547 struct mgmt_ev_adv_monitor_device_found *advmon_ev = (void *)buf;
9548 size_t advmon_ev_size;
9549 struct monitored_device *dev, *tmp;
9550 bool matched = false;
9551 bool notified = false;
9552
9553 /* Make sure that the buffer is big enough */
9554 advmon_ev_size = ev_size + (sizeof(*advmon_ev) - sizeof(*ev));
9555 if (advmon_ev_size > sizeof(buf))
9556 return;
9557
9558 /* ADV_MONITOR_DEVICE_FOUND is similar to DEVICE_FOUND event except
9559 * that it also has 'monitor_handle'. Make a copy of DEVICE_FOUND and
9560 * store monitor_handle of the matched monitor.
9561 */
9562 memcpy(&advmon_ev->addr, ev, ev_size);
9563
9564 hdev->advmon_pend_notify = false;
9565
9566 list_for_each_entry_safe(dev, tmp, &hdev->monitored_devices, list) {
9567 if (!bacmp(&dev->bdaddr, &advmon_ev->addr.bdaddr)) {
9568 matched = true;
9569
9570 if (!dev->notified) {
9571 advmon_ev->monitor_handle =
9572 cpu_to_le16(dev->handle);
9573
9574 mgmt_event(MGMT_EV_ADV_MONITOR_DEVICE_FOUND,
9575 hdev, advmon_ev, advmon_ev_size,
9576 NULL);
9577
9578 notified = true;
9579 dev->notified = true;
9580 }
9581 }
9582
9583 if (!dev->notified)
9584 hdev->advmon_pend_notify = true;
9585 }
9586
9587 if (!discovering &&
9588 ((matched && !notified) || !msft_monitor_supported(hdev))) {
9589 /* Handle 0 indicates that we are not active scanning and this
9590 * is a subsequent advertisement report for an already matched
9591 * Advertisement Monitor or the controller offloading support
9592 * is not available.
9593 */
9594 advmon_ev->monitor_handle = 0;
9595
9596 mgmt_event(MGMT_EV_ADV_MONITOR_DEVICE_FOUND, hdev, advmon_ev,
9597 advmon_ev_size, NULL);
9598 }
9599 }
9600

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip