diff options
Diffstat (limited to 'arch/m68k/amiga/config.c')
| -rw-r--r-- | arch/m68k/amiga/config.c | 16 | 
1 files changed, 7 insertions, 9 deletions
diff --git a/arch/m68k/amiga/config.c b/arch/m68k/amiga/config.c index b1577f741fa..82a4bb51d5d 100644 --- a/arch/m68k/amiga/config.c +++ b/arch/m68k/amiga/config.c @@ -610,17 +610,17 @@ static void amiga_mem_console_write(struct console *co, const char *s,  static int __init amiga_savekmsg_setup(char *arg)  { -	static struct resource debug_res = { .name = "Debug" }; -  	if (!MACH_IS_AMIGA || strcmp(arg, "mem")) -		goto done; +		return 0; -	if (!AMIGAHW_PRESENT(CHIP_RAM)) { -		printk("Warning: no chipram present for debugging\n"); -		goto done; +	if (amiga_chip_size < SAVEKMSG_MAXMEM) { +		pr_err("Not enough chipram for debugging\n"); +		return -ENOMEM;  	} -	savekmsg = amiga_chip_alloc_res(SAVEKMSG_MAXMEM, &debug_res); +	/* Just steal the block, the chipram allocator isn't functional yet */ +	amiga_chip_size -= SAVEKMSG_MAXMEM; +	savekmsg = (void *)ZTWO_VADDR(CHIP_PHYSADDR + amiga_chip_size);  	savekmsg->magic1 = SAVEKMSG_MAGIC1;  	savekmsg->magic2 = SAVEKMSG_MAGIC2;  	savekmsg->magicptr = ZTWO_PADDR(savekmsg); @@ -628,8 +628,6 @@ static int __init amiga_savekmsg_setup(char *arg)  	amiga_console_driver.write = amiga_mem_console_write;  	register_console(&amiga_console_driver); - -done:  	return 0;  }  |