Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 41063
b: refs/heads/master
c: 5261d66
h: refs/heads/master
i:
  41061: c677854
  41059: 8fe114a
  41055: 1db7e0d
v: v3
  • Loading branch information
Linus Torvalds committed Nov 23, 2006
1 parent 3dd256d commit 5bd8c03
Show file tree
Hide file tree
Showing 46 changed files with 211 additions and 142 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: 21f37bc3e51fac4f7a226a6d110c4c316af0d22d
refs/heads/master: 5261d661b49e0c133395c88da193457f62db439a
2 changes: 1 addition & 1 deletion trunk/arch/m68knommu/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ int (*mach_kbdrate) (struct kbd_repeat *);
void (*mach_kbd_leds) (unsigned int);
/* machine dependent irq functions */
void (*mach_init_IRQ) (void);
irqreturn_t (*(*mach_default_handler)[]) (int, void *, struct pt_regs *);
irq_handler_t mach_default_handler;
int (*mach_get_irq_list) (struct seq_file *, void *);
void (*mach_process_int) (int irq, struct pt_regs *fp);
void (*mach_trap_init) (void);
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/m68knommu/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs)
update_process_times(user_mode(regs));
#endif
if (current->pid)
profile_tick(CPU_PROFILING, regs);
profile_tick(CPU_PROFILING);

/*
* If we have an externally synchronized Linux clock, then update
Expand Down
17 changes: 8 additions & 9 deletions trunk/arch/m68knommu/platform/5307/ints.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
/*
* This table stores the address info for each vector handler.
*/
irq_handler_t irq_list[SYS_IRQS];
struct irq_entry irq_list[SYS_IRQS];

#define NUM_IRQ_NODES 16
static irq_node_t nodes[NUM_IRQ_NODES];
Expand All @@ -44,7 +44,7 @@ volatile unsigned int num_spurious;
unsigned int local_bh_count[NR_CPUS];
unsigned int local_irq_count[NR_CPUS];

static irqreturn_t default_irq_handler(int irq, void *ptr, struct pt_regs *regs)
static irqreturn_t default_irq_handler(int irq, void *ptr)
{
#if 1
printk(KERN_INFO "%s(%d): default irq handler vec=%d [0x%x]\n",
Expand All @@ -70,7 +70,7 @@ void __init init_IRQ(void)

for (i = 0; i < SYS_IRQS; i++) {
if (mach_default_handler)
irq_list[i].handler = (*mach_default_handler)[i];
irq_list[i].handler = mach_default_handler;
else
irq_list[i].handler = default_irq_handler;
irq_list[i].flags = IRQ_FLG_STD;
Expand Down Expand Up @@ -100,7 +100,7 @@ irq_node_t *new_irq_node(void)

int request_irq(
unsigned int irq,
irqreturn_t (*handler)(int, void *, struct pt_regs *),
irq_handler_t handler,
unsigned long flags,
const char *devname,
void *dev_id)
Expand Down Expand Up @@ -157,7 +157,7 @@ void free_irq(unsigned int irq, void *dev_id)
}

if (mach_default_handler)
irq_list[irq].handler = (*mach_default_handler)[irq];
irq_list[irq].handler = mach_default_handler;
else
irq_list[irq].handler = default_irq_handler;
irq_list[irq].flags = IRQ_FLG_STD;
Expand All @@ -168,8 +168,7 @@ void free_irq(unsigned int irq, void *dev_id)
EXPORT_SYMBOL(free_irq);


int sys_request_irq(unsigned int irq,
irqreturn_t (*handler)(int, void *, struct pt_regs *),
int sys_request_irq(unsigned int irq, irq_handler_t handler,
unsigned long flags, const char *devname, void *dev_id)
{
if (irq > IRQ7) {
Expand Down Expand Up @@ -211,7 +210,7 @@ void sys_free_irq(unsigned int irq, void *dev_id)
printk(KERN_WARNING "%s: Removing probably wrong IRQ %d from %s\n",
__FUNCTION__, irq, irq_list[irq].devname);

irq_list[irq].handler = (*mach_default_handler)[irq];
irq_list[irq].handler = mach_default_handler;
irq_list[irq].flags = 0;
irq_list[irq].dev_id = NULL;
irq_list[irq].devname = NULL;
Expand Down Expand Up @@ -241,7 +240,7 @@ asmlinkage void process_int(unsigned long vec, struct pt_regs *fp)
if (vec >= VEC_INT1 && vec <= VEC_INT7) {
vec -= VEC_SPUR;
kstat_cpu(0).irqs[vec]++;
irq_list[vec].handler(vec, irq_list[vec].dev_id, fp);
irq_list[vec].handler(vec, irq_list[vec].dev_id);
} else {
if (mach_process_int)
mach_process_int(vec, fp);
Expand Down
22 changes: 21 additions & 1 deletion trunk/arch/mips/mm/c-sb1.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include <linux/init.h>
#include <linux/hardirq.h>

#include <asm/asm.h>
#include <asm/bootinfo.h>
Expand Down Expand Up @@ -242,6 +243,25 @@ void sb1_flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsign
__attribute__((alias("local_sb1_flush_cache_page")));
#endif

#ifdef CONFIG_SMP
static void sb1_flush_cache_data_page_ipi(void *info)
{
unsigned long start = (unsigned long)info;

__sb1_writeback_inv_dcache_range(start, start + PAGE_SIZE);
}

static void sb1_flush_cache_data_page(unsigned long addr)
{
if (in_atomic())
__sb1_writeback_inv_dcache_range(addr, addr + PAGE_SIZE);
else
on_each_cpu(sb1_flush_cache_data_page_ipi, (void *) addr, 1, 1);
}
#else
void sb1_flush_cache_data_page(unsigned long)
__attribute__((alias("local_sb1_flush_cache_data_page")));
#endif

/*
* Invalidate all caches on this CPU
Expand Down Expand Up @@ -481,7 +501,7 @@ void sb1_cache_init(void)

flush_cache_sigtramp = sb1_flush_cache_sigtramp;
local_flush_data_cache_page = (void *) sb1_nop;
flush_data_cache_page = (void *) sb1_nop;
flush_data_cache_page = sb1_flush_cache_data_page;

/* Full flush */
__flush_cache_all = sb1___flush_cache_all;
Expand Down
42 changes: 0 additions & 42 deletions trunk/arch/powerpc/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -1014,48 +1014,6 @@ void __init time_init(void)
set_dec(tb_ticks_per_jiffy);
}

#ifdef CONFIG_RTC_CLASS
static int set_rtc_class_time(struct rtc_time *tm)
{
int err;
struct class_device *class_dev =
rtc_class_open(CONFIG_RTC_HCTOSYS_DEVICE);

if (class_dev == NULL)
return -ENODEV;

err = rtc_set_time(class_dev, tm);

rtc_class_close(class_dev);

return 0;
}

static void get_rtc_class_time(struct rtc_time *tm)
{
int err;
struct class_device *class_dev =
rtc_class_open(CONFIG_RTC_HCTOSYS_DEVICE);

if (class_dev == NULL)
return;

err = rtc_read_time(class_dev, tm);

rtc_class_close(class_dev);

return;
}

int __init rtc_class_hookup(void)
{
ppc_md.get_rtc_time = get_rtc_class_time;
ppc_md.set_rtc_time = set_rtc_class_time;

return 0;
}
#endif /* CONFIG_RTC_CLASS */


#define FEBRUARY 2
#define STARTOFTIME 1970
Expand Down
19 changes: 19 additions & 0 deletions trunk/arch/powerpc/platforms/83xx/mpc832x_mds.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <linux/root_dev.h>
#include <linux/initrd.h>

#include <asm/of_device.h>
#include <asm/system.h>
#include <asm/atomic.h>
#include <asm/time.h>
Expand Down Expand Up @@ -136,6 +137,24 @@ static void __init mpc832x_sys_setup_arch(void)
#endif
}

static int __init mpc832x_declare_of_platform_devices(void)
{
struct device_node *np;

for (np = NULL; (np = of_find_compatible_node(np, "network",
"ucc_geth")) != NULL;) {
int ucc_num;
char bus_id[BUS_ID_SIZE];

ucc_num = *((uint *) get_property(np, "device-id", NULL)) - 1;
snprintf(bus_id, BUS_ID_SIZE, "ucc_geth.%u", ucc_num);
of_platform_device_create(np, bus_id, NULL);
}

return 0;
}
device_initcall(mpc832x_declare_of_platform_devices);

void __init mpc832x_sys_init_IRQ(void)
{

Expand Down
4 changes: 0 additions & 4 deletions trunk/arch/powerpc/platforms/83xx/mpc834x_itx.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,6 @@ static int __init mpc834x_itx_probe(void)
return 1;
}

#ifdef CONFIG_RTC_CLASS
late_initcall(rtc_class_hookup);
#endif

define_machine(mpc834x_itx) {
.name = "MPC834x ITX",
.probe = mpc834x_itx_probe,
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/x86_64/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ SECTIONS
}
#endif

. = ALIGN(PAGE_SIZE); /* Align data segment to page size boundary */
/* Data */
.data : AT(ADDR(.data) - LOAD_OFFSET) {
*(.data)
Expand Down
9 changes: 1 addition & 8 deletions trunk/arch/x86_64/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,21 +496,14 @@ int remove_memory(u64 start, u64 size)
}
EXPORT_SYMBOL_GPL(remove_memory);

#ifndef CONFIG_ACPI_NUMA
#if !defined(CONFIG_ACPI_NUMA) && defined(CONFIG_NUMA)
int memory_add_physaddr_to_nid(u64 start)
{
return 0;
}
EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
#endif

#ifndef CONFIG_ACPI_NUMA
int memory_add_physaddr_to_nid(u64 start)
{
return 0;
}
#endif

#endif /* CONFIG_MEMORY_HOTPLUG */

#ifdef CONFIG_MEMORY_HOTPLUG_RESERVE
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/char/agp/generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -1054,7 +1054,7 @@ void *agp_generic_alloc_page(struct agp_bridge_data *bridge)
{
struct page * page;

page = alloc_page(GFP_KERNEL);
page = alloc_page(GFP_KERNEL | GFP_DMA32);
if (page == NULL)
return NULL;

Expand Down
33 changes: 25 additions & 8 deletions trunk/drivers/char/agp/intel-agp.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ static void *i8xx_alloc_pages(void)
{
struct page * page;

page = alloc_pages(GFP_KERNEL, 2);
page = alloc_pages(GFP_KERNEL | GFP_DMA32, 2);
if (page == NULL)
return NULL;

Expand Down Expand Up @@ -387,11 +387,7 @@ static void intel_i830_init_gtt_entries(void)
/* We obtain the size of the GTT, which is also stored (for some
* reason) at the top of stolen memory. Then we add 4KB to that
* for the video BIOS popup, which is also stored in there. */

if (IS_I965)
size = 512 + 4;
else
size = agp_bridge->driver->fetch_size() + 4;
size = agp_bridge->driver->fetch_size() + 4;

if (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82830_HB ||
agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82845G_HB) {
Expand Down Expand Up @@ -805,6 +801,26 @@ static int intel_i915_create_gatt_table(struct agp_bridge_data *bridge)

return 0;
}

/*
* The i965 supports 36-bit physical addresses, but to keep
* the format of the GTT the same, the bits that don't fit
* in a 32-bit word are shifted down to bits 4..7.
*
* Gcc is smart enough to notice that "(addr >> 28) & 0xf0"
* is always zero on 32-bit architectures, so no need to make
* this conditional.
*/
static unsigned long intel_i965_mask_memory(struct agp_bridge_data *bridge,
unsigned long addr, int type)
{
/* Shift high bits down */
addr |= (addr >> 28) & 0xf0;

/* Type checking must be done elsewhere */
return addr | bridge->driver->masks[type].mask;
}

static int intel_i965_fetch_size(void)
{
struct aper_size_info_fixed *values;
Expand Down Expand Up @@ -832,7 +848,8 @@ static int intel_i965_fetch_size(void)

agp_bridge->previous_size = agp_bridge->current_size = (void *)(values + offset);

return values[offset].size;
/* The i965 GTT is always sized as if it had a 512kB aperture size */
return 512;
}

/* The intel i965 automatically initializes the agp aperture during POST.
Expand Down Expand Up @@ -1584,7 +1601,7 @@ static struct agp_bridge_driver intel_i965_driver = {
.fetch_size = intel_i965_fetch_size,
.cleanup = intel_i915_cleanup,
.tlb_flush = intel_i810_tlbflush,
.mask_memory = intel_i810_mask_memory,
.mask_memory = intel_i965_mask_memory,
.masks = intel_i810_masks,
.agp_enable = intel_i810_agp_enable,
.cache_flush = global_cache_flush,
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/char/ftape/zftape/zftape-buffers.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ int zft_vmalloc_once(void *new, size_t size)
peak_memory = used_memory;
}
TRACE_ABORT(0, ft_t_noise,
"allocated buffer @ %p, %d bytes", *(void **)new, size);
"allocated buffer @ %p, %zd bytes", *(void **)new, size);
}
int zft_vmalloc_always(void *new, size_t size)
{
Expand All @@ -101,7 +101,7 @@ void zft_vfree(void *old, size_t size)
if (*(void **)old) {
vfree(*(void **)old);
used_memory -= size;
TRACE(ft_t_noise, "released buffer @ %p, %d bytes",
TRACE(ft_t_noise, "released buffer @ %p, %zd bytes",
*(void **)old, size);
*(void **)old = NULL;
}
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/cpufreq/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ config CPU_FREQ_GOV_USERSPACE

config CPU_FREQ_GOV_ONDEMAND
tristate "'ondemand' cpufreq policy governor"
select CPU_FREQ_TABLE
help
'ondemand' - This driver adds a dynamic cpufreq policy governor.
The governor does a periodic polling and
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/cpufreq/cpufreq.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ static int __init init_cpufreq_transition_notifier_list(void)
srcu_init_notifier_head(&cpufreq_transition_notifier_list);
return 0;
}
core_initcall(init_cpufreq_transition_notifier_list);
pure_initcall(init_cpufreq_transition_notifier_list);

static LIST_HEAD(cpufreq_governor_list);
static DEFINE_MUTEX (cpufreq_governor_mutex);
Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/i2c/busses/i2c-ixp4xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,8 @@ static int ixp4xx_i2c_probe(struct platform_device *plat_dev)
gpio_line_set(gpio->scl_pin, 0);
gpio_line_set(gpio->sda_pin, 0);

if ((err = i2c_bit_add_bus(&drv_data->adapter) != 0)) {
err = i2c_bit_add_bus(&drv_data->adapter);
if (err != 0)
printk(KERN_ERR "ERROR: Could not install %s\n", plat_dev->dev.bus_id);

kfree(drv_data);
Expand Down
7 changes: 4 additions & 3 deletions trunk/drivers/i2c/busses/scx200_acb.c
Original file line number Diff line number Diff line change
Expand Up @@ -494,11 +494,12 @@ static __init int scx200_create_pci(const char *text, struct pci_dev *pdev,
iface->pdev = pdev;
iface->bar = bar;

pci_enable_device_bars(iface->pdev, 1 << iface->bar);
rc = pci_enable_device_bars(iface->pdev, 1 << iface->bar);
if (rc)
goto errout_free;

rc = pci_request_region(iface->pdev, iface->bar, iface->adapter.name);

if (rc != 0) {
if (rc) {
printk(KERN_ERR NAME ": can't allocate PCI BAR %d\n",
iface->bar);
goto errout_free;
Expand Down
Loading

0 comments on commit 5bd8c03

Please sign in to comment.