Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: [MIPS] Fix wrong checksum calculation on 64-bit MIPS [MIPS] VPE loader: Initialize lists before they're actually being used ... [MIPS] Fix reported amount of freed memory - it's in kB not bytes [MIPS] vr41xx: need one more nop with mtc0_tlbw_hazard() [MIPS] SMTC: Fix module build by exporting symbol [MIPS] SMTC: Fix TLB sizing bug for TLB of 64 >= entries [MIPS] Fix APM build [MIPS] There is no __GNUC_MAJOR__
This commit is contained in:
commit
a21b069626
8 changed files with 22 additions and 11 deletions
|
@ -623,7 +623,7 @@ LDFLAGS += -m $(ld-emul)
|
||||||
|
|
||||||
ifdef CONFIG_MIPS
|
ifdef CONFIG_MIPS
|
||||||
CHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \
|
CHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \
|
||||||
egrep -vw '__GNUC_(MAJOR|MINOR|PATCHLEVEL)__' | \
|
egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \
|
||||||
sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/")
|
sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/")
|
||||||
ifdef CONFIG_64BIT
|
ifdef CONFIG_64BIT
|
||||||
CHECKFLAGS += -m64
|
CHECKFLAGS += -m64
|
||||||
|
|
|
@ -122,7 +122,7 @@ unsigned long __init prom_free_prom_memory(void)
|
||||||
addr += PAGE_SIZE;
|
addr += PAGE_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
printk("Freeing unused PROM memory: %ldk freed\n",
|
printk("Freeing unused PROM memory: %ldkb freed\n",
|
||||||
(end - PAGE_SIZE) >> 10);
|
(end - PAGE_SIZE) >> 10);
|
||||||
|
|
||||||
return end - PAGE_SIZE;
|
return end - PAGE_SIZE;
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <linux/cpumask.h>
|
#include <linux/cpumask.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
|
#include <linux/module.h>
|
||||||
|
|
||||||
#include <asm/cpu.h>
|
#include <asm/cpu.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
|
@ -270,9 +271,12 @@ void smtc_configure_tlb(void)
|
||||||
* of their initialization in smtc_cpu_setup().
|
* of their initialization in smtc_cpu_setup().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
tlbsiz = tlbsiz & 0x3f; /* MIPS32 limits TLB indices to 64 */
|
/* MIPS32 limits TLB indices to 64 */
|
||||||
cpu_data[0].tlbsize = tlbsiz;
|
if (tlbsiz > 64)
|
||||||
|
tlbsiz = 64;
|
||||||
|
cpu_data[0].tlbsize = current_cpu_data.tlbsize = tlbsiz;
|
||||||
smtc_status |= SMTC_TLB_SHARED;
|
smtc_status |= SMTC_TLB_SHARED;
|
||||||
|
local_flush_tlb_all();
|
||||||
|
|
||||||
printk("TLB of %d entry pairs shared by %d VPEs\n",
|
printk("TLB of %d entry pairs shared by %d VPEs\n",
|
||||||
tlbsiz, vpes);
|
tlbsiz, vpes);
|
||||||
|
@ -1044,6 +1048,8 @@ void smtc_ipi_replay(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EXPORT_SYMBOL(smtc_ipi_replay);
|
||||||
|
|
||||||
void smtc_idle_loop_hook(void)
|
void smtc_idle_loop_hook(void)
|
||||||
{
|
{
|
||||||
#ifdef SMTC_IDLE_HOOK_DEBUG
|
#ifdef SMTC_IDLE_HOOK_DEBUG
|
||||||
|
|
|
@ -139,13 +139,16 @@ struct tc {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct vpecontrol_ {
|
struct {
|
||||||
/* Virtual processing elements */
|
/* Virtual processing elements */
|
||||||
struct list_head vpe_list;
|
struct list_head vpe_list;
|
||||||
|
|
||||||
/* Thread contexts */
|
/* Thread contexts */
|
||||||
struct list_head tc_list;
|
struct list_head tc_list;
|
||||||
} vpecontrol;
|
} vpecontrol = {
|
||||||
|
.vpe_list = LIST_HEAD_INIT(vpecontrol.vpe_list),
|
||||||
|
.tc_list = LIST_HEAD_INIT(vpecontrol.tc_list)
|
||||||
|
};
|
||||||
|
|
||||||
static void release_progmem(void *ptr);
|
static void release_progmem(void *ptr);
|
||||||
/* static __attribute_used__ void dump_vpe(struct vpe * v); */
|
/* static __attribute_used__ void dump_vpe(struct vpe * v); */
|
||||||
|
@ -1388,8 +1391,6 @@ static int __init vpe_module_init(void)
|
||||||
|
|
||||||
/* dump_mtregs(); */
|
/* dump_mtregs(); */
|
||||||
|
|
||||||
INIT_LIST_HEAD(&vpecontrol.vpe_list);
|
|
||||||
INIT_LIST_HEAD(&vpecontrol.tc_list);
|
|
||||||
|
|
||||||
val = read_c0_mvpconf0();
|
val = read_c0_mvpconf0();
|
||||||
for (i = 0; i < ((val & MVPCONF0_PTC) + 1); i++) {
|
for (i = 0; i < ((val & MVPCONF0_PTC) + 1); i++) {
|
||||||
|
|
|
@ -501,7 +501,8 @@ void free_initmem(void)
|
||||||
|
|
||||||
freed = prom_free_prom_memory();
|
freed = prom_free_prom_memory();
|
||||||
if (freed)
|
if (freed)
|
||||||
printk(KERN_INFO "Freeing firmware memory: %ldk freed\n",freed);
|
printk(KERN_INFO "Freeing firmware memory: %ldkb freed\n",
|
||||||
|
freed >> 10);
|
||||||
|
|
||||||
free_init_pages("unused kernel memory",
|
free_init_pages("unused kernel memory",
|
||||||
__pa_symbol(&__init_begin),
|
__pa_symbol(&__init_begin),
|
||||||
|
|
|
@ -159,7 +159,8 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr,
|
||||||
#endif
|
#endif
|
||||||
" .set pop"
|
" .set pop"
|
||||||
: "=r" (sum)
|
: "=r" (sum)
|
||||||
: "0" (daddr), "r"(saddr),
|
: "0" ((__force unsigned long)daddr),
|
||||||
|
"r" ((__force unsigned long)saddr),
|
||||||
#ifdef __MIPSEL__
|
#ifdef __MIPSEL__
|
||||||
"r" ((proto + len) << 8),
|
"r" ((proto + len) << 8),
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -157,7 +157,7 @@ ASMMACRO(back_to_back_c0_hazard,
|
||||||
* processors.
|
* processors.
|
||||||
*/
|
*/
|
||||||
ASMMACRO(mtc0_tlbw_hazard,
|
ASMMACRO(mtc0_tlbw_hazard,
|
||||||
nop
|
nop; nop
|
||||||
)
|
)
|
||||||
ASMMACRO(tlbw_use_hazard,
|
ASMMACRO(tlbw_use_hazard,
|
||||||
nop; nop; nop
|
nop; nop; nop
|
||||||
|
|
|
@ -118,6 +118,7 @@ register struct thread_info *__current_thread_info __asm__("$28");
|
||||||
#define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */
|
#define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */
|
||||||
#define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */
|
#define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */
|
||||||
#define TIF_MEMDIE 18
|
#define TIF_MEMDIE 18
|
||||||
|
#define TIF_FREEZE 19
|
||||||
#define TIF_SYSCALL_TRACE 31 /* syscall trace active */
|
#define TIF_SYSCALL_TRACE 31 /* syscall trace active */
|
||||||
|
|
||||||
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
|
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
|
||||||
|
@ -129,6 +130,7 @@ register struct thread_info *__current_thread_info __asm__("$28");
|
||||||
#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
|
#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
|
||||||
#define _TIF_USEDFPU (1<<TIF_USEDFPU)
|
#define _TIF_USEDFPU (1<<TIF_USEDFPU)
|
||||||
#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
|
#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
|
||||||
|
#define _TIF_FREEZE (1<<TIF_FREEZE)
|
||||||
|
|
||||||
/* work to do on interrupt/exception return */
|
/* work to do on interrupt/exception return */
|
||||||
#define _TIF_WORK_MASK (0x0000ffef & ~_TIF_SECCOMP)
|
#define _TIF_WORK_MASK (0x0000ffef & ~_TIF_SECCOMP)
|
||||||
|
|
Loading…
Add table
Reference in a new issue