[BUG REPORT!!!] [PATCH 19/49] pcmcia: remove remaining in-kernelpcmcia_get_configuration_info() users

From: Komuro
Date: Fri Oct 31 2008 - 22:13:27 EST


Dear Dominik

Unfortunately, your path "[PATCH 19/49] pcmcia: remove remaining in-kernel
pcmcia_get_configuration_info() users"
broke the "serial_cs" and other drivers.

You replace "config->BasePort2" to "link->io.BasePort2" at serial_cs.

But link->io.BasePort2, link->io.NumPorts2(etc)
does not contain correct value (it is zero).

Please fix this problem (or reveart the patch).


Best Regards
Komuro

Here is your patch.
>--- a/drivers/serial/serial_cs.c
>+++ b/drivers/serial/serial_cs.c
>@@ -488,23 +488,23 @@ static int simple_config_check_notpicky(struct pcmcia_device *p_dev,
> static int simple_config(struct pcmcia_device *link)
> {
> struct serial_info *info = link->priv;
>- config_info_t config;
>- int i, try;
>+ int i = -ENODEV, try;
>
> /* If the card is already configured, look up the port and irq */
>- i = pcmcia_get_configuration_info(link, &config);
>- if ((i == CS_SUCCESS) && (config.Attributes & CONF_VALID_CLIENT)) {
>+ if (link->function_config) {
> unsigned int port = 0;
>- if ((config.BasePort2 != 0) && (config.NumPorts2 == 8)) {
>- port = config.BasePort2;
>+ if ((link->io.BasePort2 != 0) &&
>+ (link->io.NumPorts2 == 8)) {
>+ port = link->io.BasePort2;
> info->slave = 1;
> } else if ((info->manfid == MANFID_OSITECH) &&
>- (config.NumPorts1 == 0x40)) {
>- port = config.BasePort1 + 0x28;
>+ (link->io.NumPorts1 == 0x40)) {
>+ port = link->io.BasePort1 + 0x28;
> info->slave = 1;
> }
> if (info->slave) {
>- return setup_serial(link, info, port, config.AssignedIRQ);
>+ return setup_serial(link, info, port,
>+ link->irq.AssignedIRQ);
}
}



--
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/