Am Sam, 10 M�r 2001 schrieben Sie:
> >I do not know if this is relevant for any of the current armv-architectures,
> >but if so, the problem might be avoided by specifying the addr-operand
> >as an early-clobberer by adding the "&"-constraint modifier for the
> >output-parameter "x" in include/asm-arm/proc-armv/uaccess.h
>
> Yes. Thanks for the report. I think it's fixed already in the latest
> kernels. I guess you're looking at quite an old version, since you mention
> that __get_user_asm_half is an asm statement.
Hello Philip,
thank You very much for your reply.
I am sorry that I am not so familiar with the 2.4 sources yet,
but I checked the current 2.4-Repository on Handhelds.org,
where I think the expansion goes this way
in include/asm-arm/uaccess.h :
get_user(x,p)
-> __get_user_check((x),(p),sizeof(*(p)))
-> __get_user_size(__gu_val,__gu_addr,(size),__gu_err);
-> __get_user_asm_word(x,ptr,retval);
-> ( #include <asm/proc/uaccess.h> ) :
#define __get_user_asm_word(x,addr,err) \
__asm__ __volatile__( \
.....
******
(is) : "=r" (err), "=r" (x) \
******
(mod.) : "=r" (err), "=&r" (x) \
******
: "r" (addr), "i" (-EFAULT), "0" (err))
I am not sure if this is really a problem, but on my System (SA1110 - Linux 2.2.9),
I had some trouble with the ldrt / strt instructions causing spurious
alignment exceptions.
I couldn't really trace down the cause, but the trouble finally disappeared
after I disabled low-level interrupts around the ldrt/strt instructions.
I am still wondering if this might be a subtle hardware issue (processor mixing
up modes during an exception) , since I cannot see what makes a ldrt/strt
special to an interrupt-handler, compared to normal loads/stores that might or
might not fault in user space.
If anybody has similar problems, I could post a few patches for
the copy_to/from_user()-routines.
Regards, Klaus
--
Mobotix AG
Klaus Borchers
Wingertsweilerhof 6
D-67724 Hoeringen
Germany
Tel: +49 (6302) 9223-88
Fax: +49 (6302) 9223-70
E-Mail: [EMAIL PROTECTED]
_______________________________________________
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
Please visit the above address for information on this list.