Patches contributed by Eötvös Lorand University
commit d1a76187a5be4f89c6cb19d800cb5fb7aac735c5
Merge: c7e78cff6b75 0173a3265b22
Author: Ingo Molnar <mingo@elte.hu>
Date: Tue Oct 28 16:54:49 2008 +0100
Merge commit 'v2.6.28-rc2' into core/locking
Conflicts:
arch/um/include/asm/system.h
commit 2011a067281565494494aee194ca5081e52d6c3f
Merge: 63fb70859f98 0173a3265b22
Author: Ingo Molnar <mingo@elte.hu>
Date: Tue Oct 28 16:46:59 2008 +0100
Merge commit 'v2.6.28-rc2' into x86/doc
commit 7a9787e1eba95a166265e6a260cf30af04ef0a99
Merge: 41b9eb264c84 0173a3265b22
Author: Ingo Molnar <mingo@elte.hu>
Date: Tue Oct 28 16:26:12 2008 +0100
Merge commit 'v2.6.28-rc2' into x86/pci-ioapic-boot-irq-quirks
diff --cc arch/x86/include/asm/pci.h
index 000000000000,875b38edf193..647781298e7e
mode 000000,100644..100644
--- a/arch/x86/include/asm/pci.h
+++ b/arch/x86/include/asm/pci.h
@@@ -1,0 -1,114 +1,116 @@@
+ #ifndef _ASM_X86_PCI_H
+ #define _ASM_X86_PCI_H
+
+ #include <linux/mm.h> /* for struct page */
+ #include <linux/types.h>
+ #include <linux/slab.h>
+ #include <linux/string.h>
+ #include <asm/scatterlist.h>
+ #include <asm/io.h>
+
+ #ifdef __KERNEL__
+
+ struct pci_sysdata {
+ int domain; /* PCI domain */
+ int node; /* NUMA node */
+ #ifdef CONFIG_X86_64
+ void *iommu; /* IOMMU private data */
+ #endif
+ };
+
+ extern int pci_routeirq;
++extern int noioapicquirk;
++extern int noioapicreroute;
+
+ /* scan a bus after allocating a pci_sysdata for it */
+ extern struct pci_bus *pci_scan_bus_on_node(int busno, struct pci_ops *ops,
+ int node);
+ extern struct pci_bus *pci_scan_bus_with_sysdata(int busno);
+
+ static inline int pci_domain_nr(struct pci_bus *bus)
+ {
+ struct pci_sysdata *sd = bus->sysdata;
+ return sd->domain;
+ }
+
+ static inline int pci_proc_domain(struct pci_bus *bus)
+ {
+ return pci_domain_nr(bus);
+ }
+
+
+ /* Can be used to override the logic in pci_scan_bus for skipping
+ already-configured bus numbers - to be used for buggy BIOSes
+ or architectures with incomplete PCI setup by the loader */
+
+ #ifdef CONFIG_PCI
+ extern unsigned int pcibios_assign_all_busses(void);
+ #else
+ #define pcibios_assign_all_busses() 0
+ #endif
+ #define pcibios_scan_all_fns(a, b) 0
+
+ extern unsigned long pci_mem_start;
+ #define PCIBIOS_MIN_IO 0x1000
+ #define PCIBIOS_MIN_MEM (pci_mem_start)
+
+ #define PCIBIOS_MIN_CARDBUS_IO 0x4000
+
+ void pcibios_config_init(void);
+ struct pci_bus *pcibios_scan_root(int bus);
+
+ void pcibios_set_master(struct pci_dev *dev);
+ void pcibios_penalize_isa_irq(int irq, int active);
+ struct irq_routing_table *pcibios_get_irq_routing_table(void);
+ int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq);
+
+
+ #define HAVE_PCI_MMAP
+ extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
+ enum pci_mmap_state mmap_state,
+ int write_combine);
+
+
+ #ifdef CONFIG_PCI
+ extern void early_quirks(void);
+ static inline void pci_dma_burst_advice(struct pci_dev *pdev,
+ enum pci_dma_burst_strategy *strat,
+ unsigned long *strategy_parameter)
+ {
+ *strat = PCI_DMA_BURST_INFINITY;
+ *strategy_parameter = ~0UL;
+ }
+ #else
+ static inline void early_quirks(void) { }
+ #endif
+
+ #endif /* __KERNEL__ */
+
+ #ifdef CONFIG_X86_32
+ # include "pci_32.h"
+ #else
+ # include "pci_64.h"
+ #endif
+
+ /* implement the pci_ DMA API in terms of the generic device dma_ one */
+ #include <asm-generic/pci-dma-compat.h>
+
+ /* generic pci stuff */
+ #include <asm-generic/pci.h>
+
+ #ifdef CONFIG_NUMA
+ /* Returns the node based on pci bus */
+ static inline int __pcibus_to_node(struct pci_bus *bus)
+ {
+ struct pci_sysdata *sd = bus->sysdata;
+
+ return sd->node;
+ }
+
+ static inline cpumask_t __pcibus_to_cpumask(struct pci_bus *bus)
+ {
+ return node_to_cpumask(__pcibus_to_node(bus));
+ }
+ #endif
+
+ #endif /* _ASM_X86_PCI_H */
diff --cc include/linux/pci.h
index cfc2297c3e28,c75b82bda327..9194adf82e20
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@@ -124,13 -130,10 +130,15 @@@ enum pci_dev_flags
* generation too.
*/
PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = (__force pci_dev_flags_t) 1,
+ /* Device configuration is irrevocably lost if disabled into D3 */
+ PCI_DEV_FLAGS_NO_D3 = (__force pci_dev_flags_t) 2,
};
+enum pci_irq_reroute_variant {
+ INTEL_IRQ_REROUTE_VARIANT = 1,
+ MAX_IRQ_REROUTE_VARIANTS = 3
+};
+
typedef unsigned short __bitwise pci_bus_flags_t;
enum pci_bus_flags {
PCI_BUS_FLAGS_NO_MSI = (__force pci_bus_flags_t) 1,
@@@ -215,9 -218,9 +223,10 @@@ struct pci_dev
unsigned int no_msi:1; /* device may not use msi */
unsigned int block_ucfg_access:1; /* userspace config space access is blocked */
unsigned int broken_parity_status:1; /* Device generates false positive parity */
+ unsigned int irq_reroute_variant:2; /* device needs IRQ rerouting variant */
unsigned int msi_enabled:1;
unsigned int msix_enabled:1;
+ unsigned int ari_enabled:1; /* ARI forwarding */
unsigned int is_managed:1;
unsigned int is_pcie:1;
pci_dev_flags_t dev_flags;
commit 5292ae11babca23c3ff82593630d2d7eebc350a9
Merge: b0f209898f1a 0173a3265b22
Author: Ingo Molnar <mingo@elte.hu>
Date: Mon Oct 27 12:38:02 2008 +0100
Merge commit 'v2.6.28-rc2' into x86/uv
commit 4944dd62de21230af039eda7cd218e9a09021d11
Merge: f17845e5d97e 0173a3265b22
Author: Ingo Molnar <mingo@elte.hu>
Date: Mon Oct 27 10:50:54 2008 +0100
Merge commit 'v2.6.28-rc2' into tracing/urgent
diff --cc arch/x86/include/asm/ftrace.h
index 233bb9b869c0,47f7e65e6c1d..9e8bc29b8b17
--- a/arch/x86/include/asm/ftrace.h
+++ b/arch/x86/include/asm/ftrace.h
@@@ -1,7 -1,7 +1,7 @@@
- #ifndef ASM_X86__FTRACE_H
- #define ASM_X86__FTRACE_H
+ #ifndef _ASM_X86_FTRACE_H
+ #define _ASM_X86_FTRACE_H
-#ifdef CONFIG_FTRACE
+#ifdef CONFIG_FUNCTION_TRACER
#define MCOUNT_ADDR ((long)(mcount))
#define MCOUNT_INSN_SIZE 5 /* sizeof mcount call */
@@@ -19,6 -19,6 +19,6 @@@ static inline unsigned long ftrace_call
}
#endif
-#endif /* CONFIG_FTRACE */
+#endif /* CONFIG_FUNCTION_TRACER */
- #endif /* ASM_X86__FTRACE_H */
+ #endif /* _ASM_X86_FTRACE_H */
commit f17845e5d97ead8fbdadfd40039e058ec7cf4a42
Author: Ingo Molnar <mingo@elte.hu>
Date: Fri Oct 24 12:47:10 2008 +0200
ftrace: warning in kernel/trace/ftrace.c
this warning:
kernel/trace/ftrace.c:189: warning: ‘frozen_record_count’ defined but not used
triggers because frozen_record_count is only used in the KCONFIG_MARKERS
case. Move the variable it there.
Alas, this frozen-record facility seems to have little use. The
frozen_record_count variable is not used by anything, nor the flags.
So this section might need a bit of dead-code-removal care as well.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 27212321eb0d..7618c528756b 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -186,7 +186,6 @@ enum {
static int ftrace_filtered;
static int tracing_on;
-static int frozen_record_count;
static LIST_HEAD(ftrace_new_addrs);
@@ -211,6 +210,9 @@ static struct dyn_ftrace *ftrace_free_records;
#ifdef CONFIG_KPROBES
+
+static int frozen_record_count;
+
static inline void freeze_record(struct dyn_ftrace *rec)
{
if (!(rec->flags & FTRACE_FL_FROZEN)) {
@@ -1443,3 +1445,4 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
mutex_unlock(&ftrace_sysctl_lock);
return ret;
}
+
commit 8c82a17e9c924c0e9f13e75e4c2f6bca19a4b516
Merge: 4ce72a2c063a 57f8f7b60db6
Author: Ingo Molnar <mingo@elte.hu>
Date: Fri Oct 24 12:48:46 2008 +0200
Merge commit 'v2.6.28-rc1' into sched/urgent
commit 66b0de3569b00f61978782b9f97aa4803dbec0fb
Author: Ingo Molnar <mingo@elte.hu>
Date: Thu Oct 23 16:11:03 2008 +0200
ftrace: fix build failure
fix:
kernel/trace/ftrace.c: In function 'ftrace_release':
kernel/trace/ftrace.c:271: error: implicit declaration of function 'ftrace_release_hash'
release_hash is not needed without dftraced.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 07762c08a944..27212321eb0d 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -267,8 +267,6 @@ void ftrace_release(void *start, unsigned long size)
}
}
spin_unlock(&ftrace_lock);
-
- ftrace_release_hash(s, e);
}
static struct dyn_ftrace *ftrace_alloc_dyn_node(unsigned long ip)
commit debfcaf93ed500a051489db6646d71f29fe86a68
Merge: 2515ddc6db8e 81520a1b0649
Author: Ingo Molnar <mingo@elte.hu>
Date: Wed Oct 22 09:08:14 2008 +0200
Merge branch 'tracing/ftrace' into tracing/urgent
commit e9f95e637320efe1936b647308ddf4ec5b8e0311
Author: Ingo Molnar <mingo@elte.hu>
Date: Tue Oct 21 15:49:59 2008 +0200
genirq: fix off by one and coding style
Fix off-by-one in for_each_irq_desc_reverse().
Impact is near zero in practice, because nothing substantial wants to
iterate down to IRQ#0 - but fix it nevertheless.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index ccf6c503fc3b..d1d4dc52f649 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -36,7 +36,7 @@ void ack_bad_irq(unsigned int irq)
}
#ifdef CONFIG_X86_32
-# define irq_stats(x) (&per_cpu(irq_stat,x))
+# define irq_stats(x) (&per_cpu(irq_stat, x))
#else
# define irq_stats(x) cpu_pda(x)
#endif
@@ -113,7 +113,7 @@ int show_interrupts(struct seq_file *p, void *v)
if (i == 0) {
seq_printf(p, " ");
for_each_online_cpu(j)
- seq_printf(p, "CPU%-8d",j);
+ seq_printf(p, "CPU%-8d", j);
seq_putc(p, '\n');
}
diff --git a/include/linux/irqnr.h b/include/linux/irqnr.h
index 3171ddc3b39d..452c280c8115 100644
--- a/include/linux/irqnr.h
+++ b/include/linux/irqnr.h
@@ -13,9 +13,9 @@ extern int nr_irqs;
# define for_each_irq_desc(irq, desc) \
for (irq = 0, desc = irq_desc; irq < nr_irqs; irq++, desc++)
-# define for_each_irq_desc_reverse(irq, desc) \
- for (irq = nr_irqs -1, desc = irq_desc + (nr_irqs -1 ); \
- irq > 0; irq--, desc--)
+# define for_each_irq_desc_reverse(irq, desc) \
+ for (irq = nr_irqs - 1, desc = irq_desc + (nr_irqs - 1); \
+ irq >= 0; irq--, desc--)
#endif
#define for_each_irq_nr(irq) \