2005-11-14 Paul Jakma <paul.jakma@sun.com>
* zebra_rib.c: (rib_process) convert to new workqueue specs and
shut up gcc, which complains about cast from void via
function parameters, for some dumb reason. Do the cast
inside the function instead.
(rib_queue_qnode_del) ditto.
(rib_queue_init) no need for the casts anymore.
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index 0658cab..f2621c1 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -1242,8 +1242,9 @@
};
static wq_item_status
-bgp_process_rsclient (struct bgp_process_queue *pq)
+bgp_process_rsclient (struct work_queue *wq, void *data)
{
+ struct bgp_process_queue *pq = data;
struct bgp *bgp = pq->bgp;
struct bgp_node *rn = pq->rn;
afi_t afi = pq->afi;
@@ -1309,8 +1310,9 @@
}
static wq_item_status
-bgp_process_main (struct bgp_process_queue *pq)
+bgp_process_main (struct work_queue *wq, void *data)
{
+ struct bgp_process_queue *pq = data;
struct bgp *bgp = pq->bgp;
struct bgp_node *rn = pq->rn;
afi_t afi = pq->afi;
@@ -1390,8 +1392,10 @@
}
static void
-bgp_processq_del (struct bgp_process_queue *pq)
+bgp_processq_del (struct work_queue *wq, void *data)
{
+ struct bgp_process_queue *pq = data;
+
bgp_unlock_node (pq->rn);
XFREE (MTYPE_BGP_PROCESS_QUEUE, pq);
}
@@ -2450,8 +2454,9 @@
};
static wq_item_status
-bgp_clear_route_node (struct bgp_clear_node_queue *cq)
+bgp_clear_route_node (struct work_queue *wq, void *data)
{
+ struct bgp_clear_node_queue *cq = data;
struct bgp_adj_in *ain;
struct bgp_adj_out *aout;
struct bgp_info *ri;
@@ -2493,8 +2498,9 @@
}
static void
-bgp_clear_node_queue_del (struct bgp_clear_node_queue *cq)
+bgp_clear_node_queue_del (struct work_queue *wq, void *data)
{
+ struct bgp_clear_node_queue *cq = data;
bgp_unlock_node (cq->rn);
peer_unlock (cq->peer); /* bgp_clear_node_queue_del */
XFREE (MTYPE_BGP_CLEAR_NODE_QUEUE, cq);