mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-04 03:33:58 +08:00
net: ipa: reorder netdev pointer assignments
Assign the ipa->modem_netdev and endpoint->netdev pointers *before* registering the network device. As soon as the device is registered it can be opened, and by that time we'll want those pointers valid. Similarly, don't make those pointers NULL until *after* the modem network device is unregistered in ipa_modem_stop(). Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
30c2515b89
commit
10cc73c4b7
@ -231,13 +231,15 @@ int ipa_modem_start(struct ipa *ipa)
|
||||
SET_NETDEV_DEV(netdev, &ipa->pdev->dev);
|
||||
priv = netdev_priv(netdev);
|
||||
priv->ipa = ipa;
|
||||
ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = netdev;
|
||||
ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = netdev;
|
||||
ipa->modem_netdev = netdev;
|
||||
|
||||
ret = register_netdev(netdev);
|
||||
if (!ret) {
|
||||
ipa->modem_netdev = netdev;
|
||||
ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = netdev;
|
||||
ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = netdev;
|
||||
} else {
|
||||
if (ret) {
|
||||
ipa->modem_netdev = NULL;
|
||||
ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = NULL;
|
||||
ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = NULL;
|
||||
free_netdev(netdev);
|
||||
}
|
||||
|
||||
@ -276,10 +278,10 @@ int ipa_modem_stop(struct ipa *ipa)
|
||||
/* If it was opened, stop it first */
|
||||
if (netdev->flags & IFF_UP)
|
||||
(void)ipa_stop(netdev);
|
||||
unregister_netdev(netdev);
|
||||
ipa->modem_netdev = NULL;
|
||||
ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = NULL;
|
||||
ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = NULL;
|
||||
ipa->modem_netdev = NULL;
|
||||
unregister_netdev(netdev);
|
||||
free_netdev(netdev);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user