[patches 5/8] pcmcia: use irq_mask to mark IRQs as (un)usable

Mike Cumings mcumings at gmail.com
Fri Jan 28 15:49:23 EST 2005


Dominik,

I just attempted to apply your "pcmcia: yenta override, irq handling overhaul"
patch set and ran into a problem with patch 5.  I just pulled a fresh 2.6.10
bundle from kernel.org and it's drivers/pcmcia/rsrc_mgr.c appears to differ
from what your patch is expecting -  specifically in the definition of the
pcmcia_adjust_resource_info function.  The patch contains:

 int pcmcia_adjust_resource_info(adjust_t *adj)
 {
 	struct pcmcia_socket *s;
 	int ret = CS_UNSUPPORTED_FUNCTION;
 
-	if (adj->Resource == RES_IRQ)
-		return adjust_irq(adj);
-
 	down_read(&pcmcia_socket_list_rwsem);
 	list_for_each_entry(s, &pcmcia_socket_list, socket_list) {
-		if (s->resource_ops->adjust_resource)
+
+		if (adj->Resource == RES_IRQ)
+			ret = adjust_irq(s, adj);
+
+		else if (s->resource_ops->adjust_resource)
 			ret = s->resource_ops->adjust_resource(s, adj);
 	}
 	up_read(&pcmcia_socket_list_rwsem);


while the code it is attempting to match looks like:


int pcmcia_adjust_resource_info(adjust_t *adj)
{
    switch (adj->Resource) {
    case RES_MEMORY_RANGE:
	return adjust_memory(adj);
	break;
    case RES_IO_RANGE:
	return adjust_io(adj);
	break;
    case RES_IRQ:
	return adjust_irq(adj);
	break;
    }
    return CS_UNSUPPORTED_FUNCTION;
}
EXPORT_SYMBOL(pcmcia_adjust_resource_info);


Am I missing something?  I dont do this often so please be gentle if it is
operator error! ;)  Thanks,

Mike



More information about the linux-pcmcia mailing list