On Mon, 30 Jan 2017, 10:34am -0000, Hannes Reinecke wrote:

> On 01/25/2017 09:33 PM, Dupuis, Chad wrote:

> > +static int qedf_request_msix_irq(struct qedf_ctx *qedf)
> > +{
> > +   int i, rc, cpu;
> > +
> > +   cpu = cpumask_first(cpu_online_mask);
> > +   for (i = 0; i < qedf->num_queues; i++) {
> > +           rc = request_irq(qedf->int_info.msix[i].vector,
> > +               qedf_msix_handler, 0, "qedf", &qedf->fp_array[i]);
> > +
> > +           if (rc) {
> > +                   QEDF_WARN(&(qedf->dbg_ctx), "request_irq failed.\n");
> > +                   qedf_sync_free_irqs(qedf);
> > +                   return rc;
> > +           }
> > +
> > +           qedf->int_info.used_cnt++;
> > +           rc = irq_set_affinity_hint(qedf->int_info.msix[i].vector,
> > +               get_cpu_mask(cpu));
> > +           cpu = cpumask_next(cpu, cpu_online_mask);
> > +   }
> > +
> > +   return 0;
> > +}
> > +
> Please use pci_alloc_irq_vectors() here; that avoid you having to do SMP
> affinity setting yourself.

This wil be difficult to coordinate with three other drivers (qedi, qede 
and qedr) using the same vector allocation code in the qed module.

> 
> Cheers,
> 
> Hannes
> 

Reply via email to