Subject: Re: [PATCH 0/8] csiostor: Chelsio FCoE offload driver submission

From: James Bottomley <[email-masked]>
Date: Fri, 24 Aug 2012 22:58:55 +0100

On Fri, 2012-08-24 at 17:45 -0400, Paul Gortmaker wrote:
> On Thu, Aug 23, 2012 at 6:27 PM, Naresh Kumar Inna <[email-masked]> wrote:
> > This is the initial submission of the Chelsio FCoE offload driver (csiostor)
> > to the upstream kernel. This driver currently supports FCoE offload
> > functionality over Chelsio T4-based 10Gb Converged Network Adapters.
> >
> > The following patches contain the driver sources for csiostor driver and
> > updates to firmware/hardware header files shared between csiostor and
> > cxgb4 (Chelsio T4-based NIC driver). The csiostor driver is dependent on these
> > header updates. These patches have been generated against scsi 'misc' branch.
> >
> > csiostor is a low level SCSI driver that interfaces with PCI, SCSI midlayer and
> > FC transport subsystems. This driver claims the FCoE PCIe function on the
> > Chelsio Converged Network Adapter. It relies on firmware events for slow path
> > operations like discovery, thereby offloading session management. The driver
> > programs firmware via Work Request interfaces for fast path I/O offload
> > features.
> >
> > Here is the brief description of patches:
> > [PATCH 1/8]: Hardware interface, Makefile and Kconfig changes.
> > [PATCH 2/8]: Driver initialization and Work Request services.
> > [PATCH 3/8]: FC transport interfaces and mailbox services.
> > [PATCH 4/8]: Local and remote port state tracking functionality.
> > [PATCH 5/8]: Interrupt handling and fast path I/O functionality.
> > [PATCH 6/8]: Header files part 1.
> > [PATCH 7/8]: Header files part 2.
> 
> Based on the above two, I'm guessing nothing will build and work
> on any of steps one through six?  Yet you expose the Kconfig
> and Makefile linkage into the tree in patch #1?   So your patches
> as presented are non bisectable.
> 
> You need to rethink your breakup in the presentation.  Factoring
> things just by files alone is not the right approach.  You need to
> ask yourself whether each commit is a stand-alone entity that does
> something independently on its own -- since they generally should.

Actually, this is fine for a new driver ... everything just gets put in
as a single commit.  There's really no point adding a driver in pieces
if it's not functional until the last patch, so in this case only, the
breakup is to help the review.

James