Ensure hooks set if accelerator loads before first network interface
Signed-off-by <kmansley@xxxxxxxxxxxxxx>
diff -r 7f386cf89345 drivers/xen/netfront/accel.c
--- a/drivers/xen/netfront/accel.c Fri Oct 26 13:56:56 2007 +0100
+++ b/drivers/xen/netfront/accel.c Fri Oct 26 13:58:14 2007 +0100
@@ -131,7 +131,8 @@ static void add_accelerator_vif(struct n
* 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 *
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 net
}
/* 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;
}
@@ -450,7 +451,7 @@ int netfront_accelerator_loaded(int vers
DPRINTK("Couldn't find matching accelerator (%s)\n",
frontend);
- init_accelerator(frontend, &accelerator);
+ init_accelerator(frontend, &accelerator, hooks);
spin_unlock_irqrestore(&accelerators_lock, flags);
accel_initialise_hooks
Description: Text document
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|