gpio interrupt of omap beagle board

Hello,

I put the Ethernet network device on Omap beagle board, which runs
Linux 2.6.22.18.
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
followings;
ks8851_probe()
{
#define GPIO17 17
        u32 irq;
        omap_request_gpio( GPIO17 );
        irq = gpio_to_irq( GPIO17 ); //
IRQ=177
        gpio_direction_input( GPIO17 );
        request_irq(irq,
ks8851_interrupt,IRQF_TRIGGER_LOW,"ks8851isr", dev); //LOW Level
trigger
        :
        (omitted)

}

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.

Rdx,
David J. Choi