isci: filter broadcast change notifications during SMP phy resets
authorJeff Skirvin <jeffrey.d.skirvin@intel.com>
Tue, 21 Jun 2011 19:16:33 +0000 (12:16 -0700)
committerDan Williams <dan.j.williams@intel.com>
Sun, 3 Jul 2011 11:04:50 +0000 (04:04 -0700)
commit61aaff49e20fdb700f1300a49962bc76effc77fc
treee00556108ba35fe5610673d1f10cde3440e4ed12
parentff717ab05f0c33f93514eccea6dfe1a15983e1d1
isci: filter broadcast change notifications during SMP phy resets

When resetting a sata device in the domain we have seen occasions where
libsas prematurely marks a device gone in the time it takes for the
device to re-establish the link.  This plays badly with software raid
arrays.  Other libsas drivers have non-uniform delays in their reset
handlers to try to cover this condition, but not sufficient to close the
hole.  Given that a sata device can take many seconds to recover we
filter bcns and poll for the device reattach state before notifying
libsas that the port needs the domain to be rediscovered.  Once this has
been proven out at the lldd level we can think about uplevelling this
feature to a common implementation in libsas.

Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
[ use kzalloc instead of kmem_cache ]
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
[ use eventq and time macros ]
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/scsi/isci/port.c
drivers/scsi/isci/port.h
drivers/scsi/isci/task.c