> @@ -491,6 +492,13 @@ int eisa_enumerator(unsigned long eeprom_addr, > printk(KERN_INFO "Enumerating EISA bus\n"); > > eh = (struct eeprom_header*)(eeprom_buf); > + /* > + * The EEPROM contents are not to be trusted: clamp the number of > + * slots so that all slot records fit into eeprom_buf. > + */ > + eh->num_slots = min_t(u8, eh->num_slots, > + (HPEE_MAX_LENGTH - sizeof(*eh)) / > + sizeof(struct eeprom_eisa_slot_info)); I wonder if that should write out any sort of warning message about a broken EEPROM here. Greetings, Eike