Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 108558
b: refs/heads/master
c: 21d3bdb
h: refs/heads/master
v: v3
  • Loading branch information
Linus Torvalds committed Aug 15, 2008
1 parent f3b1958 commit 14af3b7
Show file tree
Hide file tree
Showing 510 changed files with 22,080 additions and 6,006 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: c78c7e35a4709b55d3126624662c8f6d7e3d1a5e
refs/heads/master: 21d3bdb1606311a2900eabccfcb5a887952e2c44
3 changes: 0 additions & 3 deletions trunk/Documentation/devices.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2560,9 +2560,6 @@ Your cooperation is appreciated.
96 = /dev/usb/hiddev0 1st USB HID device
...
111 = /dev/usb/hiddev15 16th USB HID device
112 = /dev/usb/auer0 1st auerswald ISDN device
...
127 = /dev/usb/auer15 16th auerswald ISDN device
128 = /dev/usb/brlvgr0 First Braille Voyager device
...
131 = /dev/usb/brlvgr3 Fourth Braille Voyager device
Expand Down
33 changes: 17 additions & 16 deletions trunk/Documentation/hwmon/ibmaem
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
Kernel driver ibmaem
======================

This driver talks to the IBM Systems Director Active Energy Manager, known
henceforth as AEM.

Supported systems:
* Any recent IBM System X server with Active Energy Manager support.
* Any recent IBM System X server with AEM support.
This includes the x3350, x3550, x3650, x3655, x3755, x3850 M2,
x3950 M2, and certain HS2x/LS2x/QS2x blades. The IPMI host interface
driver ("ipmi-si") needs to be loaded for this driver to do anything.
Expand All @@ -14,24 +17,22 @@ Author: Darrick J. Wong
Description
-----------

This driver implements sensor reading support for the energy and power
meters available on various IBM System X hardware through the BMC. All
sensor banks will be exported as platform devices; this driver can talk
to both v1 and v2 interfaces. This driver is completely separate from the
older ibmpex driver.
This driver implements sensor reading support for the energy and power meters
available on various IBM System X hardware through the BMC. All sensor banks
will be exported as platform devices; this driver can talk to both v1 and v2
interfaces. This driver is completely separate from the older ibmpex driver.

The v1 AEM interface has a simple set of features to monitor energy use.
There is a register that displays an estimate of raw energy consumption
since the last BMC reset, and a power sensor that returns average power
use over a configurable interval.
The v1 AEM interface has a simple set of features to monitor energy use. There
is a register that displays an estimate of raw energy consumption since the
last BMC reset, and a power sensor that returns average power use over a
configurable interval.

The v2 AEM interface is a bit more sophisticated, being able to present
a wider range of energy and power use registers, the power cap as
set by the AEM software, and temperature sensors.
The v2 AEM interface is a bit more sophisticated, being able to present a wider
range of energy and power use registers, the power cap as set by the AEM
software, and temperature sensors.

Special Features
----------------

The "power_cap" value displays the current system power cap, as set by
the Active Energy Manager software. Setting the power cap from the host
is not currently supported.
The "power_cap" value displays the current system power cap, as set by the AEM
software. Setting the power cap from the host is not currently supported.
1 change: 0 additions & 1 deletion trunk/Documentation/ioctl-number.txt
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ Code Seq# Include File Comments
'T' all linux/soundcard.h conflict!
'T' all asm-i386/ioctls.h conflict!
'U' 00-EF linux/drivers/usb/usb.h
'U' F0-FF drivers/usb/auerswald.c
'V' all linux/vt.h
'W' 00-1F linux/watchdog.h conflict!
'W' 00-1F linux/wanrouter.h conflict!
Expand Down
30 changes: 0 additions & 30 deletions trunk/Documentation/usb/auerswald.txt

This file was deleted.

7 changes: 6 additions & 1 deletion trunk/Documentation/usb/power-management.txt
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,12 @@ post_reset; the USB core guarantees that this is true of internal
suspend/resume events as well.

If a driver wants to block all suspend/resume calls during some
critical section, it can simply acquire udev->pm_mutex.
critical section, it can simply acquire udev->pm_mutex. Note that
calls to resume may be triggered indirectly. Block IO due to memory
allocations can make the vm subsystem resume a device. Thus while
holding this lock you must not allocate memory with GFP_KERNEL or
GFP_NOFS.

Alternatively, if the critical section might call some of the
usb_autopm_* routines, the driver can avoid deadlock by doing:

Expand Down
9 changes: 5 additions & 4 deletions trunk/Documentation/vm/page_migration
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@ migrate_pages function call takes two sets of nodes and moves pages of a
process that are located on the from nodes to the destination nodes.
Page migration functions are provided by the numactl package by Andi Kleen
(a version later than 0.9.3 is required. Get it from
ftp://ftp.suse.com/pub/people/ak). numactl provided libnuma which
provides an interface similar to other numa functionality for page migration.
cat /proc/<pid>/numa_maps allows an easy review of where the pages of
a process are located. See also the numa_maps manpage in the numactl package.
ftp://oss.sgi.com/www/projects/libnuma/download/). numactl provides libnuma
which provides an interface similar to other numa functionality for page
migration. cat /proc/<pid>/numa_maps allows an easy review of where the
pages of a process are located. See also the numa_maps documentation in the
proc(5) man page.

Manual migration is useful if for example the scheduler has relocated
a process to a processor on a distant node. A batch scheduler or an
Expand Down
31 changes: 24 additions & 7 deletions trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -175,12 +175,18 @@ M: bcrl@kvack.org
L: linux-aio@kvack.org
S: Supported

ABIT UGURU HARDWARE MONITOR DRIVER
ABIT UGURU 1,2 HARDWARE MONITOR DRIVER
P: Hans de Goede
M: j.w.r.degoede@hhs.nl
L: lm-sensors@lm-sensors.org
S: Maintained

ABIT UGURU 3 HARDWARE MONITOR DRIVER
P: Alistair John Strachan
M: alistair@devzero.co.uk
L: lm-sensors@lm-sensors.org
S: Maintained

ACENIC DRIVER
P: Jes Sorensen
M: jes@trained-monkey.org
Expand Down Expand Up @@ -2928,6 +2934,12 @@ M: jirislaby@gmail.com
L: linux-kernel@vger.kernel.org
S: Maintained

MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER
P: Felipe Balbi
M: felipe.balbi@nokia.com
L: linux-usb@vger.kernel.org
S: Maintained

MYRICOM MYRI-10G 10GbE DRIVER (MYRI10GE)
P: Andrew Gallatin
M: gallatin@myri.com
Expand Down Expand Up @@ -3076,6 +3088,7 @@ M: horms@verge.net.au
P: Julian Anastasov
M: ja@ssi.bg
L: netdev@vger.kernel.org
L: lvs-devel@vger.kernel.org
S: Maintained

NFS, SUNRPC, AND LOCKD CLIENTS
Expand Down Expand Up @@ -3741,6 +3754,16 @@ L: linux-visws-devel@lists.sf.net
W: http://linux-visws.sf.net
S: Maintained for 2.6.

SGI GRU DRIVER
P: Jack Steiner
M: steiner@sgi.com
S: Maintained

SGI XP/XPC/XPNET DRIVER
P: Dean Nelson
M: dcn@sgi.com
S: Maintained

SIMTEC EB110ATX (Chalice CATS)
P: Ben Dooks
P: Vincent Sanders
Expand Down Expand Up @@ -4195,12 +4218,6 @@ M: oliver@neukum.name
L: linux-usb@vger.kernel.org
S: Maintained

USB AUERSWALD DRIVER
P: Wolfgang Muees
M: wolfgang@iksw-muees.de
L: linux-usb@vger.kernel.org
S: Maintained

USB BLOCK DRIVER (UB ub)
P: Pete Zaitcev
M: zaitcev@redhat.com
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion trunk/arch/arm/include/asm/kexec.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
/* Maximum address we can use for the control code buffer */
#define KEXEC_CONTROL_MEMORY_LIMIT (-1UL)

#define KEXEC_CONTROL_CODE_SIZE 4096
#define KEXEC_CONTROL_PAGE_SIZE 4096

#define KEXEC_ARCH KEXEC_ARCH_ARM

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/kernel/machine_kexec.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ void machine_kexec(struct kimage *image)


flush_icache_range((unsigned long) reboot_code_buffer,
(unsigned long) reboot_code_buffer + KEXEC_CONTROL_CODE_SIZE);
(unsigned long) reboot_code_buffer + KEXEC_CONTROL_PAGE_SIZE);
printk(KERN_INFO "Bye!\n");

cpu_proc_fin();
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/arm/mach-omap2/usb-tusb6010.c
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,6 @@ tusb6010_setup_interface(struct musb_hdrc_platform_data *data,
printk(error, 6, status);
return -ENODEV;
}
data->multipoint = 1;
tusb_device.dev.platform_data = data;

/* REVISIT let the driver know what DMA channels work */
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion trunk/arch/ia64/include/asm/kexec.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
/* Maximum address we can use for the control code buffer */
#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE

#define KEXEC_CONTROL_CODE_SIZE (8192 + 8192 + 4096)
#define KEXEC_CONTROL_PAGE_SIZE (8192 + 8192 + 4096)

/* The native architecture */
#define KEXEC_ARCH KEXEC_ARCH_IA_64
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/powerpc/include/asm/kexec.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE
#endif

#define KEXEC_CONTROL_CODE_SIZE 4096
#define KEXEC_CONTROL_PAGE_SIZE 4096

/* The native architecture */
#ifdef __powerpc64__
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/powerpc/kernel/machine_kexec_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ void default_machine_kexec(struct kimage *image)
relocate_new_kernel_size);

flush_icache_range(reboot_code_buffer,
reboot_code_buffer + KEXEC_CONTROL_CODE_SIZE);
reboot_code_buffer + KEXEC_CONTROL_PAGE_SIZE);
printk(KERN_INFO "Bye!\n");

/* now call it */
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/s390/include/asm/kexec.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
#define KEXEC_CONTROL_MEMORY_LIMIT (1UL<<31)

/* Allocate one page for the pdp and the second for the code */
#define KEXEC_CONTROL_CODE_SIZE 4096
#define KEXEC_CONTROL_PAGE_SIZE 4096

/* The native architecture */
#define KEXEC_ARCH KEXEC_ARCH_S390
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sh/include/asm/kexec.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
/* Maximum address we can use for the control code buffer */
#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE

#define KEXEC_CONTROL_CODE_SIZE 4096
#define KEXEC_CONTROL_PAGE_SIZE 4096

/* The native architecture */
#define KEXEC_ARCH KEXEC_ARCH_SH
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/sparc/include/asm/irq_64.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,8 @@ static inline unsigned long get_softint(void)
void __trigger_all_cpu_backtrace(void);
#define trigger_all_cpu_backtrace() __trigger_all_cpu_backtrace()

extern void *hardirq_stack[NR_CPUS];
extern void *softirq_stack[NR_CPUS];
#define __ARCH_HAS_DO_SOFTIRQ

#endif
3 changes: 1 addition & 2 deletions trunk/arch/sparc/include/asm/of_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ struct of_device
extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name);
extern void of_iounmap(struct resource *res, void __iomem *base, unsigned long size);

/* These are just here during the transition */
#include <linux/of_device.h>
/* This is just here during the transition */
#include <linux/of_platform.h>

#endif /* __KERNEL__ */
Expand Down
52 changes: 52 additions & 0 deletions trunk/arch/sparc64/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -682,10 +682,32 @@ void ack_bad_irq(unsigned int virt_irq)
ino, virt_irq);
}

void *hardirq_stack[NR_CPUS];
void *softirq_stack[NR_CPUS];

static __attribute__((always_inline)) void *set_hardirq_stack(void)
{
void *orig_sp, *sp = hardirq_stack[smp_processor_id()];

__asm__ __volatile__("mov %%sp, %0" : "=r" (orig_sp));
if (orig_sp < sp ||
orig_sp > (sp + THREAD_SIZE)) {
sp += THREAD_SIZE - 192 - STACK_BIAS;
__asm__ __volatile__("mov %0, %%sp" : : "r" (sp));
}

return orig_sp;
}
static __attribute__((always_inline)) void restore_hardirq_stack(void *orig_sp)
{
__asm__ __volatile__("mov %0, %%sp" : : "r" (orig_sp));
}

void handler_irq(int irq, struct pt_regs *regs)
{
unsigned long pstate, bucket_pa;
struct pt_regs *old_regs;
void *orig_sp;

clear_softint(1 << irq);

Expand All @@ -703,6 +725,8 @@ void handler_irq(int irq, struct pt_regs *regs)
"i" (PSTATE_IE)
: "memory");

orig_sp = set_hardirq_stack();

while (bucket_pa) {
struct irq_desc *desc;
unsigned long next_pa;
Expand All @@ -719,10 +743,38 @@ void handler_irq(int irq, struct pt_regs *regs)
bucket_pa = next_pa;
}

restore_hardirq_stack(orig_sp);

irq_exit();
set_irq_regs(old_regs);
}

void do_softirq(void)
{
unsigned long flags;

if (in_interrupt())
return;

local_irq_save(flags);

if (local_softirq_pending()) {
void *orig_sp, *sp = softirq_stack[smp_processor_id()];

sp += THREAD_SIZE - 192 - STACK_BIAS;

__asm__ __volatile__("mov %%sp, %0\n\t"
"mov %1, %%sp"
: "=&r" (orig_sp)
: "r" (sp));
__do_softirq();
__asm__ __volatile__("mov %0, %%sp"
: : "r" (orig_sp));
}

local_irq_restore(flags);
}

#ifdef CONFIG_HOTPLUG_CPU
void fixup_irqs(void)
{
Expand Down
Loading

0 comments on commit 14af3b7

Please sign in to comment.