lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 26 Jan 2016 23:40:53 +0800
From:	kbuild test robot <lkp@...el.com>
To:	Guenter Roeck <patchwork@...chwork.roeck-us.net>
Cc:	kbuild-all@...org, linux-watchdog@...r.kernel.org,
	Wim Van Sebroeck <wim@...ana.be>,
	linux-kernel@...r.kernel.org,
	Uwe Kleine-König 
	<u.kleine-koenig@...gutronix.de>,
	Doug Anderson <dianders@...omium.org>,
	Guenter Roeck <linux@...ck-us.net>
Subject: Re: [RFT PATCH] watchdog: gpio: Convert to use infrastructure
 triggered keepalives

Hi Guenter,

[auto build test ERROR on v4.5-rc1]
[also build test ERROR on next-20160125]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Guenter-Roeck/watchdog-gpio-Convert-to-use-infrastructure-triggered-keepalives/20160126-231612
config: i386-randconfig-x005-01261041 (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/watchdog/gpio_wdt.c: In function 'gpio_wdt_start':
>> drivers/watchdog/gpio_wdt.c:72:10: error: 'WDOG_HW_RUNNING' undeclared (first use in this function)
     set_bit(WDOG_HW_RUNNING, &wdd->status);
             ^
   drivers/watchdog/gpio_wdt.c:72:10: note: each undeclared identifier is reported only once for each function it appears in
   drivers/watchdog/gpio_wdt.c: In function 'gpio_wdt_stop':
   drivers/watchdog/gpio_wdt.c:83:13: error: 'WDOG_HW_RUNNING' undeclared (first use in this function)
      clear_bit(WDOG_HW_RUNNING, &wdd->status);
                ^
   drivers/watchdog/gpio_wdt.c: In function 'gpio_wdt_probe':
>> drivers/watchdog/gpio_wdt.c:155:11: error: 'struct watchdog_device' has no member named 'max_hw_timeout_ms'
     priv->wdd.max_hw_timeout_ms = hw_margin;
              ^

vim +/WDOG_HW_RUNNING +72 drivers/watchdog/gpio_wdt.c

    66	{
    67		struct gpio_wdt_priv *priv = watchdog_get_drvdata(wdd);
    68	
    69		priv->state = priv->active_low;
    70		gpio_direction_output(priv->gpio, priv->state);
    71	
  > 72		set_bit(WDOG_HW_RUNNING, &wdd->status);
    73	
    74		return gpio_wdt_ping(wdd);
    75	}
    76	
    77	static int gpio_wdt_stop(struct watchdog_device *wdd)
    78	{
    79		struct gpio_wdt_priv *priv = watchdog_get_drvdata(wdd);
    80	
    81		if (!priv->always_running) {
    82			gpio_wdt_disable(priv);
    83			clear_bit(WDOG_HW_RUNNING, &wdd->status);
    84		}
    85	
    86		return 0;
    87	}
    88	
    89	static const struct watchdog_info gpio_wdt_ident = {
    90		.options	= WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING |
    91				  WDIOF_SETTIMEOUT,
    92		.identity	= "GPIO Watchdog",
    93	};
    94	
    95	static const struct watchdog_ops gpio_wdt_ops = {
    96		.owner		= THIS_MODULE,
    97		.start		= gpio_wdt_start,
    98		.stop		= gpio_wdt_stop,
    99		.ping		= gpio_wdt_ping,
   100	};
   101	
   102	static int gpio_wdt_probe(struct platform_device *pdev)
   103	{
   104		struct gpio_wdt_priv *priv;
   105		enum of_gpio_flags flags;
   106		unsigned int hw_margin;
   107		unsigned long f = 0;
   108		const char *algo;
   109		int ret;
   110	
   111		priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
   112		if (!priv)
   113			return -ENOMEM;
   114	
   115		priv->gpio = of_get_gpio_flags(pdev->dev.of_node, 0, &flags);
   116		if (!gpio_is_valid(priv->gpio))
   117			return priv->gpio;
   118	
   119		priv->active_low = flags & OF_GPIO_ACTIVE_LOW;
   120	
   121		ret = of_property_read_string(pdev->dev.of_node, "hw_algo", &algo);
   122		if (ret)
   123			return ret;
   124		if (!strcmp(algo, "toggle")) {
   125			priv->hw_algo = HW_ALGO_TOGGLE;
   126			f = GPIOF_IN;
   127		} else if (!strcmp(algo, "level")) {
   128			priv->hw_algo = HW_ALGO_LEVEL;
   129			f = priv->active_low ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW;
   130		} else {
   131			return -EINVAL;
   132		}
   133	
   134		ret = devm_gpio_request_one(&pdev->dev, priv->gpio, f,
   135					    dev_name(&pdev->dev));
   136		if (ret)
   137			return ret;
   138	
   139		ret = of_property_read_u32(pdev->dev.of_node,
   140					   "hw_margin_ms", &hw_margin);
   141		if (ret)
   142			return ret;
   143		/* Disallow values lower than 2 and higher than 65535 ms */
   144		if (hw_margin < 2 || hw_margin > 65535)
   145			return -EINVAL;
   146	
   147		priv->always_running = of_property_read_bool(pdev->dev.of_node,
   148							     "always-running");
   149	
   150		watchdog_set_drvdata(&priv->wdd, priv);
   151	
   152		priv->wdd.info		= &gpio_wdt_ident;
   153		priv->wdd.ops		= &gpio_wdt_ops;
   154		priv->wdd.min_timeout	= SOFT_TIMEOUT_MIN;
 > 155		priv->wdd.max_hw_timeout_ms = hw_margin;
   156		priv->wdd.parent	= &pdev->dev;
   157	
   158		if (watchdog_init_timeout(&priv->wdd, 0, &pdev->dev) < 0)

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

Download attachment ".config.gz" of type "application/octet-stream" (23545 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ