diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-10-27 07:24:09 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-11-27 07:37:59 -0500 |
commit | 59f0cb0fddc14ffc6676ae62e911f8115ebc8ccf (patch) | |
tree | 1e5fc347287c02e83dce967180c96906f6ed7455 | |
parent | ed313489badef16d700f5a3be50e8fd8f8294bc8 (diff) |
[ARM] remove memzero()
As suggested by Andrew Morton, remove memzero() - it's not supported
on other architectures so use of it is a potential build breaking bug.
Since the compiler optimizes memset(x,0,n) to __memzero() perfectly
well, we don't miss out on the underlying benefits of memzero().
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/boot/compressed/misc.c | 2 | ||||
-rw-r--r-- | arch/arm/include/asm/page.h | 2 | ||||
-rw-r--r-- | arch/arm/include/asm/processor.h | 2 | ||||
-rw-r--r-- | arch/arm/include/asm/string.h | 9 | ||||
-rw-r--r-- | arch/arm/include/asm/uaccess.h | 2 | ||||
-rw-r--r-- | arch/arm/lib/memset.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/mmu.c | 2 | ||||
-rw-r--r-- | arch/arm/mm/pgd.c | 2 | ||||
-rw-r--r-- | drivers/mfd/asic3.c | 6 | ||||
-rw-r--r-- | drivers/mtd/maps/ixp2000.c | 2 | ||||
-rw-r--r-- | drivers/mtd/maps/ixp4xx.c | 2 | ||||
-rw-r--r-- | drivers/mtd/nand/s3c2410.c | 4 | ||||
-rw-r--r-- | drivers/video/sa1100fb.c | 2 |
13 files changed, 16 insertions, 23 deletions
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 65ce8fff29db..3fc08413fff0 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
@@ -86,6 +86,8 @@ static void putstr(const char *ptr) | |||
86 | 86 | ||
87 | #define __ptr_t void * | 87 | #define __ptr_t void * |
88 | 88 | ||
89 | #define memzero(s,n) __memzero(s,n) | ||
90 | |||
89 | /* | 91 | /* |
90 | * Optimised C version of memzero for the ARM. | 92 | * Optimised C version of memzero for the ARM. |
91 | */ | 93 | */ |
diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h index bed1c0a00368..5fee45e23038 100644 --- a/arch/arm/include/asm/page.h +++ b/arch/arm/include/asm/page.h | |||
@@ -133,7 +133,7 @@ extern void __cpu_copy_user_page(void *to, const void *from, | |||
133 | #define clear_user_page(addr,vaddr,pg) __cpu_clear_user_page(addr, vaddr) | 133 | #define clear_user_page(addr,vaddr,pg) __cpu_clear_user_page(addr, vaddr) |
134 | #define copy_user_page(to,from,vaddr,pg) __cpu_copy_user_page(to, from, vaddr) | 134 | #define copy_user_page(to,from,vaddr,pg) __cpu_copy_user_page(to, from, vaddr) |
135 | 135 | ||
136 | #define clear_page(page) memzero((void *)(page), PAGE_SIZE) | 136 | #define clear_page(page) memset((void *)(page), 0, PAGE_SIZE) |
137 | extern void copy_page(void *to, const void *from); | 137 | extern void copy_page(void *to, const void *from); |
138 | 138 | ||
139 | #undef STRICT_MM_TYPECHECKS | 139 | #undef STRICT_MM_TYPECHECKS |
diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h index 517a4d6ffc74..2320508443a5 100644 --- a/arch/arm/include/asm/processor.h +++ b/arch/arm/include/asm/processor.h | |||
@@ -64,7 +64,7 @@ struct thread_struct { | |||
64 | ({ \ | 64 | ({ \ |
65 | unsigned long *stack = (unsigned long *)sp; \ | 65 | unsigned long *stack = (unsigned long *)sp; \ |
66 | set_fs(USER_DS); \ | 66 | set_fs(USER_DS); \ |
67 | memzero(regs->uregs, sizeof(regs->uregs)); \ | 67 | memset(regs->uregs, 0, sizeof(regs->uregs)); \ |
68 | if (current->personality & ADDR_LIMIT_32BIT) \ | 68 | if (current->personality & ADDR_LIMIT_32BIT) \ |
69 | regs->ARM_cpsr = USR_MODE; \ | 69 | regs->ARM_cpsr = USR_MODE; \ |
70 | else \ | 70 | else \ |
diff --git a/arch/arm/include/asm/string.h b/arch/arm/include/asm/string.h index e50c4a39b699..cf4f3aad0fc1 100644 --- a/arch/arm/include/asm/string.h +++ b/arch/arm/include/asm/string.h | |||
@@ -21,7 +21,6 @@ extern void * memmove(void *, const void *, __kernel_size_t); | |||
21 | #define __HAVE_ARCH_MEMCHR | 21 | #define __HAVE_ARCH_MEMCHR |
22 | extern void * memchr(const void *, int, __kernel_size_t); | 22 | extern void * memchr(const void *, int, __kernel_size_t); |
23 | 23 | ||
24 | #define __HAVE_ARCH_MEMZERO | ||
25 | #define __HAVE_ARCH_MEMSET | 24 | #define __HAVE_ARCH_MEMSET |
26 | extern void * memset(void *, int, __kernel_size_t); | 25 | extern void * memset(void *, int, __kernel_size_t); |
27 | 26 | ||
@@ -39,12 +38,4 @@ extern void __memzero(void *ptr, __kernel_size_t n); | |||
39 | (__p); \ | 38 | (__p); \ |
40 | }) | 39 | }) |
41 | 40 | ||
42 | #define memzero(p,n) \ | ||
43 | ({ \ | ||
44 | void *__p = (p); size_t __n = n; \ | ||
45 | if ((__n) != 0) \ | ||
46 | __memzero((__p),(__n)); \ | ||
47 | (__p); \ | ||
48 | }) | ||
49 | |||
50 | #endif | 41 | #endif |
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h index e98ec60b3400..cbb7a37e2978 100644 --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h | |||
@@ -400,7 +400,7 @@ static inline unsigned long __must_check copy_from_user(void *to, const void __u | |||
400 | if (access_ok(VERIFY_READ, from, n)) | 400 | if (access_ok(VERIFY_READ, from, n)) |
401 | n = __copy_from_user(to, from, n); | 401 | n = __copy_from_user(to, from, n); |
402 | else /* security hole - plug it */ | 402 | else /* security hole - plug it */ |
403 | memzero(to, n); | 403 | memset(to, 0, n); |
404 | return n; | 404 | return n; |
405 | } | 405 | } |
406 | 406 | ||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S index 761eefa76243..650d5923ab83 100644 --- a/arch/arm/lib/memset.S +++ b/arch/arm/lib/memset.S | |||
@@ -25,7 +25,7 @@ | |||
25 | add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) | 25 | add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) |
26 | /* | 26 | /* |
27 | * The pointer is now aligned and the length is adjusted. Try doing the | 27 | * The pointer is now aligned and the length is adjusted. Try doing the |
28 | * memzero again. | 28 | * memset again. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | ENTRY(memset) | 31 | ENTRY(memset) |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 7f36c825718d..f24803c1fb0b 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -896,7 +896,7 @@ void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc) | |||
896 | * allocate the zero page. Note that we count on this going ok. | 896 | * allocate the zero page. Note that we count on this going ok. |
897 | */ | 897 | */ |
898 | zero_page = alloc_bootmem_low_pages(PAGE_SIZE); | 898 | zero_page = alloc_bootmem_low_pages(PAGE_SIZE); |
899 | memzero(zero_page, PAGE_SIZE); | 899 | memset(zero_page, 0, PAGE_SIZE); |
900 | empty_zero_page = virt_to_page(zero_page); | 900 | empty_zero_page = virt_to_page(zero_page); |
901 | flush_dcache_page(empty_zero_page); | 901 | flush_dcache_page(empty_zero_page); |
902 | } | 902 | } |
diff --git a/arch/arm/mm/pgd.c b/arch/arm/mm/pgd.c index e0f19ab91163..2690146161ba 100644 --- a/arch/arm/mm/pgd.c +++ b/arch/arm/mm/pgd.c | |||
@@ -31,7 +31,7 @@ pgd_t *get_pgd_slow(struct mm_struct *mm) | |||
31 | if (!new_pgd) | 31 | if (!new_pgd) |
32 | goto no_pgd; | 32 | goto no_pgd; |
33 | 33 | ||
34 | memzero(new_pgd, FIRST_KERNEL_PGD_NR * sizeof(pgd_t)); | 34 | memset(new_pgd, 0, FIRST_KERNEL_PGD_NR * sizeof(pgd_t)); |
35 | 35 | ||
36 | /* | 36 | /* |
37 | * Copy over the kernel and IO PGD entries | 37 | * Copy over the kernel and IO PGD entries |
diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c index e4c0db4dc7b1..9e485459f63b 100644 --- a/drivers/mfd/asic3.c +++ b/drivers/mfd/asic3.c | |||
@@ -474,9 +474,9 @@ static __init int asic3_gpio_probe(struct platform_device *pdev, | |||
474 | u16 dir_reg[ASIC3_NUM_GPIO_BANKS]; | 474 | u16 dir_reg[ASIC3_NUM_GPIO_BANKS]; |
475 | int i; | 475 | int i; |
476 | 476 | ||
477 | memzero(alt_reg, ASIC3_NUM_GPIO_BANKS * sizeof(u16)); | 477 | memset(alt_reg, 0, ASIC3_NUM_GPIO_BANKS * sizeof(u16)); |
478 | memzero(out_reg, ASIC3_NUM_GPIO_BANKS * sizeof(u16)); | 478 | memset(out_reg, 0, ASIC3_NUM_GPIO_BANKS * sizeof(u16)); |
479 | memzero(dir_reg, ASIC3_NUM_GPIO_BANKS * sizeof(u16)); | 479 | memset(dir_reg, 0, ASIC3_NUM_GPIO_BANKS * sizeof(u16)); |
480 | 480 | ||
481 | /* Enable all GPIOs */ | 481 | /* Enable all GPIOs */ |
482 | asic3_write_register(asic, ASIC3_GPIO_OFFSET(A, MASK), 0xffff); | 482 | asic3_write_register(asic, ASIC3_GPIO_OFFSET(A, MASK), 0xffff); |
diff --git a/drivers/mtd/maps/ixp2000.c b/drivers/mtd/maps/ixp2000.c index dcdb1f17577d..3ea1de9be720 100644 --- a/drivers/mtd/maps/ixp2000.c +++ b/drivers/mtd/maps/ixp2000.c | |||
@@ -170,7 +170,7 @@ static int ixp2000_flash_probe(struct platform_device *dev) | |||
170 | err = -ENOMEM; | 170 | err = -ENOMEM; |
171 | goto Error; | 171 | goto Error; |
172 | } | 172 | } |
173 | memzero(info, sizeof(struct ixp2000_flash_info)); | 173 | memset(info, 0, sizeof(struct ixp2000_flash_info)); |
174 | 174 | ||
175 | platform_set_drvdata(dev, info); | 175 | platform_set_drvdata(dev, info); |
176 | 176 | ||
diff --git a/drivers/mtd/maps/ixp4xx.c b/drivers/mtd/maps/ixp4xx.c index 9c7a5fbd4e51..16555cbeaea4 100644 --- a/drivers/mtd/maps/ixp4xx.c +++ b/drivers/mtd/maps/ixp4xx.c | |||
@@ -201,7 +201,7 @@ static int ixp4xx_flash_probe(struct platform_device *dev) | |||
201 | err = -ENOMEM; | 201 | err = -ENOMEM; |
202 | goto Error; | 202 | goto Error; |
203 | } | 203 | } |
204 | memzero(info, sizeof(struct ixp4xx_flash_info)); | 204 | memset(info, 0, sizeof(struct ixp4xx_flash_info)); |
205 | 205 | ||
206 | platform_set_drvdata(dev, info); | 206 | platform_set_drvdata(dev, info); |
207 | 207 | ||
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c index 556139ed1fdf..bc9aa64bf187 100644 --- a/drivers/mtd/nand/s3c2410.c +++ b/drivers/mtd/nand/s3c2410.c | |||
@@ -818,7 +818,7 @@ static int s3c24xx_nand_probe(struct platform_device *pdev, | |||
818 | goto exit_error; | 818 | goto exit_error; |
819 | } | 819 | } |
820 | 820 | ||
821 | memzero(info, sizeof(*info)); | 821 | memset(info, 0, sizeof(*info)); |
822 | platform_set_drvdata(pdev, info); | 822 | platform_set_drvdata(pdev, info); |
823 | 823 | ||
824 | spin_lock_init(&info->controller.lock); | 824 | spin_lock_init(&info->controller.lock); |
@@ -883,7 +883,7 @@ static int s3c24xx_nand_probe(struct platform_device *pdev, | |||
883 | goto exit_error; | 883 | goto exit_error; |
884 | } | 884 | } |
885 | 885 | ||
886 | memzero(info->mtds, size); | 886 | memset(info->mtds, 0, size); |
887 | 887 | ||
888 | /* initialise all possible chips */ | 888 | /* initialise all possible chips */ |
889 | 889 | ||
diff --git a/drivers/video/sa1100fb.c b/drivers/video/sa1100fb.c index c052bd4c0b06..076f946fa0f5 100644 --- a/drivers/video/sa1100fb.c +++ b/drivers/video/sa1100fb.c | |||
@@ -114,7 +114,7 @@ | |||
114 | * - convert dma address types to dma_addr_t | 114 | * - convert dma address types to dma_addr_t |
115 | * - remove unused 'montype' stuff | 115 | * - remove unused 'montype' stuff |
116 | * - remove redundant zero inits of init_var after the initial | 116 | * - remove redundant zero inits of init_var after the initial |
117 | * memzero. | 117 | * memset. |
118 | * - remove allow_modeset (acornfb idea does not belong here) | 118 | * - remove allow_modeset (acornfb idea does not belong here) |
119 | * | 119 | * |
120 | * 2001/05/28: <rmk@arm.linux.org.uk> | 120 | * 2001/05/28: <rmk@arm.linux.org.uk> |