Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7526f27 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'x86-fixes-for-linus' of...

Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip:
  powernow-k8: Fix frequency reporting
  x86: Fix parse_reservetop() build failure on certain configs
  x86: Fix NULL pointer access in irq_force_complete_move() for Xen guests
  x86: Fix 'reservetop=' functionality
parents 67bff7c0 b810e94c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -347,6 +347,7 @@ extern void __iomem *early_ioremap(resource_size_t phys_addr,
extern void __iomem *early_memremap(resource_size_t phys_addr,
				    unsigned long size);
extern void early_iounmap(void __iomem *addr, unsigned long size);
extern void fixup_early_ioremap(void);

#define IO_SPACE_LIMIT 0xffff

+3 −0
Original line number Diff line number Diff line
@@ -2545,6 +2545,9 @@ void irq_force_complete_move(int irq)
	struct irq_desc *desc = irq_to_desc(irq);
	struct irq_cfg *cfg = desc->chip_data;

	if (!cfg)
		return;

	__irq_complete_move(&desc, cfg->vector);
}
#else
+2 −1
Original line number Diff line number Diff line
@@ -929,7 +929,8 @@ static int fill_powernow_table_pstate(struct powernow_k8_data *data,
		powernow_table[i].index = index;

		/* Frequency may be rounded for these */
		if (boot_cpu_data.x86 == 0x10 || boot_cpu_data.x86 == 0x11) {
		if ((boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model < 10)
				 || boot_cpu_data.x86 == 0x11) {
			powernow_table[i].frequency =
				freq_from_fid_did(lo & 0x3f, (lo >> 6) & 7);
		} else
+14 −0
Original line number Diff line number Diff line
@@ -448,6 +448,20 @@ static inline void __init early_clear_fixmap(enum fixed_addresses idx)
static void __iomem *prev_map[FIX_BTMAPS_SLOTS] __initdata;
static unsigned long prev_size[FIX_BTMAPS_SLOTS] __initdata;

void __init fixup_early_ioremap(void)
{
	int i;

	for (i = 0; i < FIX_BTMAPS_SLOTS; i++) {
		if (prev_map[i]) {
			WARN_ON(1);
			break;
		}
	}

	early_ioremap_init();
}

static int __init check_early_ioremap_leak(void)
{
	int count = 0;
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include <asm/e820.h>
#include <asm/tlb.h>
#include <asm/tlbflush.h>
#include <asm/io.h>

unsigned int __VMALLOC_RESERVE = 128 << 20;

@@ -128,6 +129,7 @@ static int __init parse_reservetop(char *arg)

	address = memparse(arg, &arg);
	reserve_top_address(address);
	fixup_early_ioremap();
	return 0;
}
early_param("reservetop", parse_reservetop);