Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 62023
b: refs/heads/master
c: 6936b17
h: refs/heads/master
i:
  62021: 5df5dfa
  62019: f79d21b
  62015: e543fb0
v: v3
  • Loading branch information
Linus Torvalds committed Jul 20, 2007
1 parent cd43ef2 commit 06291df
Show file tree
Hide file tree
Showing 138 changed files with 6,511 additions and 1,752 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: 8350163a90f6003c9e60e8ebc0e00f654657645f
refs/heads/master: 6936b17ea03f54525f01b12819d558ba52a86b46
6 changes: 6 additions & 0 deletions trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,12 @@ P: Ivan Kokshaysky
M: ink@jurassic.park.msu.ru
S: Maintained for 2.4; PCI support for 2.6.

AMD GEODE CS5536 USB DEVICE CONTROLLER DRIVER
P: Thomas Dahlmann
M: thomas.dahlmann@amd.com
L: info-linux@geode.amd.com
S: Supported

AMD GEODE PROCESSOR/CHIPSET SUPPORT
P: Jordan Crouse
M: info-linux@geode.amd.com
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/arm/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,8 +145,8 @@ void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
__do_kernel_fault(mm, addr, fsr, regs);
}

#define VM_FAULT_BADMAP (-20)
#define VM_FAULT_BADACCESS (-21)
#define VM_FAULT_BADMAP 0x010000
#define VM_FAULT_BADACCESS 0x020000

static int
__do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
Expand Down Expand Up @@ -249,7 +249,7 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
/*
* Handle the "normal" case first - VM_FAULT_MAJOR / VM_FAULT_MINOR
*/
if (likely(!(fault & VM_FAULT_ERROR)))
if (likely(!(fault & (VM_FAULT_ERROR | VM_FAULT_BADMAP | VM_FAULT_BADACCESS))))
return 0;

/*
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/i386/boot/compressed/relocs.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ static const char* safe_abs_relocs[] = {
"__kernel_rt_sigreturn",
"__kernel_sigreturn",
"SYSENTER_RETURN",
"VDSO_NOTE_MASK",
"xen_irq_disable_direct_reloc",
"xen_save_fl_direct_reloc",
};
Expand Down
15 changes: 9 additions & 6 deletions trunk/arch/i386/kernel/vsyscall-note.S
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ ELFNOTE_START(Linux, 0, "a")
ELFNOTE_END

#ifdef CONFIG_XEN

/*
* Add a special note telling glibc's dynamic linker a fake hardware
* flavor that it will use to choose the search path for libraries in the
Expand All @@ -28,15 +27,19 @@ ELFNOTE_END
* It should contain:
* hwcap 1 nosegneg
* to match the mapping of bit to name that we give here.
*
* At runtime, the fake hardware feature will be considered to be present
* if its bit is set in the mask word. So, we start with the mask 0, and
* at boot time we set VDSO_NOTE_NONEGSEG_BIT if running under Xen.
*/

/* Bit used for the pseudo-hwcap for non-negative segments. We use
bit 1 to avoid bugs in some versions of glibc when bit 0 is
used; the choice is otherwise arbitrary. */
#define VDSO_NOTE_NONEGSEG_BIT 1
#include "../xen/vdso.h" /* Defines VDSO_NOTE_NONEGSEG_BIT. */

.globl VDSO_NOTE_MASK
ELFNOTE_START(GNU, 2, "a")
.long 1, 1<<VDSO_NOTE_NONEGSEG_BIT /* ncaps, mask */
.long 1 /* ncaps */
VDSO_NOTE_MASK:
.long 0 /* mask */
.byte VDSO_NOTE_NONEGSEG_BIT; .asciz "nosegneg" /* bit, name */
ELFNOTE_END
#endif
1 change: 1 addition & 0 deletions trunk/arch/i386/xen/events.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#include <asm/irq.h>
#include <asm/sync_bitops.h>
#include <asm/xen/hypercall.h>
#include <asm/xen/hypervisor.h>

#include <xen/events.h>
#include <xen/interface/xen.h>
Expand Down
15 changes: 15 additions & 0 deletions trunk/arch/i386/xen/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <xen/features.h>

#include "xen-ops.h"
#include "vdso.h"

/* These are code, but not functions. Defined in entry.S */
extern const char xen_hypervisor_callback[];
Expand Down Expand Up @@ -55,6 +56,18 @@ static void xen_idle(void)
}
}

/*
* Set the bit indicating "nosegneg" library variants should be used.
*/
static void fiddle_vdso(void)
{
extern u32 VDSO_NOTE_MASK; /* See ../kernel/vsyscall-note.S. */
extern char vsyscall_int80_start;
u32 *mask = (u32 *) ((unsigned long) &VDSO_NOTE_MASK - VDSO_PRELINK +
&vsyscall_int80_start);
*mask |= 1 << VDSO_NOTE_NONEGSEG_BIT;
}

void __init xen_arch_setup(void)
{
struct physdev_set_iopl set_iopl;
Expand Down Expand Up @@ -93,4 +106,6 @@ void __init xen_arch_setup(void)
#endif

paravirt_disable_iospace();

fiddle_vdso();
}
4 changes: 4 additions & 0 deletions trunk/arch/i386/xen/vdso.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/* Bit used for the pseudo-hwcap for non-negative segments. We use
bit 1 to avoid bugs in some versions of glibc when bit 0 is
used; the choice is otherwise arbitrary. */
#define VDSO_NOTE_NONEGSEG_BIT 1
7 changes: 7 additions & 0 deletions trunk/arch/m68k/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ config TIME_LOW_RES
bool
default y

config GENERIC_IOMAP
bool
default y

config ARCH_MAY_HAVE_PC_FDC
bool
depends on Q40 || (BROKEN && SUN3X)
Expand All @@ -45,6 +49,9 @@ config ARCH_MAY_HAVE_PC_FDC
config NO_IOPORT
def_bool y

config NO_DMA
def_bool SUN3

mainmenu "Linux/68k Kernel Configuration"

source "init/Kconfig"
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/m68k/apollo/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ void dn_serial_print (const char *str)
}
}

void config_apollo(void) {

void __init config_apollo(void)
{
int i;

dn_setup_model();
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/m68k/apollo/dn_ints.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ static struct irq_controller apollo_irq_controller = {
};


void dn_init_IRQ(void)
void __init dn_init_IRQ(void)
{
m68k_setup_user_interrupt(VEC_USER + 96, 16, dn_process_int);
m68k_setup_irq_controller(&apollo_irq_controller, IRQ_APOLLO, 16);
Expand Down
9 changes: 8 additions & 1 deletion trunk/arch/m68k/atari/atakeyb.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
* enhanced by Bjoern Brauel and Roman Hodek
*/

#include <linux/module.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/interrupt.h>
Expand Down Expand Up @@ -42,6 +43,9 @@ void (*atari_mouse_interrupt_hook) (char *);
void (*atari_input_keyboard_interrupt_hook) (unsigned char, char);
/* Hook for mouse inputdev driver */
void (*atari_input_mouse_interrupt_hook) (char *);
EXPORT_SYMBOL(atari_mouse_interrupt_hook);
EXPORT_SYMBOL(atari_input_keyboard_interrupt_hook);
EXPORT_SYMBOL(atari_input_mouse_interrupt_hook);

/* variables for IKBD self test: */

Expand Down Expand Up @@ -429,6 +433,7 @@ void ikbd_mouse_rel_pos(void)

ikbd_write(cmd, 1);
}
EXPORT_SYMBOL(ikbd_mouse_rel_pos);

/* Set absolute mouse position reporting */
void ikbd_mouse_abs_pos(int xmax, int ymax)
Expand All @@ -453,6 +458,7 @@ void ikbd_mouse_thresh(int x, int y)

ikbd_write(cmd, 3);
}
EXPORT_SYMBOL(ikbd_mouse_thresh);

/* Set mouse scale */
void ikbd_mouse_scale(int x, int y)
Expand Down Expand Up @@ -495,6 +501,7 @@ void ikbd_mouse_y0_top(void)

ikbd_write(cmd, 1);
}
EXPORT_SYMBOL(ikbd_mouse_y0_top);

/* Resume */
void ikbd_resume(void)
Expand All @@ -511,6 +518,7 @@ void ikbd_mouse_disable(void)

ikbd_write(cmd, 1);
}
EXPORT_SYMBOL(ikbd_mouse_disable);

/* Pause output */
void ikbd_pause(void)
Expand Down Expand Up @@ -696,7 +704,6 @@ int __init atari_keyb_init(void)
return 0;
}


int atari_kbdrate(struct kbd_repeat *k)
{
if (k->delay > 0) {
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/m68k/bvme6000/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ static int bvme6000_get_hardware_list(char *buffer)
* This function is called during kernel startup to initialize
* the bvme6000 IRQ handling routines.
*/
static void bvme6000_init_IRQ(void)
static void __init bvme6000_init_IRQ(void)
{
m68k_setup_user_interrupt(VEC_USER, 192, NULL);
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/m68k/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,7 @@ func_define putn,1
#endif
.endm

.text
.section ".text.head","ax"
ENTRY(_stext)
/*
* Version numbers of the bootinfo interface
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/m68k/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ extern int end;
extern unsigned long availmem;

int m68k_num_memory;
EXPORT_SYMBOL(m68k_num_memory);
int m68k_realnum_memory;
EXPORT_SYMBOL(m68k_realnum_memory);
unsigned long m68k_memoffset;
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/m68k/kernel/sun3-head.S
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ kernel_pmd_table: .skip 0x2000
.globl kernel_pg_dir
.equ kernel_pg_dir,kernel_pmd_table

.section .head
.section .text.head
ENTRY(_stext)
ENTRY(_start)

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/m68k/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ static irqreturn_t timer_interrupt(int irq, void *dummy)
return IRQ_HANDLED;
}

void time_init(void)
void __init time_init(void)
{
struct rtc_time time;

Expand Down
1 change: 1 addition & 0 deletions trunk/arch/m68k/kernel/vmlinux-std.lds
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ SECTIONS
. = 0x1000;
_text = .; /* Text and read-only data */
.text : {
*(.text.head)
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/m68k/kernel/vmlinux-sun3.lds
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ SECTIONS
. = 0xE002000;
_text = .; /* Text and read-only data */
.text : {
*(.head)
*(.text.head)
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
Expand Down
7 changes: 4 additions & 3 deletions trunk/arch/m68k/mac/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ struct mac_booter_data mac_bi_data;
int mac_bisize = sizeof mac_bi_data;

struct mac_hw_present mac_hw_present;
EXPORT_SYMBOL(mac_hw_present);

/* New m68k bootinfo stuff and videobase */

Expand Down Expand Up @@ -84,7 +85,7 @@ extern void nubus_sweep_video(void);

static void mac_get_model(char *str);

static void mac_sched_init(irq_handler_t vector)
static void __init mac_sched_init(irq_handler_t vector)
{
via_init_clock(vector);
}
Expand Down Expand Up @@ -769,7 +770,7 @@ static struct mac_model mac_data_table[] = {
}
};

void mac_identify(void)
void __init mac_identify(void)
{
struct mac_model *m;

Expand Down Expand Up @@ -846,7 +847,7 @@ void mac_identify(void)
baboon_init();
}

void mac_report_hardware(void)
void __init mac_report_hardware(void)
{
printk(KERN_INFO "Apple Macintosh %s\n", macintosh_config->name);
}
Expand Down
4 changes: 3 additions & 1 deletion trunk/arch/m68k/mac/macints.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@
*
*/

#include <linux/module.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
Expand Down Expand Up @@ -224,7 +225,7 @@ static struct irq_controller mac_irq_controller = {
.disable = mac_disable_irq,
};

void mac_init_IRQ(void)
void __init mac_init_IRQ(void)
{
#ifdef DEBUG_MACINTS
printk("mac_init_IRQ(): Setting things up...\n");
Expand Down Expand Up @@ -391,6 +392,7 @@ int mac_irq_pending(unsigned int irq)
}
return 0;
}
EXPORT_SYMBOL(mac_irq_pending);

static int num_debug[8];

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/m68k/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ pg_data_t *pg_data_table[65];
EXPORT_SYMBOL(pg_data_table);
#endif

void m68k_setup_node(int node)
void __init m68k_setup_node(int node)
{
#ifndef CONFIG_SINGLE_MEMORY_CHUNK
struct mem_info *info = m68k_memory + node;
Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/m68k/mm/sun3kmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ void __iomem *sun3_ioremap(unsigned long phys, unsigned long size,
return (void __iomem *)ret;

}
EXPORT_SYMBOL(sun3_ioremap);


void __iomem *__ioremap(unsigned long phys, unsigned long size, int cache)
Expand Down Expand Up @@ -157,3 +158,4 @@ int sun3_map_test(unsigned long addr, char *val)

return ret;
}
EXPORT_SYMBOL(sun3_map_test);
2 changes: 1 addition & 1 deletion trunk/arch/m68k/mvme147/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ static int mvme147_get_hardware_list(char *buffer)
* the mvme147 IRQ handling routines.
*/

void mvme147_init_IRQ(void)
void __init mvme147_init_IRQ(void)
{
m68k_setup_user_interrupt(VEC_USER, 192, NULL);
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/m68k/mvme16x/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ static int mvme16x_get_hardware_list(char *buffer)
* that the base vectors for the VMEChip2 and PCCChip2 are valid.
*/

static void mvme16x_init_IRQ (void)
static void __init mvme16x_init_IRQ (void)
{
m68k_setup_user_interrupt(VEC_USER, 192, NULL);
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/m68k/q40/q40ints.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ static struct irq_controller q40_irq_controller = {

static int disabled;

void q40_init_IRQ(void)
void __init q40_init_IRQ(void)
{
m68k_setup_irq_controller(&q40_irq_controller, 1, Q40_IRQ_MAX);

Expand Down
Loading

0 comments on commit 06291df

Please sign in to comment.