Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1623818
| From | tip-bot for Matthias Kaehlcke <tipbot@zytor.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [tip:irq/core] cpumask: Add helper cpumask_available() |
| Date | 2017-04-14 20:00 +0200 |
| Message-ID | <twdFL-43B-11@gated-at.bofh.it> (permalink) |
| References | <tvvbI-7UV-21@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Commit-ID: f7e30f01a9e221067bb4b579e3cfc25cd2617467
Gitweb: http://git.kernel.org/tip/f7e30f01a9e221067bb4b579e3cfc25cd2617467
Author: Matthias Kaehlcke <mka@chromium.org>
AuthorDate: Wed, 12 Apr 2017 11:20:29 -0700
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Fri, 14 Apr 2017 19:50:47 +0200
cpumask: Add helper cpumask_available()
With CONFIG_CPUMASK_OFFSTACK=y cpumask_var_t is a struct cpumask
pointer, otherwise a struct cpumask array with a single element.
Some code dealing with cpumasks needs to validate that a cpumask_var_t
is not a NULL pointer when CONFIG_CPUMASK_OFFSTACK=y. This is typically
done by performing the check always, regardless of the underlying type
of cpumask_var_t. This works in both cases, however clang raises a
warning like this when CONFIG_CPUMASK_OFFSTACK=n:
kernel/irq/manage.c:839:28: error: address of array
'desc->irq_common_data.affinity' will always evaluate to 'true'
[-Werror,-Wpointer-bool-conversion]
Add the inline helper cpumask_available() which only performs the
pointer check if CONFIG_CPUMASK_OFFSTACK=y.
Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Cc: Grant Grundler <grundler@chromium.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Greg Hackmann <ghackmann@google.com>
Cc: Michael Davidson <md@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Link: http://lkml.kernel.org/r/20170412182030.83657-1-mka@chromium.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
include/linux/cpumask.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index 96f1e88..1a67560 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -667,6 +667,11 @@ void alloc_bootmem_cpumask_var(cpumask_var_t *mask);
void free_cpumask_var(cpumask_var_t mask);
void free_bootmem_cpumask_var(cpumask_var_t mask);
+static inline bool cpumask_available(cpumask_var_t mask)
+{
+ return mask != NULL;
+}
+
#else
typedef struct cpumask cpumask_var_t[1];
@@ -708,6 +713,11 @@ static inline void free_cpumask_var(cpumask_var_t mask)
static inline void free_bootmem_cpumask_var(cpumask_var_t mask)
{
}
+
+static inline bool cpumask_available(cpumask_var_t mask)
+{
+ return true;
+}
#endif /* CONFIG_CPUMASK_OFFSTACK */
/* It's common to want to use cpu_all_mask in struct member initializers,
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
[PATCH v2 1/2] cpumask: Add helper cpumask_available() Matthias Kaehlcke <mka@chromium.org> - 2017-04-12 20:30 +0200
[PATCH v2 2/2] kernel/irq: Use cpumask_available() for check of cpumask variable Matthias Kaehlcke <mka@chromium.org> - 2017-04-12 20:30 +0200
Re: [PATCH v2 2/2] kernel/irq: Use cpumask_available() for check of cpumask variable Thomas Gleixner <tglx@linutronix.de> - 2017-04-14 20:00 +0200
[tip:irq/core] kernel/irq: Use cpumask_available() for check of cpumask variable tip-bot for Matthias Kaehlcke <tipbot@zytor.com> - 2017-04-14 20:00 +0200
[tip:irq/core] genirq: Use cpumask_available() for check of cpumask variable tip-bot for Matthias Kaehlcke <tipbot@zytor.com> - 2017-04-14 21:00 +0200
[tip:irq/core] cpumask: Add helper cpumask_available() tip-bot for Matthias Kaehlcke <tipbot@zytor.com> - 2017-04-14 20:00 +0200
csiph-web