Re: Why does printk helps PCMCIA card to initialise?

From: Vicente Feito
Date: Sun Feb 20 2005 - 07:25:14 EST


Hello

On Sunday 20 February 2005 11:44 am, you wrote:
>
> diff -u -U 7 /linux-2.6.11-rc4.changed/drivers/pcmcia/rsrc_nonstatic.c
> ../linux-2.6.11-rc4/drivers/pcmcia/rsrc_nonstatic.c
> --- /linux-2.6.11-rc4.changed/drivers/pcmcia/rsrc_nonstatic.c
> 2005-02-20 11:37:39.000000000 +0100
> +++ ../linux-2.6.11-rc4/drivers/pcmcia/rsrc_nonstatic.c 2005-02-20
> 02:16:48.000000000 +0100
> @@ -623,15 +623,14 @@
> down(&rsrc_sem);
> #ifdef CONFIG_PCI
> if (s->cb_dev) {
> ret = pci_bus_alloc_resource(s->cb_dev->bus, res, num, 1,
> min, 0, pcmcia_align, &data);
> } else
> #endif
> - printk("This line will never be printed, but it helps!!!");
> ret = allocate_resource(&ioport_resource, res, num, min,
What you're doing is forcing the execution of allocate_resource (&ioport... );
Cause adding the printk you're adding it's changing this:
else
ret = allocate_resource(...);
up(...);

by this:

else
printk(...);
/*This is not executing inside the else clause no more,
*so doesn't matter if s->cb_dev it's true or not, you're going with this*/
ret = allocate_resource(...);
up(...);

You're changing the block inside the else clause.
It's not about upsetting the sem afaik.
I could be wrong though, and that'll be a terrible tragedy.
Of course this is as long as CONFIG_PCI it's evaluating true, is it?

Vicente.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/