Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 3311
b: refs/heads/master
c: 9635b47
h: refs/heads/master
i:
  3309: 83d8f47
  3307: d279e9d
  3303: 63aa9c1
  3295: ff24905
v: v3
  • Loading branch information
Eric W. Biederman authored and Linus Torvalds committed Jun 25, 2005
1 parent 6777d91 commit 0c14f8f
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 21 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8f43d03fe2c4962c11d8227ac9505e590bad758b
refs/heads/master: 9635b47d910223745258768418003580ef7dba17
25 changes: 5 additions & 20 deletions trunk/arch/i386/kernel/apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@

#include "io_ports.h"

/*
* Knob to control our willingness to enable the local APIC.
*/
int enable_local_apic __initdata = 0; /* -1=force-disable, +1=force-enable */

/*
* Debug level
*/
Expand Down Expand Up @@ -666,26 +671,6 @@ static void apic_pm_activate(void) { }
* Original code written by Keir Fraser.
*/

/*
* Knob to control our willingness to enable the local APIC.
*/
int enable_local_apic __initdata = 0; /* -1=force-disable, +1=force-enable */

static int __init lapic_disable(char *str)
{
enable_local_apic = -1;
clear_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability);
return 0;
}
__setup("nolapic", lapic_disable);

static int __init lapic_enable(char *str)
{
enable_local_apic = 1;
return 0;
}
__setup("lapic", lapic_enable);

static int __init apic_set_verbosity(char *str)
{
if (strcmp("debug", str) == 0)
Expand Down
11 changes: 11 additions & 0 deletions trunk/arch/i386/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#include <linux/edd.h>
#include <linux/nodemask.h>
#include <video/edid.h>
#include <asm/apic.h>
#include <asm/e820.h>
#include <asm/mpspec.h>
#include <asm/setup.h>
Expand Down Expand Up @@ -835,6 +836,16 @@ static void __init parse_cmdline_early (char ** cmdline_p)
#endif /* CONFIG_X86_LOCAL_APIC */
#endif /* CONFIG_ACPI_BOOT */

#ifdef CONFIG_X86_LOCAL_APIC
/* enable local APIC */
else if (!memcmp(from, "lapic", 5))
lapic_enable();

/* disable local APIC */
else if (!memcmp(from, "nolapic", 6))
lapic_disable();
#endif /* CONFIG_X86_LOCAL_APIC */

/*
* highmem=size forces highmem to be exactly 'size' bytes.
* This works even on boxes that have no highmem otherwise.
Expand Down
13 changes: 13 additions & 0 deletions trunk/include/asm-i386/apic.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <linux/pm.h>
#include <asm/fixmap.h>
#include <asm/apicdef.h>
#include <asm/processor.h>
#include <asm/system.h>

#define Dprintk(x...)
Expand All @@ -16,8 +17,20 @@
#define APIC_VERBOSE 1
#define APIC_DEBUG 2

extern int enable_local_apic;
extern int apic_verbosity;

static inline void lapic_disable(void)
{
enable_local_apic = -1;
clear_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability);
}

static inline void lapic_enable(void)
{
enable_local_apic = 1;
}

/*
* Define the default level of output to be very little
* This can be turned up by using apic=verbose for more
Expand Down

0 comments on commit 0c14f8f

Please sign in to comment.