From 131e7f3aa255c1c500d7ea1244ab299e7e9877ab Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 30 Oct 2007 17:32:56 +0000 Subject: [PATCH] netfront accel: Ensure hooks set if accelerator loads before first network interface. Signed-off-by --- drivers/xen/netfront/accel.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/xen/netfront/accel.c b/drivers/xen/netfront/accel.c index 4f6c340a..8e3bec37 100644 --- a/drivers/xen/netfront/accel.c +++ b/drivers/xen/netfront/accel.c @@ -131,7 +131,8 @@ static void add_accelerator_vif(struct netfront_accelerator *accelerator, * Initialise the state to track an accelerator plugin module. */ static int init_accelerator(const char *frontend, - struct netfront_accelerator **result) + struct netfront_accelerator **result, + struct netfront_accel_hooks *hooks) { struct netfront_accelerator *accelerator = kmalloc(sizeof(struct netfront_accelerator), GFP_KERNEL); @@ -154,7 +155,7 @@ static int init_accelerator(const char *frontend, INIT_LIST_HEAD(&accelerator->vif_states); spin_lock_init(&accelerator->vif_states_lock); - accelerator->hooks = NULL; + accelerator->hooks = hooks; accelerator->ready_for_probe = 1; accelerator->need_probe = NULL; @@ -278,7 +279,7 @@ int netfront_load_accelerator(struct netfront_info *np, } /* Couldn't find it, so create a new one and load the module */ - if ((rc = init_accelerator(frontend, &accelerator)) < 0) { + if ((rc = init_accelerator(frontend, &accelerator, NULL)) < 0) { spin_unlock_irqrestore(&accelerators_lock, flags); return rc; } @@ -451,7 +452,7 @@ int netfront_accelerator_loaded(int version, const char *frontend, DPRINTK("Couldn't find matching accelerator (%s)\n", frontend); - init_accelerator(frontend, &accelerator); + init_accelerator(frontend, &accelerator, hooks); spin_unlock_irqrestore(&accelerators_lock, flags); -- 2.39.5