scsi: libsas: Inject revalidate event for root port event
authorJohn Garry <john.garry@huawei.com>
Fri, 12 Apr 2019 08:57:55 +0000 (16:57 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 15 Apr 2019 22:55:00 +0000 (18:55 -0400)
commit085f104a83d565097644889bf1f6f1aa6d345cb5
treec3c531c4172c6591a5914741384929ed742e4c80
parenta5b38d3159eac6a30c1c57d67707c141b9ac3efb
scsi: libsas: Inject revalidate event for root port event

According to the SAS spec, an expander device shall transmit BROADCAST
(CHANGE) from at least one phy in each expander port other than the
expander port that is the cause for transmitting BROADCAST (CHANGE).

As such, for when the link is lost for a root PHY attached to an expander
PHY, we get no broadcast event.

This causes an issue for libsas, in that we will not revalidate the domain
for these events.

As a solution, for when a root PHY is formed or deformed from a root port,
insert a broadcast event to trigger a domain revalidation.

Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libsas/sas_port.c
include/scsi/libsas.h