pcmcia: simplify pccard_validate_cis
As cisinfo_t only contains one unsigned_int, pccard_validate_cis can be simplified by passing that around directly. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
This commit is contained in:
@@ -1439,10 +1439,11 @@ EXPORT_SYMBOL(pccard_read_tuple);
|
||||
|
||||
======================================================================*/
|
||||
|
||||
int pccard_validate_cis(struct pcmcia_socket *s, unsigned int function, cisinfo_t *info)
|
||||
int pccard_validate_cis(struct pcmcia_socket *s, unsigned int function, unsigned int *info)
|
||||
{
|
||||
tuple_t *tuple;
|
||||
cisparse_t *p;
|
||||
unsigned int count = 0;
|
||||
int ret, reserved, dev_ok = 0, ident_ok = 0;
|
||||
|
||||
if (!s)
|
||||
@@ -1457,7 +1458,7 @@ int pccard_validate_cis(struct pcmcia_socket *s, unsigned int function, cisinfo_
|
||||
return CS_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
info->Chains = reserved = 0;
|
||||
count = reserved = 0;
|
||||
tuple->DesiredTuple = RETURN_FIRST_TUPLE;
|
||||
tuple->Attributes = TUPLE_RETURN_COMMON;
|
||||
ret = pccard_get_first_tuple(s, function, tuple);
|
||||
@@ -1482,7 +1483,7 @@ int pccard_validate_cis(struct pcmcia_socket *s, unsigned int function, cisinfo_
|
||||
if (!dev_ok && !ident_ok)
|
||||
goto done;
|
||||
|
||||
for (info->Chains = 1; info->Chains < MAX_TUPLES; info->Chains++) {
|
||||
for (count = 1; count < MAX_TUPLES; count++) {
|
||||
ret = pccard_get_next_tuple(s, function, tuple);
|
||||
if (ret != CS_SUCCESS) break;
|
||||
if (((tuple->TupleCode > 0x23) && (tuple->TupleCode < 0x40)) ||
|
||||
@@ -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;
|
||||
|
||||
done:
|
||||
if (info)
|
||||
*info = count;
|
||||
kfree(tuple);
|
||||
kfree(p);
|
||||
return CS_SUCCESS;
|
||||
|
Reference in New Issue
Block a user