From d8760b15faf94687c2950b1f503f44dcf5f2c4ab Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=BB=84=E6=B6=9B?= Date: Tue, 12 Oct 2010 17:39:20 +0800 Subject: [PATCH] spi_fpga_fw: fix access uninitialized spin_lock bug fix this bug: BUG: spinlock bad magic on CPU#0, swapper/1 lock: c0c83ffc, .magic: 00000000, .owner: /-1, .owner_cpu: 0 [] (unwind_backtrace+0x0/0xdc) from [] (dump_stack+0x18/0x1c) [] (dump_stack+0x18/0x1c) from [] (spin_bug+0x90/0xa4) [] (spin_bug+0x90/0xa4) from [] (_raw_spin_lock+0x2c/0x168) [] (_raw_spin_lock+0x2c/0x168) from [] (_spin_lock_irqsave+0x5c/0x68) [] (_spin_lock_irqsave+0x5c/0x68) from [] (fpga_dl_fw+0x98/0x358) [] (fpga_dl_fw+0x98/0x358) from [] (machine_rk2818_board_init+0x94/0x124) [] (machine_rk2818_board_init+0x94/0x124) from [] (customize_machine+0x20/0x2c) [] (customize_machine+0x20/0x2c) from [] (do_one_initcall+0x64/0x1c0) [] (do_one_initcall+0x64/0x1c0) from [] (kernel_init+0xa4/0x11c) [] (kernel_init+0xa4/0x11c) from [] (kernel_thread_exit+0x0/0x8) --- drivers/fpga/spi_fpga_fw.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/fpga/spi_fpga_fw.c b/drivers/fpga/spi_fpga_fw.c index a526dddfba83..154b9347edb1 100755 --- a/drivers/fpga/spi_fpga_fw.c +++ b/drivers/fpga/spi_fpga_fw.c @@ -113,10 +113,11 @@ static void __init spi_fpga_wait(unsigned int num) i++; } } -static spinlock_t lock_fw; + +static DEFINE_SPINLOCK(lock_fw); static void __init spi_fpga_dlfw(unsigned char * fpga_fw, unsigned int fpga_fw_len) { - int ret; + //int ret; unsigned long flags; unsigned char command1[6] = {0x7e, 0xaa, 0x99, 0x7e, 0x01, 0x0e}; unsigned char command2[5] = {0x83, 0x00, 0x00, 0x26, 0x11}; @@ -245,6 +246,7 @@ int __init fpga_dl_fw(void) gpio_direction_output(RK2818_PIN_PE0,1); udelay(2); gpio_direction_output(RK2818_PIN_PE0,0); - + + return 0; } -- 2.34.1