[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[microblaze-uclinux] xilinx_gpio driver patch



When configuring my system with three Xilinx Gpio devices using
drivers/char/xilinx_gpio, my system would hang during bootup. I isolated the
problem to the xilinx_gpio driver, on an error condition in xgpio_probe.
When the second device was probed, the request_irq failed leaving the
inst_list_sem locked, so when the third probe started it blocked on
acquiring the lock. 

The attached patch, applied with
	cd petalinux-dist
	patch -p0 xilinx_gpio.patch

releases the lock on failure.


*** linux-2.6.x/drivers/char/xilinx_gpio/Oadapter.c     2007-07-30
18:16:49.000000000 -0400
--- linux-2.6.x/drivers/char/xilinx_gpio/adapter.c      2007-07-30
18:38:13.000000000 -0400
***************
*** 449,454 ****
--- 449,455 ----
        minor--;

        failed3:
+       up_write(&inst_list_sem);
        iounmap((void *)(xgpio_config.BaseAddress));

        failed2:
 



___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/