opengnsys_ipxe/src/net
Michael Brown f17a30d547 [netdevice] Mark devices as open before calling open() method
When opening a VLAN device, vlan_open() will call netdev_open() on the
trunk device.  This will result in a call to netdev_notify(), which
will cause vlan_notify() to call vlan_sync() on the original VLAN
device, which will see that the trunk device is now open but the VLAN
device apparently isn't (since it has not yet been flagged as open by
netdev_open()).  The upshot is a second attempt to open the VLAN
device, which will result in an erroneous second call to vlan_open().
This convoluted chain of events then terminates harmlessly since
vlan_open() calls netdev_open() on the trunk device, which just
returns immediately since the trunk device is by now flagged as being
already open.

Prevent this from happening by having netdev_open() flag the device as
open prior to calling the device's open() method, and reflagging it as
closed if the open() method fails.

Originally-fixed-by: Wissam Shoukair <wissams@mellanox.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2014-03-05 15:25:08 +00:00
..
80211 [settings] Force settings into alphabetical order within sections 2013-12-05 12:43:28 +00:00
infiniband [infiniband] Include destination address vector in ib_complete_recv() 2012-08-31 21:22:58 +01:00
oncrpc [nfs] Fix an issue with the selection of a local port 2013-08-06 15:58:35 +01:00
tcp [uri] Refactor URI parsing and formatting 2014-02-27 13:32:53 +00:00
udp [uri] Refactor URI parsing and formatting 2014-02-27 13:32:53 +00:00
aoe.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
arp.c [neighbour] Generalise concept of neighbour discovery 2013-09-03 02:02:58 +01:00
dhcpopts.c [dhcp] Copy exactly the required length when resizing DHCP options 2014-02-26 16:44:05 +00:00
dhcppkt.c [settings] Explicitly separate the concept of a completed fetched setting 2013-12-05 00:37:02 +00:00
eapol.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
eth_slow.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
ethernet.c [ethernet] Add support for generating multicast hash for IPv6 addresses 2013-09-03 02:02:51 +01:00
fakedhcp.c [settings] Explicitly separate the concept of a completed fetched setting 2013-12-05 00:37:02 +00:00
fc.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
fcels.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
fcns.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
fcoe.c [build] Fix dubious uses of bitwise operators 2013-04-28 17:31:23 +01:00
fcp.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
fragment.c [tcpip] Add IP statistics collection as per RFC 4293 2014-03-02 20:33:35 +00:00
icmp.c [icmp] Add support for sending ICMP echo requests 2013-10-21 15:08:12 +01:00
icmpv4.c [icmp] Add support for sending ICMP echo requests 2013-10-21 15:08:12 +01:00
icmpv6.c [icmp] Add support for sending ICMP echo requests 2013-10-21 15:08:12 +01:00
infiniband.c [infiniband] Include destination address vector in ib_complete_recv() 2012-08-31 21:22:58 +01:00
iobpad.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
ipv4.c [tcpip] Provide tcpip_mtu() to determine the maximum transmission unit 2014-03-04 13:13:54 +00:00
ipv6.c [tcpip] Provide tcpip_mtu() to determine the maximum transmission unit 2014-03-04 13:13:54 +00:00
ndp.c [dns] Support DNS search lists 2014-02-05 14:56:49 +00:00
neighbour.c [netdevice] Make all net_driver methods optional 2013-11-01 02:26:44 +00:00
netdev_settings.c [settings] Force settings into alphabetical order within sections 2013-12-05 12:43:28 +00:00
netdevice.c [netdevice] Mark devices as open before calling open() method 2014-03-05 15:25:08 +00:00
nullnet.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
ping.c [ping] Add concept of a ping socket 2013-10-21 15:08:18 +01:00
rarp.c [legal] Update FSF mailing address in GPL licence texts 2012-07-20 19:55:45 +01:00
retry.c [retry] Expose retry_poll() to explicitly poll all running timers 2012-08-31 20:21:15 +01:00
socket.c [socket] Add concept of a generalised socket address converter 2013-10-21 14:34:03 +01:00
tcp.c [tcp] Calculate correct MSS from peer address 2014-03-04 13:23:29 +00:00
tcpip.c [tcpip] Provide tcpip_mtu() to determine the maximum transmission unit 2014-03-04 13:13:54 +00:00
tls.c [tls] Concatenate received non-data records before processing 2013-01-31 09:59:36 +00:00
udp.c [udp] Add AF_INET6 socket opener 2013-10-21 14:34:02 +01:00
validator.c [settings] Force settings into alphabetical order within sections 2013-12-05 12:43:28 +00:00
vlan.c [netdevice] Make all net_driver methods optional 2013-11-01 02:26:44 +00:00