* [PATCH] add support for pci in the pvpanic driver @ 2021-02-03 14:43 Mihai Carabas 2021-02-03 14:43 ` [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code Mihai Carabas 2021-02-03 14:43 ` [PATCH 2/2] misc/pvpanic: add pci driver Mihai Carabas 0 siblings, 2 replies; 12+ messages in thread From: Mihai Carabas @ 2021-02-03 14:43 UTC (permalink / raw) To: linux-kernel Cc: gregkh, arnd, andriy.shevchenko, bobo.shaobowang, Mihai Carabas This patchset adds support for pci in the pvpanic driver. The device already got in qemu [1]. [1] https://github.com/qemu/qemu/commit/9df52f58e76e904fb141b10318362d718f470db2 Mihai Carabas (2): misc/pvpanic: split-up generic and platform dependent code misc/pvpanic: add pci driver drivers/misc/Kconfig | 9 +-- drivers/misc/Makefile | 2 +- drivers/misc/pvpanic.c | 111 ------------------------------------ drivers/misc/pvpanic/Kconfig | 28 +++++++++ drivers/misc/pvpanic/Makefile | 9 +++ drivers/misc/pvpanic/pvpanic-mmio.c | 83 +++++++++++++++++++++++++++ drivers/misc/pvpanic/pvpanic-pci.c | 54 ++++++++++++++++++ drivers/misc/pvpanic/pvpanic.c | 59 +++++++++++++++++++ drivers/misc/pvpanic/pvpanic.h | 17 ++++++ 9 files changed, 252 insertions(+), 120 deletions(-) delete mode 100644 drivers/misc/pvpanic.c create mode 100644 drivers/misc/pvpanic/Kconfig create mode 100644 drivers/misc/pvpanic/Makefile create mode 100644 drivers/misc/pvpanic/pvpanic-mmio.c create mode 100644 drivers/misc/pvpanic/pvpanic-pci.c create mode 100644 drivers/misc/pvpanic/pvpanic.c create mode 100644 drivers/misc/pvpanic/pvpanic.h -- 1.8.3.1 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code 2021-02-03 14:43 [PATCH] add support for pci in the pvpanic driver Mihai Carabas @ 2021-02-03 14:43 ` Mihai Carabas 2021-02-03 15:44 ` Greg KH ` (3 more replies) 2021-02-03 14:43 ` [PATCH 2/2] misc/pvpanic: add pci driver Mihai Carabas 1 sibling, 4 replies; 12+ messages in thread From: Mihai Carabas @ 2021-02-03 14:43 UTC (permalink / raw) To: linux-kernel Cc: gregkh, arnd, andriy.shevchenko, bobo.shaobowang, Mihai Carabas Split-up generic and platform dependent code in order to introduce pvpanic pci device driver later. Signed-off-by: Mihai Carabas <mihai.carabas@oracle.com> --- drivers/misc/Kconfig | 9 +-- drivers/misc/Makefile | 2 +- drivers/misc/pvpanic.c | 111 ------------------------------------ drivers/misc/pvpanic/Kconfig | 14 +++++ drivers/misc/pvpanic/Makefile | 2 + drivers/misc/pvpanic/pvpanic-mmio.c | 83 +++++++++++++++++++++++++++ drivers/misc/pvpanic/pvpanic.c | 59 +++++++++++++++++++ drivers/misc/pvpanic/pvpanic.h | 17 ++++++ 8 files changed, 177 insertions(+), 120 deletions(-) delete mode 100644 drivers/misc/pvpanic.c create mode 100644 drivers/misc/pvpanic/Kconfig create mode 100644 drivers/misc/pvpanic/Makefile create mode 100644 drivers/misc/pvpanic/pvpanic-mmio.c create mode 100644 drivers/misc/pvpanic/pvpanic.c create mode 100644 drivers/misc/pvpanic/pvpanic.h diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index fafa8b0..0273ecb 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -448,14 +448,6 @@ config MISC_RTSX tristate default MISC_RTSX_PCI || MISC_RTSX_USB -config PVPANIC - tristate "pvpanic device support" - depends on HAS_IOMEM && (ACPI || OF) - help - This driver provides support for the pvpanic device. pvpanic is - a paravirtualized device provided by QEMU; it lets a virtual machine - (guest) communicate panic events to the host. - config HISI_HIKEY_USB tristate "USB GPIO Hub on HiSilicon Hikey 960/970 Platform" depends on (OF && GPIOLIB) || COMPILE_TEST @@ -481,4 +473,5 @@ source "drivers/misc/ocxl/Kconfig" source "drivers/misc/cardreader/Kconfig" source "drivers/misc/habanalabs/Kconfig" source "drivers/misc/uacce/Kconfig" +source "drivers/misc/pvpanic/Kconfig" endmenu diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index d23231e..9f411b8 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -52,7 +52,7 @@ obj-$(CONFIG_CXL_BASE) += cxl/ obj-$(CONFIG_PCI_ENDPOINT_TEST) += pci_endpoint_test.o obj-$(CONFIG_OCXL) += ocxl/ obj-y += cardreader/ -obj-$(CONFIG_PVPANIC) += pvpanic.o +obj-$(CONFIG_PVPANIC) += pvpanic/ obj-$(CONFIG_HABANA_AI) += habanalabs/ obj-$(CONFIG_UACCE) += uacce/ obj-$(CONFIG_XILINX_SDFEC) += xilinx_sdfec.o diff --git a/drivers/misc/pvpanic.c b/drivers/misc/pvpanic.c deleted file mode 100644 index 41cab29..00000000 --- a/drivers/misc/pvpanic.c +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * Pvpanic Device Support - * - * Copyright (C) 2013 Fujitsu. - * Copyright (C) 2018 ZTE. - */ - -#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt - -#include <linux/io.h> -#include <linux/kernel.h> -#include <linux/kexec.h> -#include <linux/mod_devicetable.h> -#include <linux/module.h> -#include <linux/platform_device.h> -#include <linux/types.h> - -#include <uapi/misc/pvpanic.h> - -static void __iomem *base; - -MODULE_AUTHOR("Hu Tao <hutao@cn.fujitsu.com>"); -MODULE_DESCRIPTION("pvpanic device driver"); -MODULE_LICENSE("GPL"); - -static void -pvpanic_send_event(unsigned int event) -{ - iowrite8(event, base); -} - -static int -pvpanic_panic_notify(struct notifier_block *nb, unsigned long code, - void *unused) -{ - unsigned int event = PVPANIC_PANICKED; - - if (kexec_crash_loaded()) - event = PVPANIC_CRASH_LOADED; - - pvpanic_send_event(event); - - return NOTIFY_DONE; -} - -static struct notifier_block pvpanic_panic_nb = { - .notifier_call = pvpanic_panic_notify, - .priority = 1, /* let this called before broken drm_fb_helper */ -}; - -static int pvpanic_mmio_probe(struct platform_device *pdev) -{ - struct device *dev = &pdev->dev; - struct resource *res; - - res = platform_get_mem_or_io(pdev, 0); - if (!res) - return -EINVAL; - - switch (resource_type(res)) { - case IORESOURCE_IO: - base = devm_ioport_map(dev, res->start, resource_size(res)); - if (!base) - return -ENOMEM; - break; - case IORESOURCE_MEM: - base = devm_ioremap_resource(dev, res); - if (IS_ERR(base)) - return PTR_ERR(base); - break; - default: - return -EINVAL; - } - - atomic_notifier_chain_register(&panic_notifier_list, - &pvpanic_panic_nb); - - return 0; -} - -static int pvpanic_mmio_remove(struct platform_device *pdev) -{ - - atomic_notifier_chain_unregister(&panic_notifier_list, - &pvpanic_panic_nb); - - return 0; -} - -static const struct of_device_id pvpanic_mmio_match[] = { - { .compatible = "qemu,pvpanic-mmio", }, - {} -}; - -static const struct acpi_device_id pvpanic_device_ids[] = { - { "QEMU0001", 0 }, - { "", 0 } -}; -MODULE_DEVICE_TABLE(acpi, pvpanic_device_ids); - -static struct platform_driver pvpanic_mmio_driver = { - .driver = { - .name = "pvpanic-mmio", - .of_match_table = pvpanic_mmio_match, - .acpi_match_table = pvpanic_device_ids, - }, - .probe = pvpanic_mmio_probe, - .remove = pvpanic_mmio_remove, -}; -module_platform_driver(pvpanic_mmio_driver); diff --git a/drivers/misc/pvpanic/Kconfig b/drivers/misc/pvpanic/Kconfig new file mode 100644 index 00000000..12bb017 --- /dev/null +++ b/drivers/misc/pvpanic/Kconfig @@ -0,0 +1,14 @@ +config PVPANIC + bool "pvpanic device support" + depends on PVPANIC_MMIO + help + This option enable generic code for pvpanic device driver logic. + +config PVPANIC_MMIO + tristate "pvpanic mmio device support" + depends on HAS_IOMEM && (ACPI || OF) + select PVPANIC + help + This driver provides support for the pvpanic device. pvpanic is + a paravirtualized device provided by QEMU; it lets a virtual machine + (guest) communicate panic events to the host. diff --git a/drivers/misc/pvpanic/Makefile b/drivers/misc/pvpanic/Makefile new file mode 100644 index 00000000..d08379b --- /dev/null +++ b/drivers/misc/pvpanic/Makefile @@ -0,0 +1,2 @@ +obj-$(CONFIG_PVPANIC) += pvpanic.o +obj-$(CONFIG_PVPANIC_MMIO) += pvpanic-mmio.o diff --git a/drivers/misc/pvpanic/pvpanic-mmio.c b/drivers/misc/pvpanic/pvpanic-mmio.c new file mode 100644 index 00000000..f361747 --- /dev/null +++ b/drivers/misc/pvpanic/pvpanic-mmio.c @@ -0,0 +1,83 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Pvpanic Device Support + * + * Copyright (C) 2013 Fujitsu. + * Copyright (C) 2018 ZTE. + * Copyright (C) 2021 Oracle. +*/ + +#include <linux/io.h> +#include <linux/kernel.h> +#include <linux/kexec.h> +#include <linux/mod_devicetable.h> +#include <linux/module.h> +#include <linux/platform_device.h> +#include <linux/types.h> + +#include <uapi/misc/pvpanic.h> +#include "pvpanic.h" + +MODULE_AUTHOR("Hu Tao <hutao@cn.fujitsu.com>"); +MODULE_DESCRIPTION("pvpanic device driver"); +MODULE_LICENSE("GPL"); + +static int pvpanic_mmio_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct resource *res; + void __iomem *base; + + res = platform_get_mem_or_io(pdev, 0); + if (!res) + return -EINVAL; + + switch (resource_type(res)) { + case IORESOURCE_IO: + base = devm_ioport_map(dev, res->start, resource_size(res)); + if (!base) + return -ENOMEM; + break; + case IORESOURCE_MEM: + base = devm_ioremap_resource(dev, res); + if (IS_ERR(base)) + return PTR_ERR(base); + break; + default: + return -EINVAL; + } + + pvpanic_probe(base); + + return 0; +} + +static int pvpanic_mmio_remove(struct platform_device *pdev) +{ + + pvpanic_remove(); + + return 0; +} + +static const struct of_device_id pvpanic_mmio_match[] = { + { .compatible = "qemu,pvpanic-mmio", }, + {} +}; + +static const struct acpi_device_id pvpanic_device_ids[] = { + { "QEMU0001", 0 }, + { "", 0 } +}; +MODULE_DEVICE_TABLE(acpi, pvpanic_device_ids); + +static struct platform_driver pvpanic_mmio_driver = { + .driver = { + .name = "pvpanic-mmio", + .of_match_table = pvpanic_mmio_match, + .acpi_match_table = pvpanic_device_ids, + }, + .probe = pvpanic_mmio_probe, + .remove = pvpanic_mmio_remove, +}; +module_platform_driver(pvpanic_mmio_driver); diff --git a/drivers/misc/pvpanic/pvpanic.c b/drivers/misc/pvpanic/pvpanic.c new file mode 100644 index 00000000..b4e5bbc --- /dev/null +++ b/drivers/misc/pvpanic/pvpanic.c @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Pvpanic Device Support + * + * Copyright (C) 2013 Fujitsu. + * Copyright (C) 2018 ZTE. + * Copyright (C) 2021 Oracle. + */ + +#include <linux/io.h> +#include <linux/kernel.h> +#include <linux/kexec.h> +#include <linux/mod_devicetable.h> +#include <linux/module.h> +#include <linux/platform_device.h> +#include <linux/types.h> + +#include <uapi/misc/pvpanic.h> + +static void __iomem *base; + +static void +pvpanic_send_event(unsigned int event) +{ + iowrite8(event, base); +} + +static int +pvpanic_panic_notify(struct notifier_block *nb, unsigned long code, + void *unused) +{ + unsigned int event = PVPANIC_PANICKED; + + if (kexec_crash_loaded()) + event = PVPANIC_CRASH_LOADED; + + pvpanic_send_event(event); + + return NOTIFY_DONE; +} + +static struct notifier_block pvpanic_panic_nb = { + .notifier_call = pvpanic_panic_notify, + .priority = 1, /* let this called before broken drm_fb_helper */ +}; + +void pvpanic_probe(void __iomem *pbase) +{ + base = pbase; + atomic_notifier_chain_register(&panic_notifier_list, + &pvpanic_panic_nb); +} + +void pvpanic_remove(void) +{ + + atomic_notifier_chain_unregister(&panic_notifier_list, + &pvpanic_panic_nb); +} diff --git a/drivers/misc/pvpanic/pvpanic.h b/drivers/misc/pvpanic/pvpanic.h new file mode 100644 index 00000000..a3aca5a --- /dev/null +++ b/drivers/misc/pvpanic/pvpanic.h @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Pvpanic Device Support + * + * Copyright (C) 2021 Oracle. + */ + +#ifndef PVPANIC_H_ +#define PVPANIC_H_ + + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +void pvpanic_probe(void __iomem *base); +void pvpanic_remove(void); + +#endif /* PVPANIC_H_ */ -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code 2021-02-03 14:43 ` [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code Mihai Carabas @ 2021-02-03 15:44 ` Greg KH 2021-02-03 17:13 ` Randy Dunlap ` (2 subsequent siblings) 3 siblings, 0 replies; 12+ messages in thread From: Greg KH @ 2021-02-03 15:44 UTC (permalink / raw) To: Mihai Carabas; +Cc: linux-kernel, arnd, andriy.shevchenko, bobo.shaobowang On Wed, Feb 03, 2021 at 04:43:58PM +0200, Mihai Carabas wrote: > Split-up generic and platform dependent code in order to introduce pvpanic pci > device driver later. What is "later"? And did you just create a new driver/module in this change? Why? And how did you test? This new module looks to probably taint the kernel, correct? How about doing this at the very least, 2 patches, one to move to the new directory, and the second to split into two modules. And of course, please TEST THIS! thanks, greg k-h ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code 2021-02-03 14:43 ` [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code Mihai Carabas 2021-02-03 15:44 ` Greg KH @ 2021-02-03 17:13 ` Randy Dunlap 2021-02-03 19:57 ` kernel test robot 2021-02-03 23:18 ` kernel test robot 3 siblings, 0 replies; 12+ messages in thread From: Randy Dunlap @ 2021-02-03 17:13 UTC (permalink / raw) To: Mihai Carabas, linux-kernel Cc: gregkh, arnd, andriy.shevchenko, bobo.shaobowang On 2/3/21 6:43 AM, Mihai Carabas wrote: > diff --git a/drivers/misc/pvpanic/Kconfig b/drivers/misc/pvpanic/Kconfig > new file mode 100644 > index 00000000..12bb017 > --- /dev/null > +++ b/drivers/misc/pvpanic/Kconfig > @@ -0,0 +1,14 @@ > +config PVPANIC > + bool "pvpanic device support" > + depends on PVPANIC_MMIO > + help > + This option enable generic code for pvpanic device driver logic. > + > +config PVPANIC_MMIO > + tristate "pvpanic mmio device support" MMIO Also capitalize PCI in the other patch in the similar location. > + depends on HAS_IOMEM && (ACPI || OF) > + select PVPANIC > + help > + This driver provides support for the pvpanic device. pvpanic is > + a paravirtualized device provided by QEMU; it lets a virtual machine > + (guest) communicate panic events to the host. thanks. -- ~Randy ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code 2021-02-03 14:43 ` [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code Mihai Carabas @ 2021-02-03 19:57 ` kernel test robot 2021-02-03 17:13 ` Randy Dunlap ` (2 subsequent siblings) 3 siblings, 0 replies; 12+ messages in thread From: kernel test robot @ 2021-02-03 19:57 UTC (permalink / raw) To: Mihai Carabas, linux-kernel Cc: kbuild-all, gregkh, arnd, andriy.shevchenko, bobo.shaobowang, Mihai Carabas [-- Attachment #1: Type: text/plain, Size: 2849 bytes --] Hi Mihai, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linux/master] [also build test WARNING on soc/for-next linus/master v5.11-rc6 next-20210125] [cannot apply to char-misc/char-misc-testing] [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/Mihai-Carabas/misc-pvpanic-split-up-generic-and-platform-dependent-code/20210203-234431 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2ab38c17aac10bf55ab3efde4c4db3893d8691d2 config: m68k-allmodconfig (attached as .config) compiler: m68k-linux-gcc (GCC) 9.3.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/a1b3e466013502c380f409d8a4635c796f8fc1ef git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Mihai-Carabas/misc-pvpanic-split-up-generic-and-platform-dependent-code/20210203-234431 git checkout a1b3e466013502c380f409d8a4635c796f8fc1ef # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): In file included from drivers/misc/pvpanic/pvpanic-mmio.c:19: >> drivers/misc/pvpanic/pvpanic.h:12: warning: "pr_fmt" redefined 12 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | In file included from include/linux/kernel.h:16, from include/asm-generic/bug.h:20, from arch/m68k/include/asm/bug.h:32, from include/linux/bug.h:5, from include/linux/io.h:11, from drivers/misc/pvpanic/pvpanic-mmio.c:10: include/linux/printk.h:301: note: this is the location of the previous definition 301 | #define pr_fmt(fmt) fmt | -- >> drivers/misc/pvpanic/pvpanic.c:47:6: warning: no previous prototype for 'pvpanic_probe' [-Wmissing-prototypes] 47 | void pvpanic_probe(void __iomem *pbase) | ^~~~~~~~~~~~~ >> drivers/misc/pvpanic/pvpanic.c:54:6: warning: no previous prototype for 'pvpanic_remove' [-Wmissing-prototypes] 54 | void pvpanic_remove(void) | ^~~~~~~~~~~~~~ vim +/pr_fmt +12 drivers/misc/pvpanic/pvpanic.h 10 11 > 12 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 13 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 59615 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code @ 2021-02-03 19:57 ` kernel test robot 0 siblings, 0 replies; 12+ messages in thread From: kernel test robot @ 2021-02-03 19:57 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 2913 bytes --] Hi Mihai, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linux/master] [also build test WARNING on soc/for-next linus/master v5.11-rc6 next-20210125] [cannot apply to char-misc/char-misc-testing] [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/Mihai-Carabas/misc-pvpanic-split-up-generic-and-platform-dependent-code/20210203-234431 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2ab38c17aac10bf55ab3efde4c4db3893d8691d2 config: m68k-allmodconfig (attached as .config) compiler: m68k-linux-gcc (GCC) 9.3.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/a1b3e466013502c380f409d8a4635c796f8fc1ef git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Mihai-Carabas/misc-pvpanic-split-up-generic-and-platform-dependent-code/20210203-234431 git checkout a1b3e466013502c380f409d8a4635c796f8fc1ef # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): In file included from drivers/misc/pvpanic/pvpanic-mmio.c:19: >> drivers/misc/pvpanic/pvpanic.h:12: warning: "pr_fmt" redefined 12 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | In file included from include/linux/kernel.h:16, from include/asm-generic/bug.h:20, from arch/m68k/include/asm/bug.h:32, from include/linux/bug.h:5, from include/linux/io.h:11, from drivers/misc/pvpanic/pvpanic-mmio.c:10: include/linux/printk.h:301: note: this is the location of the previous definition 301 | #define pr_fmt(fmt) fmt | -- >> drivers/misc/pvpanic/pvpanic.c:47:6: warning: no previous prototype for 'pvpanic_probe' [-Wmissing-prototypes] 47 | void pvpanic_probe(void __iomem *pbase) | ^~~~~~~~~~~~~ >> drivers/misc/pvpanic/pvpanic.c:54:6: warning: no previous prototype for 'pvpanic_remove' [-Wmissing-prototypes] 54 | void pvpanic_remove(void) | ^~~~~~~~~~~~~~ vim +/pr_fmt +12 drivers/misc/pvpanic/pvpanic.h 10 11 > 12 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 13 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 59615 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code 2021-02-03 14:43 ` [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code Mihai Carabas @ 2021-02-03 23:18 ` kernel test robot 2021-02-03 17:13 ` Randy Dunlap ` (2 subsequent siblings) 3 siblings, 0 replies; 12+ messages in thread From: kernel test robot @ 2021-02-03 23:18 UTC (permalink / raw) To: Mihai Carabas, linux-kernel Cc: kbuild-all, gregkh, arnd, andriy.shevchenko, bobo.shaobowang, Mihai Carabas [-- Attachment #1: Type: text/plain, Size: 1859 bytes --] Hi Mihai, Thank you for the patch! Yet something to improve: [auto build test ERROR on linux/master] [also build test ERROR on soc/for-next linus/master v5.11-rc6] [cannot apply to char-misc/char-misc-testing] [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/Mihai-Carabas/misc-pvpanic-split-up-generic-and-platform-dependent-code/20210203-234431 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2ab38c17aac10bf55ab3efde4c4db3893d8691d2 config: s390-allmodconfig (attached as .config) compiler: s390-linux-gcc (GCC) 9.3.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/a1b3e466013502c380f409d8a4635c796f8fc1ef git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Mihai-Carabas/misc-pvpanic-split-up-generic-and-platform-dependent-code/20210203-234431 git checkout a1b3e466013502c380f409d8a4635c796f8fc1ef # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>, old ones prefixed by <<): >> ERROR: modpost: "pvpanic_probe" [drivers/misc/pvpanic/pvpanic-mmio.ko] undefined! >> ERROR: modpost: "pvpanic_remove" [drivers/misc/pvpanic/pvpanic-mmio.ko] undefined! --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 51780 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code @ 2021-02-03 23:18 ` kernel test robot 0 siblings, 0 replies; 12+ messages in thread From: kernel test robot @ 2021-02-03 23:18 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 1897 bytes --] Hi Mihai, Thank you for the patch! Yet something to improve: [auto build test ERROR on linux/master] [also build test ERROR on soc/for-next linus/master v5.11-rc6] [cannot apply to char-misc/char-misc-testing] [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/Mihai-Carabas/misc-pvpanic-split-up-generic-and-platform-dependent-code/20210203-234431 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2ab38c17aac10bf55ab3efde4c4db3893d8691d2 config: s390-allmodconfig (attached as .config) compiler: s390-linux-gcc (GCC) 9.3.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/a1b3e466013502c380f409d8a4635c796f8fc1ef git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Mihai-Carabas/misc-pvpanic-split-up-generic-and-platform-dependent-code/20210203-234431 git checkout a1b3e466013502c380f409d8a4635c796f8fc1ef # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>, old ones prefixed by <<): >> ERROR: modpost: "pvpanic_probe" [drivers/misc/pvpanic/pvpanic-mmio.ko] undefined! >> ERROR: modpost: "pvpanic_remove" [drivers/misc/pvpanic/pvpanic-mmio.ko] undefined! --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 51780 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/2] misc/pvpanic: add pci driver 2021-02-03 14:43 [PATCH] add support for pci in the pvpanic driver Mihai Carabas 2021-02-03 14:43 ` [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code Mihai Carabas @ 2021-02-03 14:43 ` Mihai Carabas 2021-02-03 15:41 ` Greg KH 2021-02-03 15:44 ` Greg KH 1 sibling, 2 replies; 12+ messages in thread From: Mihai Carabas @ 2021-02-03 14:43 UTC (permalink / raw) To: linux-kernel Cc: gregkh, arnd, andriy.shevchenko, bobo.shaobowang, Mihai Carabas Add pvpanic pci device driver support. Signed-off-by: Mihai Carabas <mihai.carabas@oracle.com> --- drivers/misc/pvpanic/Kconfig | 16 ++++++++++- drivers/misc/pvpanic/Makefile | 7 +++++ drivers/misc/pvpanic/pvpanic-pci.c | 54 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 drivers/misc/pvpanic/pvpanic-pci.c diff --git a/drivers/misc/pvpanic/Kconfig b/drivers/misc/pvpanic/Kconfig index 12bb017..4a96e8d 100644 --- a/drivers/misc/pvpanic/Kconfig +++ b/drivers/misc/pvpanic/Kconfig @@ -1,6 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# pvpanic device +# + config PVPANIC bool "pvpanic device support" - depends on PVPANIC_MMIO + depends on (PVPANIC_MMIO || PVPANIC_PCI) help This option enable generic code for pvpanic device driver logic. @@ -12,3 +17,12 @@ config PVPANIC_MMIO This driver provides support for the pvpanic device. pvpanic is a paravirtualized device provided by QEMU; it lets a virtual machine (guest) communicate panic events to the host. + +config PVPANIC_PCI + tristate "pvpanic pci device support" + depends on PCI + select PVPANIC + help + This driver provides support for the pvpanic device. pvpanic is + a paravirtualized device provided by QEMU; it lets a virtual machine + (guest) communicate panic events to the host. diff --git a/drivers/misc/pvpanic/Makefile b/drivers/misc/pvpanic/Makefile index d08379b..fe57d1f 100644 --- a/drivers/misc/pvpanic/Makefile +++ b/drivers/misc/pvpanic/Makefile @@ -1,2 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# Makefile for pvpanic device. +# + + obj-$(CONFIG_PVPANIC) += pvpanic.o obj-$(CONFIG_PVPANIC_MMIO) += pvpanic-mmio.o +obj-$(CONFIG_PVPANIC_PCI) += pvpanic-pci.o diff --git a/drivers/misc/pvpanic/pvpanic-pci.c b/drivers/misc/pvpanic/pvpanic-pci.c new file mode 100644 index 00000000..1d25d11 --- /dev/null +++ b/drivers/misc/pvpanic/pvpanic-pci.c @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * pvpanic pci driver. + * + * Copyright (C) 2021 Oracle. + */ + +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/pci.h> +#include <linux/types.h> +#include "pvpanic.h" + +#define PCI_VENDOR_ID_REDHAT 0x1b36 +#define PCI_DEVICE_ID_REDHAT_PVPANIC 0x0011 + +static const struct pci_device_id pvpanic_pci_id_tbl[] = { + { PCI_DEVICE(PCI_VENDOR_ID_REDHAT, PCI_DEVICE_ID_REDHAT_PVPANIC),}, + {} +}; + +static int pvpanic_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *ent) +{ + int ret; + struct resource res; + void __iomem *base; + + ret = pcim_enable_device(pdev); + if (ret < 0) + return ret; + + base = pci_iomap(pdev, 0, 0); + if (IS_ERR(base)) + return PTR_ERR(base); + + pvpanic_probe(base); + + return 0; +} + +static void pvpanic_pci_remove(struct pci_dev *pdev) +{ + pvpanic_remove(); +} + +static struct pci_driver pvpanic_pci_driver = { + .name = "pvpanic-pci", + .id_table = pvpanic_pci_id_tbl, + .probe = pvpanic_pci_probe, + .remove = pvpanic_pci_remove, +}; + +module_pci_driver(pvpanic_pci_driver); -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] misc/pvpanic: add pci driver 2021-02-03 14:43 ` [PATCH 2/2] misc/pvpanic: add pci driver Mihai Carabas @ 2021-02-03 15:41 ` Greg KH 2021-02-03 15:44 ` Greg KH 1 sibling, 0 replies; 12+ messages in thread From: Greg KH @ 2021-02-03 15:41 UTC (permalink / raw) To: Mihai Carabas; +Cc: linux-kernel, arnd, andriy.shevchenko, bobo.shaobowang On Wed, Feb 03, 2021 at 04:43:59PM +0200, Mihai Carabas wrote: > Add pvpanic pci device driver support. What does that mean? Please provide more changelog text here. > > Signed-off-by: Mihai Carabas <mihai.carabas@oracle.com> > --- > drivers/misc/pvpanic/Kconfig | 16 ++++++++++- > drivers/misc/pvpanic/Makefile | 7 +++++ > drivers/misc/pvpanic/pvpanic-pci.c | 54 ++++++++++++++++++++++++++++++++++++++ > 3 files changed, 76 insertions(+), 1 deletion(-) > create mode 100644 drivers/misc/pvpanic/pvpanic-pci.c > > diff --git a/drivers/misc/pvpanic/Kconfig b/drivers/misc/pvpanic/Kconfig > index 12bb017..4a96e8d 100644 > --- a/drivers/misc/pvpanic/Kconfig > +++ b/drivers/misc/pvpanic/Kconfig > @@ -1,6 +1,11 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +# > +# pvpanic device > +# While nice, why add this now? > + > config PVPANIC > bool "pvpanic device support" > - depends on PVPANIC_MMIO > + depends on (PVPANIC_MMIO || PVPANIC_PCI) > help > This option enable generic code for pvpanic device driver logic. > > @@ -12,3 +17,12 @@ config PVPANIC_MMIO > This driver provides support for the pvpanic device. pvpanic is > a paravirtualized device provided by QEMU; it lets a virtual machine > (guest) communicate panic events to the host. > + > +config PVPANIC_PCI > + tristate "pvpanic pci device support" > + depends on PCI > + select PVPANIC > + help > + This driver provides support for the pvpanic device. pvpanic is > + a paravirtualized device provided by QEMU; it lets a virtual machine > + (guest) communicate panic events to the host. > diff --git a/drivers/misc/pvpanic/Makefile b/drivers/misc/pvpanic/Makefile > index d08379b..fe57d1f 100644 > --- a/drivers/misc/pvpanic/Makefile > +++ b/drivers/misc/pvpanic/Makefile > @@ -1,2 +1,9 @@ > +# SPDX-License-Identifier: GPL-2.0 > +# > +# Makefile for pvpanic device. > +# Again, nice, but nothing to do with this change. Please only do "one thing" per patch. thanks, greg k-h ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] misc/pvpanic: add pci driver 2021-02-03 14:43 ` [PATCH 2/2] misc/pvpanic: add pci driver Mihai Carabas 2021-02-03 15:41 ` Greg KH @ 2021-02-03 15:44 ` Greg KH 1 sibling, 0 replies; 12+ messages in thread From: Greg KH @ 2021-02-03 15:44 UTC (permalink / raw) To: Mihai Carabas; +Cc: linux-kernel, arnd, andriy.shevchenko, bobo.shaobowang On Wed, Feb 03, 2021 at 04:43:59PM +0200, Mihai Carabas wrote: > Add pvpanic pci device driver support. > > Signed-off-by: Mihai Carabas <mihai.carabas@oracle.com> > --- > drivers/misc/pvpanic/Kconfig | 16 ++++++++++- > drivers/misc/pvpanic/Makefile | 7 +++++ > drivers/misc/pvpanic/pvpanic-pci.c | 54 ++++++++++++++++++++++++++++++++++++++ > 3 files changed, 76 insertions(+), 1 deletion(-) > create mode 100644 drivers/misc/pvpanic/pvpanic-pci.c > > diff --git a/drivers/misc/pvpanic/Kconfig b/drivers/misc/pvpanic/Kconfig > index 12bb017..4a96e8d 100644 > --- a/drivers/misc/pvpanic/Kconfig > +++ b/drivers/misc/pvpanic/Kconfig > @@ -1,6 +1,11 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +# > +# pvpanic device > +# > + > config PVPANIC > bool "pvpanic device support" > - depends on PVPANIC_MMIO > + depends on (PVPANIC_MMIO || PVPANIC_PCI) > help > This option enable generic code for pvpanic device driver logic. > > @@ -12,3 +17,12 @@ config PVPANIC_MMIO > This driver provides support for the pvpanic device. pvpanic is > a paravirtualized device provided by QEMU; it lets a virtual machine > (guest) communicate panic events to the host. > + > +config PVPANIC_PCI > + tristate "pvpanic pci device support" > + depends on PCI > + select PVPANIC > + help > + This driver provides support for the pvpanic device. pvpanic is > + a paravirtualized device provided by QEMU; it lets a virtual machine > + (guest) communicate panic events to the host. > diff --git a/drivers/misc/pvpanic/Makefile b/drivers/misc/pvpanic/Makefile > index d08379b..fe57d1f 100644 > --- a/drivers/misc/pvpanic/Makefile > +++ b/drivers/misc/pvpanic/Makefile > @@ -1,2 +1,9 @@ > +# SPDX-License-Identifier: GPL-2.0 > +# > +# Makefile for pvpanic device. > +# > + > + > obj-$(CONFIG_PVPANIC) += pvpanic.o > obj-$(CONFIG_PVPANIC_MMIO) += pvpanic-mmio.o > +obj-$(CONFIG_PVPANIC_PCI) += pvpanic-pci.o > diff --git a/drivers/misc/pvpanic/pvpanic-pci.c b/drivers/misc/pvpanic/pvpanic-pci.c > new file mode 100644 > index 00000000..1d25d11 > --- /dev/null > +++ b/drivers/misc/pvpanic/pvpanic-pci.c > @@ -0,0 +1,54 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * pvpanic pci driver. > + * > + * Copyright (C) 2021 Oracle. > + */ > + > +#include <linux/kernel.h> > +#include <linux/module.h> > +#include <linux/pci.h> > +#include <linux/types.h> > +#include "pvpanic.h" > + > +#define PCI_VENDOR_ID_REDHAT 0x1b36 > +#define PCI_DEVICE_ID_REDHAT_PVPANIC 0x0011 > + > +static const struct pci_device_id pvpanic_pci_id_tbl[] = { > + { PCI_DEVICE(PCI_VENDOR_ID_REDHAT, PCI_DEVICE_ID_REDHAT_PVPANIC),}, > + {} > +}; > + > +static int pvpanic_pci_probe(struct pci_dev *pdev, > + const struct pci_device_id *ent) > +{ > + int ret; > + struct resource res; > + void __iomem *base; > + > + ret = pcim_enable_device(pdev); > + if (ret < 0) > + return ret; > + > + base = pci_iomap(pdev, 0, 0); > + if (IS_ERR(base)) > + return PTR_ERR(base); > + > + pvpanic_probe(base); > + > + return 0; > +} > + > +static void pvpanic_pci_remove(struct pci_dev *pdev) > +{ > + pvpanic_remove(); So no real device here? That feels really wrong, you can't have a single global instance anymore :( thanks, greg k-h ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] add support for pci in the pvpanic driver @ 2020-10-29 11:43 Mihai Carabas 0 siblings, 0 replies; 12+ messages in thread From: Mihai Carabas @ 2020-10-29 11:43 UTC (permalink / raw) To: linux-kernel; +Cc: Mihai Carabas This patchset adds support for pci in the pvpanic driver. They were assembled from an old RFC from 2019 [1] which was left unmerged. In order to test this, you need also to apply the patches I have sent for pci pvpanic support in qemu [2]. [1] https://lwn.net/ml/linux-kernel/1550575668-6240-1-git-send-email-peng.hao2@zte.com.cn/ [2] https://lists.nongnu.org/archive/html/qemu-devel/2020-10/msg08709.html Peng Hao (4): misc/pvpanic : preparing for pvpanic driver framework misc/pvpanic: Add pvpanic driver framework misc/pvpanic: Avoid initializing multiple pvpanic devices misc/pvpanic: add new pvpanic pci driver drivers/misc/Kconfig | 1 + drivers/misc/Makefile | 2 +- drivers/misc/pvpanic.c | 196 ------------------------------------ drivers/misc/pvpanic/Kconfig | 34 +++++++ drivers/misc/pvpanic/Makefile | 8 ++ drivers/misc/pvpanic/pvpanic-acpi.c | 77 ++++++++++++++ drivers/misc/pvpanic/pvpanic-of.c | 53 ++++++++++ drivers/misc/pvpanic/pvpanic-pci.c | 56 +++++++++++ drivers/misc/pvpanic/pvpanic.c | 150 +++++++++++++++++++++++++++ drivers/misc/pvpanic/pvpanic.h | 15 +++ 10 files changed, 395 insertions(+), 197 deletions(-) delete mode 100644 drivers/misc/pvpanic.c create mode 100644 drivers/misc/pvpanic/Kconfig create mode 100644 drivers/misc/pvpanic/Makefile create mode 100644 drivers/misc/pvpanic/pvpanic-acpi.c create mode 100644 drivers/misc/pvpanic/pvpanic-of.c create mode 100644 drivers/misc/pvpanic/pvpanic-pci.c create mode 100644 drivers/misc/pvpanic/pvpanic.c create mode 100644 drivers/misc/pvpanic/pvpanic.h -- 1.8.3.1 ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2021-02-03 23:21 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-02-03 14:43 [PATCH] add support for pci in the pvpanic driver Mihai Carabas 2021-02-03 14:43 ` [PATCH 1/2] misc/pvpanic: split-up generic and platform dependent code Mihai Carabas 2021-02-03 15:44 ` Greg KH 2021-02-03 17:13 ` Randy Dunlap 2021-02-03 19:57 ` kernel test robot 2021-02-03 19:57 ` kernel test robot 2021-02-03 23:18 ` kernel test robot 2021-02-03 23:18 ` kernel test robot 2021-02-03 14:43 ` [PATCH 2/2] misc/pvpanic: add pci driver Mihai Carabas 2021-02-03 15:41 ` Greg KH 2021-02-03 15:44 ` Greg KH -- strict thread matches above, loose matches on Subject: below -- 2020-10-29 11:43 [PATCH] add support for pci in the pvpanic driver Mihai Carabas
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.