diff --git a/man/systemd.link.xml b/man/systemd.link.xml
index e04618340b..34d4834cca 100644
--- a/man/systemd.link.xml
+++ b/man/systemd.link.xml
@@ -691,13 +691,15 @@
RxBufferSize=
- Takes a integer. Specifies the NIC receive ring buffer size. When unset, the kernel's default will be used.
+ Takes an integer. Specifies the maximum number of pending packets in the NIC receive buffer.
+ When unset, the kernel's default will be used.
TxBufferSize=
- Takes a integer. Specifies the NIC transmit ring buffer size. When unset, the kernel's default will be used.
+ Takes an integer. Specifies the maximum number of pending packets in the NIC transmit buffer.
+ When unset, the kernel's default will be used.
diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c
index fe29af24d0..703e48025e 100644
--- a/src/shared/ethtool-util.c
+++ b/src/shared/ethtool-util.c
@@ -431,18 +431,14 @@ int ethtool_set_nic_buffer_size(int *ethtool_fd, const char *ifname, netdev_ring
if (r < 0)
return -errno;
- if (ring->rx_pending_set) {
- if (ecmd.rx_pending != ring->rx_pending) {
- ecmd.rx_pending = ring->rx_pending;
- need_update = true;
- }
+ if (ring->rx_pending_set && ecmd.rx_pending != ring->rx_pending) {
+ ecmd.rx_pending = ring->rx_pending;
+ need_update = true;
}
- if (ring->tx_pending_set) {
- if (ecmd.tx_pending != ring->tx_pending) {
- ecmd.tx_pending = ring->tx_pending;
- need_update = true;
- }
+ if (ring->tx_pending_set && ecmd.tx_pending != ring->tx_pending) {
+ ecmd.tx_pending = ring->tx_pending;
+ need_update = true;
}
if (need_update) {