diff options
Diffstat (limited to 'include/asm-um')
-rw-r--r-- | include/asm-um/hw_irq.h | 3 | ||||
-rw-r--r-- | include/asm-um/io.h | 5 | ||||
-rw-r--r-- | include/asm-um/irqflags.h | 6 | ||||
-rw-r--r-- | include/asm-um/kmap_types.h | 20 | ||||
-rw-r--r-- | include/asm-um/uaccess.h | 6 |
5 files changed, 33 insertions, 7 deletions
diff --git a/include/asm-um/hw_irq.h b/include/asm-um/hw_irq.h index 4ee38c0b6a6..1cf84cf5f21 100644 --- a/include/asm-um/hw_irq.h +++ b/include/asm-um/hw_irq.h @@ -4,7 +4,4 @@ #include "asm/irq.h" #include "asm/archparam.h" -static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i) -{} - #endif diff --git a/include/asm-um/io.h b/include/asm-um/io.h index 1934d9340e2..44e8b8c772a 100644 --- a/include/asm-um/io.h +++ b/include/asm-um/io.h @@ -45,8 +45,13 @@ static inline void writel(unsigned int b, volatile void __iomem *addr) { *(volatile unsigned int __force *) addr = b; } +static inline void writeq(unsigned int b, volatile void __iomem *addr) +{ + *(volatile unsigned long long __force *) addr = b; +} #define __raw_writeb writeb #define __raw_writew writew #define __raw_writel writel +#define __raw_writeq writeq #endif diff --git a/include/asm-um/irqflags.h b/include/asm-um/irqflags.h new file mode 100644 index 00000000000..659b9abdfdb --- /dev/null +++ b/include/asm-um/irqflags.h @@ -0,0 +1,6 @@ +#ifndef __UM_IRQFLAGS_H +#define __UM_IRQFLAGS_H + +/* Empty for now */ + +#endif diff --git a/include/asm-um/kmap_types.h b/include/asm-um/kmap_types.h index 0b22ad776e7..6c03acdb440 100644 --- a/include/asm-um/kmap_types.h +++ b/include/asm-um/kmap_types.h @@ -6,6 +6,24 @@ #ifndef __UM_KMAP_TYPES_H #define __UM_KMAP_TYPES_H -#include "asm/arch/kmap_types.h" +/* No more #include "asm/arch/kmap_types.h" ! */ + +enum km_type { + KM_BOUNCE_READ, + KM_SKB_SUNRPC_DATA, + KM_SKB_DATA_SOFTIRQ, + KM_USER0, + KM_USER1, + KM_UML_USERCOPY, /* UML specific, for copy_*_user - used in do_op_one_page */ + KM_BIO_SRC_IRQ, + KM_BIO_DST_IRQ, + KM_PTE0, + KM_PTE1, + KM_IRQ0, + KM_IRQ1, + KM_SOFTIRQ0, + KM_SOFTIRQ1, + KM_TYPE_NR +}; #endif diff --git a/include/asm-um/uaccess.h b/include/asm-um/uaccess.h index bea5a015f66..16c734af919 100644 --- a/include/asm-um/uaccess.h +++ b/include/asm-um/uaccess.h @@ -41,11 +41,11 @@ #define __get_user(x, ptr) \ ({ \ - const __typeof__(ptr) __private_ptr = ptr; \ + const __typeof__(*(ptr)) __user *__private_ptr = (ptr); \ __typeof__(x) __private_val; \ int __private_ret = -EFAULT; \ (x) = (__typeof__(*(__private_ptr)))0; \ - if (__copy_from_user((void *) &__private_val, (__private_ptr), \ + if (__copy_from_user((__force void *)&__private_val, (__private_ptr),\ sizeof(*(__private_ptr))) == 0) { \ (x) = (__typeof__(*(__private_ptr))) __private_val; \ __private_ret = 0; \ @@ -62,7 +62,7 @@ #define __put_user(x, ptr) \ ({ \ - __typeof__(ptr) __private_ptr = ptr; \ + __typeof__(*(ptr)) __user *__private_ptr = ptr; \ __typeof__(*(__private_ptr)) __private_val; \ int __private_ret = -EFAULT; \ __private_val = (__typeof__(*(__private_ptr))) (x); \ |