On Sun, Sep 04, 2005 at 01:16:00PM -0700, Andrew Morton wrote:
> unsigned long __copy_to_user_ll(void __user *to, const void *from, unsigned long n)
> {
> BUG_ON((long) n < 0);
Ehh? It's unsigned. This will never be true.
> +unsigned long
> +__copy_from_user_ll_nocache(void *to, const void __user *from, unsigned long n)
> +{
> + BUG_ON((long)n < 0);
Ditto.
Dave
Dave Jones <[email protected]> wrote:
>
> On Sun, Sep 04, 2005 at 01:16:00PM -0700, Andrew Morton wrote:
> > unsigned long __copy_to_user_ll(void __user *to, const void *from, unsigned long n)
> > {
> > BUG_ON((long) n < 0);
>
> Ehh? It's unsigned. This will never be true.
It's cast to long, so it'll trap if we try to copy >=2G.
It seems a strange thing to check though. Do we really need it?
From: Andrew Morton <[email protected]>
> Dave Jones <[email protected]> wrote:
> >
> > On Sun, Sep 04, 2005 at 01:16:00PM -0700, Andrew Morton wrote:
> > > unsigned long __copy_to_user_ll(void __user *to, const void *from, unsigned long n)
> > > {
> > > BUG_ON((long) n < 0);
> >
> > Ehh? It's unsigned. This will never be true.
>
> It's cast to long, so it'll trap if we try to copy >=2G.
>
> It seems a strange thing to check though. Do we really need it?
I don't know. I've just cut&paste the original __copy_from_user_ll()
Regards,
Hiro
From: Dave Jones <[email protected]>
Subject: Re: x86-cache-pollution-aware-__copy_from_user_ll.patch added to -mm tree
Date: Sun, 4 Sep 2005 16:23:33 -0400
> On Sun, Sep 04, 2005 at 01:16:00PM -0700, Andrew Morton wrote:
> > unsigned long __copy_to_user_ll(void __user *to, const void *from, unsigned long n)
> > {
> > BUG_ON((long) n < 0);
>
> Ehh? It's unsigned. This will never be true.
It's to catch the user slipping in enormous lengths to
the user copy routines.
Sparc64 makes this check as well. From U3memcpy.S:
srlx %o2, 31, %g2
cmp %g2, 0
tne %xcc, 5
%o2 is the length, we make sure the upper 33-bits are clear.
From: Andrew Morton <[email protected]>
Date: Sun, 4 Sep 2005 14:42:18 -0700
> It seems a strange thing to check though. Do we really need it?
Other platforms already do, it's a very good sanity check.