> Subject: Re: [PATCH 07/22] RDMA/irdma: Register an auxiliary driver and
> implement private channel OPs
> 
> On Fri, Jan 22, 2021 at 05:48:12PM -0600, Shiraz Saleem wrote:
> 
> > +static int irdma_probe(struct auxiliary_device *aux_dev,
> > +                  const struct auxiliary_device_id *id) {
> > +   struct irdma_drvdata *drvdata;
> > +   int ret;
> > +
> > +   drvdata = kzalloc(sizeof(*drvdata), GFP_KERNEL);
> > +   if (!drvdata)
> > +           return -ENOMEM;
> > +
> > +   switch (id->driver_data) {
> > +   case IRDMA_GEN_2:
> > +           drvdata->init_dev = irdma_init_dev;
> > +           drvdata->deinit_dev = irdma_deinit_dev;
> > +           break;
> > +   case IRDMA_GEN_1:
> > +           drvdata->init_dev = i40iw_init_dev;
> > +           drvdata->deinit_dev = i40iw_deinit_dev;
> > +           break;
> > +   default:
> > +           ret = -ENODEV;
> > +           goto ver_err;
> 
> Also don't do this, if the drivers are so different then give them different 
> aux bus
> names and bind two drivers with the different flow.

I suppose we could have a gen1 aux driver and one for gen2 with the flows being 
a little orthogonal from each other.

The gen2 aux driver auxiliary_device_id table would have entries for iWARP and 
RoCE
aux dev's.


> 
> I suppose the old i40e can keep its weird registration thing, but ice should 
> not
> duplicate that, new code must use aux devices properly, as in my other email.
> 
> Jason

Reply via email to