diff --git a/[refs] b/[refs] index bc2147639a11..bedcbf68f874 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6d1cfe3f1752f17e297df60c8bcc6cd6e0a58449 +refs/heads/master: 1d25cd6cc2528e4af12ab18e84fe95ed78f3f21a diff --git a/trunk/arch/alpha/kernel/sys_dp264.c b/trunk/arch/alpha/kernel/sys_dp264.c index d5da6b1b28ee..9e36b07fa940 100644 --- a/trunk/arch/alpha/kernel/sys_dp264.c +++ b/trunk/arch/alpha/kernel/sys_dp264.c @@ -394,22 +394,6 @@ clipper_init_irq(void) * 10 64 bit PCI option slot 3 (not bus 0) */ -static int __init -isa_irq_fixup(struct pci_dev *dev, int irq) -{ - u8 irq8; - - if (irq > 0) - return irq; - - /* This interrupt is routed via ISA bridge, so we'll - just have to trust whatever value the console might - have assigned. */ - pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq8); - - return irq8 & 0xf; -} - static int __init dp264_map_irq(struct pci_dev *dev, u8 slot, u8 pin) { @@ -423,13 +407,25 @@ dp264_map_irq(struct pci_dev *dev, u8 slot, u8 pin) { 16+ 3, 16+ 3, 16+ 2, 16+ 1, 16+ 0} /* IdSel 10 slot 3 */ }; const long min_idsel = 5, max_idsel = 10, irqs_per_slot = 5; + struct pci_controller *hose = dev->sysdata; int irq = COMMON_TABLE_LOOKUP; - if (irq > 0) + if (irq > 0) { irq += 16 * hose->index; + } else { + /* ??? The Contaq IDE controller on the ISA bridge uses + "legacy" interrupts 14 and 15. I don't know if anything + can wind up at the same slot+pin on hose1, so we'll + just have to trust whatever value the console might + have assigned. */ + + u8 irq8; + pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq8); + irq = irq8; + } - return isa_irq_fixup(dev, irq); + return irq; } static int __init @@ -457,8 +453,7 @@ monet_map_irq(struct pci_dev *dev, u8 slot, u8 pin) { 24, 24, 25, 26, 27} /* IdSel 15 slot 5 PCI2*/ }; const long min_idsel = 3, max_idsel = 15, irqs_per_slot = 5; - - return isa_irq_fixup(dev, COMMON_TABLE_LOOKUP); + return COMMON_TABLE_LOOKUP; } static u8 __init @@ -512,8 +507,7 @@ webbrick_map_irq(struct pci_dev *dev, u8 slot, u8 pin) { 47, 47, 46, 45, 44}, /* IdSel 17 slot 3 */ }; const long min_idsel = 7, max_idsel = 17, irqs_per_slot = 5; - - return isa_irq_fixup(dev, COMMON_TABLE_LOOKUP); + return COMMON_TABLE_LOOKUP; } static int __init @@ -530,13 +524,14 @@ clipper_map_irq(struct pci_dev *dev, u8 slot, u8 pin) { -1, -1, -1, -1, -1} /* IdSel 7 ISA Bridge */ }; const long min_idsel = 1, max_idsel = 7, irqs_per_slot = 5; + struct pci_controller *hose = dev->sysdata; int irq = COMMON_TABLE_LOOKUP; if (irq > 0) irq += 16 * hose->index; - return isa_irq_fixup(dev, irq); + return irq; } static void __init diff --git a/trunk/net/ipv4/fib_trie.c b/trunk/net/ipv4/fib_trie.c index 1b63b4824164..3dd70787081e 100644 --- a/trunk/net/ipv4/fib_trie.c +++ b/trunk/net/ipv4/fib_trie.c @@ -2029,7 +2029,7 @@ static struct node *fib_trie_get_first(struct fib_trie_iter *iter, iter->tnode = (struct tnode *) n; iter->trie = t; iter->index = 0; - iter->depth = 0; + iter->depth = 1; return n; } return NULL; @@ -2274,11 +2274,12 @@ static int fib_trie_seq_show(struct seq_file *seq, void *v) seq_puts(seq, ":\n"); else seq_puts(seq, "
:\n"); - } else { - seq_indent(seq, iter->depth-1); - seq_printf(seq, " +-- %d.%d.%d.%d/%d\n", - NIPQUAD(prf), tn->pos); - } + } + seq_indent(seq, iter->depth-1); + seq_printf(seq, " +-- %d.%d.%d.%d/%d %d %d %d\n", + NIPQUAD(prf), tn->pos, tn->bits, tn->full_children, + tn->empty_children); + } else { struct leaf *l = (struct leaf *) n; int i; diff --git a/trunk/net/ipv4/raw.c b/trunk/net/ipv4/raw.c index 4b0d7e4d6269..304bb0a1d4f0 100644 --- a/trunk/net/ipv4/raw.c +++ b/trunk/net/ipv4/raw.c @@ -361,7 +361,7 @@ static void raw_probe_proto_opt(struct flowi *fl, struct msghdr *msg) if (type && code) { get_user(fl->fl_icmp_type, type); - get_user(fl->fl_icmp_code, code); + __get_user(fl->fl_icmp_code, code); probed = 1; } break; diff --git a/trunk/net/ipv6/raw.c b/trunk/net/ipv6/raw.c index a1265a320b11..5aa3691c578d 100644 --- a/trunk/net/ipv6/raw.c +++ b/trunk/net/ipv6/raw.c @@ -627,7 +627,7 @@ static void rawv6_probe_proto_opt(struct flowi *fl, struct msghdr *msg) if (type && code) { get_user(fl->fl_icmp_type, type); - get_user(fl->fl_icmp_code, code); + __get_user(fl->fl_icmp_code, code); probed = 1; } break;