From: Pavel Emelyanov <xemul@openvz.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Paul Menage <menage@google.com>,
Sukadev Bhattiprolu <sukadev@us.ibm.com>,
Serge Hallyn <serue@us.ibm.com>
Subject: [PATCH 1/9] Avoid magic constants in drivers/base/map.c
Date: Wed, 05 Mar 2008 20:25:20 +0300 [thread overview]
Message-ID: <47CED780.8060206@openvz.org> (raw)
In-Reply-To: <47CED717.60406@openvz.org>
The number of chains in the kobj_map structure is hard-coded
with a magic constant of 255. Make a named one instead.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
---
drivers/base/map.c | 21 ++++++++++++---------
1 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/drivers/base/map.c b/drivers/base/map.c
index e87017f..7de565f 100644
--- a/drivers/base/map.c
+++ b/drivers/base/map.c
@@ -16,6 +16,8 @@
#include <linux/kobject.h>
#include <linux/kobj_map.h>
+#define KOBJ_MAP_PROBES 255
+
struct kobj_map {
struct probe {
struct probe *next;
@@ -25,7 +27,7 @@ struct kobj_map {
kobj_probe_t *get;
int (*lock)(dev_t, void *);
void *data;
- } *probes[255];
+ } *probes[KOBJ_MAP_PROBES];
struct mutex *lock;
};
@@ -38,8 +40,8 @@ int kobj_map(struct kobj_map *domain, dev_t dev, unsigned long range,
unsigned i;
struct probe *p;
- if (n > 255)
- n = 255;
+ if (n > KOBJ_MAP_PROBES)
+ n = KOBJ_MAP_PROBES;
p = kmalloc(sizeof(struct probe) * n, GFP_KERNEL);
@@ -56,7 +58,7 @@ int kobj_map(struct kobj_map *domain, dev_t dev, unsigned long range,
}
mutex_lock(domain->lock);
for (i = 0, p -= n; i < n; i++, p++, index++) {
- struct probe **s = &domain->probes[index % 255];
+ struct probe **s = &domain->probes[index % KOBJ_MAP_PROBES];
while (*s && (*s)->range < range)
s = &(*s)->next;
p->next = *s;
@@ -73,13 +75,14 @@ void kobj_unmap(struct kobj_map *domain, dev_t dev, unsigned long range)
unsigned i;
struct probe *found = NULL;
- if (n > 255)
- n = 255;
+ if (n > KOBJ_MAP_PROBES)
+ n = KOBJ_MAP_PROBES;
mutex_lock(domain->lock);
for (i = 0; i < n; i++, index++) {
struct probe **s;
- for (s = &domain->probes[index % 255]; *s; s = &(*s)->next) {
+ for (s = &domain->probes[index % KOBJ_MAP_PROBES];
+ *s; s = &(*s)->next) {
struct probe *p = *s;
if (p->dev == dev && p->range == range) {
*s = p->next;
@@ -101,7 +104,7 @@ struct kobject *kobj_lookup(struct kobj_map *domain, dev_t dev, int *index)
retry:
mutex_lock(domain->lock);
- for (p = domain->probes[MAJOR(dev) % 255]; p; p = p->next) {
+ for (p = domain->probes[MAJOR(dev) % KOBJ_MAP_PROBES]; p; p = p->next) {
struct kobject *(*probe)(dev_t, int *, void *);
struct module *owner;
void *data;
@@ -148,7 +151,7 @@ struct kobj_map *kobj_map_init(kobj_probe_t *base_probe, struct mutex *lock)
base->dev = 1;
base->range = ~0;
base->get = base_probe;
- for (i = 0; i < 255; i++)
+ for (i = 0; i < KOBJ_MAP_PROBES; i++)
p->probes[i] = base;
p->lock = lock;
return p;
--
1.5.3.4
next prev parent reply other threads:[~2008-03-05 17:27 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-05 17:23 [PATCH 0/9] Devices accessibility control group (v4) Pavel Emelyanov
2008-03-05 17:25 ` Pavel Emelyanov [this message]
2008-03-05 17:28 ` [PATCH 2/9] Cleanup the get_gendisk() a bit Pavel Emelyanov
2008-03-05 17:32 ` [PATCH 3/9] Add a mode on the struct probe Pavel Emelyanov
2008-03-05 17:34 ` [PATCH 4/9] Make kobj_lookup() return the mapping's permissions Pavel Emelyanov
2008-03-05 17:37 ` [PATCH 5/9] Make use of permissions, returned by kobj_lookup Pavel Emelyanov
2008-03-06 1:13 ` Andrew Morton
2008-03-06 8:48 ` Pavel Emelyanov
2008-03-07 9:22 ` Pavel Emelyanov
2008-03-07 9:35 ` Andrew Morton
2008-03-07 9:52 ` Pavel Emelyanov
2008-03-07 15:59 ` Greg KH
2008-03-07 16:38 ` Pavel Emelyanov
2008-03-07 17:01 ` Greg KH
2008-03-07 17:08 ` Al Viro
2008-03-07 17:35 ` Serge E. Hallyn
2008-03-07 17:57 ` Casey Schaufler
2008-03-07 18:30 ` Serge E. Hallyn
2008-03-07 19:46 ` Stephen Smalley
2008-03-07 20:57 ` Casey Schaufler
2008-03-07 21:32 ` Serge E. Hallyn
2008-03-07 18:14 ` Greg KH
2008-03-07 18:50 ` Serge E. Hallyn
2008-03-08 6:04 ` Greg KH
2008-03-08 21:47 ` Serge E. Hallyn
2008-03-09 3:15 ` Greg KH
2008-03-10 20:35 ` Serge E. Hallyn
2008-03-11 9:57 ` Pavel Emelyanov
2008-03-11 17:36 ` Greg KH
2008-03-12 8:26 ` Pavel Emelyanov
2008-03-12 13:09 ` Serge E. Hallyn
2008-03-12 13:18 ` Stephen Smalley
2008-03-12 13:27 ` Stephen Smalley
2008-03-12 14:18 ` Serge E. Hallyn
2008-03-12 14:15 ` Serge E. Hallyn
2008-03-12 16:21 ` Casey Schaufler
2008-03-12 13:36 ` Pavel Emelyanov
2008-03-05 17:40 ` [PATCH 6/9] Extend the drivers/base/map.c functionality Pavel Emelyanov
2008-03-05 17:43 ` [PATCH 7/9] Provide functions to manipulate char device mappings Pavel Emelyanov
2008-03-05 17:46 ` [PATCH 8/9] Provide functions to manipulate block " Pavel Emelyanov
2008-03-05 17:47 ` [PATCH 9/9] Devices accessibility control group itself Pavel Emelyanov
2008-03-06 2:02 ` Greg KH
2008-03-06 1:55 ` [PATCH 0/9] Devices accessibility control group (v4) Greg KH
2008-03-06 3:15 ` Serge E. Hallyn
2008-03-06 4:34 ` Greg KH
2008-03-06 8:36 ` Pavel Emelyanov
2008-03-07 4:58 ` Greg KH
2008-03-07 8:42 ` Pavel Machek
2008-03-07 8:54 ` Pavel Emelyanov
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=47CED780.8060206@openvz.org \
--to=xemul@openvz.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=menage@google.com \
--cc=serue@us.ibm.com \
--cc=sukadev@us.ibm.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: 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.