git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
include
/
asm-i386
/
mach-summit
/
mach_apic.h
diff --git
a/include/asm-i386/mach-summit/mach_apic.h
b/include/asm-i386/mach-summit/mach_apic.h
index
accca8f
..
3d6d129
100644
(file)
--- a/
include/asm-i386/mach-summit/mach_apic.h
+++ b/
include/asm-i386/mach-summit/mach_apic.h
@@
-7,8
+7,6
@@
#define esr_disable (1)
#define NO_BALANCE_IRQ (0)
#define esr_disable (1)
#define NO_BALANCE_IRQ (0)
-#define NO_IOAPIC_CHECK (1) /* Don't check I/O APIC ID for xAPIC */
-
/* In clustered mode, the high nibble of APIC ID is a cluster number.
* The low nibble is a 4-bit bitmap. */
#define XAPIC_DEST_CPUS_SHIFT 4
/* In clustered mode, the high nibble of APIC ID is a cluster number.
* The low nibble is a 4-bit bitmap. */
#define XAPIC_DEST_CPUS_SHIFT 4
@@
-19,15
+17,17
@@
static inline cpumask_t target_cpus(void)
{
static inline cpumask_t target_cpus(void)
{
- cpumask_t tmp = CPU_MASK_ALL;
- return tmp;
+ /* CPU_MASK_ALL (0xff) has undefined behaviour with
+ * dest_LowestPrio mode logical clustered apic interrupt routing
+ * Just start on cpu 0. IRQ balancing will spread load
+ */
+ return cpumask_of_cpu(0);
}
#define TARGET_CPUS (target_cpus())
}
#define TARGET_CPUS (target_cpus())
-#define INT_DELIVERY_MODE (dest_
Fixed
)
+#define INT_DELIVERY_MODE (dest_
LowestPrio
)
#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */
#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */
-#define APIC_BROADCAST_ID (0xFF)
static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
{
return 0;
static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
{
return 0;
@@
-140,14
+140,14
@@
static inline void enable_apic_mode(void)
{
}
{
}
-static inline unsigned int cpu_mask_to_apicid(cpumask_
const_
t cpumask)
+static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask)
{
int num_bits_set;
int cpus_found = 0;
int cpu;
int apicid;
{
int num_bits_set;
int cpus_found = 0;
int cpu;
int apicid;
- num_bits_set = cpus_weight
_const
(cpumask);
+ num_bits_set = cpus_weight(cpumask);
/* Return id to all */
if (num_bits_set == NR_CPUS)
return (int) 0xFF;
/* Return id to all */
if (num_bits_set == NR_CPUS)
return (int) 0xFF;
@@
-155,10
+155,10
@@
static inline unsigned int cpu_mask_to_apicid(cpumask_const_t cpumask)
* The cpus in the mask must all be on the apic cluster. If are not
* on the same apicid cluster return default value of TARGET_CPUS.
*/
* The cpus in the mask must all be on the apic cluster. If are not
* on the same apicid cluster return default value of TARGET_CPUS.
*/
- cpu = first_cpu
_const
(cpumask);
+ cpu = first_cpu(cpumask);
apicid = cpu_to_logical_apicid(cpu);
while (cpus_found < num_bits_set) {
apicid = cpu_to_logical_apicid(cpu);
while (cpus_found < num_bits_set) {
- if (cpu_isset
_const
(cpu, cpumask)) {
+ if (cpu_isset(cpu, cpumask)) {
int new_apicid = cpu_to_logical_apicid(cpu);
if (apicid_cluster(apicid) !=
apicid_cluster(new_apicid)){
int new_apicid = cpu_to_logical_apicid(cpu);
if (apicid_cluster(apicid) !=
apicid_cluster(new_apicid)){