linux/drivers/s390/net
Julian Wiedmann f3380b1edc s390/qeth: tighten ucast IP locking
The programming of ucast IPs via qeth_l3_modify_ip() is driven
independently from any of our typical locking mechanisms (eg. detaching
the netdevice, or holding the conf_mutex).
So when we inspect the card state to check whether the required cmd IO
should be deferred, there is no protection against concurrent state
changes.

But by slightly re-ordering the teardown sequence, we can rely on the
ip_lock to sufficiently serialize things:

1. when running concurrently to qeth_l3_set_online(), any instance of
   qeth_l3_modify_ip() that aquires the ip_lock _after_
   qeth_l3_recover_ip() will observe the state as CARD_STATE_SOFTSETUP
   and not defer the IO.
2. when running concurrently to qeth_l3_set_offline(), any instance of
   qeth_l3_modify_ip() that aquires the ip_lock _after_
   qeth_l3_clear_ip_htable() will observe the state as CARD_STATE_DOWN
   and defer the IO.

These guarantees in mind, we can now drop the conf_mutex from the
qeth_l3_modify_rxip_vipa() wrapper.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-09-23 12:07:54 -07:00
..
ctcm_dbug.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_dbug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_fsms.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ctcm_fsms.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_main.c s390/net: remove pm ops from ccwgroup drivers 2020-05-19 12:48:39 -07:00
ctcm_main.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_mpc.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ctcm_mpc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctcm_sysfs.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fsm.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-11-30 08:13:36 -08:00
fsm.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ism_drv.c s390/ism: indicate correct error reason in ism_alloc_dmb() 2020-07-27 10:30:01 -07:00
ism.h net/smc: immediate termination for SMCD link groups 2019-11-15 12:28:28 -08:00
Kconfig s390/net: add SMC config as one of the defaults of CCWGROUP 2020-09-10 15:24:26 -07:00
lcs.c s390/net: remove pm ops from ccwgroup drivers 2020-05-19 12:48:39 -07:00
lcs.h net: convert lcs_reply.refcnt from atomic_t to refcount_t 2017-12-20 15:23:44 -05:00
Makefile s390/qeth: move ethtool code into its own file 2019-02-15 20:35:29 -08:00
netiucv.c s390/net: remove pm support from iucv drivers 2020-05-19 12:48:39 -07:00
qeth_core_main.c s390/qeth: Detect PNSO OC3 capability 2020-09-15 13:21:47 -07:00
qeth_core_mpc.c s390/qeth: constify the MPC initialization data 2020-07-14 14:53:45 -07:00
qeth_core_mpc.h s390/qeth: unify structs for bridge port state 2020-08-27 07:42:03 -07:00
qeth_core_sys.c s390/qeth: replace deprecated simple_stroul() 2020-09-23 12:07:54 -07:00
qeth_core.h s390/qeth: replace deprecated simple_stroul() 2020-09-23 12:07:54 -07:00
qeth_ethtool.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
qeth_l2_main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-22 16:45:34 -07:00
qeth_l2_sys.c s390/qeth: Reset address notification in case of buffer overflow 2020-09-15 13:21:47 -07:00
qeth_l2.h s390/qeth: Reset address notification in case of buffer overflow 2020-09-15 13:21:47 -07:00
qeth_l3_main.c s390/qeth: tighten ucast IP locking 2020-09-23 12:07:54 -07:00
qeth_l3_sys.c s390/qeth: replace deprecated simple_stroul() 2020-09-23 12:07:54 -07:00
qeth_l3.h s390/qeth: replace deprecated simple_stroul() 2020-09-23 12:07:54 -07:00
smsgiucv_app.c s390: net: add SPDX identifiers to the remaining files 2017-11-24 14:28:43 +01:00
smsgiucv.c s390/net: remove pm support from iucv drivers 2020-05-19 12:48:39 -07:00
smsgiucv.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00