@@ -163,31 +163,39 @@ static inline int bad_user_access_length(void)
163163 : "a" (__ptr(ptr))); \
164164})
165165
166- #define __copy_from_user (to , from , n ) copy_from_user(to, from, n)
167- #define __copy_to_user (to , from , n ) copy_to_user(to, from, n)
168166#define __copy_to_user_inatomic __copy_to_user
169167#define __copy_from_user_inatomic __copy_from_user
170168
169+ static inline unsigned long __must_check
170+ __copy_from_user (void * to , const void __user * from , unsigned long n )
171+ {
172+ memcpy (to , (const void __force * )from , n );
173+ return 0 ;
174+ }
175+
176+ static inline unsigned long __must_check
177+ __copy_to_user (void __user * to , const void * from , unsigned long n )
178+ {
179+ memcpy ((void __force * )to , from , n );
180+ SSYNC ();
181+ return 0 ;
182+ }
183+
171184static inline unsigned long __must_check
172185copy_from_user (void * to , const void __user * from , unsigned long n )
173186{
174- if (likely (access_ok (VERIFY_READ , from , n ))) {
175- memcpy (to , (const void __force * )from , n );
176- return 0 ;
177- }
187+ if (likely (access_ok (VERIFY_READ , from , n )))
188+ return __copy_from_user (to , from , n );
178189 memset (to , 0 , n );
179190 return n ;
180191}
181192
182193static inline unsigned long __must_check
183194copy_to_user (void __user * to , const void * from , unsigned long n )
184195{
185- if (access_ok (VERIFY_WRITE , to , n ))
186- memcpy ((void __force * )to , from , n );
187- else
188- return n ;
189- SSYNC ();
190- return 0 ;
196+ if (likely (access_ok (VERIFY_WRITE , to , n )))
197+ return __copy_to_user (to , from , n );
198+ return n ;
191199}
192200
193201/*
0 commit comments