Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 5639
b: refs/heads/master
c: 7cfa132
h: refs/heads/master
i:
  5637: 551c58e
  5635: 47f5194
  5631: 7db0fbd
v: v3
  • Loading branch information
Linus Torvalds committed Aug 4, 2005
1 parent 0959cc2 commit 6e03994
Show file tree
Hide file tree
Showing 33 changed files with 783 additions and 129 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: c80f90ba15ed56ae36d1fb51f81a88f9ba0d8c8b
refs/heads/master: 7cfa132cd06639c8ac5fe9ef776a7650f1d8c3e6
588 changes: 588 additions & 0 deletions trunk/Documentation/kprobes.txt

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions trunk/Documentation/video4linux/bttv/Insmod-options
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ bttv.o
push used by bttv. bttv will disable overlay
by default on this hardware to avoid crashes.
With this insmod option you can override this.
no_overlay=1 Disable overlay. It should be used by broken
hardware that doesn't support PCI2PCI direct
transfers.
automute=0/1 Automatically mutes the sound if there is
no TV signal, on by default. You might try
to disable this if you have bad input signal
Expand Down
17 changes: 7 additions & 10 deletions trunk/arch/arm26/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,12 +176,12 @@ __do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
* Handle the "normal" cases first - successful and sigbus
*/
switch (fault) {
case 2:
case VM_FAULT_MAJOR:
tsk->maj_flt++;
return fault;
case 1:
case VM_FAULT_MINOR:
tsk->min_flt++;
case 0:
case VM_FAULT_SIGBUS:
return fault;
}

Expand Down Expand Up @@ -226,14 +226,11 @@ int do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
/*
* Handle the "normal" case first
*/
if (fault > 0)
switch (fault) {
case VM_FAULT_MINOR:
case VM_FAULT_MAJOR:
return 0;

/*
* We had some memory, but were unable to
* successfully fix up this page fault.
*/
if (fault == 0){
case VM_FAULT_SIGBUS:
goto do_sigbus;
}

Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/cris/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -284,13 +284,13 @@ do_page_fault(unsigned long address, struct pt_regs *regs,
*/

switch (handle_mm_fault(mm, vma, address, writeaccess & 1)) {
case 1:
case VM_FAULT_MINOR:
tsk->min_flt++;
break;
case 2:
case VM_FAULT_MAJOR:
tsk->maj_flt++;
break;
case 0:
case VM_FAULT_SIGBUS:
goto do_sigbus;
default:
goto out_of_memory;
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/frv/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -163,13 +163,13 @@ asmlinkage void do_page_fault(int datammu, unsigned long esr0, unsigned long ear
* the fault.
*/
switch (handle_mm_fault(mm, vma, ear0, write)) {
case 1:
case VM_FAULT_MINOR:
current->min_flt++;
break;
case 2:
case VM_FAULT_MAJOR:
current->maj_flt++;
break;
case 0:
case VM_FAULT_SIGBUS:
goto do_sigbus;
default:
goto out_of_memory;
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/m68k/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,13 +160,13 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
printk("handle_mm_fault returns %d\n",fault);
#endif
switch (fault) {
case 1:
case VM_FAULT_MINOR:
current->min_flt++;
break;
case 2:
case VM_FAULT_MAJOR:
current->maj_flt++;
break;
case 0:
case VM_FAULT_SIGBUS:
goto bus_err;
default:
goto out_of_memory;
Expand Down
12 changes: 6 additions & 6 deletions trunk/arch/parisc/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -178,17 +178,17 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
*/

switch (handle_mm_fault(mm, vma, address, (acc_type & VM_WRITE) != 0)) {
case 1:
case VM_FAULT_MINOR:
++current->min_flt;
break;
case 2:
case VM_FAULT_MAJOR:
++current->maj_flt;
break;
case 0:
case VM_FAULT_SIGBUS:
/*
* We ran out of memory, or some other thing happened
* to us that made us unable to handle the page fault
* gracefully.
* We hit a hared mapping outside of the file, or some
* other thing happened to us that made us unable to
* handle the page fault gracefully.
*/
goto bad_area;
default:
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/ppc64/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -2071,7 +2071,7 @@ _GLOBAL(hmt_start_secondary)
blr
#endif

#if defined(CONFIG_SMP) && !defined(CONFIG_PPC_ISERIES)
#if defined(CONFIG_KEXEC) || (defined(CONFIG_SMP) && !defined(CONFIG_PPC_ISERIES))
_GLOBAL(smp_release_cpus)
/* All secondary cpus are spinning on a common
* spinloop, release them all now so they can start
Expand Down
12 changes: 8 additions & 4 deletions trunk/arch/ppc64/kernel/machine_kexec.c
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ void kexec_copy_flush(struct kimage *image)
void kexec_smp_down(void *arg)
{
if (ppc_md.cpu_irq_down)
ppc_md.cpu_irq_down();
ppc_md.cpu_irq_down(1);

local_irq_disable();
kexec_smp_wait();
Expand Down Expand Up @@ -232,7 +232,7 @@ static void kexec_prepare_cpus(void)

/* after we tell the others to go down */
if (ppc_md.cpu_irq_down)
ppc_md.cpu_irq_down();
ppc_md.cpu_irq_down(0);

put_cpu();

Expand All @@ -243,15 +243,19 @@ static void kexec_prepare_cpus(void)

static void kexec_prepare_cpus(void)
{
extern void smp_release_cpus(void);
/*
* move the secondarys to us so that we can copy
* the new kernel 0-0x100 safely
*
* do this if kexec in setup.c ?
*
* We need to release the cpus if we are ever going from an
* UP to an SMP kernel.
*/
smp_relase_cpus();
smp_release_cpus();
if (ppc_md.cpu_irq_down)
ppc_md.cpu_irq_down();
ppc_md.cpu_irq_down(0);
local_irq_disable();
}

Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/ppc64/kernel/mpic.c
Original file line number Diff line number Diff line change
Expand Up @@ -794,10 +794,10 @@ void mpic_setup_this_cpu(void)

/*
* XXX: someone who knows mpic should check this.
* do we need to eoi the ipi here (see xics comments)?
* do we need to eoi the ipi including for kexec cpu here (see xics comments)?
* or can we reset the mpic in the new kernel?
*/
void mpic_teardown_this_cpu(void)
void mpic_teardown_this_cpu(int secondary)
{
struct mpic *mpic = mpic_primary;
unsigned long flags;
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/ppc64/kernel/mpic.h
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ extern unsigned int mpic_irq_get_priority(unsigned int irq);
extern void mpic_setup_this_cpu(void);

/* Clean up for kexec (or cpu offline or ...) */
extern void mpic_teardown_this_cpu(void);
extern void mpic_teardown_this_cpu(int secondary);

/* Request IPIs on primary mpic */
extern void mpic_request_ipis(void);
Expand Down
31 changes: 16 additions & 15 deletions trunk/arch/ppc64/kernel/xics.c
Original file line number Diff line number Diff line change
Expand Up @@ -647,29 +647,30 @@ static void xics_set_affinity(unsigned int virq, cpumask_t cpumask)
}
}

void xics_teardown_cpu(void)
void xics_teardown_cpu(int secondary)
{
int cpu = smp_processor_id();
int status;

ops->cppr_info(cpu, 0x00);
iosync();

/*
* we need to EOI the IPI if we got here from kexec down IPI
*
* xics doesn't care if we duplicate an EOI as long as we
* don't EOI and raise priority.
*
* probably need to check all the other interrupts too
* should we be flagging idle loop instead?
* or creating some task to be scheduled?
* Some machines need to have at least one cpu in the GIQ,
* so leave the master cpu in the group.
*/
ops->xirr_info_set(cpu, XICS_IPI);

status = rtas_set_indicator(GLOBAL_INTERRUPT_QUEUE,
(1UL << interrupt_server_size) - 1 - default_distrib_server, 0);
WARN_ON(status != 0);
if (secondary) {
/*
* we need to EOI the IPI if we got here from kexec down IPI
*
* probably need to check all the other interrupts too
* should we be flagging idle loop instead?
* or creating some task to be scheduled?
*/
ops->xirr_info_set(cpu, XICS_IPI);
rtas_set_indicator(GLOBAL_INTERRUPT_QUEUE,
(1UL << interrupt_server_size) - 1 -
default_distrib_server, 0);
}
}

#ifdef CONFIG_HOTPLUG_CPU
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/sh64/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -223,13 +223,13 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long writeaccess,
*/
survive:
switch (handle_mm_fault(mm, vma, address, writeaccess)) {
case 1:
case VM_FAULT_MINOR:
tsk->min_flt++;
break;
case 2:
case VM_FAULT_MAJOR:
tsk->maj_flt++;
break;
case 0:
case VM_FAULT_SIGBUS:
goto do_sigbus;
default:
goto out_of_memory;
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/x86_64/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -439,13 +439,13 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code)
* the fault.
*/
switch (handle_mm_fault(mm, vma, address, write)) {
case 1:
case VM_FAULT_MINOR:
tsk->min_flt++;
break;
case 2:
case VM_FAULT_MAJOR:
tsk->maj_flt++;
break;
case 0:
case VM_FAULT_SIGBUS:
goto do_sigbus;
default:
goto out_of_memory;
Expand Down
6 changes: 0 additions & 6 deletions trunk/drivers/acpi/dispatcher/dswload.c
Original file line number Diff line number Diff line change
Expand Up @@ -491,12 +491,6 @@ acpi_ds_load2_begin_op (
if ((!(walk_state->op_info->flags & AML_NSOPCODE) &&
(walk_state->opcode != AML_INT_NAMEPATH_OP)) ||
(!(walk_state->op_info->flags & AML_NAMED))) {
if ((walk_state->op_info->class == AML_CLASS_EXECUTE) ||
(walk_state->op_info->class == AML_CLASS_CONTROL)) {
ACPI_REPORT_WARNING ((
"Encountered executable code at module level, [%s]\n",
acpi_ps_get_opcode_name (walk_state->opcode)));
}
return_ACPI_STATUS (AE_OK);
}

Expand Down
6 changes: 5 additions & 1 deletion trunk/drivers/acpi/osl.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,10 +145,14 @@ acpi_os_vprintf(const char *fmt, va_list args)
#endif
}

extern int acpi_in_resume;
void *
acpi_os_allocate(acpi_size size)
{
return kmalloc(size, GFP_KERNEL);
if (acpi_in_resume)
return kmalloc(size, GFP_ATOMIC);
else
return kmalloc(size, GFP_KERNEL);
}

void
Expand Down
7 changes: 7 additions & 0 deletions trunk/drivers/acpi/pci_link.c
Original file line number Diff line number Diff line change
Expand Up @@ -798,6 +798,11 @@ acpi_pci_link_resume(
return_VALUE(0);
}

/*
* FIXME: this is a workaround to avoid nasty warning. It will be removed
* after every device calls pci_disable_device in .resume.
*/
int acpi_in_resume;
static int
irqrouter_resume(
struct sys_device *dev)
Expand All @@ -807,6 +812,7 @@ irqrouter_resume(

ACPI_FUNCTION_TRACE("irqrouter_resume");

acpi_in_resume = 1;
list_for_each(node, &acpi_link.entries) {
link = list_entry(node, struct acpi_pci_link, node);
if (!link) {
Expand All @@ -816,6 +822,7 @@ irqrouter_resume(
}
acpi_pci_link_resume(link);
}
acpi_in_resume = 0;
return_VALUE(0);
}

Expand Down
16 changes: 13 additions & 3 deletions trunk/drivers/ide/ide-probe.c
Original file line number Diff line number Diff line change
Expand Up @@ -960,6 +960,15 @@ static void save_match(ide_hwif_t *hwif, ide_hwif_t *new, ide_hwif_t **match)
}
#endif /* MAX_HWIFS > 1 */

static inline int hwif_to_node(ide_hwif_t *hwif)
{
if (hwif->pci_dev)
return pcibus_to_node(hwif->pci_dev->bus);
else
/* Add ways to determine the node of other busses here */
return -1;
}

/*
* init request queue
*/
Expand All @@ -978,8 +987,7 @@ static int ide_init_queue(ide_drive_t *drive)
* do not.
*/

q = blk_init_queue_node(do_ide_request, &ide_lock,
pcibus_to_node(drive->hwif->pci_dev->bus));
q = blk_init_queue_node(do_ide_request, &ide_lock, hwif_to_node(hwif));
if (!q)
return 1;

Expand Down Expand Up @@ -1048,6 +1056,8 @@ static int init_irq (ide_hwif_t *hwif)

BUG_ON(in_interrupt());
BUG_ON(irqs_disabled());
BUG_ON(hwif == NULL);

down(&ide_cfg_sem);
hwif->hwgroup = NULL;
#if MAX_HWIFS > 1
Expand Down Expand Up @@ -1097,7 +1107,7 @@ static int init_irq (ide_hwif_t *hwif)
spin_unlock_irq(&ide_lock);
} else {
hwgroup = kmalloc_node(sizeof(ide_hwgroup_t), GFP_KERNEL,
pcibus_to_node(hwif->drives[0].hwif->pci_dev->bus));
hwif_to_node(hwif->drives[0].hwif));
if (!hwgroup)
goto out_up;

Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/infiniband/include/ib_cm.h
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ enum ib_cm_rej_reason {
IB_CM_REJ_INVALID_ALT_TRAFFIC_CLASS = __constant_htons(21),
IB_CM_REJ_INVALID_ALT_HOP_LIMIT = __constant_htons(22),
IB_CM_REJ_INVALID_ALT_PACKET_RATE = __constant_htons(23),
IB_CM_REJ_PORT_REDIRECT = __constant_htons(24),
IB_CM_REJ_PORT_CM_REDIRECT = __constant_htons(24),
IB_CM_REJ_PORT_REDIRECT = __constant_htons(25),
IB_CM_REJ_INVALID_MTU = __constant_htons(26),
IB_CM_REJ_INSUFFICIENT_RESP_RESOURCES = __constant_htons(27),
IB_CM_REJ_CONSUMER_DEFINED = __constant_htons(28),
Expand Down
5 changes: 3 additions & 2 deletions trunk/drivers/infiniband/ulp/ipoib/ipoib_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -600,9 +600,10 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)

ipoib_mcast_send(dev, (union ib_gid *) (phdr->hwaddr + 4), skb);
} else {
/* unicast GID -- should be ARP reply */
/* unicast GID -- should be ARP or RARP reply */

if (be16_to_cpup((u16 *) skb->data) != ETH_P_ARP) {
if ((be16_to_cpup((__be16 *) skb->data) != ETH_P_ARP) &&
(be16_to_cpup((__be16 *) skb->data) != ETH_P_RARP)) {
ipoib_warn(priv, "Unicast, no %s: type %04x, QPN %06x "
IPOIB_GID_FMT "\n",
skb->dst ? "neigh" : "dst",
Expand Down
Loading

0 comments on commit 6e03994

Please sign in to comment.