From: Boaz Harrosh <boaz@plexistor.com> To: Ingo Molnar <mingo@redhat.com>, x86@kernel.org, linux-kernel <linux-kernel@vger.kernel.org>, "Roger C. Pao" <rcpao.enmotus@gmail.com>, Dan Williams <dan.j.williams@intel.com>, Thomas Gleixner <tglx@linutronix.de>, linux-nvdimm <linux-nvdimm@lists.01.org>, "H. Peter Anvin" <hpa@zytor.com>, Matthew Wilcox <willy@linux.intel.com>, Andy Lutomirski <luto@amacapital.net>, Christoph Hellwig <hch@infradead.org> Cc: Ross Zwisler <ross.zwisler@linux.intel.com> Subject: [PATCH 2/3] resource: Add new flag IORESOURCE_MEM_WARN Date: Thu, 05 Mar 2015 12:21:53 +0200 [thread overview] Message-ID: <54F82E41.9050203@plexistor.com> (raw) In-Reply-To: <54F82CE0.4040502@plexistor.com> memory resource providers set this flag if they want that request_region will print a warning in dmesg if this particular memory resource is locked by a driver. Thous acting as a Protocol Police about experimental devices that did not pass a committee approval. The Only user of this flag is x86/kernel/e820.c that wants to WARN about UNKNOWN memory types. NOTE: It would be preferred if I defined a general flag say IORESOURCE_WARN, where any kind of resource provider can WARN on use, but we have run out of flags in the 32bit long systems. So I defined a free bit from the resource specific flags for mem resources. This is why I need to check if this is a memory resource first so not to conflict with other resource specific flags. (Though actually no one is using this specific bit) CC: Thomas Gleixner <tglx@linutronix.de> CC: Ingo Molnar <mingo@redhat.com> CC: "H. Peter Anvin" <hpa@zytor.com> CC: x86@kernel.org CC: Dan Williams <dan.j.williams@intel.com> CC: Andrew Morton <akpm@linux-foundation.org> CC: Bjorn Helgaas <bhelgaas@google.com> CC: Vivek Goyal <vgoyal@redhat.com> Signed-off-by: Boaz Harrosh <boaz@plexistor.com> --- arch/x86/kernel/e820.c | 3 +++ include/linux/ioport.h | 1 + kernel/resource.c | 11 ++++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index c3a11cd..c2f2da2 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -961,6 +961,9 @@ void __init e820_reserve_resources(void) res->flags = IORESOURCE_MEM; + if (_is_unknown_type(e820.map[i].type)) + res->flags |= IORESOURCE_MEM_WARN; + /* * don't register the region that could be conflicted with * pci device BAR resource and insert them later in diff --git a/include/linux/ioport.h b/include/linux/ioport.h index 2c525022..f78972b 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -90,6 +90,7 @@ struct resource { #define IORESOURCE_MEM_32BIT (3<<3) #define IORESOURCE_MEM_SHADOWABLE (1<<5) /* dup: IORESOURCE_SHADOWABLE */ #define IORESOURCE_MEM_EXPANSIONROM (1<<6) +#define IORESOURCE_MEM_WARN (1<<7) /* WARN if requested by driver */ /* PnP I/O specific bits (IORESOURCE_BITS) */ #define IORESOURCE_IO_16BIT_ADDR (1<<0) diff --git a/kernel/resource.c b/kernel/resource.c index 19f2357..f886666 100644 --- a/kernel/resource.c +++ b/kernel/resource.c @@ -1075,8 +1075,17 @@ struct resource * __request_region(struct resource *parent, break; if (conflict != parent) { parent = conflict; - if (!(conflict->flags & IORESOURCE_BUSY)) + if (!(conflict->flags & IORESOURCE_BUSY)) { + if ((resource_type(conflict) == IORESOURCE_MEM) + && (conflict->flags & IORESOURCE_MEM_WARN)) { + add_taint(TAINT_FIRMWARE_WORKAROUND, + LOCKDEP_STILL_OK); + pr_warn("%s requested an unknown memory type [mem %#010llx-%#010llx] %s\n", + name, conflict->start, + conflict->end, conflict->name); + } continue; + } } if (conflict->flags & flags & IORESOURCE_MUXED) { add_wait_queue(&muxed_resource_wait, &wait); -- 1.9.3
WARNING: multiple messages have this Message-ID (diff)
From: Boaz Harrosh <boaz@plexistor.com> To: Ingo Molnar <mingo@redhat.com>, x86@kernel.org, linux-kernel <linux-kernel@vger.kernel.org>, "Roger C. Pao" <rcpao.enmotus@gmail.com>, Dan Williams <dan.j.williams@intel.com>, Thomas Gleixner <tglx@linutronix.de>, linux-nvdimm <linux-nvdimm@ml01.01.org>, "H. Peter Anvin" <hpa@zytor.com>, Matthew Wilcox <willy@linux.intel.com>, Andy Lutomirski <luto@amacapital.net>, Christoph Hellwig <hch@infradead.org> Cc: Ross Zwisler <ross.zwisler@linux.intel.com> Subject: [PATCH 2/3] resource: Add new flag IORESOURCE_MEM_WARN Date: Thu, 05 Mar 2015 12:21:53 +0200 [thread overview] Message-ID: <54F82E41.9050203@plexistor.com> (raw) In-Reply-To: <54F82CE0.4040502@plexistor.com> memory resource providers set this flag if they want that request_region will print a warning in dmesg if this particular memory resource is locked by a driver. Thous acting as a Protocol Police about experimental devices that did not pass a committee approval. The Only user of this flag is x86/kernel/e820.c that wants to WARN about UNKNOWN memory types. NOTE: It would be preferred if I defined a general flag say IORESOURCE_WARN, where any kind of resource provider can WARN on use, but we have run out of flags in the 32bit long systems. So I defined a free bit from the resource specific flags for mem resources. This is why I need to check if this is a memory resource first so not to conflict with other resource specific flags. (Though actually no one is using this specific bit) CC: Thomas Gleixner <tglx@linutronix.de> CC: Ingo Molnar <mingo@redhat.com> CC: "H. Peter Anvin" <hpa@zytor.com> CC: x86@kernel.org CC: Dan Williams <dan.j.williams@intel.com> CC: Andrew Morton <akpm@linux-foundation.org> CC: Bjorn Helgaas <bhelgaas@google.com> CC: Vivek Goyal <vgoyal@redhat.com> Signed-off-by: Boaz Harrosh <boaz@plexistor.com> --- arch/x86/kernel/e820.c | 3 +++ include/linux/ioport.h | 1 + kernel/resource.c | 11 ++++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index c3a11cd..c2f2da2 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -961,6 +961,9 @@ void __init e820_reserve_resources(void) res->flags = IORESOURCE_MEM; + if (_is_unknown_type(e820.map[i].type)) + res->flags |= IORESOURCE_MEM_WARN; + /* * don't register the region that could be conflicted with * pci device BAR resource and insert them later in diff --git a/include/linux/ioport.h b/include/linux/ioport.h index 2c525022..f78972b 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -90,6 +90,7 @@ struct resource { #define IORESOURCE_MEM_32BIT (3<<3) #define IORESOURCE_MEM_SHADOWABLE (1<<5) /* dup: IORESOURCE_SHADOWABLE */ #define IORESOURCE_MEM_EXPANSIONROM (1<<6) +#define IORESOURCE_MEM_WARN (1<<7) /* WARN if requested by driver */ /* PnP I/O specific bits (IORESOURCE_BITS) */ #define IORESOURCE_IO_16BIT_ADDR (1<<0) diff --git a/kernel/resource.c b/kernel/resource.c index 19f2357..f886666 100644 --- a/kernel/resource.c +++ b/kernel/resource.c @@ -1075,8 +1075,17 @@ struct resource * __request_region(struct resource *parent, break; if (conflict != parent) { parent = conflict; - if (!(conflict->flags & IORESOURCE_BUSY)) + if (!(conflict->flags & IORESOURCE_BUSY)) { + if ((resource_type(conflict) == IORESOURCE_MEM) + && (conflict->flags & IORESOURCE_MEM_WARN)) { + add_taint(TAINT_FIRMWARE_WORKAROUND, + LOCKDEP_STILL_OK); + pr_warn("%s requested an unknown memory type [mem %#010llx-%#010llx] %s\n", + name, conflict->start, + conflict->end, conflict->name); + } continue; + } } if (conflict->flags & flags & IORESOURCE_MUXED) { add_wait_queue(&muxed_resource_wait, &wait); -- 1.9.3
next prev parent reply other threads:[~2015-03-05 10:21 UTC|newest] Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-03-05 10:16 [PATCH 0/3 v5] e820: Fix handling of NvDIMM chips Boaz Harrosh 2015-03-05 10:16 ` Boaz Harrosh 2015-03-05 10:20 ` [PATCH 1/3] e820: Don't let unknown DIMM type come out BUSY Boaz Harrosh 2015-03-05 10:20 ` Boaz Harrosh 2015-03-05 20:41 ` Dan Williams 2015-03-05 20:41 ` Dan Williams 2015-03-09 10:54 ` Boaz Harrosh 2015-03-09 10:54 ` Boaz Harrosh 2015-03-05 10:21 ` Boaz Harrosh [this message] 2015-03-05 10:21 ` [PATCH 2/3] resource: Add new flag IORESOURCE_MEM_WARN Boaz Harrosh 2015-03-05 10:24 ` [PATCH 3/3] e820: Add the unknown-12 Memory type (DDR3-NvDIMM) Boaz Harrosh 2015-03-05 10:24 ` Boaz Harrosh 2015-03-05 20:56 ` Dan Williams 2015-03-05 20:56 ` Dan Williams 2015-03-05 23:09 ` Andy Lutomirski 2015-03-05 23:09 ` Andy Lutomirski 2015-03-09 12:10 ` Boaz Harrosh 2015-03-09 12:10 ` Boaz Harrosh 2015-03-10 5:11 ` joeyli 2015-03-10 5:11 ` joeyli 2015-03-10 8:56 ` Boaz Harrosh 2015-03-10 8:56 ` Boaz Harrosh 2015-03-10 13:19 ` Andy Lutomirski 2015-03-10 13:19 ` Andy Lutomirski 2015-03-09 11:19 ` Boaz Harrosh 2015-03-09 11:19 ` Boaz Harrosh 2015-03-09 14:44 ` Dan Williams 2015-03-09 14:44 ` Dan Williams 2015-03-09 15:14 ` Andy Lutomirski 2015-03-09 15:14 ` Andy Lutomirski 2015-03-09 15:17 ` Dan Williams 2015-03-09 15:17 ` Dan Williams 2015-03-10 8:47 ` Boaz Harrosh 2015-03-10 8:47 ` Boaz Harrosh 2015-03-05 10:32 ` [RFC 0/8] pmem: Submission of the Persistent memory block device Boaz Harrosh 2015-03-05 10:32 ` Boaz Harrosh 2015-03-05 11:55 ` [PATCH 1/8] pmem: Initial version of persistent memory driver Boaz Harrosh 2015-03-05 11:55 ` Boaz Harrosh 2015-03-05 20:35 ` Paul Bolle 2015-03-05 20:35 ` Paul Bolle 2015-03-05 23:03 ` Andy Lutomirski 2015-03-05 23:03 ` Andy Lutomirski 2015-03-09 12:20 ` Boaz Harrosh 2015-03-09 12:20 ` Boaz Harrosh 2015-03-18 18:06 ` Andy Lutomirski 2015-03-18 18:06 ` Andy Lutomirski 2015-03-26 4:00 ` Elliott, Robert (Server Storage) 2015-03-26 4:00 ` Elliott, Robert (Server Storage) 2015-03-26 7:51 ` Boaz Harrosh 2015-03-26 7:51 ` Boaz Harrosh 2015-03-26 21:31 ` Dave Chinner 2015-03-26 21:31 ` Dave Chinner 2015-03-18 17:43 ` Ross Zwisler 2015-03-18 17:43 ` Ross Zwisler 2015-03-19 9:24 ` Boaz Harrosh 2015-03-19 9:24 ` Boaz Harrosh 2015-03-20 0:11 ` Dan Williams 2015-03-20 0:11 ` Dan Williams 2015-03-05 11:55 ` [PATCH 2/8] pmem: KISS, remove register_blkdev Boaz Harrosh 2015-03-05 11:55 ` Boaz Harrosh 2015-03-05 11:56 ` [PATCH 3/8] pmem: Add support for rw_page() Boaz Harrosh 2015-03-05 11:56 ` Boaz Harrosh 2015-03-05 11:57 ` [PATCH 4/8] pmem: Add support for direct_access() Boaz Harrosh 2015-03-05 11:57 ` Boaz Harrosh 2015-03-05 11:58 ` [PATCH 5/8] mm: Let sparse_{add,remove}_one_section receive a node_id Boaz Harrosh 2015-03-05 11:58 ` Boaz Harrosh 2015-03-06 18:43 ` Ross Zwisler 2015-03-06 18:43 ` Ross Zwisler 2015-03-05 11:59 ` [PATCH 6/8] mm: New add_persistent_memory/remove_persistent_memory Boaz Harrosh 2015-03-05 11:59 ` Boaz Harrosh 2015-03-05 11:59 ` [PATCH 7/8] pmem: Add support for page structs Boaz Harrosh 2015-03-05 11:59 ` Boaz Harrosh 2015-03-23 20:59 ` Dan Williams 2015-03-23 20:59 ` Dan Williams 2015-03-05 12:01 ` [PATCH 8/8] OUT-OF-TREE: pmem: Allow request_mem to fail (BLK_DEV_PMEM_IGNORE_REQUEST_MEM_RET) Boaz Harrosh 2015-03-05 12:01 ` Boaz Harrosh 2015-03-06 18:37 ` [RFC 0/8] pmem: Submission of the Persistent memory block device Ross Zwisler 2015-03-06 18:37 ` Ross Zwisler 2015-03-07 1:39 ` Christoph Hellwig 2015-03-09 12:41 ` Boaz Harrosh 2015-03-09 12:41 ` Boaz Harrosh 2015-03-05 22:48 ` [PATCH 0/3 v5] e820: Fix handling of NvDIMM chips H. Peter Anvin 2015-03-05 23:06 ` Andy Lutomirski
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=54F82E41.9050203@plexistor.com \ --to=boaz@plexistor.com \ --cc=dan.j.williams@intel.com \ --cc=hch@infradead.org \ --cc=hpa@zytor.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-nvdimm@lists.01.org \ --cc=luto@amacapital.net \ --cc=mingo@redhat.com \ --cc=rcpao.enmotus@gmail.com \ --cc=ross.zwisler@linux.intel.com \ --cc=tglx@linutronix.de \ --cc=willy@linux.intel.com \ --cc=x86@kernel.org \ /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.