X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-s390%2Fidals.h;h=e82c10efe65aee289c94fe59f761ce8c4c49acbb;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=ad444dc74b9bf1e6ba20d48bf6c5f4a3f7bd24c0;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/include/asm-s390/idals.h b/include/asm-s390/idals.h index ad444dc74..e82c10efe 100644 --- a/include/asm-s390/idals.h +++ b/include/asm-s390/idals.h @@ -13,7 +13,6 @@ #ifndef _S390_IDALS_H #define _S390_IDALS_H -#include #include #include #include @@ -35,7 +34,7 @@ static inline int idal_is_needed(void *vaddr, unsigned int length) { #ifdef __s390x__ - return ((__pa(vaddr) + length) >> 31) != 0; + return ((__pa(vaddr) + length - 1) >> 31) != 0; #else return 0; #endif @@ -218,7 +217,7 @@ idal_buffer_set_cda(struct idal_buffer *ib, struct ccw1 *ccw) * Copy count bytes from an idal buffer to user memory */ static inline size_t -idal_buffer_to_user(struct idal_buffer *ib, void *to, size_t count) +idal_buffer_to_user(struct idal_buffer *ib, void __user *to, size_t count) { size_t left; int i; @@ -228,7 +227,7 @@ idal_buffer_to_user(struct idal_buffer *ib, void *to, size_t count) left = copy_to_user(to, ib->data[i], IDA_BLOCK_SIZE); if (left) return left + count - IDA_BLOCK_SIZE; - to = (void *) to + IDA_BLOCK_SIZE; + to = (void __user *) to + IDA_BLOCK_SIZE; count -= IDA_BLOCK_SIZE; } return copy_to_user(to, ib->data[i], count); @@ -238,7 +237,7 @@ idal_buffer_to_user(struct idal_buffer *ib, void *to, size_t count) * Copy count bytes from user memory to an idal buffer */ static inline size_t -idal_buffer_from_user(struct idal_buffer *ib, const void *from, size_t count) +idal_buffer_from_user(struct idal_buffer *ib, const void __user *from, size_t count) { size_t left; int i; @@ -248,7 +247,7 @@ idal_buffer_from_user(struct idal_buffer *ib, const void *from, size_t count) left = copy_from_user(ib->data[i], from, IDA_BLOCK_SIZE); if (left) return left + count - IDA_BLOCK_SIZE; - from = (void *) from + IDA_BLOCK_SIZE; + from = (void __user *) from + IDA_BLOCK_SIZE; count -= IDA_BLOCK_SIZE; } return copy_from_user(ib->data[i], from, count);