RE: sata_mv port lockup on hotplug (kernel

From: Bruce Stenning
Date: Thu Apr 14 2011 - 12:51:07 EST

> > One thing I noticed was that there is no spinlock around the
> > mv_save_cached_regs/mv_edma_cfg in mv_hardreset (unlike mv_port_start
> > and mv_port_stop); why is this?
> Yeah, I'm suspecting there's a loophole in the logic there somewhere.
> I dusted off the 6041 reference card I have here, and played with the cables
> for a while. Managed to get one port to stop responding to hot plug fairly
> quickly, though I'm not sure how/why.
> Then I added a debug printk() to mv_write_main_irq_mask(), with no other
> changes, and that appears to have been enough to change the race timing
> so that I could no longer produce the problem.
> Bruce, here's a slightly-ugly patch that should remove all doubt about races
> in the irq_mask. Please apply it, test with it, and let me know here if the
> issue goes away.
> Thanks
> [patch]

Hi Mark,

I have tried the patch out and I was able to reproduce the port lockup with it.

I also tried out my tracing in writelfl (without any other changes) and I was
able to lock up a port without any apparent unusual changes to the register
containing the irq masks. Are there other routes to disabling the irqs?

I shall continue looking.



Bruce Stenning,
b <dot> stenning <at> indigovision <dot> com

Latest News at:
N‹§²æìr¸›yúèšØb²X¬¶ÇvØ^–)Þ{.nÇ+‰·¥Š{±‘êçzX§¶›¡Ü}©ž²ÆzÚ&j:+v‰¨¾«‘êçzZ+€Ê+zf£¢·hšˆ§~†­†Ûiÿûàz¹®w¥¢¸?™¨è­Ú&¢)ßf”ù^jÇy§m…á@A«a¶Úÿ 0¶ìh®å’i