From: WeiXiong Liao <liaoweixiong@allwinnertech.com> To: Kees Cook <keescook@chromium.org>, Anton Vorontsov <anton@enomsg.org>, Colin Cross <ccross@android.com>, Tony Luck <tony.luck@intel.com>, Jonathan Corbet <corbet@lwn.net>, Miquel Raynal <miquel.raynal@bootlin.com>, Richard Weinberger <richard@nod.at>, Vignesh Raghavendra <vigneshr@ti.com>, Petr Mladek <pmladek@suse.com>, Sergey Senozhatsky <sergey.senozhatsky@gmail.com>, Steven Rostedt <rostedt@goodmis.org>, Mauro Carvalho Chehab <mchehab+huawei@kernel.org>, "David S. Miller" <davem@davemloft.net>, Rob Herring <robh@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Pavel Tatashin <pasha.tatashin@soleen.com> Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org, WeiXiong Liao <liaoweixiong@allwinnertech.com> Subject: [PATCH v5 10/12] pstore/blk: Provide way to query pstore configuration Date: Sat, 9 May 2020 19:14:12 +0800 [thread overview] Message-ID: <1589022854-19821-11-git-send-email-liaoweixiong@allwinnertech.com> (raw) In-Reply-To: <1589022854-19821-1-git-send-email-liaoweixiong@allwinnertech.com> In order to configure itself, the MTD backend needs to be able to query the current pstore configuration. Introduce pstore_blk_usr_info() for this purpose. Signed-off-by: WeiXiong Liao <liaoweixiong@allwinnertech.com> Link: https://lore.kernel.org/r/1585126506-18635-10-git-send-email-liaoweixiong@allwinnertech.com Signed-off-by: Kees Cook <keescook@chromium.org> --- fs/pstore/blk.c | 37 ++++++++++++++++++++++++++++++------- include/linux/pstore_blk.h | 10 ++++++++++ 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/fs/pstore/blk.c b/fs/pstore/blk.c index bf27dbd18db2..a6d578f9df2a 100644 --- a/fs/pstore/blk.c +++ b/fs/pstore/blk.c @@ -86,6 +86,17 @@ sector_t start_sect; } g_bdev_info; +#define check_size(name, alignsize) ({ \ + long _##name_ = (name); \ + _##name_ = _##name_ <= 0 ? 0 : (_##name_ * 1024); \ + if (_##name_ & ((alignsize) - 1)) { \ + pr_info(#name " must align to %d\n", \ + (alignsize)); \ + _##name_ = ALIGN(name, (alignsize)); \ + } \ + _##name_; \ +}) + /** * struct psblk_device - back-end pstore/blk driver structure. * @@ -140,13 +151,11 @@ static int psblk_register_do(struct psblk_device *dev) if (!dev->flags) dev->flags = UINT_MAX; #define verify_size(name, alignsize, enable) { \ - long _##name_ = (enable) ? (name) : 0; \ - _##name_ = _##name_ <= 0 ? 0 : (_##name_ * 1024); \ - if (_##name_ & ((alignsize) - 1)) { \ - pr_info(#name " must align to %d\n", \ - (alignsize)); \ - _##name_ = ALIGN(name, (alignsize)); \ - } \ + long _##name_; \ + if (enable) \ + _##name_ = check_size(name, alignsize); \ + else \ + _##name_ = 0; \ name = _##name_ / 1024; \ pstore_zone_info->name = _##name_; \ } @@ -465,6 +474,20 @@ int psblk_blkdev_info(dev_t *devt, sector_t *nr_sects, sector_t *start_sect) } EXPORT_SYMBOL_GPL(psblk_blkdev_info); +/* get information of pstore/blk */ +int pstore_blk_usr_info(struct pstore_blk_info *info) +{ + strncpy(info->device, blkdev, 80); + info->max_reason = max_reason; + info->kmsg_size = check_size(kmsg_size, 4096); + info->pmsg_size = check_size(pmsg_size, 4096); + info->ftrace_size = check_size(ftrace_size, 4096); + info->console_size = check_size(console_size, 4096); + + return 0; +} +EXPORT_SYMBOL_GPL(pstore_blk_usr_info); + MODULE_LICENSE("GPL"); MODULE_AUTHOR("WeiXiong Liao <liaoweixiong@allwinnertech.com>"); MODULE_DESCRIPTION("pstore backend for block devices"); diff --git a/include/linux/pstore_blk.h b/include/linux/pstore_blk.h index 828b0763d477..dd5213044e21 100644 --- a/include/linux/pstore_blk.h +++ b/include/linux/pstore_blk.h @@ -27,4 +27,14 @@ int psblk_register_blkdev(unsigned int major, unsigned int flags, void psblk_unregister_blkdev(unsigned int major); int psblk_blkdev_info(dev_t *devt, sector_t *nr_sects, sector_t *start_sect); +struct pstore_blk_info { + char device[80]; + enum kmsg_dump_reason max_reason; + unsigned long kmsg_size; + unsigned long pmsg_size; + unsigned long console_size; + unsigned long ftrace_size; +}; +int pstore_blk_usr_info(struct pstore_blk_info *info); + #endif -- 1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: WeiXiong Liao <liaoweixiong@allwinnertech.com> To: Kees Cook <keescook@chromium.org>, Anton Vorontsov <anton@enomsg.org>, Colin Cross <ccross@android.com>, Tony Luck <tony.luck@intel.com>, Jonathan Corbet <corbet@lwn.net>, Miquel Raynal <miquel.raynal@bootlin.com>, Richard Weinberger <richard@nod.at>, Vignesh Raghavendra <vigneshr@ti.com>, Petr Mladek <pmladek@suse.com>, Sergey Senozhatsky <sergey.senozhatsky@gmail.com>, Steven Rostedt <rostedt@goodmis.org>, Mauro Carvalho Chehab <mchehab+huawei@kernel.org>, "David S. Miller" <davem@davemloft.net>, Rob Herring <robh@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Pavel Tatashin <pasha.tatashin@soleen.com> Cc: WeiXiong Liao <liaoweixiong@allwinnertech.com>, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Subject: [PATCH v5 10/12] pstore/blk: Provide way to query pstore configuration Date: Sat, 9 May 2020 19:14:12 +0800 [thread overview] Message-ID: <1589022854-19821-11-git-send-email-liaoweixiong@allwinnertech.com> (raw) In-Reply-To: <1589022854-19821-1-git-send-email-liaoweixiong@allwinnertech.com> In order to configure itself, the MTD backend needs to be able to query the current pstore configuration. Introduce pstore_blk_usr_info() for this purpose. Signed-off-by: WeiXiong Liao <liaoweixiong@allwinnertech.com> Link: https://lore.kernel.org/r/1585126506-18635-10-git-send-email-liaoweixiong@allwinnertech.com Signed-off-by: Kees Cook <keescook@chromium.org> --- fs/pstore/blk.c | 37 ++++++++++++++++++++++++++++++------- include/linux/pstore_blk.h | 10 ++++++++++ 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/fs/pstore/blk.c b/fs/pstore/blk.c index bf27dbd18db2..a6d578f9df2a 100644 --- a/fs/pstore/blk.c +++ b/fs/pstore/blk.c @@ -86,6 +86,17 @@ sector_t start_sect; } g_bdev_info; +#define check_size(name, alignsize) ({ \ + long _##name_ = (name); \ + _##name_ = _##name_ <= 0 ? 0 : (_##name_ * 1024); \ + if (_##name_ & ((alignsize) - 1)) { \ + pr_info(#name " must align to %d\n", \ + (alignsize)); \ + _##name_ = ALIGN(name, (alignsize)); \ + } \ + _##name_; \ +}) + /** * struct psblk_device - back-end pstore/blk driver structure. * @@ -140,13 +151,11 @@ static int psblk_register_do(struct psblk_device *dev) if (!dev->flags) dev->flags = UINT_MAX; #define verify_size(name, alignsize, enable) { \ - long _##name_ = (enable) ? (name) : 0; \ - _##name_ = _##name_ <= 0 ? 0 : (_##name_ * 1024); \ - if (_##name_ & ((alignsize) - 1)) { \ - pr_info(#name " must align to %d\n", \ - (alignsize)); \ - _##name_ = ALIGN(name, (alignsize)); \ - } \ + long _##name_; \ + if (enable) \ + _##name_ = check_size(name, alignsize); \ + else \ + _##name_ = 0; \ name = _##name_ / 1024; \ pstore_zone_info->name = _##name_; \ } @@ -465,6 +474,20 @@ int psblk_blkdev_info(dev_t *devt, sector_t *nr_sects, sector_t *start_sect) } EXPORT_SYMBOL_GPL(psblk_blkdev_info); +/* get information of pstore/blk */ +int pstore_blk_usr_info(struct pstore_blk_info *info) +{ + strncpy(info->device, blkdev, 80); + info->max_reason = max_reason; + info->kmsg_size = check_size(kmsg_size, 4096); + info->pmsg_size = check_size(pmsg_size, 4096); + info->ftrace_size = check_size(ftrace_size, 4096); + info->console_size = check_size(console_size, 4096); + + return 0; +} +EXPORT_SYMBOL_GPL(pstore_blk_usr_info); + MODULE_LICENSE("GPL"); MODULE_AUTHOR("WeiXiong Liao <liaoweixiong@allwinnertech.com>"); MODULE_DESCRIPTION("pstore backend for block devices"); diff --git a/include/linux/pstore_blk.h b/include/linux/pstore_blk.h index 828b0763d477..dd5213044e21 100644 --- a/include/linux/pstore_blk.h +++ b/include/linux/pstore_blk.h @@ -27,4 +27,14 @@ int psblk_register_blkdev(unsigned int major, unsigned int flags, void psblk_unregister_blkdev(unsigned int major); int psblk_blkdev_info(dev_t *devt, sector_t *nr_sects, sector_t *start_sect); +struct pstore_blk_info { + char device[80]; + enum kmsg_dump_reason max_reason; + unsigned long kmsg_size; + unsigned long pmsg_size; + unsigned long console_size; + unsigned long ftrace_size; +}; +int pstore_blk_usr_info(struct pstore_blk_info *info); + #endif -- 1.9.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2020-05-09 11:15 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-09 11:14 [PATCH v5 00/12] pstore: mtd: support crash log to block and mtd device WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 01/12] printk: pstore: Introduce kmsg_dump_reason_str() WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 02/12] pstore/zone: Introduce common layer to manage storage zones WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 03/12] pstore/blk: Introduce backend for block devices WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 04/12] pstore/blk: Provide way to choose pstore frontend support WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 05/12] pstore/blk: Add support for pmsg frontend WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 06/12] pstore/blk: Add console frontend support WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 07/12] pstore/blk: Add ftrace " WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 08/12] Documentation: Add details for pstore/blk WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 09/12] pstore/zone: Provide way to skip "broken" zone for MTD devices WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao [this message] 2020-05-09 11:14 ` [PATCH v5 10/12] pstore/blk: Provide way to query pstore configuration WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 11/12] pstore/blk: Support non-block storage devices WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao 2020-05-09 11:14 ` [PATCH v5 12/12] mtd: Support kmsg dumper based on pstore/blk WeiXiong Liao 2020-05-09 11:14 ` WeiXiong Liao
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1589022854-19821-11-git-send-email-liaoweixiong@allwinnertech.com \ --to=liaoweixiong@allwinnertech.com \ --cc=anton@enomsg.org \ --cc=ccross@android.com \ --cc=corbet@lwn.net \ --cc=davem@davemloft.net \ --cc=gregkh@linuxfoundation.org \ --cc=keescook@chromium.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mtd@lists.infradead.org \ --cc=mchehab+huawei@kernel.org \ --cc=miquel.raynal@bootlin.com \ --cc=pasha.tatashin@soleen.com \ --cc=pmladek@suse.com \ --cc=richard@nod.at \ --cc=robh@kernel.org \ --cc=rostedt@goodmis.org \ --cc=sergey.senozhatsky@gmail.com \ --cc=tony.luck@intel.com \ --cc=vigneshr@ti.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.