From: Jesper Nilsson <Jesper.Nilsson@axis.com>
To: Bastien ROUCARIES <roucaries.bastien@gmail.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
David Miller <davem@davemloft.net>,
tj@kernel.org, gregkh@suse.de, stern@rowland.harvard.edu,
jens.axboe@oracle.com, hinko.kocevar@cetrtapot.si
Subject: Re: lib/klist.c: bit 0 in pointer can't be used as flag
Date: Wed, 14 Jan 2009 11:19:08 +0100 [thread overview]
Message-ID: <20090114101908.GF19262@axis.com> (raw)
In-Reply-To: <195c7a900901131511l7077eebar8396267e3f2b670b@mail.gmail.com>
On Wed, Jan 14, 2009 at 12:11:32AM +0100, Bastien ROUCARIES wrote:
> On Tue, Jan 13, 2009 at 11:45 PM, David Miller <davem@davemloft.net> wrote:
> > From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> > Date: Wed, 14 Jan 2009 07:40:19 +0900
> >
> >> > It may be that we've worked around the other spots, although I haven't
> >> > seen anything like that, we might just have been lucky until now.
> >> >
> >> > Can you recall another place where this trick is used?
> >>
> >> rmap.
> >> Don't CRIS use mmu?
> >
> > I'm beginning to suspect the issue is only with objects
> > in the kernel image itself. Dynamically allocated memory
> > is properly aligned and therefore the "low bit status bits
> > in pointer" trick works.
> Perhaps using a pointerhackalign trick on this structure where
> #define pointerhackalign(x) __attribute__ ((aligned (x)))
> and declare
> struct klist_node {
> ...
> } pointerhackalign(2);
>
> Because __attribute__ ((aligned (x))) could only increase alignment
> it will safe to do that and serve as documentation purpose :)
That works, but we need to do it not for the struct klist_node,
but for the struct we insert into the void * in klist_node,
which is struct klist.
The following patch works for CRIS, and is less intrusive than
my earlier patch. If this the way to go I can resubmit a proper patch.
diff --git a/include/linux/klist.h b/include/linux/klist.h
index 8ea98db..a21cd7a 100644
--- a/include/linux/klist.h
+++ b/include/linux/klist.h
@@ -23,7 +23,7 @@ struct klist {
struct list_head k_list;
void (*get)(struct klist_node *);
void (*put)(struct klist_node *);
-};
+} __attribute__ ((aligned (4)));
#define KLIST_INIT(_name, _get, _put) \
{ .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \
> Regards
>
> Bastien
/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper.nilsson@axis.com
next prev parent reply other threads:[~2009-01-14 10:19 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-13 15:14 Jesper Nilsson
2009-01-13 21:10 ` David Miller
2009-01-13 22:12 ` Jesper Nilsson
2009-01-13 22:40 ` KOSAKI Motohiro
2009-01-13 22:45 ` David Miller
2009-01-13 23:11 ` Bastien ROUCARIES
2009-01-14 10:19 ` Jesper Nilsson [this message]
2009-01-14 10:21 ` David Miller
2009-01-14 10:36 ` Jesper Nilsson
2009-01-14 10:45 ` David Miller
2009-01-14 11:02 ` Jesper Nilsson
2009-01-14 15:12 ` Jesper Nilsson
2009-01-14 18:17 ` Greg KH
2009-01-14 21:53 ` Jesper Nilsson
2009-01-13 23:54 ` KOSAKI Motohiro
2009-01-13 23:59 ` Greg KH
2009-01-14 10:25 ` Jesper Nilsson
2009-01-14 0:33 ` Hugh Dickins
2009-01-14 10:18 ` Jesper Nilsson
2009-01-13 22:42 ` David Miller
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=20090114101908.GF19262@axis.com \
--to=jesper.nilsson@axis.com \
--cc=davem@davemloft.net \
--cc=gregkh@suse.de \
--cc=hinko.kocevar@cetrtapot.si \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=roucaries.bastien@gmail.com \
--cc=stern@rowland.harvard.edu \
--cc=tj@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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome