All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.