mlxsw: spectrum_dpipe: Make host entry fill handler more generic
authorArkadi Sharshevsky <arkadis@mellanox.com>
Thu, 31 Aug 2017 15:59:16 +0000 (17:59 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 31 Aug 2017 21:42:19 +0000 (14:42 -0700)
Change the host entry filler helper to be applicable for both IPv4/6
addresses.

Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c

index 93ba6a6ccfb89df606902157ec24a554bd316120..5924e97d59583c5f3530456ee0a2c89f4ff6e7ee 100644 (file)
@@ -439,13 +439,12 @@ mlxsw_sp_dpipe_table_host_entry_prepare(struct devlink_dpipe_entry *entry,
 }
 
 static void
-__mlxsw_sp_dpipe_table_host4_entry_fill(struct devlink_dpipe_entry *entry,
-                                       struct mlxsw_sp_rif *rif,
-                                       unsigned char *ha, u32 dip)
+__mlxsw_sp_dpipe_table_host_entry_fill(struct devlink_dpipe_entry *entry,
+                                      struct mlxsw_sp_rif *rif,
+                                      unsigned char *ha, void *dip)
 {
        struct devlink_dpipe_value *value;
        u32 *rif_value;
-       u32 *dip_value;
        u8 *ha_value;
 
        /* Set Match RIF index */
@@ -458,9 +457,7 @@ __mlxsw_sp_dpipe_table_host4_entry_fill(struct devlink_dpipe_entry *entry,
 
        /* Set Match DIP */
        value = &entry->match_values[MLXSW_SP_DPIPE_TABLE_HOST_MATCH_DIP];
-
-       dip_value = value->value;
-       *dip_value = dip;
+       memcpy(value->value, dip, value->value_size);
 
        /* Set Action DMAC */
        value = entry->action_values;
@@ -478,7 +475,7 @@ mlxsw_sp_dpipe_table_host4_entry_fill(struct devlink_dpipe_entry *entry,
 
        ha = mlxsw_sp_neigh_entry_ha(neigh_entry);
        dip = mlxsw_sp_neigh4_entry_dip(neigh_entry);
-       __mlxsw_sp_dpipe_table_host4_entry_fill(entry, rif, ha, dip);
+       __mlxsw_sp_dpipe_table_host_entry_fill(entry, rif, ha, &dip);
 }
 
 static void