* [PATCH] ieee1394 pcilynx.c SMP fix
@ 2001-03-20 22:49 Andreas Bombe
0 siblings, 0 replies; only message in thread
From: Andreas Bombe @ 2001-03-20 22:49 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel
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.
diff -ruN linux-2.4.linus/drivers/ieee1394/pcilynx.c linux-2.4/drivers/ieee1394/pcilynx.c
--- linux-2.4.linus/drivers/ieee1394/pcilynx.c Mon Feb 26 01:39:30 2001
+++ linux-2.4/drivers/ieee1394/pcilynx.c Wed Mar 14 01:00:13 2001
@@ -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);
--
Andreas E. Bombe <andreas.bombe@munich.netsurf.de> DSA key 0x04880A44
http://home.pages.de/~andreas.bombe/ http://linux1394.sourceforge.net/
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2001-03-20 23:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-03-20 22:49 [PATCH] ieee1394 pcilynx.c SMP fix Andreas Bombe
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.