Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

8250_pci: Fix kernel panic when pch_uart is disabled

Currently, ".setup" function is not set.
As a result, when detecting our IOH's uart device without pch_uart, kernel panic
occurs at the following of pciserial_init_ports().

	for (i = 0; i < nr_ports; i++) {
		if (quirk->setup(priv, board, &serial_port, i))
			break;

So, this patch adds the ".setup" function.
We can use pci_default_setup because our IOH's uart is compatible with 16550.

Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com>
Acked-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information...
commit 64d91cfaade2155ad048fe3b65238a052e29dde4 1 parent a4a77b1
authored October 07, 2011 gregkh committed October 18, 2011

Showing 1 changed file with 10 additions and 0 deletions. Show diff stats Hide diff stats

  1. 10  drivers/tty/serial/8250_pci.c
10  drivers/tty/serial/8250_pci.c
@@ -1591,51 +1591,61 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
1591 1591
 		.vendor         = PCI_VENDOR_ID_INTEL,
1592 1592
 		.device         = 0x8811,
1593 1593
 		.init		= pci_eg20t_init,
  1594
+		.setup		= pci_default_setup,
1594 1595
 	},
1595 1596
 	{
1596 1597
 		.vendor         = PCI_VENDOR_ID_INTEL,
1597 1598
 		.device         = 0x8812,
1598 1599
 		.init		= pci_eg20t_init,
  1600
+		.setup		= pci_default_setup,
1599 1601
 	},
1600 1602
 	{
1601 1603
 		.vendor         = PCI_VENDOR_ID_INTEL,
1602 1604
 		.device         = 0x8813,
1603 1605
 		.init		= pci_eg20t_init,
  1606
+		.setup		= pci_default_setup,
1604 1607
 	},
1605 1608
 	{
1606 1609
 		.vendor         = PCI_VENDOR_ID_INTEL,
1607 1610
 		.device         = 0x8814,
1608 1611
 		.init		= pci_eg20t_init,
  1612
+		.setup		= pci_default_setup,
1609 1613
 	},
1610 1614
 	{
1611 1615
 		.vendor         = 0x10DB,
1612 1616
 		.device         = 0x8027,
1613 1617
 		.init		= pci_eg20t_init,
  1618
+		.setup		= pci_default_setup,
1614 1619
 	},
1615 1620
 	{
1616 1621
 		.vendor         = 0x10DB,
1617 1622
 		.device         = 0x8028,
1618 1623
 		.init		= pci_eg20t_init,
  1624
+		.setup		= pci_default_setup,
1619 1625
 	},
1620 1626
 	{
1621 1627
 		.vendor         = 0x10DB,
1622 1628
 		.device         = 0x8029,
1623 1629
 		.init		= pci_eg20t_init,
  1630
+		.setup		= pci_default_setup,
1624 1631
 	},
1625 1632
 	{
1626 1633
 		.vendor         = 0x10DB,
1627 1634
 		.device         = 0x800C,
1628 1635
 		.init		= pci_eg20t_init,
  1636
+		.setup		= pci_default_setup,
1629 1637
 	},
1630 1638
 	{
1631 1639
 		.vendor         = 0x10DB,
1632 1640
 		.device         = 0x800D,
1633 1641
 		.init		= pci_eg20t_init,
  1642
+		.setup		= pci_default_setup,
1634 1643
 	},
1635 1644
 	{
1636 1645
 		.vendor         = 0x10DB,
1637 1646
 		.device         = 0x800D,
1638 1647
 		.init		= pci_eg20t_init,
  1648
+		.setup		= pci_default_setup,
1639 1649
 	},
1640 1650
 	/*
1641 1651
 	 * Cronyx Omega PCI (PLX-chip based)

0 notes on commit 64d91cf

Please sign in to comment.
Something went wrong with that request. Please try again.