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] [day] [month] [year] [list]
Message-ID: <20080715133627.GD27297@roarinelk.homelinux.net>
Date:	Tue, 15 Jul 2008 15:36:27 +0200
From:	Manuel Lauss <mano@...rinelk.homelinux.net>
To:	Marc Zyngier <maz@...terjones.org>
Cc:	Dominik Brodowski <linux@...inikbrodowski.net>,
	linux-kernel@...r.kernel.org
Subject: Re: [BUG][PATCH][pcmcia] cisinfo_t removal prevents card detection

On Tue, Jul 15, 2008 at 03:26:15PM +0200, Marc Zyngier wrote:
> Dominik,
>
> The commit
>
> c5081d5f4775b2a3f858f91151bbf9163e473075 (pcmcia: simplify 
> pccard_validate_cis)
>
> that entered mainline yesterday introduced a bug that prevents card 
> detection
> on my platform (PXA255 based), and possibly others :
>
>   @@ -1490,11 +1491,13 @@ int pccard_validate_cis(struct pcmcia_socket *s, 
> unsigned int function, cisinfo_
>               ((tuple->TupleCode > 0x90) && (tuple->TupleCode < 0xff)))
>               reserved++;
>        }
>   -    if ((info->Chains == MAX_TUPLES) || (reserved > 5) ||
>   -       ((!dev_ok || !ident_ok) && (info->Chains > 10)))
>   -       info->Chains = 0;
>   +    if ((count) || (reserved > 5) ||
>   +       ((!dev_ok || !ident_ok) && (count > 10)))
>   +       count = 0;
>
> Since count starts at 1, condition is now always true, and count then
> reset to 0. Restoring the comparaison to MAX_TUPLES makes everybody
> happy...
>
> 	M.
>
> Signed-off-by: Marc Zyngier <marc.zyngier@...ran.com>
>
> diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
> index 9fcff0c..65129b5 100644
> --- a/drivers/pcmcia/cistpl.c
> +++ b/drivers/pcmcia/cistpl.c
> @@ -1490,7 +1490,7 @@ int pccard_validate_cis(struct pcmcia_socket *s, 
> unsigned int function, unsigned
>  	    ((tuple->TupleCode > 0x90) && (tuple->TupleCode < 0xff)))
>  	    reserved++;
>      }
> -    if ((count) || (reserved > 5) ||
> +    if ((count == MAX_TUPLES) || (reserved > 5) ||
>  	((!dev_ok || !ident_ok) && (count > 10)))
>  	count = 0;

Confirmed: this fixes CF card detection on my SH and MIPS boards.
Thanks!

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ