summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJulian Wiedmann <jwi@linux.ibm.com>2020-08-27 10:17:02 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-10-29 10:12:21 +0100
commit52e318de92f5ddc9d39431c868d1e8f1a91357f2 (patch)
tree49cdf59693464c6ea3e79605694f8aa9979a5cb4 /drivers
parentb0a20475d574cb5b2d56455ee2770cb8a1b0daf2 (diff)
downloadlinux-stable-52e318de92f5ddc9d39431c868d1e8f1a91357f2.tar.gz
linux-stable-52e318de92f5ddc9d39431c868d1e8f1a91357f2.tar.bz2
linux-stable-52e318de92f5ddc9d39431c868d1e8f1a91357f2.zip
s390/qeth: don't let HW override the configured port role
[ Upstream commit a04f0ecacdb0639d416614619225a39de3927e22 ] The only time that our Bridgeport role should change is when we change the configuration ourselves. In which case we also adjust our internal state tracking, no need to do it again when we receive the corresponding event. Removing the locked section helps a subsequent patch that needs to flush the workqueue while under sbp_lock. It would be nice to raise a warning here in case HW does weird things after all, but this could end up generating false-positives when we change the configuration ourselves. Suggested-by: Alexandra Winter <wintera@linux.ibm.com> Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Reviewed-by: Alexandra Winter <wintera@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/s390/net/qeth_l2_main.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index 9866d01b40fe..4af7b5d57b4e 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -1120,12 +1120,6 @@ static void qeth_bridge_state_change_worker(struct work_struct *work)
NULL
};
- /* Role should not change by itself, but if it did, */
- /* information from the hardware is authoritative. */
- mutex_lock(&data->card->sbp_lock);
- data->card->options.sbp.role = entry->role;
- mutex_unlock(&data->card->sbp_lock);
-
snprintf(env_locrem, sizeof(env_locrem), "BRIDGEPORT=statechange");
snprintf(env_role, sizeof(env_role), "ROLE=%s",
(entry->role == QETH_SBP_ROLE_NONE) ? "none" :