Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Minor conflict in drivers/s390/net/qeth_l2_main.c, kept the lock from commitc8183f5489
("s390/qeth: fix potential deadlock on workqueue flush"), removed the code which was removed by commit9897d583b0
("s390/qeth: consolidate some duplicated HW cmd code"). Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
This commit is contained in:
@@ -457,10 +457,14 @@ static void qeth_l2_set_promisc_mode(struct qeth_card *card)
|
||||
if (card->info.promisc_mode == enable)
|
||||
return;
|
||||
|
||||
if (qeth_adp_supported(card, IPA_SETADP_SET_PROMISC_MODE))
|
||||
if (qeth_adp_supported(card, IPA_SETADP_SET_PROMISC_MODE)) {
|
||||
qeth_setadp_promisc_mode(card, enable);
|
||||
else if (card->options.sbp.reflect_promisc)
|
||||
qeth_l2_promisc_to_bridge(card, enable);
|
||||
} else {
|
||||
mutex_lock(&card->sbp_lock);
|
||||
if (card->options.sbp.reflect_promisc)
|
||||
qeth_l2_promisc_to_bridge(card, enable);
|
||||
mutex_unlock(&card->sbp_lock);
|
||||
}
|
||||
}
|
||||
|
||||
/* New MAC address is added to the hash table and marked to be written on card
|
||||
@@ -621,6 +625,7 @@ static int qeth_l2_probe_device(struct ccwgroup_device *gdev)
|
||||
int rc;
|
||||
|
||||
qeth_l2_vnicc_set_defaults(card);
|
||||
mutex_init(&card->sbp_lock);
|
||||
|
||||
if (gdev->dev.type == &qeth_generic_devtype) {
|
||||
rc = qeth_l2_create_device_attributes(&gdev->dev);
|
||||
@@ -779,10 +784,12 @@ static int qeth_l2_set_online(struct ccwgroup_device *gdev)
|
||||
goto out_remove;
|
||||
}
|
||||
|
||||
mutex_lock(&card->sbp_lock);
|
||||
qeth_bridgeport_query_support(card);
|
||||
if (card->options.sbp.supported_funcs)
|
||||
dev_info(&card->gdev->dev,
|
||||
"The device represents a Bridge Capable Port\n");
|
||||
mutex_unlock(&card->sbp_lock);
|
||||
|
||||
qeth_l2_register_dev_addr(card);
|
||||
|
||||
@@ -1131,9 +1138,9 @@ static void qeth_bridge_state_change_worker(struct work_struct *work)
|
||||
|
||||
/* Role should not change by itself, but if it did, */
|
||||
/* information from the hardware is authoritative. */
|
||||
mutex_lock(&data->card->conf_mutex);
|
||||
mutex_lock(&data->card->sbp_lock);
|
||||
data->card->options.sbp.role = entry->role;
|
||||
mutex_unlock(&data->card->conf_mutex);
|
||||
mutex_unlock(&data->card->sbp_lock);
|
||||
|
||||
snprintf(env_locrem, sizeof(env_locrem), "BRIDGEPORT=statechange");
|
||||
snprintf(env_role, sizeof(env_role), "ROLE=%s",
|
||||
@@ -1199,9 +1206,9 @@ static void qeth_bridge_host_event_worker(struct work_struct *work)
|
||||
: (data->hostevs.lost_event_mask == 0x02)
|
||||
? "Bridge port state change"
|
||||
: "Unknown reason");
|
||||
mutex_lock(&data->card->conf_mutex);
|
||||
mutex_lock(&data->card->sbp_lock);
|
||||
data->card->options.sbp.hostnotification = 0;
|
||||
mutex_unlock(&data->card->conf_mutex);
|
||||
mutex_unlock(&data->card->sbp_lock);
|
||||
qeth_bridge_emit_host_event(data->card, anev_abort,
|
||||
0, NULL, NULL);
|
||||
} else
|
||||
|
Reference in New Issue
Block a user