ieee1394 pcilynx.c SMP fix
PATCH 1/1 ieee1394 pcilynx.c SMP fix
Due to a brain malfunction spinlocks were used in pcilynx.c before they were initialized, causing SMP systems to deadlock. The patch fixes this and removes one second/redundant initialization of another lock.
drivers/ieee1394/pcilynx.c +3 -4
@@ -470,8 +470,6 @@ lynx->phy_reg0 =-1 ; lynx->async.queue =NULL ; -spin_lock_init (&lynx->async.queue_lock); -spin_lock_init (&lynx->phy_reg_lock); pcl.next =pcl_bus (lynx, lynx->rcv_pcl);put_pcl (lynx, lynx->rcv_pcl_start, &pcl);
@@ -1357,6 +1355,9 @@ lynx->id = num_of_cards-1 ; lynx->dev = dev; + lynx->lock =SPIN_LOCK_UNLOCKED ; + lynx->phy_reg_lock =SPIN_LOCK_UNLOCKED ; +if (!pci_dma_supported (dev,0xffffffff )) {FAIL ("DMA address limits not supported for PCILynx hardware %d" , lynx->id);
@@ -1456,8 +1457,6 @@ lynx->iso_rcv.pcl_start =alloc_pcl (lynx);/* all allocations successful - simple init stuff follows */ - - lynx->lock =SPIN_LOCK_UNLOCKED ;reg_write (lynx,PCI_INT_ENABLE ,PCI_INT_DMA_ALL );
Signature · 2 lines
Andreas E. Bombe <[email protected]> DSA key 0x04880A44 http://home.pages.de/~andreas.bombe/ http://linux1394.sourceforge.net/