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.

Reply via email to