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)
next prev parent 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.