Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 40872
b: refs/heads/master
c: 621da0f
h: refs/heads/master
v: v3
  • Loading branch information
Paul Mackerras committed Nov 9, 2006
1 parent 62f8080 commit 757b29e
Show file tree
Hide file tree
Showing 78 changed files with 462 additions and 623 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: eea2078eaf2bcd4e5e8b2e08798071efedac5e17
refs/heads/master: 621da0f8af228525e4b40390e36fbdc44a587cf1
1 change: 0 additions & 1 deletion trunk/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
# Top-level generic files
#
tags
TAGS
vmlinux*
System.map
Module.symvers
Expand Down
2 changes: 1 addition & 1 deletion trunk/CREDITS
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ S: Longford, Ireland
S: Sydney, Australia

N: Tigran A. Aivazian
E: tigran@aivazian.fsnet.co.uk
E: tigran@veritas.com
W: http://www.moses.uklinux.net/patches
D: BFS filesystem
D: Intel IA32 CPU microcode update support
Expand Down
12 changes: 12 additions & 0 deletions trunk/Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,18 @@ Who: Mauro Carvalho Chehab <mchehab@brturbo.com.br>

---------------------------

What: sys_sysctl
When: January 2007
Why: The same information is available through /proc/sys and that is the
interface user space prefers to use. And there do not appear to be
any existing user in user space of sys_sysctl. The additional
maintenance overhead of keeping a set of binary names gets
in the way of doing a good job of maintaining this interface.

Who: Eric Biederman <ebiederm@xmission.com>

---------------------------

What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
When: November 2005
Files: drivers/pcmcia/: pcmcia_ioctl.c
Expand Down
2 changes: 1 addition & 1 deletion trunk/Documentation/memory-barriers.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1016,7 +1016,7 @@ There are some more advanced barrier functions:

(*) set_mb(var, value)

This assigns the value to the variable and then inserts a full memory
This assigns the value to the variable and then inserts at least a write
barrier after it, depending on the function. It isn't guaranteed to
insert anything more than a compiler barrier in a UP compilation.

Expand Down
4 changes: 2 additions & 2 deletions trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@ S: Maintained

BFS FILE SYSTEM
P: Tigran A. Aivazian
M: tigran@aivazian.fsnet.co.uk
M: tigran@veritas.com
L: linux-kernel@vger.kernel.org
S: Maintained

Expand Down Expand Up @@ -1513,7 +1513,7 @@ S: Maintained

INTEL IA32 MICROCODE UPDATE SUPPORT
P: Tigran Aivazian
M: tigran@aivazian.fsnet.co.uk
M: tigran@veritas.com
S: Maintained

INTEL IXP4XX RANDOM NUMBER GENERATOR SUPPORT
Expand Down
26 changes: 14 additions & 12 deletions trunk/arch/i386/kernel/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -2624,16 +2624,18 @@ void arch_teardown_msi_irq(unsigned int irq)

static void target_ht_irq(unsigned int irq, unsigned int dest)
{
struct ht_irq_msg msg;
fetch_ht_irq_msg(irq, &msg);
u32 low, high;
low = read_ht_irq_low(irq);
high = read_ht_irq_high(irq);

msg.address_lo &= ~(HT_IRQ_LOW_DEST_ID_MASK);
msg.address_hi &= ~(HT_IRQ_HIGH_DEST_ID_MASK);
low &= ~(HT_IRQ_LOW_DEST_ID_MASK);
high &= ~(HT_IRQ_HIGH_DEST_ID_MASK);

msg.address_lo |= HT_IRQ_LOW_DEST_ID(dest);
msg.address_hi |= HT_IRQ_HIGH_DEST_ID(dest);
low |= HT_IRQ_LOW_DEST_ID(dest);
high |= HT_IRQ_HIGH_DEST_ID(dest);

write_ht_irq_msg(irq, &msg);
write_ht_irq_low(irq, low);
write_ht_irq_high(irq, high);
}

static void set_ht_irq_affinity(unsigned int irq, cpumask_t mask)
Expand Down Expand Up @@ -2671,18 +2673,17 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)

vector = assign_irq_vector(irq);
if (vector >= 0) {
struct ht_irq_msg msg;
u32 low, high;
unsigned dest;
cpumask_t tmp;

cpus_clear(tmp);
cpu_set(vector >> 8, tmp);
dest = cpu_mask_to_apicid(tmp);

msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest);
high = HT_IRQ_HIGH_DEST_ID(dest);

msg.address_lo =
HT_IRQ_LOW_BASE |
low = HT_IRQ_LOW_BASE |
HT_IRQ_LOW_DEST_ID(dest) |
HT_IRQ_LOW_VECTOR(vector) |
((INT_DEST_MODE == 0) ?
Expand All @@ -2694,7 +2695,8 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
HT_IRQ_LOW_MT_ARBITRATED) |
HT_IRQ_LOW_IRQ_MASKED;

write_ht_irq_msg(irq, &msg);
write_ht_irq_low(irq, low);
write_ht_irq_high(irq, high);

set_irq_chip_and_handler_name(irq, &ht_irq_chip,
handle_edge_irq, "edge");
Expand Down
22 changes: 7 additions & 15 deletions trunk/arch/i386/kernel/kprobes.c
Original file line number Diff line number Diff line change
Expand Up @@ -361,11 +361,8 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
asm volatile ( ".global kretprobe_trampoline\n"
"kretprobe_trampoline: \n"
" pushf\n"
/* skip cs, eip, orig_eax */
" subl $12, %esp\n"
" pushl %gs\n"
" pushl %ds\n"
" pushl %es\n"
/* skip cs, eip, orig_eax, es, ds */
" subl $20, %esp\n"
" pushl %eax\n"
" pushl %ebp\n"
" pushl %edi\n"
Expand All @@ -376,19 +373,19 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
" movl %esp, %eax\n"
" call trampoline_handler\n"
/* move eflags to cs */
" movl 52(%esp), %edx\n"
" movl %edx, 48(%esp)\n"
" movl 48(%esp), %edx\n"
" movl %edx, 44(%esp)\n"
/* save true return address on eflags */
" movl %eax, 52(%esp)\n"
" movl %eax, 48(%esp)\n"
" popl %ebx\n"
" popl %ecx\n"
" popl %edx\n"
" popl %esi\n"
" popl %edi\n"
" popl %ebp\n"
" popl %eax\n"
/* skip eip, orig_eax, es, ds, gs */
" addl $20, %esp\n"
/* skip eip, orig_eax, es, ds */
" addl $16, %esp\n"
" popf\n"
" ret\n");
}
Expand All @@ -407,10 +404,6 @@ fastcall void *__kprobes trampoline_handler(struct pt_regs *regs)
INIT_HLIST_HEAD(&empty_rp);
spin_lock_irqsave(&kretprobe_lock, flags);
head = kretprobe_inst_table_head(current);
/* fixup registers */
regs->xcs = __KERNEL_CS;
regs->eip = trampoline_address;
regs->orig_eax = 0xffffffff;

/*
* It is possible to have multiple instances associated with a given
Expand All @@ -432,7 +425,6 @@ fastcall void *__kprobes trampoline_handler(struct pt_regs *regs)

if (ri->rp && ri->rp->handler){
__get_cpu_var(current_kprobe) = &ri->rp->kp;
get_kprobe_ctlblk()->kprobe_status = KPROBE_HIT_ACTIVE;
ri->rp->handler(ri, regs);
__get_cpu_var(current_kprobe) = NULL;
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/i386/kernel/microcode.c
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,7 @@ static void microcode_init_cpu(int cpu)
set_cpus_allowed(current, cpumask_of_cpu(cpu));
mutex_lock(&microcode_mutex);
collect_cpu_info(cpu);
if (uci->valid && system_state == SYSTEM_RUNNING)
if (uci->valid)
cpu_request_microcode(cpu);
mutex_unlock(&microcode_mutex);
set_cpus_allowed(current, old);
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/i386/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ SECTIONS
__tracedata_end = .;

/* writeable */
. = ALIGN(4096);
.data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */
*(.data)
CONSTRUCTORS
Expand Down
35 changes: 35 additions & 0 deletions trunk/arch/i386/pci/mmconfig.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,38 @@ static struct pci_raw_ops pci_mmcfg = {
.write = pci_mmcfg_write,
};


static __init void pci_mmcfg_insert_resources(void)
{
#define PCI_MMCFG_RESOURCE_NAME_LEN 19
int i;
struct resource *res;
char *names;
unsigned num_buses;

res = kcalloc(PCI_MMCFG_RESOURCE_NAME_LEN + sizeof(*res),
pci_mmcfg_config_num, GFP_KERNEL);

if (!res) {
printk(KERN_ERR "PCI: Unable to allocate MMCONFIG resources\n");
return;
}

names = (void *)&res[pci_mmcfg_config_num];
for (i = 0; i < pci_mmcfg_config_num; i++, res++) {
num_buses = pci_mmcfg_config[i].end_bus_number -
pci_mmcfg_config[i].start_bus_number + 1;
res->name = names;
snprintf(names, PCI_MMCFG_RESOURCE_NAME_LEN, "PCI MMCONFIG %u",
pci_mmcfg_config[i].pci_segment_group_number);
res->start = pci_mmcfg_config[i].base_address;
res->end = res->start + (num_buses << 20) - 1;
res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
insert_resource(&iomem_resource, res);
names += PCI_MMCFG_RESOURCE_NAME_LEN;
}
}

/* K8 systems have some devices (typically in the builtin northbridge)
that are only accessible using type1
Normally this can be expressed in the MCFG by not listing them
Expand Down Expand Up @@ -190,6 +222,8 @@ static __init void unreachable_devices(void)
}
}



void __init pci_mmcfg_init(int type)
{
if ((pci_probe & PCI_PROBE_MMCONF) == 0)
Expand Down Expand Up @@ -217,4 +251,5 @@ void __init pci_mmcfg_init(int type)
pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF;

unreachable_devices();
pci_mmcfg_insert_resources();
}
10 changes: 0 additions & 10 deletions trunk/arch/ia64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,6 @@ config NUMA
bool "NUMA support"
depends on !IA64_HP_SIM && !FLATMEM
default y if IA64_SGI_SN2
select ACPI_NUMA if ACPI
help
Say Y to compile the kernel to support NUMA (Non-Uniform Memory
Access). This option is for configuring high-end multiprocessor
Expand Down Expand Up @@ -484,15 +483,6 @@ source "net/Kconfig"

source "drivers/Kconfig"

config MSPEC
tristate "Memory special operations driver"
depends on IA64
select IA64_UNCACHED_ALLOCATOR
help
If you have an ia64 and you want to enable memory special
operations support (formerly known as fetchop), say Y here,
otherwise say N.

source "fs/Kconfig"

source "lib/Kconfig"
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/powerpc/boot/wrapper
Original file line number Diff line number Diff line change
Expand Up @@ -179,11 +179,11 @@ if [ -z "$cacheit" ]; then
fi

if [ -n "$initrd" ]; then
addsec $tmp "$initrd" initrd
addsec $tmp "$initrd" $isection
fi

if [ -n "$dtb" ]; then
addsec $tmp "$dtb" dtb
addsec $tmp "$dtb" .kernel:dtb
fi

if [ "$platform" != "miboot" ]; then
Expand Down
5 changes: 5 additions & 0 deletions trunk/arch/powerpc/boot/zImage.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ SECTIONS
__got2_end = .;
}

. = ALIGN(8);
_dtb_start = .;
.kernel:dtb : { *(.kernel:dtb) }
_dtb_end = .;

. = ALIGN(4096);
_vmlinux_start = .;
.kernel:vmlinux.strip : { *(.kernel:vmlinux.strip) }
Expand Down
31 changes: 16 additions & 15 deletions trunk/arch/x86_64/kernel/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -1955,16 +1955,18 @@ void arch_teardown_msi_irq(unsigned int irq)

static void target_ht_irq(unsigned int irq, unsigned int dest, u8 vector)
{
struct ht_irq_msg msg;
fetch_ht_irq_msg(irq, &msg);
u32 low, high;
low = read_ht_irq_low(irq);
high = read_ht_irq_high(irq);

msg.address_lo &= ~(HT_IRQ_LOW_VECTOR_MASK | HT_IRQ_LOW_DEST_ID_MASK);
msg.address_hi &= ~(HT_IRQ_HIGH_DEST_ID_MASK);
low &= ~(HT_IRQ_LOW_VECTOR_MASK | HT_IRQ_LOW_DEST_ID_MASK);
high &= ~(HT_IRQ_HIGH_DEST_ID_MASK);

msg.address_lo |= HT_IRQ_LOW_VECTOR(vector) | HT_IRQ_LOW_DEST_ID(dest);
msg.address_hi |= HT_IRQ_HIGH_DEST_ID(dest);
low |= HT_IRQ_LOW_VECTOR(vector) | HT_IRQ_LOW_DEST_ID(dest);
high |= HT_IRQ_HIGH_DEST_ID(dest);

write_ht_irq_msg(irq, &msg);
write_ht_irq_low(irq, low);
write_ht_irq_high(irq, high);
}

static void set_ht_irq_affinity(unsigned int irq, cpumask_t mask)
Expand All @@ -1985,7 +1987,7 @@ static void set_ht_irq_affinity(unsigned int irq, cpumask_t mask)

dest = cpu_mask_to_apicid(tmp);

target_ht_irq(irq, dest, vector);
target_ht_irq(irq, dest, vector & 0xff);
set_native_irq_info(irq, mask);
}
#endif
Expand All @@ -2008,15 +2010,14 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)

vector = assign_irq_vector(irq, TARGET_CPUS, &tmp);
if (vector >= 0) {
struct ht_irq_msg msg;
u32 low, high;
unsigned dest;

dest = cpu_mask_to_apicid(tmp);

msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest);
high = HT_IRQ_HIGH_DEST_ID(dest);

msg.address_lo =
HT_IRQ_LOW_BASE |
low = HT_IRQ_LOW_BASE |
HT_IRQ_LOW_DEST_ID(dest) |
HT_IRQ_LOW_VECTOR(vector) |
((INT_DEST_MODE == 0) ?
Expand All @@ -2025,10 +2026,10 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
HT_IRQ_LOW_RQEOI_EDGE |
((INT_DELIVERY_MODE != dest_LowestPrio) ?
HT_IRQ_LOW_MT_FIXED :
HT_IRQ_LOW_MT_ARBITRATED) |
HT_IRQ_LOW_IRQ_MASKED;
HT_IRQ_LOW_MT_ARBITRATED);

write_ht_irq_msg(irq, &msg);
write_ht_irq_low(irq, low);
write_ht_irq_high(irq, high);

set_irq_chip_and_handler_name(irq, &ht_irq_chip,
handle_edge_irq, "edge");
Expand Down
8 changes: 8 additions & 0 deletions trunk/drivers/char/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,14 @@ config SGI_MBCS
If you have an SGI Altix with an attached SABrick
say Y or M here, otherwise say N.

config MSPEC
tristate "Memory special operations driver"
depends on IA64
help
If you have an ia64 and you want to enable memory special
operations support (formerly known as fetchop), say Y here,
otherwise say N.

source "drivers/serial/Kconfig"

config UNIX98_PTYS
Expand Down
Loading

0 comments on commit 757b29e

Please sign in to comment.