From: Mike Travis <travis@sgi.com>
To: Ingo Molnar <mingo@elte.hu>, Rusty Russell <rusty@rustcorp.com.au>
Cc: Andrew Morton <akpm@linux-foundation.org>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 18/35] cpumask: use cpumask_bits() everywhere.-resubmit
Date: Wed, 22 Oct 2008 19:16:22 -0700 [thread overview]
Message-ID: <48FFDE76.50208@sgi.com> (raw)
In-Reply-To: <20081023020829.882014000@polaris-admin.engr.sgi.com>
cpumask: use cpumask_bits() everywhere.
From: Rusty Russell <rusty@rustcorp.com.au>
Instead of accessing ->bits, we use cpumask_bits(). This will be very
useful when 'struct cpumask' has a hidden definition.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Mike Travis <travis@sgi.com>
---
include/linux/cpumask.h | 70 ++++++++++++++++++++++++++++-------------------
include/linux/seq_file.h | 2 -
kernel/time/timer_list.c | 4 +-
lib/cpumask.c | 4 +-
4 files changed, 47 insertions(+), 33 deletions(-)
--- linux-2.6.28.orig/include/linux/cpumask.h
+++ linux-2.6.28/include/linux/cpumask.h
@@ -194,12 +194,12 @@ extern int nr_cpu_ids;
static inline void cpumask_set_cpu(int cpu, volatile struct cpumask *dstp)
{
- set_bit(cpu, dstp->bits);
+ set_bit(cpu, cpumask_bits(dstp));
}
static inline void cpumask_clear_cpu(int cpu, volatile struct cpumask *dstp)
{
- clear_bit(cpu, dstp->bits);
+ clear_bit(cpu, cpumask_bits(dstp));
}
/* No static inline type checking - see Subtlety (1) above. */
@@ -207,130 +207,142 @@ static inline void cpumask_clear_cpu(int
static inline int cpumask_test_and_set_cpu(int cpu, struct cpumask *addr)
{
- return test_and_set_bit(cpu, addr->bits);
+ return test_and_set_bit(cpu, cpumask_bits(addr));
}
static inline void cpumask_setall(struct cpumask *dstp)
{
- bitmap_fill(dstp->bits, nr_cpumask_bits);
+ bitmap_fill(cpumask_bits(dstp), nr_cpumask_bits);
}
static inline void cpumask_clear(struct cpumask *dstp)
{
- bitmap_zero(dstp->bits, nr_cpumask_bits);
+ bitmap_zero(cpumask_bits(dstp), nr_cpumask_bits);
}
static inline void cpumask_and(struct cpumask *dstp,
const struct cpumask *src1p,
const struct cpumask *src2p)
{
- bitmap_and(dstp->bits, src1p->bits, src2p->bits, nr_cpumask_bits);
+ bitmap_and(cpumask_bits(dstp), cpumask_bits(src1p),
+ cpumask_bits(src2p), nr_cpumask_bits);
}
static inline void cpumask_or(struct cpumask *dstp, const struct cpumask *src1p,
const struct cpumask *src2p)
{
- bitmap_or(dstp->bits, src1p->bits, src2p->bits, nr_cpumask_bits);
+ bitmap_or(cpumask_bits(dstp), cpumask_bits(src1p),
+ cpumask_bits(src2p), nr_cpumask_bits);
}
static inline void cpumask_xor(struct cpumask *dstp,
const struct cpumask *src1p,
const struct cpumask *src2p)
{
- bitmap_xor(dstp->bits, src1p->bits, src2p->bits, nr_cpumask_bits);
+ bitmap_xor(cpumask_bits(dstp), cpumask_bits(src1p),
+ cpumask_bits(src2p), nr_cpumask_bits);
}
static inline void cpumask_andnot(struct cpumask *dstp,
const struct cpumask *src1p,
const struct cpumask *src2p)
{
- bitmap_andnot(dstp->bits, src1p->bits, src2p->bits, nr_cpumask_bits);
+ bitmap_andnot(cpumask_bits(dstp), cpumask_bits(src1p),
+ cpumask_bits(src2p), nr_cpumask_bits);
}
static inline void cpumask_complement(struct cpumask *dstp,
const struct cpumask *srcp)
{
- bitmap_complement(dstp->bits, srcp->bits, nr_cpumask_bits);
+ bitmap_complement(cpumask_bits(dstp), cpumask_bits(srcp),
+ nr_cpumask_bits);
}
static inline int cpumask_equal(const struct cpumask *src1p,
const struct cpumask *src2p)
{
- return bitmap_equal(src1p->bits, src2p->bits, nr_cpumask_bits);
+ return bitmap_equal(cpumask_bits(src1p), cpumask_bits(src2p),
+ nr_cpumask_bits);
}
static inline int cpumask_intersects(const struct cpumask *src1p,
const struct cpumask *src2p)
{
- return bitmap_intersects(src1p->bits, src2p->bits, nr_cpumask_bits);
+ return bitmap_intersects(cpumask_bits(src1p), cpumask_bits(src2p),
+ nr_cpumask_bits);
}
static inline int cpumask_subset(const struct cpumask *src1p,
const struct cpumask *src2p)
{
- return bitmap_subset(src1p->bits, src2p->bits, nr_cpumask_bits);
+ return bitmap_subset(cpumask_bits(src1p), cpumask_bits(src2p),
+ nr_cpumask_bits);
}
static inline int cpumask_empty(const struct cpumask *srcp)
{
- return bitmap_empty(srcp->bits, nr_cpumask_bits);
+ return bitmap_empty(cpumask_bits(srcp), nr_cpumask_bits);
}
static inline int cpumask_full(const struct cpumask *srcp)
{
- return bitmap_full(srcp->bits, nr_cpumask_bits);
+ return bitmap_full(cpumask_bits(srcp), nr_cpumask_bits);
}
static inline int __cpus_weight(const cpumask_t *srcp, int nbits)
{
- return bitmap_weight(srcp->bits, nbits);
+ return bitmap_weight(cpumask_bits(srcp), nbits);
}
static inline int cpumask_weight(const struct cpumask *srcp)
{
- return bitmap_weight(srcp->bits, nr_cpumask_bits);
+ return bitmap_weight(cpumask_bits(srcp), nr_cpumask_bits);
}
static inline void cpumask_shift_right(struct cpumask *dstp,
const struct cpumask *srcp, int n)
{
- bitmap_shift_right(dstp->bits, srcp->bits, n, nr_cpumask_bits);
+ bitmap_shift_right(cpumask_bits(dstp), cpumask_bits(srcp), n,
+ nr_cpumask_bits);
}
static inline void cpumask_shift_left(struct cpumask *dstp,
const struct cpumask *srcp, int n)
{
- bitmap_shift_left(dstp->bits, srcp->bits, n, nr_cpumask_bits);
+ bitmap_shift_left(cpumask_bits(dstp), cpumask_bits(srcp), n,
+ nr_cpumask_bits);
}
static inline int cpumask_scnprintf(char *buf, int len,
const struct cpumask *srcp)
{
- return bitmap_scnprintf(buf, len, srcp->bits, nr_cpumask_bits);
+ return bitmap_scnprintf(buf, len, cpumask_bits(srcp), nr_cpumask_bits);
}
static inline int cpumask_parse_user(const char __user *buf, int len,
struct cpumask *dstp)
{
- return bitmap_parse_user(buf, len, dstp->bits, nr_cpumask_bits);
+ return bitmap_parse_user(buf, len, cpumask_bits(dstp), nr_cpumask_bits);
}
static inline int cpulist_scnprintf(char *buf, int len,
const struct cpumask *srcp)
{
- return bitmap_scnlistprintf(buf, len, srcp->bits, nr_cpumask_bits);
+ return bitmap_scnlistprintf(buf, len, cpumask_bits(srcp),
+ nr_cpumask_bits);
}
static inline int cpulist_parse(const char *buf, struct cpumask *dstp)
{
- return bitmap_parselist(buf, dstp->bits, nr_cpumask_bits);
+ return bitmap_parselist(buf, cpumask_bits(dstp), nr_cpumask_bits);
}
static inline int cpumask_cpuremap(int oldbit,
const struct cpumask *oldp,
const struct cpumask *newp)
{
- return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nr_cpumask_bits);
+ return bitmap_bitremap(oldbit, cpumask_bits(oldp), cpumask_bits(newp),
+ nr_cpumask_bits);
}
static inline void cpumask_remap(struct cpumask *dstp,
@@ -338,21 +350,23 @@ static inline void cpumask_remap(struct
const struct cpumask *oldp,
const struct cpumask *newp)
{
- bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits,
- nr_cpumask_bits);
+ bitmap_remap(cpumask_bits(dstp), cpumask_bits(srcp),
+ cpumask_bits(oldp), cpumask_bits(newp), nr_cpumask_bits);
}
static inline void cpumask_onto(struct cpumask *dstp,
const struct cpumask *origp,
const struct cpumask *relmapp)
{
- bitmap_onto(dstp->bits, origp->bits, relmapp->bits, nr_cpumask_bits);
+ bitmap_onto(cpumask_bits(dstp), cpumask_bits(origp),
+ cpumask_bits(relmapp), nr_cpumask_bits);
}
static inline void cpumask_fold(struct cpumask *dstp,
const struct cpumask *origp, int sz)
{
- bitmap_fold(dstp->bits, origp->bits, sz, nr_cpumask_bits);
+ bitmap_fold(cpumask_bits(dstp), cpumask_bits(origp), sz,
+ nr_cpumask_bits);
}
static inline void cpumask_copy(struct cpumask *dstp,
--- linux-2.6.28.orig/include/linux/seq_file.h
+++ linux-2.6.28/include/linux/seq_file.h
@@ -52,7 +52,7 @@ int seq_path_root(struct seq_file *m, st
int seq_bitmap(struct seq_file *m, unsigned long *bits, unsigned int nr_bits);
static inline int seq_cpumask(struct seq_file *m, cpumask_t *mask)
{
- return seq_bitmap(m, mask->bits, nr_cpu_ids);
+ return seq_bitmap(m, cpumask_bits(mask), nr_cpu_ids);
}
static inline int seq_nodemask(struct seq_file *m, nodemask_t *mask)
--- linux-2.6.28.orig/kernel/time/timer_list.c
+++ linux-2.6.28/kernel/time/timer_list.c
@@ -232,10 +232,10 @@ static void timer_list_show_tickdevices(
#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
print_tickdevice(m, tick_get_broadcast_device(), -1);
SEQ_printf(m, "tick_broadcast_mask: %08lx\n",
- tick_get_broadcast_mask()->bits[0]);
+ cpumask_bits(tick_get_broadcast_mask())[0]);
#ifdef CONFIG_TICK_ONESHOT
SEQ_printf(m, "tick_broadcast_oneshot_mask: %08lx\n",
- tick_get_broadcast_oneshot_mask()->bits[0]);
+ cpumask_bits(tick_get_broadcast_oneshot_mask())[0]);
#endif
SEQ_printf(m, "\n");
#endif
--- linux-2.6.28.orig/lib/cpumask.c
+++ linux-2.6.28/lib/cpumask.c
@@ -5,13 +5,13 @@
int __first_cpu(const cpumask_t *srcp)
{
- return find_first_bit(srcp->bits, nr_cpumask_bits);
+ return find_first_bit(cpumask_bits(srcp), nr_cpumask_bits);
}
EXPORT_SYMBOL(__first_cpu);
int __next_cpu(int n, const cpumask_t *srcp)
{
- return find_next_bit(srcp->bits, nr_cpumask_bits, n+1);
+ return find_next_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1);
}
EXPORT_SYMBOL(__next_cpu);
next prev parent reply other threads:[~2008-10-23 2:22 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-23 2:08 [PATCH 00/35] cpumask: Replace cpumask_t with struct cpumask Mike Travis
2008-10-23 2:08 ` [PATCH 01/35] cpumask: add for_each_cpu_mask_and function Mike Travis
2008-10-23 2:08 ` [PATCH 02/35] x86 smp: modify send_IPI_mask interface to accept cpumask_t pointers Mike Travis
2008-10-23 2:08 ` [PATCH 03/35] sched: Reduce stack size requirements in kernel/sched.c Mike Travis
2008-10-23 2:08 ` [PATCH 04/35] cpumask: centralize cpu_online_map and cpu_possible_map Mike Travis
2008-10-23 2:14 ` [PATCH 04/35] cpumask: centralize cpu_online_map and cpu_possible_map - resubmit Mike Travis
2008-10-23 2:08 ` [PATCH 05/35] cpumask: remove min from first_cpu/next_cpu From: Rusty Russell <rusty@rustcorp.com.au> Mike Travis
2008-10-23 2:08 ` [PATCH 06/35] cpumask: introduce struct cpumask. " Mike Travis
2008-10-23 2:08 ` [PATCH 07/35] cpumask: change cpumask/list_scnprintf, cpumask/list_parse to take pointers. " Mike Travis
2008-10-23 2:08 ` [PATCH 08/35] cpumask: cpumask_size() From: Mike Travis <travis@sgi.com> Mike Travis
2008-10-23 2:08 ` [PATCH 09/35] cpumask: add cpumask_copy() Mike Travis
2008-10-23 2:08 ` [PATCH 10/35] cpumask: introduce cpumask_var_t for local cpumask vars From: Rusty Russell <rusty@rustcorp.com.au> Mike Travis
2008-10-23 2:08 ` [PATCH 11/35] x86: enable MAXSMP Mike Travis
2008-10-23 2:08 ` [PATCH 12/35] cpumask: make CONFIG_NR_CPUS always valid. From: Rusty Russell <rusty@rustcorp.com.au> Mike Travis
2008-10-23 2:08 ` [PATCH 13/35] cpumask: make nr_cpu_ids valid in all configurations. " Mike Travis
2008-10-23 2:08 ` [PATCH 14/35] cpumask: add nr_cpumask_bits Mike Travis
2008-10-23 2:08 ` [PATCH 15/35] cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits. From: Rusty Russell <rusty@rustcorp.com.au> Mike Travis
2008-10-23 2:08 ` [PATCH 16/35] percpu: fix percpu accessors to potentially !cpu_possible() cpus " Mike Travis
2008-10-23 2:08 ` [PATCH 17/35] cpumask: make nr_cpu_ids the actual limit on bitmap size Mike Travis
2008-10-23 2:08 ` [PATCH 18/35] cpumask: use cpumask_bits() everywhere Mike Travis
2008-10-23 2:16 ` Mike Travis [this message]
2008-10-23 2:08 ` [PATCH 19/35] cpumask: cpumask_of(): cpumask_of_cpu() which returns a pointer. From: Rusty Russell <rusty@rustcorp.com.au> Mike Travis
2008-10-23 2:08 ` [PATCH 20/35] cpumask: for_each_cpu(): for_each_cpu_mask which takes a pointer " Mike Travis
2008-10-23 2:08 ` [PATCH 21/35] cpumask: cpumask_first/cpumask_next " Mike Travis
2008-10-23 2:08 ` [PATCH 22/35] cpumask: deprecate any_online_cpu() in favour of cpumask_any/cpumask_any_and " Mike Travis
2008-10-23 10:25 ` Ingo Molnar
2008-10-23 10:43 ` Ingo Molnar
2008-10-23 12:57 ` Mike Travis
2008-10-23 2:08 ` [PATCH 23/35] cpumask: cpumask_any_but() " Mike Travis
2008-10-23 11:00 ` Ingo Molnar
2008-10-23 2:08 ` [PATCH 24/35] cpumask: Deprecate CPUMASK_ALLOC etc in favor of cpumask_var_t. " Mike Travis
2008-10-23 2:08 ` [PATCH 25/35] cpumask: get rid of boutique sched.c allocations, use " Mike Travis
2008-10-23 2:08 ` [PATCH 26/35] cpumask: to_cpumask() " Mike Travis
2008-10-23 2:08 ` [PATCH 27/35] cpumask: accessors to manipulate possible/present/online/active maps " Mike Travis
2008-10-23 11:05 ` Ingo Molnar
2008-10-23 13:52 ` Mike Travis
2008-10-23 2:08 ` [PATCH 28/35] cpumask: CONFIG_BITS_ALL, CONFIG_BITS_NONE and CONFIG_BITS_CPU0 " Mike Travis
2008-10-23 2:08 ` [PATCH 29/35] cpumask: switch over to cpu_online/possible/active/present_mask " Mike Travis
2008-10-30 17:36 ` Tony Luck
2008-10-23 2:08 ` [PATCH 30/35] cpumask: cpu_all_mask and cpu_none_mask. " Mike Travis
2008-10-23 2:08 ` [PATCH 31/35] cpumask: reorder header to minimize separate #ifdefs " Mike Travis
2008-10-23 2:08 ` [PATCH 32/35] cpumask: debug options for cpumasks " Mike Travis
2008-10-23 2:08 ` [PATCH 33/35] cpumask: smp_call_function_many() " Mike Travis
2008-10-23 2:09 ` [PATCH 34/35] cpumask: Use accessors code. " Mike Travis
2008-10-23 5:34 ` Rusty Russell
2008-10-23 2:09 ` [PATCH 35/35] x86: clean up speedctep-centrino and reduce cpumask_t usage " Mike Travis
2008-10-23 5:36 ` Rusty Russell
2008-10-23 12:04 ` Ingo Molnar
2008-10-23 15:06 ` Rusty Russell
2008-10-23 15:10 ` Dave Jones
2008-10-27 16:23 ` Ingo Molnar
2008-10-23 12:03 ` [PATCH 00/35] cpumask: Replace cpumask_t with struct cpumask Ingo Molnar
2008-10-23 12:54 ` Mike Travis
2008-10-23 13:01 ` Ingo Molnar
2008-10-23 13:38 ` Mike Travis
2008-10-23 12:55 ` [bug] " Ingo Molnar
2008-10-23 12:57 ` Ingo Molnar
2008-10-23 13:00 ` Mike Travis
2008-10-23 14:20 ` [bug #2] " Ingo Molnar
2008-10-23 14:21 ` Ingo Molnar
2008-10-23 15:01 ` Rusty Russell
2008-10-23 15:20 ` Mike Travis
2008-10-23 16:09 ` Ingo Molnar
2008-10-23 22:29 ` Rusty Russell
2008-10-23 16:06 ` Ingo Molnar
2008-10-23 16:18 ` Mike Travis
2008-10-23 16:35 ` Ingo Molnar
2008-10-23 16:50 ` Mike Travis
2008-10-23 16:52 ` Ingo Molnar
2008-10-23 17:06 ` Mike Travis
2008-10-23 20:20 ` [PATCH 1/1]: cpumask: fix compiler errors/warnings Mike Travis
2008-10-23 14:22 ` [bug] Re: [PATCH 00/35] cpumask: Replace cpumask_t with struct cpumask Mike Travis
2008-10-23 14:24 ` Ingo Molnar
2008-10-23 14:28 ` Ingo Molnar
2008-10-23 14:32 ` Ingo Molnar
2008-10-23 23:01 ` Rusty Russell
2008-10-23 22:53 ` Rusty Russell
2008-10-27 16:20 ` Ingo Molnar
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=48FFDE76.50208@sgi.com \
--to=travis@sgi.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rusty@rustcorp.com.au \
/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: link
Be 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.