
On Tue, Nov 29, 2022 at 04:58:33PM -0800, Tim Harvey wrote:
Yes, it makes sense. How about the following patch instead:
diff --git a/net/dsa-uclass.c b/net/dsa-uclass.c index 211a991cdd0d..1ae9adc66eda 100644 --- a/net/dsa-uclass.c +++ b/net/dsa-uclass.c @@ -142,6 +142,9 @@ static int dsa_port_send(struct udevice *pdev, void *packet, int length) struct dsa_port_pdata *port_pdata; int err;
if (!ops->xmit)
return eth_get_ops(master)->send(master, packet, length);
My 2 cents, I would avoid calling eth_get_ops(master)->send() twice. Either keep the mangling inside the "if" block, or pass the length argument by reference to your function, or use a goto skip_mangling.
if (length + head + tail > PKTSIZE_ALIGN) return -EINVAL;
@@ -172,7 +175,7 @@ static int dsa_port_recv(struct udevice *pdev, int flags, uchar **packetp) int length, port_index, err;
length = eth_get_ops(master)->recv(master, flags, packetp);
if (length <= 0)
if (length <= 0 || !ops->rcv) return length; /*
Perhaps it's more elegant to wrap the bulk of dsa_port_send with an 'if (ops->xmit)' but changing the indentation makes the patch more difficult to follow.
Best Regards,
Tim