From: Julian Wiedmann Date: Fri, 27 Mar 2020 10:19:34 +0000 (+0100) Subject: s390/qeth: phase out OSN support X-Git-Tag: v5.10.7~2946^2~55^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fb64de1bc36c7fdeb3b4279d0fe52496ce34c45a;p=platform%2Fkernel%2Flinux-rpi.git s390/qeth: phase out OSN support OSN devices currently spend an awful long time in qeth_l2_set_online() until various unsupported HW cmds time out. This has been broken for over two years, ever since commit d22ffb5a712f ("s390/qeth: fix IPA command submission race") triggered a FW bug in cmd processing. Prior to commit 782e4a792147 ("s390/qeth: don't poll for cmd IO completion"), this wait for timeout would have even been spent busy-polling. The offending patch was picked up by stable and all relevant distros, and yet noone noticed. OSN setups only ever worked in combination with an out-of-tree blob, and the last machine that even offered HW with OSN support was released back in 2015. Rather than attempting to work-around this FW issue for no actual gain, add a deprecation warning so anyone who still wants to maintain this part of the code can speak up. Else rip it all out in 2021. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller --- diff --git a/drivers/s390/net/Kconfig b/drivers/s390/net/Kconfig index 3663338..3850a0f 100644 --- a/drivers/s390/net/Kconfig +++ b/drivers/s390/net/Kconfig @@ -97,6 +97,7 @@ config QETH_OSN depends on QETH help This enables the qeth driver to support devices in OSN mode. + This feature will be removed in 2021. If unsure, choose N. config QETH_OSX diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c index 974b459..0bd5b09 100644 --- a/drivers/s390/net/qeth_l2_main.c +++ b/drivers/s390/net/qeth_l2_main.c @@ -587,6 +587,9 @@ static int qeth_l2_probe_device(struct ccwgroup_device *gdev) struct qeth_card *card = dev_get_drvdata(&gdev->dev); int rc; + if (IS_OSN(card)) + dev_notice(&gdev->dev, "OSN support will be dropped in 2021\n"); + qeth_l2_vnicc_set_defaults(card); mutex_init(&card->sbp_lock);