[PATCH 2/4] libata-core.c: add another IRQ calls

Jeff Garzik jeff at garzik.org
Wed Jan 17 09:04:27 EST 2007


Alan wrote:
> Jeff - at some point we could eliminate a lot of the NULL checks like
> these by having the registration code fill in the defaults where
> appropriate ?

libata policy up until this point has been to require all drivers fill 
in the hook, either with the commonly-used default, or with their own 
variant.  Thus, no NULL checks for required hooks, and you get an oops 
if you fail this requirement.  I like that better than defaults buried 
inside libata-core, where it is easier for programmers to forget them.

But actually, it's an open question for the compiler guys whether this 
case is preferred:

	if (ap->ops->hook)
		ap->ops->hook(foo, bar);
	else
		commonly_used_default(foo, bar);

or this:

	ap->ops->hook(foo, bar);

With advanced branch prediction in modern CPUs, ISTR the first case may 
be worth considering, even with the branch.

If the second case is preferred, then Akira should make a bombing run 
through each driver, applying the patch
+	.irq_on		= ata_irq_on

No NULL checks or registration code bother, in that case.

Comments welcome...

	Jeff





More information about the Linuxppc-dev mailing list