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:   Mon, 10 Apr 2023 07:43:37 -0700
From:   Guenter Roeck <linux@...ck-us.net>
To:     William Breathitt Gray <william.gray@...aro.org>,
        Wim Van Sebroeck <wim@...ux-watchdog.org>
Cc:     linux-kernel@...r.kernel.org, linux-watchdog@...r.kernel.org,
        Paul Demetrotion <pdemetrotion@...systems.com>,
        techsupport@...systems.com,
        Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
        Fred Eckert <Frede@...laser.com>
Subject: Re: [PATCH] watchdog: ebc-c384_wdt: Remove support

On 4/10/23 07:31, William Breathitt Gray wrote:
> The current maintainer no longer has access to the device for testing,
> the original user of this driver indicates that they have moved on to
> another device, and the manufacturer WINSYSTEMS does not appear
> interested in taking over support for this code.
> 
> Signed-off-by: William Breathitt Gray <william.gray@...aro.org>

A bit harsh, maybe. Just mark it as orphan for the time being.

I see there are other Winsystems drivers. What are you going to do
with those ?

Guenter

> ---
>   MAINTAINERS                     |   6 --
>   drivers/watchdog/Kconfig        |  10 ---
>   drivers/watchdog/Makefile       |   1 -
>   drivers/watchdog/ebc-c384_wdt.c | 142 --------------------------------
>   4 files changed, 159 deletions(-)
>   delete mode 100644 drivers/watchdog/ebc-c384_wdt.c
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 90abe83c02f3..3b30b502de93 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -22511,12 +22511,6 @@ M:	David Härdeman <david@...deman.nu>
>   S:	Maintained
>   F:	drivers/media/rc/winbond-cir.c
>   
> -WINSYSTEMS EBC-C384 WATCHDOG DRIVER
> -M:	William Breathitt Gray <william.gray@...aro.org>
> -L:	linux-watchdog@...r.kernel.org
> -S:	Maintained
> -F:	drivers/watchdog/ebc-c384_wdt.c
> -
>   WINSYSTEMS WS16C48 GPIO DRIVER
>   M:	William Breathitt Gray <william.gray@...aro.org>
>   L:	linux-gpio@...r.kernel.org
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index f0872970daf9..7c443d71b01f 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -1085,16 +1085,6 @@ config ALIM7101_WDT
>   
>   	  Most people will say N.
>   
> -config EBC_C384_WDT
> -	tristate "WinSystems EBC-C384 Watchdog Timer"
> -	depends on X86
> -	select ISA_BUS_API
> -	select WATCHDOG_CORE
> -	help
> -	  Enables watchdog timer support for the watchdog timer on the
> -	  WinSystems EBC-C384 motherboard. The timeout may be configured via
> -	  the timeout module parameter.
> -
>   config EXAR_WDT
>   	tristate "Exar Watchdog Timer"
>   	depends on X86
> diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
> index 9cbf6580f16c..3d12d4ddd5ea 100644
> --- a/drivers/watchdog/Makefile
> +++ b/drivers/watchdog/Makefile
> @@ -105,7 +105,6 @@ obj-$(CONFIG_ADVANTECH_WDT) += advantechwdt.o
>   obj-$(CONFIG_ADVANTECH_EC_WDT) += advantech_ec_wdt.o
>   obj-$(CONFIG_ALIM1535_WDT) += alim1535_wdt.o
>   obj-$(CONFIG_ALIM7101_WDT) += alim7101_wdt.o
> -obj-$(CONFIG_EBC_C384_WDT) += ebc-c384_wdt.o
>   obj-$(CONFIG_EXAR_WDT) += exar_wdt.o
>   obj-$(CONFIG_F71808E_WDT) += f71808e_wdt.o
>   obj-$(CONFIG_SP5100_TCO) += sp5100_tco.o
> diff --git a/drivers/watchdog/ebc-c384_wdt.c b/drivers/watchdog/ebc-c384_wdt.c
> deleted file mode 100644
> index 8ef4b0df3855..000000000000
> --- a/drivers/watchdog/ebc-c384_wdt.c
> +++ /dev/null
> @@ -1,142 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0
> -/*
> - * Watchdog timer driver for the WinSystems EBC-C384
> - * Copyright (C) 2016 William Breathitt Gray
> - */
> -#include <linux/device.h>
> -#include <linux/dmi.h>
> -#include <linux/errno.h>
> -#include <linux/io.h>
> -#include <linux/ioport.h>
> -#include <linux/isa.h>
> -#include <linux/kernel.h>
> -#include <linux/module.h>
> -#include <linux/moduleparam.h>
> -#include <linux/types.h>
> -#include <linux/watchdog.h>
> -
> -#define MODULE_NAME		"ebc-c384_wdt"
> -#define WATCHDOG_TIMEOUT	60
> -/*
> - * The timeout value in minutes must fit in a single byte when sent to the
> - * watchdog timer; the maximum timeout possible is 15300 (255 * 60) seconds.
> - */
> -#define WATCHDOG_MAX_TIMEOUT	15300
> -#define BASE_ADDR		0x564
> -#define ADDR_EXTENT		5
> -#define CFG_ADDR		(BASE_ADDR + 1)
> -#define PET_ADDR		(BASE_ADDR + 2)
> -
> -static bool nowayout = WATCHDOG_NOWAYOUT;
> -module_param(nowayout, bool, 0);
> -MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
> -	__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
> -
> -static unsigned timeout;
> -module_param(timeout, uint, 0);
> -MODULE_PARM_DESC(timeout, "Watchdog timeout in seconds (default="
> -	__MODULE_STRING(WATCHDOG_TIMEOUT) ")");
> -
> -static int ebc_c384_wdt_start(struct watchdog_device *wdev)
> -{
> -	unsigned t = wdev->timeout;
> -
> -	/* resolution is in minutes for timeouts greater than 255 seconds */
> -	if (t > 255)
> -		t = DIV_ROUND_UP(t, 60);
> -
> -	outb(t, PET_ADDR);
> -
> -	return 0;
> -}
> -
> -static int ebc_c384_wdt_stop(struct watchdog_device *wdev)
> -{
> -	outb(0x00, PET_ADDR);
> -
> -	return 0;
> -}
> -
> -static int ebc_c384_wdt_set_timeout(struct watchdog_device *wdev, unsigned t)
> -{
> -	/* resolution is in minutes for timeouts greater than 255 seconds */
> -	if (t > 255) {
> -		/* round second resolution up to minute granularity */
> -		wdev->timeout = roundup(t, 60);
> -
> -		/* set watchdog timer for minutes */
> -		outb(0x00, CFG_ADDR);
> -	} else {
> -		wdev->timeout = t;
> -
> -		/* set watchdog timer for seconds */
> -		outb(0x80, CFG_ADDR);
> -	}
> -
> -	return 0;
> -}
> -
> -static const struct watchdog_ops ebc_c384_wdt_ops = {
> -	.start = ebc_c384_wdt_start,
> -	.stop = ebc_c384_wdt_stop,
> -	.set_timeout = ebc_c384_wdt_set_timeout
> -};
> -
> -static const struct watchdog_info ebc_c384_wdt_info = {
> -	.options = WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE | WDIOF_SETTIMEOUT,
> -	.identity = MODULE_NAME
> -};
> -
> -static int ebc_c384_wdt_probe(struct device *dev, unsigned int id)
> -{
> -	struct watchdog_device *wdd;
> -
> -	if (!devm_request_region(dev, BASE_ADDR, ADDR_EXTENT, dev_name(dev))) {
> -		dev_err(dev, "Unable to lock port addresses (0x%X-0x%X)\n",
> -			BASE_ADDR, BASE_ADDR + ADDR_EXTENT);
> -		return -EBUSY;
> -	}
> -
> -	wdd = devm_kzalloc(dev, sizeof(*wdd), GFP_KERNEL);
> -	if (!wdd)
> -		return -ENOMEM;
> -
> -	wdd->info = &ebc_c384_wdt_info;
> -	wdd->ops = &ebc_c384_wdt_ops;
> -	wdd->timeout = WATCHDOG_TIMEOUT;
> -	wdd->min_timeout = 1;
> -	wdd->max_timeout = WATCHDOG_MAX_TIMEOUT;
> -
> -	watchdog_set_nowayout(wdd, nowayout);
> -	watchdog_init_timeout(wdd, timeout, dev);
> -
> -	return devm_watchdog_register_device(dev, wdd);
> -}
> -
> -static struct isa_driver ebc_c384_wdt_driver = {
> -	.probe = ebc_c384_wdt_probe,
> -	.driver = {
> -		.name = MODULE_NAME
> -	},
> -};
> -
> -static int __init ebc_c384_wdt_init(void)
> -{
> -	if (!dmi_match(DMI_BOARD_NAME, "EBC-C384 SBC"))
> -		return -ENODEV;
> -
> -	return isa_register_driver(&ebc_c384_wdt_driver, 1);
> -}
> -
> -static void __exit ebc_c384_wdt_exit(void)
> -{
> -	isa_unregister_driver(&ebc_c384_wdt_driver);
> -}
> -
> -module_init(ebc_c384_wdt_init);
> -module_exit(ebc_c384_wdt_exit);
> -
> -MODULE_AUTHOR("William Breathitt Gray <vilhelm.gray@...il.com>");
> -MODULE_DESCRIPTION("WinSystems EBC-C384 watchdog timer driver");
> -MODULE_LICENSE("GPL v2");
> -MODULE_ALIAS("isa:" MODULE_NAME);
> 
> base-commit: 09a9639e56c01c7a00d6c0ca63f4c7c41abe075d

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ