mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
scsi: libsas: Simplify sas_check_eeds()
In sas_check_eeds() there is an empty branch. We can reverse the test expression and then remove the empty branch. Also the test expression is a little bit complex so it deserves an individual function. And make the continuing prototype lines indented after the opening parenthesis to follow the standard coding style. Signed-off-by: Jason Yan <yanaijie@huawei.com> Link: https://lore.kernel.org/r/20230421093744.1583609-2-yanaijie@huawei.com Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
ac9a78681b
commit
e3be011e82
@ -1198,37 +1198,37 @@ static void sas_print_parent_topology_bug(struct domain_device *child,
|
|||||||
sas_route_char(child, child_phy));
|
sas_route_char(child, child_phy));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool sas_eeds_valid(struct domain_device *parent,
|
||||||
|
struct domain_device *child)
|
||||||
|
{
|
||||||
|
struct sas_discovery *disc = &parent->port->disc;
|
||||||
|
|
||||||
|
return (SAS_ADDR(disc->eeds_a) == SAS_ADDR(parent->sas_addr) ||
|
||||||
|
SAS_ADDR(disc->eeds_a) == SAS_ADDR(child->sas_addr)) &&
|
||||||
|
(SAS_ADDR(disc->eeds_b) == SAS_ADDR(parent->sas_addr) ||
|
||||||
|
SAS_ADDR(disc->eeds_b) == SAS_ADDR(child->sas_addr));
|
||||||
|
}
|
||||||
|
|
||||||
static int sas_check_eeds(struct domain_device *child,
|
static int sas_check_eeds(struct domain_device *child,
|
||||||
struct ex_phy *parent_phy,
|
struct ex_phy *parent_phy,
|
||||||
struct ex_phy *child_phy)
|
struct ex_phy *child_phy)
|
||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
struct domain_device *parent = child->parent;
|
struct domain_device *parent = child->parent;
|
||||||
|
struct sas_discovery *disc = &parent->port->disc;
|
||||||
|
|
||||||
if (SAS_ADDR(parent->port->disc.fanout_sas_addr) != 0) {
|
if (SAS_ADDR(disc->fanout_sas_addr) != 0) {
|
||||||
res = -ENODEV;
|
res = -ENODEV;
|
||||||
pr_warn("edge ex %016llx phy S:%02d <--> edge ex %016llx phy S:%02d, while there is a fanout ex %016llx\n",
|
pr_warn("edge ex %016llx phy S:%02d <--> edge ex %016llx phy S:%02d, while there is a fanout ex %016llx\n",
|
||||||
SAS_ADDR(parent->sas_addr),
|
SAS_ADDR(parent->sas_addr),
|
||||||
parent_phy->phy_id,
|
parent_phy->phy_id,
|
||||||
SAS_ADDR(child->sas_addr),
|
SAS_ADDR(child->sas_addr),
|
||||||
child_phy->phy_id,
|
child_phy->phy_id,
|
||||||
SAS_ADDR(parent->port->disc.fanout_sas_addr));
|
SAS_ADDR(disc->fanout_sas_addr));
|
||||||
} else if (SAS_ADDR(parent->port->disc.eeds_a) == 0) {
|
} else if (SAS_ADDR(disc->eeds_a) == 0) {
|
||||||
memcpy(parent->port->disc.eeds_a, parent->sas_addr,
|
memcpy(disc->eeds_a, parent->sas_addr, SAS_ADDR_SIZE);
|
||||||
SAS_ADDR_SIZE);
|
memcpy(disc->eeds_b, child->sas_addr, SAS_ADDR_SIZE);
|
||||||
memcpy(parent->port->disc.eeds_b, child->sas_addr,
|
} else if (!sas_eeds_valid(parent, child)) {
|
||||||
SAS_ADDR_SIZE);
|
|
||||||
} else if (((SAS_ADDR(parent->port->disc.eeds_a) ==
|
|
||||||
SAS_ADDR(parent->sas_addr)) ||
|
|
||||||
(SAS_ADDR(parent->port->disc.eeds_a) ==
|
|
||||||
SAS_ADDR(child->sas_addr)))
|
|
||||||
&&
|
|
||||||
((SAS_ADDR(parent->port->disc.eeds_b) ==
|
|
||||||
SAS_ADDR(parent->sas_addr)) ||
|
|
||||||
(SAS_ADDR(parent->port->disc.eeds_b) ==
|
|
||||||
SAS_ADDR(child->sas_addr))))
|
|
||||||
;
|
|
||||||
else {
|
|
||||||
res = -ENODEV;
|
res = -ENODEV;
|
||||||
pr_warn("edge ex %016llx phy%02d <--> edge ex %016llx phy%02d link forms a third EEDS!\n",
|
pr_warn("edge ex %016llx phy%02d <--> edge ex %016llx phy%02d link forms a third EEDS!\n",
|
||||||
SAS_ADDR(parent->sas_addr),
|
SAS_ADDR(parent->sas_addr),
|
||||||
|
Loading…
Reference in New Issue
Block a user