Re: [PATCH] SCSI driver for VMware's virtual HBA.

Alok Kataria
2009-08-31T21:54:15Z

On Mon, 2009-08-31 at 11:51 -0700, Rolf Eike Beer wrote:
> Alok Kataria wrote:
> > Hi Eike,
>
> > > > +static int __devinit pvscsi_probe(struct pci_dev *pdev,
> > > > + const struct pci_device_id *id)
> > > > +{
> > > > + struct pvscsi_adapter *adapter;
> > > > + struct Scsi_Host *host;
> > > > + unsigned long base, i;
> > > > + int error;
> > > > +
> > > > + error = -ENODEV;
> > > > +
> > > > + if (pci_enable_device(pdev))
> > > > + return error;
> > >
> > > As always I suggest having a look on devres (see Documentation/driver-
> > > model/devres.txt) which could simplify your error handling here and your
> > > release function a lot. You only need to make sure it doesn't hurt if all
> > > the PCI resources are freed after the scsi ones as you would end up
> > > cleaning the scsi ones by hand and afterwards devres would throw all it
> > > handles (which will probably be most of your PCI stuff) away itself.
> >
> > I took a quick look, but would prefer not to change this right now. Will
> > do this as a incremental change later. Hope that is fine.
>
> Just a suggestion ;)
>
> > > > + adapter->dev = pdev;
> > > > + adapter->host = host;
> > > > +
> > > > + spin_lock_init(&adapter->hw_lock);
> > > > +
> > > > + host->max_channel = 0;
> > > > + host->max_id = 16;
> > > > + host->max_lun = 1;
> > > > +
> > > > + pci_read_config_byte(pdev, PCI_CLASS_REVISION, &adapter->rev);
> > >
> > > That's in pdev->revision anyway, isn't it?
> >
> > Yep, though, its needed in pvscsi_info, so will keep this in adapter
> > too.
>
> Yes, but you don't need to do pci_read_config_byte() but simply copying that
> over from pdev->revision.

Oh..yes, will take care of that in the next revision.

Thanks,
Alok
>
> Eike