> +static inline void setup_link_status_change_wq(struct net_device *netdev)
> +{
> +     struct lio *lio = GET_LIO(netdev);
> +     struct octeon_device *oct = lio->oct_dev;
> +
> +     lio->link_status_wq.wq = alloc_workqueue("link-status",
> +                                              WQ_MEM_RECLAIM, 0);
> +     if (!lio->link_status_wq.wq) {
> +             dev_err(&oct->pci_dev->dev, "unable to create cavium link
> status wq\n");
> +             return;
> +     }
> +     INIT_DELAYED_WORK(&lio->link_status_wq.wk.work,
> +                       octnet_link_status_change);
> +     lio->link_status_wq.wk.ctxptr = lio;
> +}

Don't you need to propagate the allocation failure?
Won't this wouldn't you still try to schedule the non-initialized workitem
on the non-existent workqueue later on?

Reply via email to