[BUG REPORT!!!] [PATCH 19/49] pcmcia: remove remaining in-kernel pcmcia_get_configuration_info() users
Komuro
komurojun-mbn at nifty.com
Fri Oct 31 22:07:46 EDT 2008
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);
}
}
More information about the linux-pcmcia
mailing list