Commit f62378fc authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/home/rmk/linux-2.6-arm

parents a418500b 6a1ced59
......@@ -256,5 +256,5 @@ asmlinkage void ofw_init(ofw_handle_t o, int *nomr, int *pointer)
temp[11]='\0';
mem_len = OF_getproplen(o,phandle, temp);
OF_getprop(o,phandle, temp, buffer, mem_len);
(unsigned char) pointer[32] = ((unsigned char *) buffer)[mem_len-2];
* ((unsigned char *) &pointer[32]) = ((unsigned char *) buffer)[mem_len-2];
}
......@@ -624,6 +624,9 @@ void __attribute__((noreturn)) __bug(const char *file, int line, void *data)
printk(" - extra data = %p", data);
printk("\n");
*(int *)0 = 0;
/* Avoid "noreturn function does return" */
for (;;);
}
EXPORT_SYMBOL(__bug);
......
......@@ -23,20 +23,20 @@ SECTIONS
*(.init.text)
_einittext = .;
__proc_info_begin = .;
*(.proc.info)
*(.proc.info.init)
__proc_info_end = .;
__arch_info_begin = .;
*(.arch.info)
*(.arch.info.init)
__arch_info_end = .;
__tagtable_begin = .;
*(.taglist)
*(.taglist.init)
__tagtable_end = .;
. = ALIGN(16);
__setup_start = .;
*(.init.setup)
__setup_end = .;
__early_begin = .;
*(__early_param)
*(.early_param.init)
__early_end = .;
__initcall_start = .;
*(.initcall1.init)
......
......@@ -12,6 +12,7 @@
*
* Modifications:
* 02-May-2005 BJD Copied from mach-bast.c
* 20-Sep-2005 BJD Added static to non-exported items
*/
#include <linux/kernel.h>
......@@ -232,7 +233,7 @@ static struct s3c24xx_board anubis_board __initdata = {
.clocks_count = ARRAY_SIZE(anubis_clocks)
};
void __init anubis_map_io(void)
static void __init anubis_map_io(void)
{
/* initialise the clocks */
......
......@@ -31,6 +31,7 @@
* 17-Jul-2005 BJD Changed to platform device for SuperIO 16550s
* 25-Jul-2005 BJD Removed ASIX static mappings
* 27-Jul-2005 BJD Ensure maximum frequency of i2c bus
* 20-Sep-2005 BJD Added static to non-exported items
*/
#include <linux/kernel.h>
......@@ -428,7 +429,7 @@ static struct s3c24xx_board bast_board __initdata = {
.clocks_count = ARRAY_SIZE(bast_clocks)
};
void __init bast_map_io(void)
static void __init bast_map_io(void)
{
/* initialise the clocks */
......
......@@ -24,6 +24,7 @@
* 10-Jan-2005 BJD Removed include of s3c2410.h
* 14-Jan-2005 BJD Added clock init
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
* 20-Sep-2005 BJD Added static to non-exported items
*/
#include <linux/kernel.h>
......@@ -147,7 +148,7 @@ static struct s3c24xx_board h1940_board __initdata = {
.devices_count = ARRAY_SIZE(h1940_devices)
};
void __init h1940_map_io(void)
static void __init h1940_map_io(void)
{
s3c24xx_init_io(h1940_iodesc, ARRAY_SIZE(h1940_iodesc));
s3c24xx_init_clocks(0);
......@@ -155,13 +156,13 @@ void __init h1940_map_io(void)
s3c24xx_set_board(&h1940_board);
}
void __init h1940_init_irq(void)
static void __init h1940_init_irq(void)
{
s3c24xx_init_irq();
}
void __init h1940_init(void)
static void __init h1940_init(void)
{
set_s3c2410fb_info(&h1940_lcdcfg);
}
......
......@@ -97,7 +97,7 @@ static struct s3c24xx_board n30_board __initdata = {
.devices_count = ARRAY_SIZE(n30_devices)
};
void __init n30_map_io(void)
static void __init n30_map_io(void)
{
s3c24xx_init_io(n30_iodesc, ARRAY_SIZE(n30_iodesc));
s3c24xx_init_clocks(0);
......@@ -105,14 +105,14 @@ void __init n30_map_io(void)
s3c24xx_set_board(&n30_board);
}
void __init n30_init_irq(void)
static void __init n30_init_irq(void)
{
s3c24xx_init_irq();
}
/* GPB3 is the line that controls the pull-up for the USB D+ line */
void __init n30_init(void)
static void __init n30_init(void)
{
s3c_device_i2c.dev.platform_data = &n30_i2ccfg;
......
......@@ -136,7 +136,7 @@ static void __init nexcoder_sensorboard_init(void)
s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_OUTP); // CAM_GPIO6 => CAM_PWRDN
}
void __init nexcoder_map_io(void)
static void __init nexcoder_map_io(void)
{
s3c24xx_init_io(nexcoder_iodesc, ARRAY_SIZE(nexcoder_iodesc));
s3c24xx_init_clocks(0);
......
......@@ -105,7 +105,7 @@ static struct s3c24xx_board otom11_board __initdata = {
};
void __init otom11_map_io(void)
static void __init otom11_map_io(void)
{
s3c24xx_init_io(otom11_iodesc, ARRAY_SIZE(otom11_iodesc));
s3c24xx_init_clocks(0);
......
......@@ -16,6 +16,7 @@
* 14-Jan-2005 BJD Added new clock init
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
* 14-Mar-2005 BJD Fixed __iomem warnings
* 20-Sep-2005 BJD Added static to non-exported items
*/
#include <linux/kernel.h>
......@@ -108,7 +109,7 @@ static struct s3c24xx_board rx3715_board __initdata = {
.devices_count = ARRAY_SIZE(rx3715_devices)
};
void __init rx3715_map_io(void)
static void __init rx3715_map_io(void)
{
s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc));
s3c24xx_init_clocks(16934000);
......@@ -116,7 +117,7 @@ void __init rx3715_map_io(void)
s3c24xx_set_board(&rx3715_board);
}
void __init rx3715_init_irq(void)
static void __init rx3715_init_irq(void)
{
s3c24xx_init_irq();
}
......
......@@ -28,6 +28,7 @@
* Ben Dooks <ben@simtec.co.uk>
*
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
* 20-Sep-2005 BJD Added static to non-exported items
*
***********************************************************************/
......@@ -97,7 +98,7 @@ static struct s3c24xx_board smdk2410_board __initdata = {
.devices_count = ARRAY_SIZE(smdk2410_devices)
};
void __init smdk2410_map_io(void)
static void __init smdk2410_map_io(void)
{
s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));
s3c24xx_init_clocks(0);
......@@ -105,7 +106,7 @@ void __init smdk2410_map_io(void)
s3c24xx_set_board(&smdk2410_board);
}
void __init smdk2410_init_irq(void)
static void __init smdk2410_init_irq(void)
{
s3c24xx_init_irq();
}
......
......@@ -18,6 +18,7 @@
* 22-Feb-2005 BJD Updated for 2.6.11-rc5 relesa
* 10-Mar-2005 LCVR Replaced S3C2410_VA by S3C24XX_VA
* 14-Mar-2005 BJD void __iomem fixes
* 20-Sep-2005 BJD Added static to non-exported items
*/
#include <linux/kernel.h>
......@@ -98,7 +99,7 @@ static struct s3c24xx_board smdk2440_board __initdata = {
.devices_count = ARRAY_SIZE(smdk2440_devices)
};
void __init smdk2440_map_io(void)
static void __init smdk2440_map_io(void)
{
s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
s3c24xx_init_clocks(16934400);
......@@ -106,7 +107,7 @@ void __init smdk2440_map_io(void)
s3c24xx_set_board(&smdk2440_board);
}
void __init smdk2440_machine_init(void)
static void __init smdk2440_machine_init(void)
{
/* Configure the LEDs (even if we have no LED support)*/
......
......@@ -28,6 +28,7 @@
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
* 14-Mar-2006 BJD void __iomem fixes
* 22-Jun-2006 BJD Added DM9000 platform information
* 20-Sep-2005 BJD Added static to non-exported items
*/
#include <linux/kernel.h>
......@@ -347,7 +348,7 @@ static void vr1000_power_off(void)
s3c2410_gpio_setpin(S3C2410_GPB9, 1);
}
void __init vr1000_map_io(void)
static void __init vr1000_map_io(void)
{
/* initialise clock sources */
......
......@@ -233,7 +233,17 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
if (in_interrupt() || !mm)
goto no_context;
down_read(&mm->mmap_sem);
/*
* As per x86, we may deadlock here. However, since the kernel only
* validly references user space from well defined areas of the code,
* we can bug out early if this is from code which shouldn't.
*/
if (!down_read_trylock(&mm->mmap_sem)) {
if (!user_mode(regs) && !search_exception_tables(regs->ARM_pc))
goto no_context;
down_read(&mm->mmap_sem);
}
fault = __do_page_fault(mm, addr, fsr, tsk);
up_read(&mm->mmap_sem);
......
......@@ -509,7 +509,7 @@ cpu_arm1020_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __arm1020_proc_info,#object
__arm1020_proc_info:
......
......@@ -491,7 +491,7 @@ cpu_arm1020e_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __arm1020e_proc_info,#object
__arm1020e_proc_info:
......
......@@ -473,7 +473,7 @@ cpu_arm1022_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __arm1022_proc_info,#object
__arm1022_proc_info:
......
......@@ -469,7 +469,7 @@ cpu_arm1026_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __arm1026_proc_info,#object
__arm1026_proc_info:
......
......@@ -332,7 +332,7 @@ cpu_arm710_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __arm6_proc_info, #object
__arm6_proc_info:
......
......@@ -222,7 +222,7 @@ cpu_arm720_name:
* See linux/include/asm-arm/procinfo.h for a definition of this structure.
*/
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __arm710_proc_info, #object
__arm710_proc_info:
......
......@@ -452,7 +452,7 @@ cpu_arm920_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __arm920_proc_info,#object
__arm920_proc_info:
......
......@@ -456,7 +456,7 @@ cpu_arm922_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __arm922_proc_info,#object
__arm922_proc_info:
......
......@@ -521,7 +521,7 @@ cpu_arm925_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __arm925_proc_info,#object
__arm925_proc_info:
......
......@@ -471,7 +471,7 @@ cpu_arm926_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __arm926_proc_info,#object
__arm926_proc_info:
......
......@@ -249,7 +249,7 @@ cpu_sa110_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __sa110_proc_info,#object
__sa110_proc_info:
......
......@@ -280,7 +280,7 @@ cpu_sa1110_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __sa1100_proc_info,#object
__sa1100_proc_info:
......
......@@ -240,7 +240,7 @@ cpu_elf_name:
.size cpu_elf_name, . - cpu_elf_name
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
/*
* Match any ARMv6 processor core.
......
......@@ -578,7 +578,7 @@ cpu_pxa270_name:
.align
.section ".proc.info", #alloc, #execinstr
.section ".proc.info.init", #alloc, #execinstr
.type __80200_proc_info,#object
__80200_proc_info:
......
......@@ -23,12 +23,13 @@ static struct i2c_driver pcf8583_driver;
static unsigned short ignore[] = { I2C_CLIENT_END };
static unsigned short normal_addr[] = { 0x50, I2C_CLIENT_END };
static unsigned short *forces[] = { NULL };
static struct i2c_client_address_data addr_data = {
.normal_i2c = normal_addr,
.probe = ignore,
.ignore = ignore,
.force = ignore,
.forces = forces,
};
#define DAT(x) ((unsigned int)(x->dev.driver_data))
......
......@@ -50,7 +50,7 @@ struct machine_desc {
*/
#define MACHINE_START(_type,_name) \
const struct machine_desc __mach_desc_##_type \
__attribute__((__section__(".arch.info"))) = { \
__attribute__((__section__(".arch.info.init"))) = { \
.nr = MACH_TYPE_##_type, \
.name = _name,
......
......@@ -171,7 +171,7 @@ struct tagtable {
int (*parse)(const struct tag *);
};
#define __tag __attribute_used__ __attribute__((__section__(".taglist")))
#define __tag __attribute_used__ __attribute__((__section__(".taglist.init")))
#define __tagtable(tag, fn) \
static struct tagtable __tagtable_##fn __tag = { tag, fn }
......@@ -213,6 +213,6 @@ struct early_params {
#define __early_param(name,fn) \
static struct early_params __early_##fn __attribute_used__ \
__attribute__((__section__("__early_param"))) = { name, fn }
__attribute__((__section__(".early_param.init"))) = { name, fn }
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment