From 262bc4d7d637294fdeb85adbea5abdf139db7524 Mon Sep 17 00:00:00 2001 From: Mark Lord Date: Mon, 6 Apr 2009 12:30:43 -0400 Subject: [PATCH] --- yaml --- r: 142679 b: refs/heads/master c: 933cb8e5fcdebd4b666165e3f039f814d62b0e52 h: refs/heads/master i: 142677: a6de4dde9a6b6a2e9d150e215179c1cb1cf87bd9 142675: eec3ec35b106e8ee3092b0006cecb85690a256c7 142671: 02e2a549d61895f072d07dca0bed2888369b9e7e v: v3 --- [refs] | 2 +- trunk/drivers/ata/sata_mv.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index dfed457725cc..60b9e42b7ebc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 44c65d169c5d2e5c872581ebc65f12710d7c3b71 +refs/heads/master: 933cb8e5fcdebd4b666165e3f039f814d62b0e52 diff --git a/trunk/drivers/ata/sata_mv.c b/trunk/drivers/ata/sata_mv.c index be9ae4fc5cbe..8245c82505cc 100644 --- a/trunk/drivers/ata/sata_mv.c +++ b/trunk/drivers/ata/sata_mv.c @@ -1575,6 +1575,7 @@ static int mv_port_start(struct ata_port *ap) struct device *dev = ap->host->dev; struct mv_host_priv *hpriv = ap->host->private_data; struct mv_port_priv *pp; + unsigned long flags; int tag; pp = devm_kzalloc(dev, sizeof(*pp), GFP_KERNEL); @@ -1610,8 +1611,12 @@ static int mv_port_start(struct ata_port *ap) pp->sg_tbl_dma[tag] = pp->sg_tbl_dma[0]; } } + + spin_lock_irqsave(ap->lock, flags); mv_save_cached_regs(ap); mv_edma_cfg(ap, 0, 0); + spin_unlock_irqrestore(ap->lock, flags); + return 0; out_port_free_dma_mem: @@ -1630,8 +1635,12 @@ static int mv_port_start(struct ata_port *ap) */ static void mv_port_stop(struct ata_port *ap) { + unsigned long flags; + + spin_lock_irqsave(ap->lock, flags); mv_stop_edma(ap); mv_enable_port_irqs(ap, 0); + spin_unlock_irqrestore(ap->lock, flags); mv_port_free_dma_mem(ap); }