[ovs-dev] [PATCH 2/3] netdev: Change macro to function.
Ben Pfaff
blp at ovn.org
Mon Nov 13 22:04:46 UTC 2017
There was no reason that this should have been a macro.
Signed-off-by: Ben Pfaff <blp at ovn.org>
---
lib/netdev.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/lib/netdev.c b/lib/netdev.c
index 7792b1b75681..8dd35864d7cb 100644
--- a/lib/netdev.c
+++ b/lib/netdev.c
@@ -2179,18 +2179,21 @@ struct ifindex_to_port_data {
const struct dpif_class *dpif_class;
};
-#define NETDEV_PORTS_HASH_INT(port, dpif) \
- hash_int(odp_to_u32(port),\
- hash_pointer(dpif, 0));
+static uint32_t
+netdev_ports_hash(odp_port_t port, const struct dpif_class *dpif_class)
+{
+ return hash_int(odp_to_u32(port), hash_pointer(dpif_class, 0));
+}
static struct port_to_netdev_data *
netdev_ports_lookup(odp_port_t port_no, const struct dpif_class *dpif_class)
OVS_REQUIRES(netdev_hmap_mutex)
{
- size_t hash = NETDEV_PORTS_HASH_INT(port_no, dpif_class);
struct port_to_netdev_data *data;
- HMAP_FOR_EACH_WITH_HASH (data, node, hash, &port_to_netdev) {
+ HMAP_FOR_EACH_WITH_HASH (data, node,
+ netdev_ports_hash(port_no, dpif_class),
+ &port_to_netdev) {
if (data->dpif_class == dpif_class
&& data->dpif_port.port_no == port_no) {
return data;
@@ -2203,7 +2206,6 @@ int
netdev_ports_insert(struct netdev *netdev, const struct dpif_class *dpif_class,
struct dpif_port *dpif_port)
{
- size_t hash = NETDEV_PORTS_HASH_INT(dpif_port->port_no, dpif_class);
struct port_to_netdev_data *data;
struct ifindex_to_port_data *ifidx;
int ifindex = netdev_get_ifindex(netdev);
@@ -2228,7 +2230,8 @@ netdev_ports_insert(struct netdev *netdev, const struct dpif_class *dpif_class,
ifidx->port = dpif_port->port_no;
ifidx->dpif_class = dpif_class;
- hmap_insert(&port_to_netdev, &data->node, hash);
+ hmap_insert(&port_to_netdev, &data->node,
+ netdev_ports_hash(dpif_port->port_no, dpif_class));
hmap_insert(&ifindex_to_port, &ifidx->node, ifidx->ifindex);
ovs_mutex_unlock(&netdev_hmap_mutex);
--
2.10.2
More information about the dev
mailing list