From 32b57ec4afe9d2f49ae429ddc85cdf9275a32981 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Tue, 10 Aug 2010 12:33:20 -0400 Subject: [PATCH] --- yaml --- r: 210159 b: refs/heads/master c: 8807286e569c4f12fa2bc980187f3e2abc606d11 h: refs/heads/master i: 210157: f5c3940d2af2e04b9e87cc356f69ca0b92730f63 210155: c102204b31e813297a9df77f09ab045ad5debce3 210151: 23793bd9de665fab2726bfd2d6b7aa0ac615471a 210143: 4f39a8be3b3a6cb19e7de7a3f28f6d9c69b31dee v: v3 --- [refs] | 2 +- trunk/arch/h8300/include/asm/atomic.h | 15 ++++------- trunk/arch/h8300/include/asm/system.h | 4 +-- trunk/arch/h8300/kernel/sys_h8300.c | 4 +-- trunk/arch/h8300/kernel/traps.c | 2 +- trunk/arch/m68knommu/kernel/vmlinux.lds.S | 2 -- trunk/drivers/gpu/drm/radeon/radeon_clocks.c | 8 ++++++ trunk/drivers/gpu/drm/radeon/radeon_device.c | 28 +++++++------------- trunk/drivers/gpu/drm/radeon/radeon_i2c.c | 2 +- trunk/fs/namespace.c | 23 +--------------- 10 files changed, 29 insertions(+), 61 deletions(-) diff --git a/[refs] b/[refs] index 2c9d02129753..67d272b8fddd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e6ba59bcae6968ee18ef5a237a8020a0ea331ae1 +refs/heads/master: 8807286e569c4f12fa2bc980187f3e2abc606d11 diff --git a/trunk/arch/h8300/include/asm/atomic.h b/trunk/arch/h8300/include/asm/atomic.h index 984221abb66d..e936804b7508 100644 --- a/trunk/arch/h8300/include/asm/atomic.h +++ b/trunk/arch/h8300/include/asm/atomic.h @@ -18,8 +18,7 @@ static __inline__ int atomic_add_return(int i, atomic_t *v) { - unsigned long flags; - int ret; + int ret,flags; local_irq_save(flags); ret = v->counter += i; local_irq_restore(flags); @@ -31,8 +30,7 @@ static __inline__ int atomic_add_return(int i, atomic_t *v) static __inline__ int atomic_sub_return(int i, atomic_t *v) { - unsigned long flags; - int ret; + int ret,flags; local_irq_save(flags); ret = v->counter -= i; local_irq_restore(flags); @@ -44,8 +42,7 @@ static __inline__ int atomic_sub_return(int i, atomic_t *v) static __inline__ int atomic_inc_return(atomic_t *v) { - unsigned long flags; - int ret; + int ret,flags; local_irq_save(flags); v->counter++; ret = v->counter; @@ -67,8 +64,7 @@ static __inline__ int atomic_inc_return(atomic_t *v) static __inline__ int atomic_dec_return(atomic_t *v) { - unsigned long flags; - int ret; + int ret,flags; local_irq_save(flags); --v->counter; ret = v->counter; @@ -80,8 +76,7 @@ static __inline__ int atomic_dec_return(atomic_t *v) static __inline__ int atomic_dec_and_test(atomic_t *v) { - unsigned long flags; - int ret; + int ret,flags; local_irq_save(flags); --v->counter; ret = v->counter; diff --git a/trunk/arch/h8300/include/asm/system.h b/trunk/arch/h8300/include/asm/system.h index 16bf1560ff68..d98d97685f06 100644 --- a/trunk/arch/h8300/include/asm/system.h +++ b/trunk/arch/h8300/include/asm/system.h @@ -3,8 +3,6 @@ #include -struct pt_regs; - /* * switch_to(n) should switch tasks to task ptr, first checking that * ptr isn't the current task, in which case it does nothing. This @@ -157,6 +155,6 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz #define arch_align_stack(x) (x) -extern void die(const char *str, struct pt_regs *fp, unsigned long err); +void die(char *str, struct pt_regs *fp, unsigned long err); #endif /* _H8300_SYSTEM_H */ diff --git a/trunk/arch/h8300/kernel/sys_h8300.c b/trunk/arch/h8300/kernel/sys_h8300.c index aaf5e5a48f93..dc1ac0243b78 100644 --- a/trunk/arch/h8300/kernel/sys_h8300.c +++ b/trunk/arch/h8300/kernel/sys_h8300.c @@ -56,8 +56,8 @@ int kernel_execve(const char *filename, const char *const envp[]) { register long res __asm__("er0"); - register const char *const *_c __asm__("er3") = envp; - register const char *const *_b __asm__("er2") = argv; + register char *const *_c __asm__("er3") = envp; + register char *const *_b __asm__("er2") = argv; register const char * _a __asm__("er1") = filename; __asm__ __volatile__ ("mov.l %1,er0\n\t" "trapa #0\n\t" diff --git a/trunk/arch/h8300/kernel/traps.c b/trunk/arch/h8300/kernel/traps.c index dfa05bd908b6..3c0b66bc669e 100644 --- a/trunk/arch/h8300/kernel/traps.c +++ b/trunk/arch/h8300/kernel/traps.c @@ -96,7 +96,7 @@ static void dump(struct pt_regs *fp) printk("\n\n"); } -void die(const char *str, struct pt_regs *fp, unsigned long err) +void die(char *str, struct pt_regs *fp, unsigned long err) { static int diecount; diff --git a/trunk/arch/m68knommu/kernel/vmlinux.lds.S b/trunk/arch/m68knommu/kernel/vmlinux.lds.S index ef332136f96d..a91b2713451d 100644 --- a/trunk/arch/m68knommu/kernel/vmlinux.lds.S +++ b/trunk/arch/m68knommu/kernel/vmlinux.lds.S @@ -150,8 +150,6 @@ SECTIONS { _sdata = . ; DATA_DATA CACHELINE_ALIGNED_DATA(32) - PAGE_ALIGNED_DATA(PAGE_SIZE) - *(.data..shared_aligned) INIT_TASK_DATA(THREAD_SIZE) _edata = . ; } > DATA diff --git a/trunk/drivers/gpu/drm/radeon/radeon_clocks.c b/trunk/drivers/gpu/drm/radeon/radeon_clocks.c index 14448a740ba6..690d8907135a 100644 --- a/trunk/drivers/gpu/drm/radeon/radeon_clocks.c +++ b/trunk/drivers/gpu/drm/radeon/radeon_clocks.c @@ -327,6 +327,14 @@ void radeon_get_clock_info(struct drm_device *dev) mpll->max_feedback_div = 0xff; mpll->best_vco = 0; + if (!rdev->clock.default_sclk) + rdev->clock.default_sclk = radeon_get_engine_clock(rdev); + if ((!rdev->clock.default_mclk) && rdev->asic->get_memory_clock) + rdev->clock.default_mclk = radeon_get_memory_clock(rdev); + + rdev->pm.current_sclk = rdev->clock.default_sclk; + rdev->pm.current_mclk = rdev->clock.default_mclk; + } /* 10 khz */ diff --git a/trunk/drivers/gpu/drm/radeon/radeon_device.c b/trunk/drivers/gpu/drm/radeon/radeon_device.c index 69b3c2291e92..256d204a6d24 100644 --- a/trunk/drivers/gpu/drm/radeon/radeon_device.c +++ b/trunk/drivers/gpu/drm/radeon/radeon_device.c @@ -293,30 +293,20 @@ bool radeon_card_posted(struct radeon_device *rdev) void radeon_update_bandwidth_info(struct radeon_device *rdev) { fixed20_12 a; - u32 sclk, mclk; + u32 sclk = rdev->pm.current_sclk; + u32 mclk = rdev->pm.current_mclk; - if (rdev->flags & RADEON_IS_IGP) { - sclk = radeon_get_engine_clock(rdev); - mclk = rdev->clock.default_mclk; - - a.full = dfixed_const(100); - rdev->pm.sclk.full = dfixed_const(sclk); - rdev->pm.sclk.full = dfixed_div(rdev->pm.sclk, a); - rdev->pm.mclk.full = dfixed_const(mclk); - rdev->pm.mclk.full = dfixed_div(rdev->pm.mclk, a); + /* sclk/mclk in Mhz */ + a.full = dfixed_const(100); + rdev->pm.sclk.full = dfixed_const(sclk); + rdev->pm.sclk.full = dfixed_div(rdev->pm.sclk, a); + rdev->pm.mclk.full = dfixed_const(mclk); + rdev->pm.mclk.full = dfixed_div(rdev->pm.mclk, a); + if (rdev->flags & RADEON_IS_IGP) { a.full = dfixed_const(16); /* core_bandwidth = sclk(Mhz) * 16 */ rdev->pm.core_bandwidth.full = dfixed_div(rdev->pm.sclk, a); - } else { - sclk = radeon_get_engine_clock(rdev); - mclk = radeon_get_memory_clock(rdev); - - a.full = dfixed_const(100); - rdev->pm.sclk.full = dfixed_const(sclk); - rdev->pm.sclk.full = dfixed_div(rdev->pm.sclk, a); - rdev->pm.mclk.full = dfixed_const(mclk); - rdev->pm.mclk.full = dfixed_div(rdev->pm.mclk, a); } } diff --git a/trunk/drivers/gpu/drm/radeon/radeon_i2c.c b/trunk/drivers/gpu/drm/radeon/radeon_i2c.c index 0416804d8f30..6a13ee38a5b9 100644 --- a/trunk/drivers/gpu/drm/radeon/radeon_i2c.c +++ b/trunk/drivers/gpu/drm/radeon/radeon_i2c.c @@ -213,7 +213,7 @@ static void post_xfer(struct i2c_adapter *i2c_adap) static u32 radeon_get_i2c_prescale(struct radeon_device *rdev) { - u32 sclk = radeon_get_engine_clock(rdev); + u32 sclk = rdev->pm.current_sclk; u32 prescale = 0; u32 nm; u8 n, m, loop; diff --git a/trunk/fs/namespace.c b/trunk/fs/namespace.c index a72eaabfe8f2..de402eb6eafb 100644 --- a/trunk/fs/namespace.c +++ b/trunk/fs/namespace.c @@ -1483,23 +1483,6 @@ static int graft_tree(struct vfsmount *mnt, struct path *path) return err; } -/* - * Sanity check the flags to change_mnt_propagation. - */ - -static int flags_to_propagation_type(int flags) -{ - int type = flags & ~MS_REC; - - /* Fail if any non-propagation flags are set */ - if (type & ~(MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE)) - return 0; - /* Only one propagation flag should be set */ - if (!is_power_of_2(type)) - return 0; - return type; -} - /* * recursively change the type of the mountpoint. */ @@ -1507,7 +1490,7 @@ static int do_change_type(struct path *path, int flag) { struct vfsmount *m, *mnt = path->mnt; int recurse = flag & MS_REC; - int type; + int type = flag & ~MS_REC; int err = 0; if (!capable(CAP_SYS_ADMIN)) @@ -1516,10 +1499,6 @@ static int do_change_type(struct path *path, int flag) if (path->dentry != path->mnt->mnt_root) return -EINVAL; - type = flags_to_propagation_type(flag); - if (!type) - return -EINVAL; - down_write(&namespace_sem); if (type == MS_SHARED) { err = invent_group_ids(mnt, recurse);