mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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

  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