public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Ravi Anand <ravi.anand@qlogic.com>
Cc: Christoph Hellwig <hch@infradead.org>,
	rwhron@earthlink.net, linux-scsi@vger.kernel.org
Subject: Re: When is QLogic 6.x driver going into 2.5?
Date: Wed, 1 Jan 2003 11:47:56 +0000	[thread overview]
Message-ID: <20030101114756.A19957@infradead.org> (raw)
In-Reply-To: <3679966B84813344B908D418BA3F6A4AA8406B@AVEXCH01.qlogic.org>; from ravi.anand@qlogic.com on Tue, Dec 31, 2002 at 07:30:46PM -0800

On Tue, Dec 31, 2002 at 07:30:46PM -0800, Ravi Anand wrote:
> Can you kindly elaborate on the extra work needed.

First thing is of course to actually port the driver to 2.5-CURRENT, there's
no way it'll get into 2.4 before 2.5.

The it needs some massaging into an actual linux driver:

* remove typedef abuse
* remove #ifdef abuse.  The current driver is ifdef hell at it's best.
  examples:

#ifdef UNIQUE_FW_NAME
unsigned short fw2300ip_version = 3*1024+1;
#else
unsigned short risc_code_version = 3*1024+1;
#endif

  just always use the unique name, it can't harm

#if QLA2X_PERFORMANCE

  WTF?  Either your performance changes work and can always be enabled
  or you should remove them from a submitted driver.
  The useful remaining options should be turned into CONFIG_* symbols
  for use with the kernel config tools.

* the source file organization is a mess.  Don't ever include c files
  in other c files.  Reorganize the code into qla2100/qla2200/qla2300
  specific sources and common sources instead of the ifdef mess and
  turn the shared code into a library module (e.g. qla2x00.ko)

* don't delcare the host template in a header but as normal struct,
  see the many 2.5 driver that underwent that change (i.e. aic7xxx)

Second there's a bunch of functional changes that need to be done:

* Convert to the new pci API and scsi_add_host/scsi_remove_host for
  proper PCI hotplug support.
* Remove failover/multipath support.  It has been frequently stated
  multipathing for linux schould be handle in the driver-independant
  later, like the merged md-level support or IBM's scsi midlayer
  MP patches.
* Don't use deprecated functions like check_region :)
* Use proper abstraction instead of version checking hell in the
  source files.  I.e. the many occurances of

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
        spin_lock_irq(&io_request_lock);
#else
	spin_lock_irq(ha->host->host_lock);
#endif

  should be hidden behing a proper wrapper.
* scsi_block_requests/scsi_unblock_requests instead of queueing commands
  yourself in ->queuecommand if the port stated is "dead" and remove
  much of the then obsolete queueing code.


Janitoral stuff:

* there seems to be lots of missing error return checks (i.e. copy_from_user)
* rename kmem_zalloc or just use kmalloc directly - Linux 2.5 already has
  a kmem_zalloc (in XFS)

I guess there's some more stuff that can be found once the driver is in
a saner shape, but the list is already huge enough 8)


  reply	other threads:[~2003-01-01 11:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-01  3:30 When is QLogic 6.x driver going into 2.5? Ravi Anand
2003-01-01 11:47 ` Christoph Hellwig [this message]
2003-01-01 23:29   ` Anton Blanchard
  -- strict thread matches above, loose matches on Subject: below --
2002-12-29 12:45 rwhron
2002-12-30 21:17 ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030101114756.A19957@infradead.org \
    --to=hch@infradead.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=ravi.anand@qlogic.com \
    --cc=rwhron@earthlink.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox