Skip to content

Commit

Permalink
Merge remote branch 'airlied/drm-next' into drm-intel-next
Browse files Browse the repository at this point in the history
  • Loading branch information
Eric Anholt committed Dec 1, 2009
2 parents 103a196 + 46557be commit f40d681
Show file tree
Hide file tree
Showing 131 changed files with 1,483 additions and 667 deletions.
2 changes: 1 addition & 1 deletion Documentation/i2c/busses/i2c-piix4
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Supported adapters:
Datasheet: Only available via NDA from ServerWorks
* ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges
Datasheet: Not publicly available
* AMD SB900
* AMD Hudson-2
Datasheet: Not publicly available
* Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge
Datasheet: Publicly available at the SMSC website http://www.smsc.com
Expand Down
389 changes: 201 additions & 188 deletions Documentation/thermal/sysfs-api.txt

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -3665,6 +3665,7 @@ L: netdev@vger.kernel.org
W: http://www.linuxfoundation.org/en/Net
W: http://patchwork.ozlabs.org/project/netdev/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6.git
S: Maintained
F: net/
F: include/net/
Expand Down
4 changes: 2 additions & 2 deletions arch/m32r/boot/compressed/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# linux/arch/sh/boot/compressed/Makefile
# linux/arch/m32r/boot/compressed/Makefile
#
# create a compressed vmlinux image from the original vmlinux
#
Expand Down Expand Up @@ -47,5 +47,5 @@ suffix_$(CONFIG_KERNEL_GZIP) = gz
suffix_$(CONFIG_KERNEL_BZIP2) = bz2
suffix_$(CONFIG_KERNEL_LZMA) = lzma

$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE
$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE
$(call if_changed,ld)
4 changes: 4 additions & 0 deletions arch/powerpc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,10 @@ config ARCH_SPARSEMEM_DEFAULT
config ARCH_POPULATES_NODE_MAP
def_bool y

config SYS_SUPPORTS_HUGETLBFS
def_bool y
depends on PPC_BOOK3S_64

source "mm/Kconfig"

config ARCH_MEMORY_PROBE
Expand Down
15 changes: 14 additions & 1 deletion arch/powerpc/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -777,7 +777,7 @@ int update_persistent_clock(struct timespec now)
return ppc_md.set_rtc_time(&tm);
}

void read_persistent_clock(struct timespec *ts)
static void __read_persistent_clock(struct timespec *ts)
{
struct rtc_time tm;
static int first = 1;
Expand All @@ -800,10 +800,23 @@ void read_persistent_clock(struct timespec *ts)
return;
}
ppc_md.get_rtc_time(&tm);

ts->tv_sec = mktime(tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
tm.tm_hour, tm.tm_min, tm.tm_sec);
}

void read_persistent_clock(struct timespec *ts)
{
__read_persistent_clock(ts);

/* Sanitize it in case real time clock is set below EPOCH */
if (ts->tv_sec < 0) {
ts->tv_sec = 0;
ts->tv_nsec = 0;
}

}

/* clocksource code */
static cycle_t rtc_read(struct clocksource *cs)
{
Expand Down
4 changes: 4 additions & 0 deletions arch/powerpc/kvm/timing.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,11 @@ static inline void kvmppc_set_exit_type(struct kvm_vcpu *vcpu, int type) {}
static inline void kvmppc_account_exit_stat(struct kvm_vcpu *vcpu, int type)
{
/* type has to be known at build time for optimization */

/* The BUILD_BUG_ON below breaks in funny ways, commented out
* for now ... -BenH
BUILD_BUG_ON(__builtin_constant_p(type));
*/
switch (type) {
case EXT_INTR_EXITS:
vcpu->stat.ext_intr_exits++;
Expand Down
4 changes: 2 additions & 2 deletions arch/powerpc/mm/mmu_context_nohash.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
* also clear mm->cpu_vm_mask bits when processes are migrated
*/

#define DEBUG_MAP_CONSISTENCY
#define DEBUG_CLAMP_LAST_CONTEXT 31
//#define DEBUG_MAP_CONSISTENCY
//#define DEBUG_CLAMP_LAST_CONTEXT 31
//#define DEBUG_HARDER

/* We don't use DEBUG because it tends to be compiled in always nowadays
Expand Down
2 changes: 0 additions & 2 deletions arch/powerpc/platforms/pseries/msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -432,8 +432,6 @@ static int rtas_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
/* Read config space back so we can restore after reset */
read_msi_msg(virq, &msg);
entry->msg = msg;

unmask_msi_irq(virq);
}

return 0;
Expand Down
9 changes: 9 additions & 0 deletions arch/powerpc/platforms/pseries/xics.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#include <linux/init.h>
#include <linux/radix-tree.h>
#include <linux/cpu.h>
#include <linux/msi.h>
#include <linux/of.h>

#include <asm/firmware.h>
Expand Down Expand Up @@ -219,6 +220,14 @@ static void xics_unmask_irq(unsigned int virq)

static unsigned int xics_startup(unsigned int virq)
{
/*
* The generic MSI code returns with the interrupt disabled on the
* card, using the MSI mask bits. Firmware doesn't appear to unmask
* at that level, so we do it here by hand.
*/
if (irq_to_desc(virq)->msi_desc)
unmask_msi_irq(virq);

/* unmask it */
xics_unmask_irq(virq);
return 0;
Expand Down
2 changes: 1 addition & 1 deletion arch/sh/include/asm/rwsem.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ struct rw_semaphore {
#endif

#define __RWSEM_INITIALIZER(name) \
{ RWSEM_UNLOCKED_VALUE, SPIN_LOCK_UNLOCKED, \
{ RWSEM_UNLOCKED_VALUE, __SPIN_LOCK_UNLOCKED((name).wait_lock), \
LIST_HEAD_INIT((name).wait_list) \
__RWSEM_DEP_MAP_INIT(name) }

Expand Down
2 changes: 1 addition & 1 deletion arch/sh/kernel/dwarf.c
Original file line number Diff line number Diff line change
Expand Up @@ -555,7 +555,7 @@ struct dwarf_frame * dwarf_unwind_stack(unsigned long pc,
* NOTE: the return address is guaranteed to be setup by the
* time this function makes its first function call.
*/
if (!pc && !prev)
if (!pc || !prev)
pc = (unsigned long)current_text_addr();

#ifdef CONFIG_FUNCTION_GRAPH_TRACER
Expand Down
5 changes: 4 additions & 1 deletion arch/sh/mm/cache-sh4.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,18 @@ static void __uses_jump_to_uncached sh4_flush_icache_range(void *args)

for (v = start; v < end; v += L1_CACHE_BYTES) {
unsigned long icacheaddr;
int j, n;

__ocbwb(v);

icacheaddr = CACHE_IC_ADDRESS_ARRAY | (v &
cpu_data->icache.entry_mask);

/* Clear i-cache line valid-bit */
n = boot_cpu_data.icache.n_aliases;
for (i = 0; i < cpu_data->icache.ways; i++) {
__raw_writel(0, icacheaddr);
for (j = 0; j < n; j++)
__raw_writel(0, icacheaddr + (j * PAGE_SIZE));
icacheaddr += cpu_data->icache.way_incr;
}
}
Expand Down
4 changes: 4 additions & 0 deletions arch/sparc/include/asm/system_64.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \
: : : "memory"); \
} while (0)

/* The kernel always executes in TSO memory model these days,
* and furthermore most sparc64 chips implement more stringent
* memory ordering than required by the specifications.
*/
#define mb() membar_safe("#StoreLoad")
#define rmb() __asm__ __volatile__("":::"memory")
#define wmb() __asm__ __volatile__("":::"memory")
Expand Down
4 changes: 2 additions & 2 deletions arch/sparc/kernel/prom_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len

err = -ENODEV;

mutex_lock(&of_set_property_mutex);
write_lock(&devtree_lock);
prevp = &dp->properties;
while (*prevp) {
Expand All @@ -88,9 +89,7 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len
void *old_val = prop->value;
int ret;

mutex_lock(&of_set_property_mutex);
ret = prom_setprop(dp->node, name, val, len);
mutex_unlock(&of_set_property_mutex);

err = -EINVAL;
if (ret >= 0) {
Expand All @@ -109,6 +108,7 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len
prevp = &(*prevp)->next;
}
write_unlock(&devtree_lock);
mutex_unlock(&of_set_property_mutex);

/* XXX Upate procfs if necessary... */

Expand Down
2 changes: 1 addition & 1 deletion arch/sparc/kernel/visemul.c
Original file line number Diff line number Diff line change
Expand Up @@ -617,7 +617,7 @@ static void pmul(struct pt_regs *regs, unsigned int insn, unsigned int opf)
rs2 = fps_regval(f, RS2(insn));

rd_val = 0;
src2 = (rs2 >> (opf == FMUL8x16AU_OPF) ? 16 : 0);
src2 = rs2 >> (opf == FMUL8x16AU_OPF ? 16 : 0);
for (byte = 0; byte < 4; byte++) {
u16 src1 = (rs1 >> (byte * 8)) & 0x00ff;
u32 prod = src1 * src2;
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/include/asm/desc.h
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ static inline void load_LDT(mm_context_t *pc)

static inline unsigned long get_desc_base(const struct desc_struct *desc)
{
return desc->base0 | ((desc->base1) << 16) | ((desc->base2) << 24);
return (unsigned)(desc->base0 | ((desc->base1) << 16) | ((desc->base2) << 24));
}

static inline void set_desc_base(struct desc_struct *desc, unsigned long base)
Expand Down
4 changes: 2 additions & 2 deletions arch/x86/kvm/x86.c
Original file line number Diff line number Diff line change
Expand Up @@ -1692,7 +1692,7 @@ static int kvm_vcpu_ioctl_x86_setup_mce(struct kvm_vcpu *vcpu,
unsigned bank_num = mcg_cap & 0xff, bank;

r = -EINVAL;
if (!bank_num)
if (!bank_num || bank_num >= KVM_MAX_MCE_BANKS)
goto out;
if (mcg_cap & ~(KVM_MCE_CAP_SUPPORTED | 0xff | 0xff0000))
goto out;
Expand Down Expand Up @@ -4051,7 +4051,7 @@ static int save_guest_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector,
return kvm_write_guest_virt(dtable.base + index*8, seg_desc, sizeof(*seg_desc), vcpu);
}

static u32 get_tss_base_addr(struct kvm_vcpu *vcpu,
static gpa_t get_tss_base_addr(struct kvm_vcpu *vcpu,
struct desc_struct *seg_desc)
{
u32 base_addr = get_desc_base(seg_desc);
Expand Down
4 changes: 2 additions & 2 deletions drivers/acpi/acpica/acconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,9 @@

#define ACPI_MAX_REFERENCE_COUNT 0x1000

/* Size of cached memory mapping for system memory operation region */
/* Default page size for use in mapping memory for operation regions */

#define ACPI_SYSMEM_REGION_WINDOW_SIZE 4096
#define ACPI_DEFAULT_PAGE_SIZE 4096 /* Must be power of 2 */

/* owner_id tracking. 8 entries allows for 255 owner_ids */

Expand Down
35 changes: 25 additions & 10 deletions drivers/acpi/acpica/exregion.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ acpi_ex_system_memory_space_handler(u32 function,
void *logical_addr_ptr = NULL;
struct acpi_mem_space_context *mem_info = region_context;
u32 length;
acpi_size window_size;
acpi_size map_length;
acpi_size page_boundary_map_length;
#ifdef ACPI_MISALIGNMENT_NOT_SUPPORTED
u32 remainder;
#endif
Expand Down Expand Up @@ -144,33 +145,47 @@ acpi_ex_system_memory_space_handler(u32 function,
}

/*
* Don't attempt to map memory beyond the end of the region, and
* constrain the maximum mapping size to something reasonable.
* Attempt to map from the requested address to the end of the region.
* However, we will never map more than one page, nor will we cross
* a page boundary.
*/
window_size = (acpi_size)
map_length = (acpi_size)
((mem_info->address + mem_info->length) - address);

if (window_size > ACPI_SYSMEM_REGION_WINDOW_SIZE) {
window_size = ACPI_SYSMEM_REGION_WINDOW_SIZE;
/*
* If mapping the entire remaining portion of the region will cross
* a page boundary, just map up to the page boundary, do not cross.
* On some systems, crossing a page boundary while mapping regions
* can cause warnings if the pages have different attributes
* due to resource management
*/
page_boundary_map_length =
ACPI_ROUND_UP(address, ACPI_DEFAULT_PAGE_SIZE) - address;

if (!page_boundary_map_length) {
page_boundary_map_length = ACPI_DEFAULT_PAGE_SIZE;
}

if (map_length > page_boundary_map_length) {
map_length = page_boundary_map_length;
}

/* Create a new mapping starting at the address given */

mem_info->mapped_logical_address =
acpi_os_map_memory((acpi_physical_address) address, window_size);
mem_info->mapped_logical_address = acpi_os_map_memory((acpi_physical_address) address, map_length);
if (!mem_info->mapped_logical_address) {
ACPI_ERROR((AE_INFO,
"Could not map memory at %8.8X%8.8X, size %X",
ACPI_FORMAT_NATIVE_UINT(address),
(u32) window_size));
(u32) map_length));
mem_info->mapped_length = 0;
return_ACPI_STATUS(AE_NO_MEMORY);
}

/* Save the physical address and mapping size */

mem_info->mapped_physical_address = address;
mem_info->mapped_length = window_size;
mem_info->mapped_length = map_length;
}

/*
Expand Down
6 changes: 5 additions & 1 deletion drivers/acpi/power_meter.c
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,11 @@ static int set_acpi_trip(struct acpi_power_meter_resource *resource)
return -EINVAL;
}

return data;
/* _PTP returns 0 on success, nonzero otherwise */
if (data)
return -EINVAL;

return 0;
}

static ssize_t set_trip(struct device *dev, struct device_attribute *devattr,
Expand Down
2 changes: 1 addition & 1 deletion drivers/acpi/proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ acpi_system_write_wakeup_device(struct file *file,
struct list_head *node, *next;
char strbuf[5];
char str[5] = "";
int len = count;
unsigned int len = count;
struct acpi_device *found_dev = NULL;

if (len > 4)
Expand Down
2 changes: 1 addition & 1 deletion drivers/acpi/processor_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -770,7 +770,7 @@ static struct notifier_block acpi_cpu_notifier =
.notifier_call = acpi_cpu_soft_notify,
};

static int acpi_processor_add(struct acpi_device *device)
static int __cpuinit acpi_processor_add(struct acpi_device *device)
{
struct acpi_processor *pr = NULL;
int result = 0;
Expand Down
6 changes: 3 additions & 3 deletions drivers/acpi/processor_throttling.c
Original file line number Diff line number Diff line change
Expand Up @@ -1133,15 +1133,15 @@ int acpi_processor_get_throttling_info(struct acpi_processor *pr)
int result = 0;
struct acpi_processor_throttling *pthrottling;

if (!pr)
return -EINVAL;

ACPI_DEBUG_PRINT((ACPI_DB_INFO,
"pblk_address[0x%08x] duty_offset[%d] duty_width[%d]\n",
pr->throttling.address,
pr->throttling.duty_offset,
pr->throttling.duty_width));

if (!pr)
return -EINVAL;

/*
* Evaluate _PTC, _TSS and _TPC
* They must all be present or none of them can be used.
Expand Down
Loading

0 comments on commit f40d681

Please sign in to comment.