gpio interrupt of omap beagle board


I put the Ethernet network device on Omap beagle board, which runs
I want to use GPIO 17 as an interrupt source from the network device.
I added the code in probe function of the network device as
#define GPIO17 17
        u32 irq;
        omap_request_gpio( GPIO17 );
        irq = gpio_to_irq( GPIO17 ); //
        gpio_direction_input( GPIO17 );
ks8851_interrupt,IRQF_TRIGGER_LOW,"ks8851isr", dev); //LOW Level


After compiling the Linux kernel including the code above, I loaded
the new kernel on the omap beagle board.

When the kenel starts to work, kernel calls interrupt handler
( ks8851_interrupt ) endlessly. After debugging, I find that it can
not clear the interrupt status. More specifically, clear bit17 of
OMAP24XX_GPIO_IRQSTATUS1 in _clear_gpio_irqbank() and read back
immediately. The read-back value is still set, which I think causes
the issue.

Is there any idea to fix this issue?
Any kind of comments will be highly appreciated.

David J. Choi