[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110412203058.GC7806@n2100.arm.linux.org.uk>
Date: Tue, 12 Apr 2011 21:30:58 +0100
From: Russell King - ARM Linux <linux@....linux.org.uk>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>,
LKML <linux-kernel@...r.kernel.org>,
linux-mm <linux-mm@...ck.org>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Hugh Dickins <hughd@...gle.com>,
Dave Hansen <dave@...ux.vnet.ibm.com>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
Paul Mundt <lethal@...ux-sh.org>
Subject: Re: mm: convert vma->vm_flags to 64bit
On Mon, Apr 11, 2011 at 11:33:58PM -0700, Andrew Morton wrote:
> How the heck did we end up using 32 flags??
Good question.
> > @@ -217,7 +217,7 @@ vivt_flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned
> > {
> > if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm)))
> > __cpuc_flush_user_range(start & PAGE_MASK, PAGE_ALIGN(end),
> > - vma->vm_flags);
> > + (unsigned long)vma->vm_flags);
> > }
>
> I'm surprised this change (and similar) are needed?
>
> Is it risky? What happens if we add yet another vm_flags bit and
> __cpuc_flush_user_range() wants to use it? I guess when that happens,
> __cpuc_flush_user_range() needs to be changed to take a ull.
The truncation is fine provided VM_EXEC is within the least significant
word. If it isn't, then we'll blow up when the cache handling assembly
gets parsed by the assembler as the VM_EXEC value will overflow.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists