lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 2 Aug 2009 20:25:18 -0500
From:	Jack Byer <ojbyer@....net>
To:	Bartlomiej Zolnierkiewicz <bzolnier@...il.com>
Cc:	linux-kernel@...r.kernel.org,
	Robert Hancock <hancockrwd@...il.com>,
	Alan Cox <alan@...rguk.ukuu.org.uk>,
	Andreas Mohr <andi@...as.de>, linux-ide@...r.kernel.org
Subject: Re: Extremely slow IO with a PCMCIA CompactFlash adapter

>
> Seems like there is also a bug in ali5451 sound driver..
>
> This should help:
>
> ---
>  sound/pci/ali5451/ali5451.c |   11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
>
> Index: b/sound/pci/ali5451/ali5451.c
> ===================================================================
> --- a/sound/pci/ali5451/ali5451.c
> +++ b/sound/pci/ali5451/ali5451.c
> @@ -314,8 +314,11 @@ static int snd_ali_codec_ready(struct sn
>                res = snd_ali_5451_peek(codec,port);
>                if (!(res & 0x8000))
>                        return 0;
> +               if (time_after_eq(end_time, jiffies))
> +                       break;
>                schedule_timeout_uninterruptible(1);
> -       } while (time_after_eq(end_time, jiffies));
> +       } while (1);
> +
>        snd_ali_5451_poke(codec, port, res & ~0x8000);
>        snd_printdd("ali_codec_ready: codec is not ready.\n ");
>        return -EIO;
> @@ -327,15 +330,17 @@ static int snd_ali_stimer_ready(struct s
>        unsigned long dwChk1,dwChk2;
>
>        dwChk1 = snd_ali_5451_peek(codec, ALI_STIMER);
> -       dwChk2 = snd_ali_5451_peek(codec, ALI_STIMER);
>
>        end_time = jiffies + msecs_to_jiffies(250);
>        do {
>                dwChk2 = snd_ali_5451_peek(codec, ALI_STIMER);
>                if (dwChk2 != dwChk1)
>                        return 0;
> +               if (time_after_eq(end_time, jiffies))
> +                       break;
>                schedule_timeout_uninterruptible(1);
> -       } while (time_after_eq(end_time, jiffies));
> +       } while (1);
> +
>        snd_printk(KERN_ERR "ali_stimer_read: stimer is not ready.\n");
>        return -EIO;
>  }
>
> --
>
>> AC'97 1 does not respond - RESET
>> AC'97 1 access is not valid [0xffffffff], removing mixer.
>> ali mixer 1 creating error.
>
> This was also present in the previous log (before libata's setup) so
> there is some more general problem with the sound..
>
> You may try this patch which keeps softmodem device alive instead of
> disabling it (since it shares some hardware with the sound codec)..
>
> ---
>  drivers/serial/8250_pci.c |   11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
>
> Index: b/drivers/serial/8250_pci.c
> ===================================================================
> --- a/drivers/serial/8250_pci.c
> +++ b/drivers/serial/8250_pci.c
> @@ -2222,7 +2222,7 @@ serial_pci_guess_board(struct pci_dev *d
>             blacklist++) {
>                if (dev->vendor == blacklist->vendor &&
>                    dev->device == blacklist->device)
> -                       return -ENODEV;
> +                       return -EOPNOTSUPP;
>        }
>
>        num_iomem = num_port = 0;
> @@ -2448,8 +2448,12 @@ pciserial_init_one(struct pci_dev *dev,
>                 * determine the parameters of this board.
>                 */
>                rc = serial_pci_guess_board(dev, &tmp);
> -               if (rc)
> -                       goto disable;
> +               if (rc) {
> +                       if (rc == -EOPNOTSUPP)
> +                               goto out;
> +                       else
> +                               goto disable;
> +               }
>        } else {
>                /*
>                 * We matched an explicit entry.  If we are able to
> @@ -2474,6 +2478,7 @@ pciserial_init_one(struct pci_dev *dev,
>
>  disable:
>        pci_disable_device(dev);
> + out:
>        return rc;
>  }
>
>
>

Those patches do not appear to have worked:

View attachment "dmesg.txt" of type "text/plain" (85263 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ