diff --git a/pkg/tcpip/stack/nic.go b/pkg/tcpip/stack/nic.go index 8bf61bf60..38a9d4679 100644 --- a/pkg/tcpip/stack/nic.go +++ b/pkg/tcpip/stack/nic.go @@ -928,7 +928,7 @@ func (n *nic) setNUDConfigs(protocol tcpip.NetworkProtocolNumber, c NUDConfigura return &tcpip.ErrNotSupported{} } -func (n *nic) registerPacketEndpoint(netProto tcpip.NetworkProtocolNumber, ep PacketEndpoint) tcpip.Error { +func (n *nic) registerPacketEndpoint(netProto tcpip.NetworkProtocolNumber, ep PacketEndpoint) { n.packetEPsMu.Lock() defer n.packetEPsMu.Unlock() @@ -938,8 +938,6 @@ func (n *nic) registerPacketEndpoint(netProto tcpip.NetworkProtocolNumber, ep Pa n.packetEPs[netProto] = eps } eps.add(ep) - - return nil } func (n *nic) unregisterPacketEndpoint(netProto tcpip.NetworkProtocolNumber, ep PacketEndpoint) { diff --git a/pkg/tcpip/stack/stack.go b/pkg/tcpip/stack/stack.go index 23ce2d2ed..c2c5a2240 100644 --- a/pkg/tcpip/stack/stack.go +++ b/pkg/tcpip/stack/stack.go @@ -1840,10 +1840,7 @@ func (s *Stack) RegisterPacketEndpoint(nicID tcpip.NICID, netProto tcpip.Network if nicID == 0 { // Register with each NIC. for _, nic := range s.nics { - if err := nic.registerPacketEndpoint(netProto, ep); err != nil { - s.unregisterPacketEndpointLocked(0, netProto, ep) - return err - } + nic.registerPacketEndpoint(netProto, ep) } return nil } @@ -1853,9 +1850,7 @@ func (s *Stack) RegisterPacketEndpoint(nicID tcpip.NICID, netProto tcpip.Network if !ok { return &tcpip.ErrUnknownNICID{} } - if err := nic.registerPacketEndpoint(netProto, ep); err != nil { - return err - } + nic.registerPacketEndpoint(netProto, ep) return nil } diff --git a/pkg/tcpip/transport/packet/endpoint.go b/pkg/tcpip/transport/packet/endpoint.go index d99b01143..f2bf08111 100644 --- a/pkg/tcpip/transport/packet/endpoint.go +++ b/pkg/tcpip/transport/packet/endpoint.go @@ -94,7 +94,7 @@ type endpoint struct { } // NewEndpoint returns a new packet endpoint. -func NewEndpoint(s *stack.Stack, cooked bool, netProto tcpip.NetworkProtocolNumber, waiterQueue *waiter.Queue) (tcpip.Endpoint, tcpip.Error) { +func NewEndpoint(s *stack.Stack, cooked bool, netProto tcpip.NetworkProtocolNumber, waiterQueue *waiter.Queue) tcpip.Endpoint { ep := &endpoint{ stack: s, cooked: cooked, @@ -115,10 +115,9 @@ func NewEndpoint(s *stack.Stack, cooked bool, netProto tcpip.NetworkProtocolNumb ep.ops.SetReceiveBufferSize(int64(rs.Default), false /* notify */) } - if err := s.RegisterPacketEndpoint(0, netProto, ep); err != nil { - return nil, err - } - return ep, nil + s.RegisterPacketEndpoint(0, netProto, ep) + + return ep } // Abort implements stack.TransportEndpoint.Abort. diff --git a/pkg/tcpip/transport/raw/protocol.go b/pkg/tcpip/transport/raw/protocol.go index 624e2dbe7..63122b1cb 100644 --- a/pkg/tcpip/transport/raw/protocol.go +++ b/pkg/tcpip/transport/raw/protocol.go @@ -32,7 +32,7 @@ func (EndpointFactory) NewUnassociatedEndpoint(stack *stack.Stack, netProto tcpi // NewPacketEndpoint implements stack.RawFactory.NewPacketEndpoint. func (EndpointFactory) NewPacketEndpoint(stack *stack.Stack, cooked bool, netProto tcpip.NetworkProtocolNumber, waiterQueue *waiter.Queue) (tcpip.Endpoint, tcpip.Error) { - return packet.NewEndpoint(stack, cooked, netProto, waiterQueue) + return packet.NewEndpoint(stack, cooked, netProto, waiterQueue), nil } // CreateOnlyFactory implements stack.RawFactory. It allows creation of raw