Hey all- I've put this patch together to fix up an oops in the olympic token ring driver. The problem was orgionally reported as an oops which occurs on media disconnect. The problem was that free_irq was being called from several places in the olympic interrupt handler, which triggered the subsequent oops. This patch corrects that by removing the free_irq call from all the interrupt handler code paths, instead allowing the olympic_close to handle the free_irq on an interface down event. The patch also cleans up some double free conditions on the receive ring buffer that arose due to this change. Lastly the patch corrects a situation in which calling ifdown on an interface owned by the driver would hang the process in cases where the adaper needed to be reset to complete any operations, but never woke the wait queue which the olympic_close routine was waiting on. This patch cleans that up. Tested by me, on 2.4 and 2.6 with good, working results, and no more oopses. Thanks! Neil -- -- /*************************************************** *Neil Horman *Software Engineer *Red Hat, Inc. *nhorman@redhat.com *gpg keyid: 1024D / 0x92A74FA1 *http://pgp.mit.edu ***************************************************/