diff -urN -X /usr/dontdiff /linux.vanilla/drivers/char/serial.c /linux/drivers/char/serial.c --- /linux.vanilla/drivers/char/serial.c Sat Feb 9 19:24:23 2002 +++ /linux/drivers/char/serial.c Sat Feb 9 20:02:14 2002 @@ -4451,6 +4451,12 @@ return 1; } +static inline int serial_is_redundant(const struct pci_board *board) +{ + return !((board->num_ports > 1) || (board->base_baud != 115200) || + (board->init_fn) || (board->first_uart_offset)); +} + static int __devinit serial_init_one(struct pci_dev *dev, const struct pci_device_id *ent) { @@ -4465,7 +4471,8 @@ if (ent->driver_data == pbn_default && serial_pci_guess_board(dev, board)) return -ENODEV; - else if (serial_pci_guess_board(dev, &tmp) == 0) { + else if ((serial_pci_guess_board(dev, &tmp) == 0) && + (serial_is_redundant(board))) { printk(KERN_INFO "Redundant entry in serial pci_table. " "Please send the output of\n" "lspci -vv, this message (%04x,%04x,%04x,%04x)\n"