Arp undo issue in all 2.4 and 2.6 kernel releases

2006-11-28 Thread Tim Wright
Hi folks,
I have been tracking down a strange problem, and have a simple
"reproduce-by" and was looking for opinions from those better-versed in
the kernel networking code. Basically, it is possible to get a system
into a state where it responds to ARP requests even though no interface
has the address requested. Here is a simple reproduce-by:

Select an address in the same subnet as eth0
# ifconfig eth0:5 W.X.Y.Z netmask ... up
This works. Machine now responds to arp requests for W.X.Y.Z.
# ifconfig eth0:6 W.X.Y.Z netmask ... up
This fails as it should. But, the damage is done.
# ifconfig
You will only see eth0 and eth0:5. There is no eth0:6 interface. Good.
# ifconfig eth0:5 down
Now we are supposedly back to the original state. BUT the machine will
still respond to ARP requests for W.X.Y.Z

The easiest way to get out of this is to bring up eth0:5 again, and
bring it down again. However, this looks to me like the undo code when a
clashing address is found fails to clean up the arp side of things
correctly. Any clues here?

I am not on the netdev mailing list and will track responses on the
mailing list archives.

Thanks very much,

Tim Wright
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/1] IB/mlx5: Add port_xmit_wait to counter registers read

2017-05-01 Thread Tim Wright
Add port_xmit_wait to the error counters read by mlx5_ib_process_mad to
ensure sysfs port counter provides correct value for PortXmitWait.
Otherwise the sysfs port_xmit_wait file always contains zero.

The previous MAD_IFC implementation populated this counter, but it was
removed during the migration to PPCNT for error counters (32-bit only).

Signed-off-by: Tim Wright 
---
 drivers/infiniband/hw/mlx5/mad.c | 2 ++
 include/linux/mlx5/mlx5_ifc.h| 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/mlx5/mad.c b/drivers/infiniband/hw/mlx5/mad.c
index 8dacb49..f1b56de6 100644
--- a/drivers/infiniband/hw/mlx5/mad.c
+++ b/drivers/infiniband/hw/mlx5/mad.c
@@ -187,6 +187,8 @@ static void pma_cnt_assign(struct ib_pma_portcounters 
*pma_cnt,
 port_xmit_discards);
MLX5_ASSIGN_PMA_CNTR(pma_cnt->port_xmit_constraint_errors,
 port_xmit_constraint_errors);
+   MLX5_ASSIGN_PMA_CNTR(pma_cnt->port_xmit_wait,
+port_xmit_wait);
MLX5_ASSIGN_PMA_CNTR(pma_cnt->port_rcv_constraint_errors,
 port_rcv_constraint_errors);
MLX5_ASSIGN_PMA_CNTR(pma_cnt->link_overrun_errors,
diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h
index 8382426..e641bc3 100644
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@ -1452,7 +1452,9 @@ struct mlx5_ifc_ib_port_cntrs_grp_data_layout_bits {
 
u8 vl_15_dropped[0x10];
 
-   u8 reserved_at_a0[0xa0];
+   u8 reserved_at_a0[0x80];
+
+   u8 port_xmit_wait[0x20];
 };
 
 struct mlx5_ifc_eth_per_traffic_grp_data_layout_bits {
-- 
1.8.3.1