@@ -122,7 +122,6 @@ typedef struct {
122
122
* we handle those differences explicitly below */
123
123
#include "../../include/linux/mod_devicetable.h"
124
124
125
- /* This array collects all instances that use the generic do_table */
126
125
struct devtable {
127
126
const char * device_id ; /* name of table, __mod_<name>__*_device_table. */
128
127
unsigned long id_size ;
@@ -318,7 +317,7 @@ static unsigned int incbcd(unsigned int *bcd,
318
317
return init ;
319
318
}
320
319
321
- static void do_usb_entry_multi (void * symval , struct module * mod )
320
+ static void do_usb_entry_multi (struct module * mod , void * symval )
322
321
{
323
322
unsigned int devlo , devhi ;
324
323
unsigned char chi , clo , max ;
@@ -383,21 +382,6 @@ static void do_usb_entry_multi(void *symval, struct module *mod)
383
382
}
384
383
}
385
384
386
- static void do_usb_table (void * symval , unsigned long size ,
387
- struct module * mod )
388
- {
389
- unsigned int i ;
390
- const unsigned long id_size = SIZE_usb_device_id ;
391
-
392
- device_id_check (mod -> name , "usb" , size , id_size , symval );
393
-
394
- /* Leave last one: it's the terminator. */
395
- size -= id_size ;
396
-
397
- for (i = 0 ; i < size ; i += id_size )
398
- do_usb_entry_multi (symval + i , mod );
399
- }
400
-
401
385
static void do_of_entry (struct module * mod , void * symval )
402
386
{
403
387
char alias [500 ];
@@ -1506,6 +1490,7 @@ static const struct devtable devtable[] = {
1506
1490
{"vchiq" , SIZE_vchiq_device_id , do_vchiq_entry },
1507
1491
{"coreboot" , SIZE_coreboot_device_id , do_coreboot_entry },
1508
1492
{"of" , SIZE_of_device_id , do_of_entry },
1493
+ {"usb" , SIZE_usb_device_id , do_usb_entry_multi },
1509
1494
{"pnp" , SIZE_pnp_device_id , do_pnp_device_entry },
1510
1495
{"pnp_card" , SIZE_pnp_card_device_id , do_pnp_card_entry },
1511
1496
};
@@ -1551,21 +1536,15 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
1551
1536
symval = sym_get_data (info , sym );
1552
1537
}
1553
1538
1554
- /* First handle the "special" cases */
1555
- if (sym_is (name , namelen , "usb" ))
1556
- do_usb_table (symval , sym -> st_size , mod );
1557
- else {
1558
- int i ;
1559
-
1560
- for (i = 0 ; i < ARRAY_SIZE (devtable ); i ++ ) {
1561
- const struct devtable * p = & devtable [i ];
1539
+ for (int i = 0 ; i < ARRAY_SIZE (devtable ); i ++ ) {
1540
+ const struct devtable * p = & devtable [i ];
1562
1541
1563
- if (sym_is (name , namelen , p -> device_id )) {
1564
- do_table (symval , sym -> st_size , p -> id_size ,
1565
- p -> device_id , p -> do_entry , mod );
1566
- break ;
1567
- }
1542
+ if (sym_is (name , namelen , p -> device_id )) {
1543
+ do_table (symval , sym -> st_size , p -> id_size ,
1544
+ p -> device_id , p -> do_entry , mod );
1545
+ break ;
1568
1546
}
1569
1547
}
1548
+
1570
1549
free (zeros );
1571
1550
}
0 commit comments