Hi Julia,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.19-rc5 next-20180928]
[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/Julia-Cartwright/kthread-convert-worker-lock-to-raw-spinlock/20180929-052522
config: i386-randconfig-x008-201838 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers//watchdog/watchdog_dev.c: In function 'watchdog_cdev_register':
>> drivers//watchdog/watchdog_dev.c:948:49: error: 'HRTIMER_MODE_REL_HARD' 
>> undeclared (first use in this function); did you mean 
>> 'HRTIMER_MODE_REL_SOFT'?
     hrtimer_init(&wd_data->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
                                                    ^~~~~~~~~~~~~~~~~~~~~
                                                    HRTIMER_MODE_REL_SOFT
   drivers//watchdog/watchdog_dev.c:948:49: note: each undeclared identifier is 
reported only once for each function it appears in

vim +948 drivers//watchdog/watchdog_dev.c

   919  
   920  /*
   921   *      watchdog_cdev_register: register watchdog character device
   922   *      @wdd: watchdog device
   923   *      @devno: character device number
   924   *
   925   *      Register a watchdog character device including handling the 
legacy
   926   *      /dev/watchdog node. /dev/watchdog is actually a miscdevice and
   927   *      thus we set it up like that.
   928   */
   929  
   930  static int watchdog_cdev_register(struct watchdog_device *wdd, dev_t 
devno)
   931  {
   932          struct watchdog_core_data *wd_data;
   933          int err;
   934  
   935          wd_data = kzalloc(sizeof(struct watchdog_core_data), 
GFP_KERNEL);
   936          if (!wd_data)
   937                  return -ENOMEM;
   938          kref_init(&wd_data->kref);
   939          mutex_init(&wd_data->lock);
   940  
   941          wd_data->wdd = wdd;
   942          wdd->wd_data = wd_data;
   943  
   944          if (IS_ERR_OR_NULL(watchdog_kworker))
   945                  return -ENODEV;
   946  
   947          kthread_init_work(&wd_data->work, watchdog_ping_work);
 > 948          hrtimer_init(&wd_data->timer, CLOCK_MONOTONIC, 
 > HRTIMER_MODE_REL_HARD);
   949          wd_data->timer.function = watchdog_timer_expired;
   950  
   951          if (wdd->id == 0) {
   952                  old_wd_data = wd_data;
   953                  watchdog_miscdev.parent = wdd->parent;
   954                  err = misc_register(&watchdog_miscdev);
   955                  if (err != 0) {
   956                          pr_err("%s: cannot register miscdev on minor=%d 
(err=%d).\n",
   957                                  wdd->info->identity, WATCHDOG_MINOR, 
err);
   958                          if (err == -EBUSY)
   959                                  pr_err("%s: a legacy watchdog module is 
probably present.\n",
   960                                          wdd->info->identity);
   961                          old_wd_data = NULL;
   962                          kfree(wd_data);
   963                          return err;
   964                  }
   965          }
   966  
   967          /* Fill in the data structures */
   968          cdev_init(&wd_data->cdev, &watchdog_fops);
   969          wd_data->cdev.owner = wdd->ops->owner;
   970  
   971          /* Add the device */
   972          err = cdev_add(&wd_data->cdev, devno, 1);
   973          if (err) {
   974                  pr_err("watchdog%d unable to add device %d:%d\n",
   975                          wdd->id,  MAJOR(watchdog_devt), wdd->id);
   976                  if (wdd->id == 0) {
   977                          misc_deregister(&watchdog_miscdev);
   978                          old_wd_data = NULL;
   979                          kref_put(&wd_data->kref, 
watchdog_core_data_release);
   980                  }
   981                  return err;
   982          }
   983  
   984          /* Record time of most recent heartbeat as 'just before now'. */
   985          wd_data->last_hw_keepalive = ktime_sub(ktime_get(), 1);
   986  
   987          /*
   988           * If the watchdog is running, prevent its driver from being 
unloaded,
   989           * and schedule an immediate ping.
   990           */
   991          if (watchdog_hw_running(wdd)) {
   992                  __module_get(wdd->ops->owner);
   993                  kref_get(&wd_data->kref);
   994                  if (handle_boot_enabled)
   995                          hrtimer_start(&wd_data->timer, 0, 
HRTIMER_MODE_REL);
   996                  else
   997                          pr_info("watchdog%d running and kernel based 
pre-userspace handler disabled\n",
   998                                  wdd->id);
   999          }
  1000  
  1001          return 0;
  1002  }
  1003  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to