mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-27 22:51:31 +00:00
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] Remove unused galileo-boars header files [MIPS] Rename SERIAL_PORT_DEFNS for EV64120 [MIPS] Add UART IRQ number for EV64120 [MIPS] Remove excite_flash.c [MIPS] Update i8259 resources. [MIPS] Make unwind_stack() can dig into interrupted context [MIPS] Stacktrace build-fix and improvement [MIPS] QEMU: Add support for little endian mips [MIPS] Remove __flush_icache_page [MIPS] lockdep: update defconfigs [MIPS] lockdep: Add STACKTRACE_SUPPORT and enable LOCKDEP_SUPPORT [MIPS] lockdep: fix TRACE_IRQFLAGS_SUPPORT
This commit is contained in:
commit
12dce6263d
72 changed files with 359 additions and 625 deletions
|
@ -537,6 +537,7 @@ config QEMU
|
||||||
select SYS_HAS_CPU_MIPS32_R1
|
select SYS_HAS_CPU_MIPS32_R1
|
||||||
select SYS_SUPPORTS_32BIT_KERNEL
|
select SYS_SUPPORTS_32BIT_KERNEL
|
||||||
select SYS_SUPPORTS_BIG_ENDIAN
|
select SYS_SUPPORTS_BIG_ENDIAN
|
||||||
|
select SYS_SUPPORTS_LITTLE_ENDIAN
|
||||||
select ARCH_SPARSEMEM_ENABLE
|
select ARCH_SPARSEMEM_ENABLE
|
||||||
help
|
help
|
||||||
Qemu is a software emulator which among other architectures also
|
Qemu is a software emulator which among other architectures also
|
||||||
|
@ -1841,6 +1842,14 @@ config RWSEM_GENERIC_SPINLOCK
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config LOCKDEP_SUPPORT
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
|
config STACKTRACE_SUPPORT
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
source "init/Kconfig"
|
source "init/Kconfig"
|
||||||
|
|
||||||
menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
|
menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
|
||||||
|
|
|
@ -1,294 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2005 by Basler Vision Technologies AG
|
|
||||||
* Author: Thies Moeller <thies.moeller@baslerweb.com>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/types.h>
|
|
||||||
#include <linux/init.h>
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/string.h>
|
|
||||||
#include <linux/ioport.h>
|
|
||||||
#include <linux/device.h>
|
|
||||||
#include <linux/delay.h>
|
|
||||||
#include <linux/err.h>
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
|
|
||||||
#include <excite.h>
|
|
||||||
|
|
||||||
#include <asm/io.h>
|
|
||||||
|
|
||||||
#include <linux/mtd/mtd.h>
|
|
||||||
#include <linux/mtd/nand.h>
|
|
||||||
#include <linux/mtd/nand_ecc.h>
|
|
||||||
#include <linux/mtd/partitions.h>
|
|
||||||
#include <asm/rm9k-ocd.h> // for ocd_write
|
|
||||||
#include <linux/workqueue.h> // for queue
|
|
||||||
|
|
||||||
#include "excite_nandflash.h"
|
|
||||||
#include "nandflash.h"
|
|
||||||
|
|
||||||
#define PFX "excite flashtest: "
|
|
||||||
typedef void __iomem *io_reg_t;
|
|
||||||
|
|
||||||
#define io_readb(__a__) __raw_readb((__a__))
|
|
||||||
#define io_writeb(__v__, __a__) __raw_writeb((__v__), (__a__))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static inline const struct resource *excite_nandflash_get_resource(
|
|
||||||
struct platform_device *d, unsigned long flags, const char *basename)
|
|
||||||
{
|
|
||||||
const char fmt[] = "%s_%u";
|
|
||||||
char buf[80];
|
|
||||||
|
|
||||||
if (unlikely(snprintf(buf, sizeof buf, fmt, basename, d->id) >= sizeof buf))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
return platform_get_resource_byname(d, flags, buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline io_reg_t
|
|
||||||
excite_nandflash_map_regs(struct platform_device *d, const char *basename)
|
|
||||||
{
|
|
||||||
void *result = NULL;
|
|
||||||
const struct resource *const r =
|
|
||||||
excite_nandflash_get_resource(d, IORESOURCE_MEM, basename);
|
|
||||||
if (r)
|
|
||||||
result = ioremap_nocache(r->start, r->end + 1 - r->start);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* controller and mtd information */
|
|
||||||
|
|
||||||
struct excite_nandflash_drvdata {
|
|
||||||
struct mtd_info board_mtd;
|
|
||||||
struct nand_chip board_chip;
|
|
||||||
io_reg_t regs;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* command and control functions */
|
|
||||||
static void excite_nandflash_hwcontrol(struct mtd_info *mtd, int cmd)
|
|
||||||
{
|
|
||||||
struct nand_chip *this = mtd->priv;
|
|
||||||
io_reg_t regs = container_of(mtd,struct excite_nandflash_drvdata,board_mtd)->regs;
|
|
||||||
|
|
||||||
switch (cmd) {
|
|
||||||
/* Select the command latch */
|
|
||||||
case NAND_CTL_SETCLE: this->IO_ADDR_W = regs + EXCITE_NANDFLASH_CMD;
|
|
||||||
break;
|
|
||||||
/* Deselect the command latch */
|
|
||||||
case NAND_CTL_CLRCLE: this->IO_ADDR_W = regs + EXCITE_NANDFLASH_DATA;
|
|
||||||
break;
|
|
||||||
/* Select the address latch */
|
|
||||||
case NAND_CTL_SETALE: this->IO_ADDR_W = regs + EXCITE_NANDFLASH_ADDR;
|
|
||||||
break;
|
|
||||||
/* Deselect the address latch */
|
|
||||||
case NAND_CTL_CLRALE: this->IO_ADDR_W = regs + EXCITE_NANDFLASH_DATA;
|
|
||||||
break;
|
|
||||||
/* Select the chip -- not used */
|
|
||||||
case NAND_CTL_SETNCE:
|
|
||||||
break;
|
|
||||||
/* Deselect the chip -- not used */
|
|
||||||
case NAND_CTL_CLRNCE:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
this->IO_ADDR_R = this->IO_ADDR_W;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* excite_nandflash_devready()
|
|
||||||
*
|
|
||||||
* returns 0 if the nand is busy, 1 if it is ready
|
|
||||||
*/
|
|
||||||
static int excite_nandflash_devready(struct mtd_info *mtd)
|
|
||||||
{
|
|
||||||
struct excite_nandflash_drvdata *drvdata =
|
|
||||||
container_of(mtd, struct excite_nandflash_drvdata, board_mtd);
|
|
||||||
|
|
||||||
return io_readb(drvdata->regs + EXCITE_NANDFLASH_STATUS);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* device management functions */
|
|
||||||
|
|
||||||
/* excite_nandflash_remove
|
|
||||||
*
|
|
||||||
* called by device layer to remove the driver
|
|
||||||
* the binding to the mtd and all allocated
|
|
||||||
* resources are released
|
|
||||||
*/
|
|
||||||
static int excite_nandflash_remove(struct device *dev)
|
|
||||||
{
|
|
||||||
struct excite_nandflash_drvdata *this = dev_get_drvdata(dev);
|
|
||||||
|
|
||||||
pr_info(PFX "remove");
|
|
||||||
|
|
||||||
dev_set_drvdata(dev, NULL);
|
|
||||||
|
|
||||||
if (this == NULL) {
|
|
||||||
pr_debug(PFX "call remove without private data!!");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* free the common resources */
|
|
||||||
if (this->regs != NULL) {
|
|
||||||
iounmap(this->regs);
|
|
||||||
this->regs = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
kfree(this);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int elapsed;
|
|
||||||
|
|
||||||
void my_workqueue_handler(void *arg)
|
|
||||||
{
|
|
||||||
elapsed = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
DECLARE_WORK(sigElapsed, my_workqueue_handler, 0);
|
|
||||||
|
|
||||||
|
|
||||||
/* excite_nandflash_probe
|
|
||||||
*
|
|
||||||
* called by device layer when it finds a device matching
|
|
||||||
* one our driver can handled. This code checks to see if
|
|
||||||
* it can allocate all necessary resources then calls the
|
|
||||||
* nand layer to look for devices
|
|
||||||
*/
|
|
||||||
static int excite_nandflash_probe(struct device *dev)
|
|
||||||
{
|
|
||||||
struct platform_device *pdev = to_platform_device(dev);
|
|
||||||
|
|
||||||
struct excite_nandflash_drvdata *drvdata; /* private driver data */
|
|
||||||
struct nand_chip *board_chip; /* private flash chip data */
|
|
||||||
struct mtd_info *board_mtd; /* mtd info for this board */
|
|
||||||
|
|
||||||
int err = 0;
|
|
||||||
int count = 0;
|
|
||||||
struct timeval tv,endtv;
|
|
||||||
unsigned int dt;
|
|
||||||
|
|
||||||
pr_info(PFX "probe dev: (%p)\n", dev);
|
|
||||||
|
|
||||||
pr_info(PFX "adjust LB timing\n");
|
|
||||||
ocd_writel(0x00000330, LDP2);
|
|
||||||
|
|
||||||
drvdata = kmalloc(sizeof(*drvdata), GFP_KERNEL);
|
|
||||||
if (unlikely(!drvdata)) {
|
|
||||||
printk(KERN_ERR PFX "no memory for drvdata\n");
|
|
||||||
err = -ENOMEM;
|
|
||||||
goto mem_error;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialize structures */
|
|
||||||
memset(drvdata, 0, sizeof(*drvdata));
|
|
||||||
|
|
||||||
/* bind private data into driver */
|
|
||||||
dev_set_drvdata(dev, drvdata);
|
|
||||||
|
|
||||||
/* allocate and map the resource */
|
|
||||||
drvdata->regs =
|
|
||||||
excite_nandflash_map_regs(pdev, EXCITE_NANDFLASH_RESOURCE_REGS);
|
|
||||||
|
|
||||||
if (unlikely(!drvdata->regs)) {
|
|
||||||
printk(KERN_ERR PFX "cannot reserve register region\n");
|
|
||||||
err = -ENXIO;
|
|
||||||
goto io_error;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* initialise our chip */
|
|
||||||
board_chip = &drvdata->board_chip;
|
|
||||||
|
|
||||||
board_chip->IO_ADDR_R = drvdata->regs + EXCITE_NANDFLASH_DATA;
|
|
||||||
board_chip->IO_ADDR_W = drvdata->regs + EXCITE_NANDFLASH_DATA;
|
|
||||||
|
|
||||||
board_chip->hwcontrol = excite_nandflash_hwcontrol;
|
|
||||||
board_chip->dev_ready = excite_nandflash_devready;
|
|
||||||
|
|
||||||
board_chip->chip_delay = 25;
|
|
||||||
#if 0
|
|
||||||
/* TODO: speedup the initial scan */
|
|
||||||
board_chip->options = NAND_USE_FLASH_BBT;
|
|
||||||
#endif
|
|
||||||
board_chip->eccmode = NAND_ECC_SOFT;
|
|
||||||
|
|
||||||
/* link chip to mtd */
|
|
||||||
board_mtd = &drvdata->board_mtd;
|
|
||||||
board_mtd->priv = board_chip;
|
|
||||||
|
|
||||||
|
|
||||||
pr_info(PFX "FlashTest\n");
|
|
||||||
elapsed = 0;
|
|
||||||
/* schedule_delayed_work(&sigElapsed, 1*HZ);
|
|
||||||
while (!elapsed) {
|
|
||||||
io_readb(drvdata->regs + EXCITE_NANDFLASH_STATUS);
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
pr_info(PFX "reads in 1 sec --> %d\n",count);
|
|
||||||
*/
|
|
||||||
do_gettimeofday(&tv);
|
|
||||||
for (count = 0 ; count < 1000000; count ++) {
|
|
||||||
io_readb(drvdata->regs + EXCITE_NANDFLASH_STATUS);
|
|
||||||
}
|
|
||||||
do_gettimeofday(&endtv);
|
|
||||||
dt = (endtv.tv_sec - tv.tv_sec) * 1000000 + endtv.tv_usec - tv.tv_usec;
|
|
||||||
pr_info(PFX "%8d us timeval\n",dt);
|
|
||||||
pr_info(PFX "EndFlashTest\n");
|
|
||||||
|
|
||||||
/* return with error to unload everything
|
|
||||||
*/
|
|
||||||
io_error:
|
|
||||||
iounmap(drvdata->regs);
|
|
||||||
|
|
||||||
mem_error:
|
|
||||||
kfree(drvdata);
|
|
||||||
|
|
||||||
if (err == 0)
|
|
||||||
err = -EINVAL;
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct device_driver excite_nandflash_driver = {
|
|
||||||
.name = "excite_nand",
|
|
||||||
.bus = &platform_bus_type,
|
|
||||||
.probe = excite_nandflash_probe,
|
|
||||||
.remove = excite_nandflash_remove,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int __init excite_nandflash_init(void)
|
|
||||||
{
|
|
||||||
pr_info(PFX "register Driver (Rev: $Revision:$)\n");
|
|
||||||
return driver_register(&excite_nandflash_driver);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void __exit excite_nandflash_exit(void)
|
|
||||||
{
|
|
||||||
driver_unregister(&excite_nandflash_driver);
|
|
||||||
pr_info(PFX "Driver unregistered");
|
|
||||||
}
|
|
||||||
|
|
||||||
module_init(excite_nandflash_init);
|
|
||||||
module_exit(excite_nandflash_exit);
|
|
||||||
|
|
||||||
MODULE_AUTHOR("Thies Moeller <thies.moeller@baslerweb.com>");
|
|
||||||
MODULE_DESCRIPTION("Basler eXcite NAND-Flash driver");
|
|
||||||
MODULE_LICENSE("GPL");
|
|
|
@ -161,6 +161,8 @@ CONFIG_HZ=100
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1304,6 +1306,7 @@ CONFIG_NLS_UTF8=m
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -167,6 +167,8 @@ CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
# CONFIG_PREEMPT_BKL is not set
|
# CONFIG_PREEMPT_BKL is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -904,6 +906,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
CONFIG_PRINTK_TIME=y
|
CONFIG_PRINTK_TIME=y
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -149,6 +149,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -891,6 +893,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -146,6 +146,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -889,6 +891,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -147,6 +147,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1006,6 +1008,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -147,6 +147,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1006,6 +1008,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -147,6 +147,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1087,6 +1089,7 @@ CONFIG_NLS_UTF8=m
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -149,6 +149,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1290,6 +1292,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -148,6 +148,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1111,6 +1113,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -146,6 +146,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -852,6 +854,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -147,6 +147,8 @@ CONFIG_HZ=128
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -828,6 +830,7 @@ CONFIG_ULTRIX_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -147,6 +147,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -147,6 +147,8 @@ CONFIG_HZ=1000
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
CONFIG_PREEMPT=y
|
CONFIG_PREEMPT=y
|
||||||
CONFIG_PREEMPT_BKL=y
|
CONFIG_PREEMPT_BKL=y
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1180,6 +1182,7 @@ CONFIG_NLS_UTF8=m
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -148,6 +148,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -842,6 +844,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -149,6 +149,8 @@ CONFIG_HZ=1000
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
CONFIG_PREEMPT=y
|
CONFIG_PREEMPT=y
|
||||||
CONFIG_PREEMPT_BKL=y
|
CONFIG_PREEMPT_BKL=y
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1184,6 +1186,7 @@ CONFIG_NLS_ISO8859_1=m
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -153,6 +153,8 @@ CONFIG_HZ=1000
|
||||||
# CONFIG_PREEMPT_NONE is not set
|
# CONFIG_PREEMPT_NONE is not set
|
||||||
CONFIG_PREEMPT_VOLUNTARY=y
|
CONFIG_PREEMPT_VOLUNTARY=y
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1147,6 +1149,7 @@ CONFIG_NLS_UTF8=m
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -162,6 +162,8 @@ CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
CONFIG_PREEMPT_BKL=y
|
CONFIG_PREEMPT_BKL=y
|
||||||
# CONFIG_MIPS_INSANE_LARGE is not set
|
# CONFIG_MIPS_INSANE_LARGE is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -980,6 +982,7 @@ CONFIG_SGI_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -153,6 +153,8 @@ CONFIG_HZ=1000
|
||||||
# CONFIG_PREEMPT_NONE is not set
|
# CONFIG_PREEMPT_NONE is not set
|
||||||
CONFIG_PREEMPT_VOLUNTARY=y
|
CONFIG_PREEMPT_VOLUNTARY=y
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -922,6 +924,7 @@ CONFIG_SGI_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -147,6 +147,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -900,6 +902,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -144,6 +144,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -856,6 +858,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -153,6 +153,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -775,6 +777,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -143,6 +143,8 @@ CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
CONFIG_RTC_DS1742=y
|
CONFIG_RTC_DS1742=y
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -872,6 +874,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -151,6 +151,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -970,6 +972,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -170,6 +170,8 @@ CONFIG_HZ=100
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1341,6 +1343,7 @@ CONFIG_NLS_UTF8=m
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -148,6 +148,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -799,6 +801,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -148,6 +148,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -153,6 +153,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1091,6 +1093,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -150,6 +150,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -839,6 +841,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -154,6 +154,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -788,6 +790,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -153,6 +153,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -842,6 +844,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -149,6 +149,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1000,6 +1002,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -148,6 +148,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1106,6 +1108,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -148,6 +148,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1098,6 +1100,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -153,6 +153,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -876,6 +878,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -153,6 +153,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1057,6 +1059,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -145,6 +145,8 @@ CONFIG_HZ=100
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -733,6 +735,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -155,6 +155,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1335,6 +1337,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -158,6 +158,8 @@ CONFIG_HZ=1000
|
||||||
# CONFIG_PREEMPT_NONE is not set
|
# CONFIG_PREEMPT_NONE is not set
|
||||||
CONFIG_PREEMPT_VOLUNTARY=y
|
CONFIG_PREEMPT_VOLUNTARY=y
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1584,6 +1586,7 @@ CONFIG_NLS_UTF8=m
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -171,6 +171,8 @@ CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
CONFIG_PREEMPT_BKL=y
|
CONFIG_PREEMPT_BKL=y
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -873,6 +875,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -151,6 +151,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -581,6 +583,7 @@ CONFIG_PARTITION_ADVANCED=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -151,6 +151,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1059,6 +1061,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -151,6 +151,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -968,6 +970,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -151,6 +151,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1146,6 +1148,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -147,6 +147,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -155,6 +155,8 @@ CONFIG_HZ=1000
|
||||||
CONFIG_PREEMPT_NONE=y
|
CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -829,6 +831,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -152,6 +152,8 @@ CONFIG_PREEMPT_NONE=y
|
||||||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
CONFIG_PREEMPT_BKL=y
|
CONFIG_PREEMPT_BKL=y
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -760,6 +762,7 @@ CONFIG_MSDOS_PARTITION=y
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -153,6 +153,8 @@ CONFIG_HZ=1000
|
||||||
# CONFIG_PREEMPT_NONE is not set
|
# CONFIG_PREEMPT_NONE is not set
|
||||||
CONFIG_PREEMPT_VOLUNTARY=y
|
CONFIG_PREEMPT_VOLUNTARY=y
|
||||||
# CONFIG_PREEMPT is not set
|
# CONFIG_PREEMPT is not set
|
||||||
|
CONFIG_LOCKDEP_SUPPORT=y
|
||||||
|
CONFIG_STACKTRACE_SUPPORT=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1147,6 +1149,7 @@ CONFIG_NLS_UTF8=m
|
||||||
#
|
#
|
||||||
# Kernel hacking
|
# Kernel hacking
|
||||||
#
|
#
|
||||||
|
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||||
# CONFIG_PRINTK_TIME is not set
|
# CONFIG_PRINTK_TIME is not set
|
||||||
# CONFIG_MAGIC_SYSRQ is not set
|
# CONFIG_MAGIC_SYSRQ is not set
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
|
|
|
@ -11,6 +11,7 @@ obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \
|
||||||
binfmt_irix-objs := irixelf.o irixinv.o irixioctl.o irixsig.o \
|
binfmt_irix-objs := irixelf.o irixinv.o irixioctl.o irixsig.o \
|
||||||
irix5sys.o sysirix.o
|
irix5sys.o sysirix.o
|
||||||
|
|
||||||
|
obj-$(CONFIG_STACKTRACE) += stacktrace.o
|
||||||
obj-$(CONFIG_MODULES) += mips_ksyms.o module.o
|
obj-$(CONFIG_MODULES) += mips_ksyms.o module.o
|
||||||
|
|
||||||
obj-$(CONFIG_APM) += apm.o
|
obj-$(CONFIG_APM) += apm.o
|
||||||
|
|
|
@ -220,8 +220,8 @@ NESTED(except_vec_vi_handler, 0, sp)
|
||||||
CLI
|
CLI
|
||||||
TRACE_IRQS_OFF
|
TRACE_IRQS_OFF
|
||||||
move a0, sp
|
move a0, sp
|
||||||
jalr v0
|
PTR_LA ra, ret_from_irq
|
||||||
j ret_from_irq
|
jr v0
|
||||||
END(except_vec_vi_handler)
|
END(except_vec_vi_handler)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -349,8 +349,8 @@ NESTED(nmi_handler, PT_SIZE, sp)
|
||||||
.set at
|
.set at
|
||||||
__BUILD_\verbose \exception
|
__BUILD_\verbose \exception
|
||||||
move a0, sp
|
move a0, sp
|
||||||
jal do_\handler
|
PTR_LA ra, ret_from_exception
|
||||||
j ret_from_exception
|
j do_\handler
|
||||||
END(handle_\exception)
|
END(handle_\exception)
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
|
|
@ -302,11 +302,11 @@ static struct irqaction irq2 = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource pic1_io_resource = {
|
static struct resource pic1_io_resource = {
|
||||||
.name = "pic1", .start = 0x20, .end = 0x3f, .flags = IORESOURCE_BUSY
|
.name = "pic1", .start = 0x20, .end = 0x21, .flags = IORESOURCE_BUSY
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource pic2_io_resource = {
|
static struct resource pic2_io_resource = {
|
||||||
.name = "pic2", .start = 0xa0, .end = 0xbf, .flags = IORESOURCE_BUSY
|
.name = "pic2", .start = 0xa0, .end = 0xa1, .flags = IORESOURCE_BUSY
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
#include <asm/elf.h>
|
#include <asm/elf.h>
|
||||||
#include <asm/isadep.h>
|
#include <asm/isadep.h>
|
||||||
#include <asm/inst.h>
|
#include <asm/inst.h>
|
||||||
|
#include <asm/stacktrace.h>
|
||||||
#ifdef CONFIG_MIPS_MT_SMTC
|
#ifdef CONFIG_MIPS_MT_SMTC
|
||||||
#include <asm/mipsmtregs.h>
|
#include <asm/mipsmtregs.h>
|
||||||
extern void smtc_idle_loop_hook(void);
|
extern void smtc_idle_loop_hook(void);
|
||||||
|
@ -398,7 +399,7 @@ unsigned long thread_saved_pc(struct task_struct *tsk)
|
||||||
#ifdef CONFIG_KALLSYMS
|
#ifdef CONFIG_KALLSYMS
|
||||||
/* used by show_backtrace() */
|
/* used by show_backtrace() */
|
||||||
unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
|
unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
|
||||||
unsigned long pc, unsigned long ra)
|
unsigned long pc, unsigned long *ra)
|
||||||
{
|
{
|
||||||
unsigned long stack_page;
|
unsigned long stack_page;
|
||||||
struct mips_frame_info info;
|
struct mips_frame_info info;
|
||||||
|
@ -406,18 +407,42 @@ unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
|
||||||
char namebuf[KSYM_NAME_LEN + 1];
|
char namebuf[KSYM_NAME_LEN + 1];
|
||||||
unsigned long size, ofs;
|
unsigned long size, ofs;
|
||||||
int leaf;
|
int leaf;
|
||||||
|
extern void ret_from_irq(void);
|
||||||
|
extern void ret_from_exception(void);
|
||||||
|
|
||||||
stack_page = (unsigned long)task_stack_page(task);
|
stack_page = (unsigned long)task_stack_page(task);
|
||||||
if (!stack_page)
|
if (!stack_page)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If we reached the bottom of interrupt context,
|
||||||
|
* return saved pc in pt_regs.
|
||||||
|
*/
|
||||||
|
if (pc == (unsigned long)ret_from_irq ||
|
||||||
|
pc == (unsigned long)ret_from_exception) {
|
||||||
|
struct pt_regs *regs;
|
||||||
|
if (*sp >= stack_page &&
|
||||||
|
*sp + sizeof(*regs) <= stack_page + THREAD_SIZE - 32) {
|
||||||
|
regs = (struct pt_regs *)*sp;
|
||||||
|
pc = regs->cp0_epc;
|
||||||
|
if (__kernel_text_address(pc)) {
|
||||||
|
*sp = regs->regs[29];
|
||||||
|
*ra = regs->regs[31];
|
||||||
|
return pc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (!kallsyms_lookup(pc, &size, &ofs, &modname, namebuf))
|
if (!kallsyms_lookup(pc, &size, &ofs, &modname, namebuf))
|
||||||
return 0;
|
return 0;
|
||||||
/*
|
/*
|
||||||
* Return ra if an exception occured at the first instruction
|
* Return ra if an exception occured at the first instruction
|
||||||
*/
|
*/
|
||||||
if (unlikely(ofs == 0))
|
if (unlikely(ofs == 0)) {
|
||||||
return ra;
|
pc = *ra;
|
||||||
|
*ra = 0;
|
||||||
|
return pc;
|
||||||
|
}
|
||||||
|
|
||||||
info.func = (void *)(pc - ofs);
|
info.func = (void *)(pc - ofs);
|
||||||
info.func_size = ofs; /* analyze from start to ofs */
|
info.func_size = ofs; /* analyze from start to ofs */
|
||||||
|
@ -436,11 +461,12 @@ unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
|
||||||
* one. In that cases avoid to return always the
|
* one. In that cases avoid to return always the
|
||||||
* same value.
|
* same value.
|
||||||
*/
|
*/
|
||||||
pc = pc != ra ? ra : 0;
|
pc = pc != *ra ? *ra : 0;
|
||||||
else
|
else
|
||||||
pc = ((unsigned long *)(*sp))[info.pc_offset];
|
pc = ((unsigned long *)(*sp))[info.pc_offset];
|
||||||
|
|
||||||
*sp += info.frame_size;
|
*sp += info.frame_size;
|
||||||
|
*ra = 0;
|
||||||
return __kernel_text_address(pc) ? pc : 0;
|
return __kernel_text_address(pc) ? pc : 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -453,6 +479,7 @@ unsigned long get_wchan(struct task_struct *task)
|
||||||
unsigned long pc = 0;
|
unsigned long pc = 0;
|
||||||
#ifdef CONFIG_KALLSYMS
|
#ifdef CONFIG_KALLSYMS
|
||||||
unsigned long sp;
|
unsigned long sp;
|
||||||
|
unsigned long ra = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!task || task == current || task->state == TASK_RUNNING)
|
if (!task || task == current || task->state == TASK_RUNNING)
|
||||||
|
@ -466,7 +493,7 @@ unsigned long get_wchan(struct task_struct *task)
|
||||||
sp = task->thread.reg29 + schedule_mfi.frame_size;
|
sp = task->thread.reg29 + schedule_mfi.frame_size;
|
||||||
|
|
||||||
while (in_sched_functions(pc))
|
while (in_sched_functions(pc))
|
||||||
pc = unwind_stack(task, &sp, pc, 0);
|
pc = unwind_stack(task, &sp, pc, &ra);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
|
@ -28,18 +28,7 @@
|
||||||
NESTED(handle_sys, PT_SIZE, sp)
|
NESTED(handle_sys, PT_SIZE, sp)
|
||||||
.set noat
|
.set noat
|
||||||
SAVE_SOME
|
SAVE_SOME
|
||||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
TRACE_IRQS_ON_RELOAD
|
||||||
TRACE_IRQS_ON
|
|
||||||
#ifdef CONFIG_64BIT
|
|
||||||
LONG_L $8, PT_R8(sp)
|
|
||||||
LONG_L $9, PT_R9(sp)
|
|
||||||
#endif
|
|
||||||
LONG_L $7, PT_R7(sp)
|
|
||||||
LONG_L $6, PT_R6(sp)
|
|
||||||
LONG_L $5, PT_R5(sp)
|
|
||||||
LONG_L $4, PT_R4(sp)
|
|
||||||
LONG_L $2, PT_R2(sp)
|
|
||||||
#endif
|
|
||||||
STI
|
STI
|
||||||
.set at
|
.set at
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ NESTED(handle_sys64, PT_SIZE, sp)
|
||||||
*/
|
*/
|
||||||
.set noat
|
.set noat
|
||||||
SAVE_SOME
|
SAVE_SOME
|
||||||
TRACE_IRQS_ON
|
TRACE_IRQS_ON_RELOAD
|
||||||
STI
|
STI
|
||||||
.set at
|
.set at
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -33,7 +33,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)
|
||||||
#ifndef CONFIG_MIPS32_O32
|
#ifndef CONFIG_MIPS32_O32
|
||||||
.set noat
|
.set noat
|
||||||
SAVE_SOME
|
SAVE_SOME
|
||||||
TRACE_IRQS_ON
|
TRACE_IRQS_ON_RELOAD
|
||||||
STI
|
STI
|
||||||
.set at
|
.set at
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
NESTED(handle_sys, PT_SIZE, sp)
|
NESTED(handle_sys, PT_SIZE, sp)
|
||||||
.set noat
|
.set noat
|
||||||
SAVE_SOME
|
SAVE_SOME
|
||||||
TRACE_IRQS_ON
|
TRACE_IRQS_ON_RELOAD
|
||||||
STI
|
STI
|
||||||
.set at
|
.set at
|
||||||
ld t1, PT_EPC(sp) # skip syscall on return
|
ld t1, PT_EPC(sp) # skip syscall on return
|
||||||
|
|
85
arch/mips/kernel/stacktrace.c
Normal file
85
arch/mips/kernel/stacktrace.c
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
/*
|
||||||
|
* arch/mips/kernel/stacktrace.c
|
||||||
|
*
|
||||||
|
* Stack trace management functions
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006 Atsushi Nemoto <anemo@mba.ocn.ne.jp>
|
||||||
|
*/
|
||||||
|
#include <linux/sched.h>
|
||||||
|
#include <linux/stacktrace.h>
|
||||||
|
#include <asm/stacktrace.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Save stack-backtrace addresses into a stack_trace buffer:
|
||||||
|
*/
|
||||||
|
static void save_raw_context_stack(struct stack_trace *trace,
|
||||||
|
unsigned long reg29)
|
||||||
|
{
|
||||||
|
unsigned long *sp = (unsigned long *)reg29;
|
||||||
|
unsigned long addr;
|
||||||
|
|
||||||
|
while (!kstack_end(sp)) {
|
||||||
|
addr = *sp++;
|
||||||
|
if (__kernel_text_address(addr)) {
|
||||||
|
if (trace->skip > 0)
|
||||||
|
trace->skip--;
|
||||||
|
else
|
||||||
|
trace->entries[trace->nr_entries++] = addr;
|
||||||
|
if (trace->nr_entries >= trace->max_entries)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void save_context_stack(struct stack_trace *trace,
|
||||||
|
struct task_struct *task, struct pt_regs *regs)
|
||||||
|
{
|
||||||
|
unsigned long sp = regs->regs[29];
|
||||||
|
#ifdef CONFIG_KALLSYMS
|
||||||
|
unsigned long ra = regs->regs[31];
|
||||||
|
unsigned long pc = regs->cp0_epc;
|
||||||
|
|
||||||
|
if (raw_show_trace || !__kernel_text_address(pc)) {
|
||||||
|
unsigned long stack_page =
|
||||||
|
(unsigned long)task_stack_page(task);
|
||||||
|
if (stack_page && sp >= stack_page &&
|
||||||
|
sp <= stack_page + THREAD_SIZE - 32)
|
||||||
|
save_raw_context_stack(trace, sp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
do {
|
||||||
|
if (trace->skip > 0)
|
||||||
|
trace->skip--;
|
||||||
|
else
|
||||||
|
trace->entries[trace->nr_entries++] = pc;
|
||||||
|
if (trace->nr_entries >= trace->max_entries)
|
||||||
|
break;
|
||||||
|
pc = unwind_stack(task, &sp, pc, &ra);
|
||||||
|
} while (pc);
|
||||||
|
#else
|
||||||
|
save_raw_context_stack(sp);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Save stack-backtrace addresses into a stack_trace buffer.
|
||||||
|
*/
|
||||||
|
void save_stack_trace(struct stack_trace *trace, struct task_struct *task)
|
||||||
|
{
|
||||||
|
struct pt_regs dummyregs;
|
||||||
|
struct pt_regs *regs = &dummyregs;
|
||||||
|
|
||||||
|
WARN_ON(trace->nr_entries || !trace->max_entries);
|
||||||
|
|
||||||
|
if (task && task != current) {
|
||||||
|
regs->regs[29] = task->thread.reg29;
|
||||||
|
regs->regs[31] = 0;
|
||||||
|
regs->cp0_epc = task->thread.reg31;
|
||||||
|
} else {
|
||||||
|
if (!task)
|
||||||
|
task = current;
|
||||||
|
prepare_frametrace(regs);
|
||||||
|
}
|
||||||
|
|
||||||
|
save_context_stack(trace, task, regs);
|
||||||
|
}
|
|
@ -41,6 +41,7 @@
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
#include <asm/watch.h>
|
#include <asm/watch.h>
|
||||||
#include <asm/types.h>
|
#include <asm/types.h>
|
||||||
|
#include <asm/stacktrace.h>
|
||||||
|
|
||||||
extern asmlinkage void handle_int(void);
|
extern asmlinkage void handle_int(void);
|
||||||
extern asmlinkage void handle_tlbm(void);
|
extern asmlinkage void handle_tlbm(void);
|
||||||
|
@ -92,16 +93,14 @@ static void show_raw_backtrace(unsigned long reg29)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_KALLSYMS
|
#ifdef CONFIG_KALLSYMS
|
||||||
static int raw_show_trace;
|
int raw_show_trace;
|
||||||
static int __init set_raw_show_trace(char *str)
|
static int __init set_raw_show_trace(char *str)
|
||||||
{
|
{
|
||||||
raw_show_trace = 1;
|
raw_show_trace = 1;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
__setup("raw_show_trace", set_raw_show_trace);
|
__setup("raw_show_trace", set_raw_show_trace);
|
||||||
|
#endif
|
||||||
extern unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
|
|
||||||
unsigned long pc, unsigned long ra);
|
|
||||||
|
|
||||||
static void show_backtrace(struct task_struct *task, struct pt_regs *regs)
|
static void show_backtrace(struct task_struct *task, struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
|
@ -116,14 +115,10 @@ static void show_backtrace(struct task_struct *task, struct pt_regs *regs)
|
||||||
printk("Call Trace:\n");
|
printk("Call Trace:\n");
|
||||||
do {
|
do {
|
||||||
print_ip_sym(pc);
|
print_ip_sym(pc);
|
||||||
pc = unwind_stack(task, &sp, pc, ra);
|
pc = unwind_stack(task, &sp, pc, &ra);
|
||||||
ra = 0;
|
|
||||||
} while (pc);
|
} while (pc);
|
||||||
printk("\n");
|
printk("\n");
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
#define show_backtrace(task, r) show_raw_backtrace((r)->regs[29]);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This routine abuses get_user()/put_user() to reference pointers
|
* This routine abuses get_user()/put_user() to reference pointers
|
||||||
|
@ -158,28 +153,6 @@ static void show_stacktrace(struct task_struct *task, struct pt_regs *regs)
|
||||||
show_backtrace(task, regs);
|
show_backtrace(task, regs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static __always_inline void prepare_frametrace(struct pt_regs *regs)
|
|
||||||
{
|
|
||||||
__asm__ __volatile__(
|
|
||||||
".set push\n\t"
|
|
||||||
".set noat\n\t"
|
|
||||||
#ifdef CONFIG_64BIT
|
|
||||||
"1: dla $1, 1b\n\t"
|
|
||||||
"sd $1, %0\n\t"
|
|
||||||
"sd $29, %1\n\t"
|
|
||||||
"sd $31, %2\n\t"
|
|
||||||
#else
|
|
||||||
"1: la $1, 1b\n\t"
|
|
||||||
"sw $1, %0\n\t"
|
|
||||||
"sw $29, %1\n\t"
|
|
||||||
"sw $31, %2\n\t"
|
|
||||||
#endif
|
|
||||||
".set pop\n\t"
|
|
||||||
: "=m" (regs->cp0_epc),
|
|
||||||
"=m" (regs->regs[29]), "=m" (regs->regs[31])
|
|
||||||
: : "memory");
|
|
||||||
}
|
|
||||||
|
|
||||||
void show_stack(struct task_struct *task, unsigned long *sp)
|
void show_stack(struct task_struct *task, unsigned long *sp)
|
||||||
{
|
{
|
||||||
struct pt_regs regs;
|
struct pt_regs regs;
|
||||||
|
@ -206,11 +179,6 @@ void dump_stack(void)
|
||||||
{
|
{
|
||||||
struct pt_regs regs;
|
struct pt_regs regs;
|
||||||
|
|
||||||
/*
|
|
||||||
* Remove any garbage that may be in regs (specially func
|
|
||||||
* addresses) to avoid show_raw_backtrace() to report them
|
|
||||||
*/
|
|
||||||
memset(®s, 0, sizeof(regs));
|
|
||||||
prepare_frametrace(®s);
|
prepare_frametrace(®s);
|
||||||
show_backtrace(current, ®s);
|
show_backtrace(current, ®s);
|
||||||
}
|
}
|
||||||
|
|
|
@ -268,26 +268,6 @@ static void r3k_flush_data_cache_page(unsigned long addr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static void r3k_flush_icache_page(struct vm_area_struct *vma, struct page *page)
|
|
||||||
{
|
|
||||||
struct mm_struct *mm = vma->vm_mm;
|
|
||||||
unsigned long physpage;
|
|
||||||
|
|
||||||
if (cpu_context(smp_processor_id(), mm) == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!(vma->vm_flags & VM_EXEC))
|
|
||||||
return;
|
|
||||||
|
|
||||||
#ifdef DEBUG_CACHE
|
|
||||||
printk("cpage[%d,%08lx]", cpu_context(smp_processor_id(), mm), page);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
physpage = (unsigned long) page_address(page);
|
|
||||||
if (physpage)
|
|
||||||
r3k_flush_icache_range(physpage, physpage + PAGE_SIZE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void r3k_flush_cache_sigtramp(unsigned long addr)
|
static void r3k_flush_cache_sigtramp(unsigned long addr)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
@ -335,7 +315,6 @@ void __init r3k_cache_init(void)
|
||||||
flush_cache_mm = r3k_flush_cache_mm;
|
flush_cache_mm = r3k_flush_cache_mm;
|
||||||
flush_cache_range = r3k_flush_cache_range;
|
flush_cache_range = r3k_flush_cache_range;
|
||||||
flush_cache_page = r3k_flush_cache_page;
|
flush_cache_page = r3k_flush_cache_page;
|
||||||
__flush_icache_page = r3k_flush_icache_page;
|
|
||||||
flush_icache_range = r3k_flush_icache_range;
|
flush_icache_range = r3k_flush_icache_range;
|
||||||
|
|
||||||
flush_cache_sigtramp = r3k_flush_cache_sigtramp;
|
flush_cache_sigtramp = r3k_flush_cache_sigtramp;
|
||||||
|
|
|
@ -551,82 +551,6 @@ static void r4k_flush_icache_range(unsigned long start, unsigned long end)
|
||||||
instruction_hazard();
|
instruction_hazard();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Ok, this seriously sucks. We use them to flush a user page but don't
|
|
||||||
* know the virtual address, so we have to blast away the whole icache
|
|
||||||
* which is significantly more expensive than the real thing. Otoh we at
|
|
||||||
* least know the kernel address of the page so we can flush it
|
|
||||||
* selectivly.
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct flush_icache_page_args {
|
|
||||||
struct vm_area_struct *vma;
|
|
||||||
struct page *page;
|
|
||||||
};
|
|
||||||
|
|
||||||
static inline void local_r4k_flush_icache_page(void *args)
|
|
||||||
{
|
|
||||||
struct flush_icache_page_args *fip_args = args;
|
|
||||||
struct vm_area_struct *vma = fip_args->vma;
|
|
||||||
struct page *page = fip_args->page;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Tricky ... Because we don't know the virtual address we've got the
|
|
||||||
* choice of either invalidating the entire primary and secondary
|
|
||||||
* caches or invalidating the secondary caches also. With the subset
|
|
||||||
* enforcment on R4000SC, R4400SC, R10000 and R12000 invalidating the
|
|
||||||
* secondary cache will result in any entries in the primary caches
|
|
||||||
* also getting invalidated which hopefully is a bit more economical.
|
|
||||||
*/
|
|
||||||
if (cpu_has_inclusive_pcaches) {
|
|
||||||
unsigned long addr = (unsigned long) page_address(page);
|
|
||||||
|
|
||||||
r4k_blast_scache_page(addr);
|
|
||||||
ClearPageDcacheDirty(page);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!cpu_has_ic_fills_f_dc) {
|
|
||||||
unsigned long addr = (unsigned long) page_address(page);
|
|
||||||
r4k_blast_dcache_page(addr);
|
|
||||||
if (!cpu_icache_snoops_remote_store)
|
|
||||||
r4k_blast_scache_page(addr);
|
|
||||||
ClearPageDcacheDirty(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We're not sure of the virtual address(es) involved here, so
|
|
||||||
* we have to flush the entire I-cache.
|
|
||||||
*/
|
|
||||||
if (cpu_has_vtag_icache && vma->vm_mm == current->active_mm) {
|
|
||||||
int cpu = smp_processor_id();
|
|
||||||
|
|
||||||
if (cpu_context(cpu, vma->vm_mm) != 0)
|
|
||||||
drop_mmu_context(vma->vm_mm, cpu);
|
|
||||||
} else
|
|
||||||
r4k_blast_icache();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void r4k_flush_icache_page(struct vm_area_struct *vma,
|
|
||||||
struct page *page)
|
|
||||||
{
|
|
||||||
struct flush_icache_page_args args;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If there's no context yet, or the page isn't executable, no I-cache
|
|
||||||
* flush is needed.
|
|
||||||
*/
|
|
||||||
if (!(vma->vm_flags & VM_EXEC))
|
|
||||||
return;
|
|
||||||
|
|
||||||
args.vma = vma;
|
|
||||||
args.page = page;
|
|
||||||
|
|
||||||
r4k_on_each_cpu(local_r4k_flush_icache_page, &args, 1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_DMA_NONCOHERENT
|
#ifdef CONFIG_DMA_NONCOHERENT
|
||||||
|
|
||||||
static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size)
|
static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size)
|
||||||
|
@ -1291,7 +1215,6 @@ void __init r4k_cache_init(void)
|
||||||
__flush_cache_all = r4k___flush_cache_all;
|
__flush_cache_all = r4k___flush_cache_all;
|
||||||
flush_cache_mm = r4k_flush_cache_mm;
|
flush_cache_mm = r4k_flush_cache_mm;
|
||||||
flush_cache_page = r4k_flush_cache_page;
|
flush_cache_page = r4k_flush_cache_page;
|
||||||
__flush_icache_page = r4k_flush_icache_page;
|
|
||||||
flush_cache_range = r4k_flush_cache_range;
|
flush_cache_range = r4k_flush_cache_range;
|
||||||
|
|
||||||
flush_cache_sigtramp = r4k_flush_cache_sigtramp;
|
flush_cache_sigtramp = r4k_flush_cache_sigtramp;
|
||||||
|
|
|
@ -306,66 +306,6 @@ void sb1_flush_icache_range(unsigned long start, unsigned long end)
|
||||||
__attribute__((alias("local_sb1_flush_icache_range")));
|
__attribute__((alias("local_sb1_flush_icache_range")));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* Flush the icache for a given physical page. Need to writeback the
|
|
||||||
* dcache first, then invalidate the icache. If the page isn't
|
|
||||||
* executable, nothing is required.
|
|
||||||
*/
|
|
||||||
static void local_sb1_flush_icache_page(struct vm_area_struct *vma,
|
|
||||||
struct page *page)
|
|
||||||
{
|
|
||||||
unsigned long start;
|
|
||||||
int cpu = smp_processor_id();
|
|
||||||
|
|
||||||
#ifndef CONFIG_SMP
|
|
||||||
if (!(vma->vm_flags & VM_EXEC))
|
|
||||||
return;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Need to writeback any dirty data for that page, we have the PA */
|
|
||||||
start = (unsigned long)(page-mem_map) << PAGE_SHIFT;
|
|
||||||
__sb1_writeback_inv_dcache_phys_range(start, start + PAGE_SIZE);
|
|
||||||
/*
|
|
||||||
* If there's a context, bump the ASID (cheaper than a flush,
|
|
||||||
* since we don't know VAs!)
|
|
||||||
*/
|
|
||||||
if (vma->vm_mm == current->active_mm) {
|
|
||||||
if (cpu_context(cpu, vma->vm_mm) != 0)
|
|
||||||
drop_mmu_context(vma->vm_mm, cpu);
|
|
||||||
} else
|
|
||||||
__sb1_flush_icache_range(start, start + PAGE_SIZE);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
|
||||||
struct flush_icache_page_args {
|
|
||||||
struct vm_area_struct *vma;
|
|
||||||
struct page *page;
|
|
||||||
};
|
|
||||||
|
|
||||||
static void sb1_flush_icache_page_ipi(void *info)
|
|
||||||
{
|
|
||||||
struct flush_icache_page_args *args = info;
|
|
||||||
local_sb1_flush_icache_page(args->vma, args->page);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Dirty dcache could be on another CPU, so do the IPIs */
|
|
||||||
static void sb1_flush_icache_page(struct vm_area_struct *vma,
|
|
||||||
struct page *page)
|
|
||||||
{
|
|
||||||
struct flush_icache_page_args args;
|
|
||||||
|
|
||||||
if (!(vma->vm_flags & VM_EXEC))
|
|
||||||
return;
|
|
||||||
args.vma = vma;
|
|
||||||
args.page = page;
|
|
||||||
on_each_cpu(sb1_flush_icache_page_ipi, (void *) &args, 1, 1);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
void sb1_flush_icache_page(struct vm_area_struct *vma, struct page *page)
|
|
||||||
__attribute__((alias("local_sb1_flush_icache_page")));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A signal trampoline must fit into a single cacheline.
|
* A signal trampoline must fit into a single cacheline.
|
||||||
*/
|
*/
|
||||||
|
@ -526,7 +466,6 @@ void sb1_cache_init(void)
|
||||||
|
|
||||||
/* These routines are for Icache coherence with the Dcache */
|
/* These routines are for Icache coherence with the Dcache */
|
||||||
flush_icache_range = sb1_flush_icache_range;
|
flush_icache_range = sb1_flush_icache_range;
|
||||||
__flush_icache_page = sb1_flush_icache_page;
|
|
||||||
flush_icache_all = __sb1_flush_icache_all; /* local only */
|
flush_icache_all = __sb1_flush_icache_all; /* local only */
|
||||||
|
|
||||||
/* This implies an Icache flush too, so can't be nop'ed */
|
/* This implies an Icache flush too, so can't be nop'ed */
|
||||||
|
|
|
@ -248,33 +248,6 @@ static void tx39_flush_icache_range(unsigned long start, unsigned long end)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Ok, this seriously sucks. We use them to flush a user page but don't
|
|
||||||
* know the virtual address, so we have to blast away the whole icache
|
|
||||||
* which is significantly more expensive than the real thing. Otoh we at
|
|
||||||
* least know the kernel address of the page so we can flush it
|
|
||||||
* selectivly.
|
|
||||||
*/
|
|
||||||
static void tx39_flush_icache_page(struct vm_area_struct *vma, struct page *page)
|
|
||||||
{
|
|
||||||
unsigned long addr;
|
|
||||||
/*
|
|
||||||
* If there's no context yet, or the page isn't executable, no icache
|
|
||||||
* flush is needed.
|
|
||||||
*/
|
|
||||||
if (!(vma->vm_flags & VM_EXEC))
|
|
||||||
return;
|
|
||||||
|
|
||||||
addr = (unsigned long) page_address(page);
|
|
||||||
tx39_blast_dcache_page(addr);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We're not sure of the virtual address(es) involved here, so
|
|
||||||
* we have to flush the entire I-cache.
|
|
||||||
*/
|
|
||||||
tx39_blast_icache();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void tx39_dma_cache_wback_inv(unsigned long addr, unsigned long size)
|
static void tx39_dma_cache_wback_inv(unsigned long addr, unsigned long size)
|
||||||
{
|
{
|
||||||
unsigned long end;
|
unsigned long end;
|
||||||
|
@ -382,7 +355,6 @@ void __init tx39_cache_init(void)
|
||||||
flush_cache_mm = (void *) tx39h_flush_icache_all;
|
flush_cache_mm = (void *) tx39h_flush_icache_all;
|
||||||
flush_cache_range = (void *) tx39h_flush_icache_all;
|
flush_cache_range = (void *) tx39h_flush_icache_all;
|
||||||
flush_cache_page = (void *) tx39h_flush_icache_all;
|
flush_cache_page = (void *) tx39h_flush_icache_all;
|
||||||
__flush_icache_page = (void *) tx39h_flush_icache_all;
|
|
||||||
flush_icache_range = (void *) tx39h_flush_icache_all;
|
flush_icache_range = (void *) tx39h_flush_icache_all;
|
||||||
|
|
||||||
flush_cache_sigtramp = (void *) tx39h_flush_icache_all;
|
flush_cache_sigtramp = (void *) tx39h_flush_icache_all;
|
||||||
|
@ -408,7 +380,6 @@ void __init tx39_cache_init(void)
|
||||||
flush_cache_mm = tx39_flush_cache_mm;
|
flush_cache_mm = tx39_flush_cache_mm;
|
||||||
flush_cache_range = tx39_flush_cache_range;
|
flush_cache_range = tx39_flush_cache_range;
|
||||||
flush_cache_page = tx39_flush_cache_page;
|
flush_cache_page = tx39_flush_cache_page;
|
||||||
__flush_icache_page = tx39_flush_icache_page;
|
|
||||||
flush_icache_range = tx39_flush_icache_range;
|
flush_icache_range = tx39_flush_icache_range;
|
||||||
|
|
||||||
flush_cache_sigtramp = tx39_flush_cache_sigtramp;
|
flush_cache_sigtramp = tx39_flush_cache_sigtramp;
|
||||||
|
|
|
@ -25,7 +25,6 @@ void (*flush_cache_range)(struct vm_area_struct *vma, unsigned long start,
|
||||||
void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page,
|
void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page,
|
||||||
unsigned long pfn);
|
unsigned long pfn);
|
||||||
void (*flush_icache_range)(unsigned long start, unsigned long end);
|
void (*flush_icache_range)(unsigned long start, unsigned long end);
|
||||||
void (*__flush_icache_page)(struct vm_area_struct *vma, struct page *page);
|
|
||||||
|
|
||||||
/* MIPS specific cache operations */
|
/* MIPS specific cache operations */
|
||||||
void (*flush_cache_sigtramp)(unsigned long addr);
|
void (*flush_cache_sigtramp)(unsigned long addr);
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
move a0, sp
|
move a0, sp
|
||||||
REG_S a2, PT_BVADDR(sp)
|
REG_S a2, PT_BVADDR(sp)
|
||||||
li a1, \write
|
li a1, \write
|
||||||
jal do_page_fault
|
PTR_LA ra, ret_from_exception
|
||||||
j ret_from_exception
|
j do_page_fault
|
||||||
END(tlb_do_page_fault_\write)
|
END(tlb_do_page_fault_\write)
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
|
|
@ -46,8 +46,6 @@ static inline void flush_dcache_page(struct page *page)
|
||||||
#define flush_dcache_mmap_lock(mapping) do { } while (0)
|
#define flush_dcache_mmap_lock(mapping) do { } while (0)
|
||||||
#define flush_dcache_mmap_unlock(mapping) do { } while (0)
|
#define flush_dcache_mmap_unlock(mapping) do { } while (0)
|
||||||
|
|
||||||
extern void (*__flush_icache_page)(struct vm_area_struct *vma,
|
|
||||||
struct page *page);
|
|
||||||
static inline void flush_icache_page(struct vm_area_struct *vma,
|
static inline void flush_icache_page(struct vm_area_struct *vma,
|
||||||
struct page *page)
|
struct page *page)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#ifndef _MIPS_EV96100_H
|
|
||||||
#define _MIPS_EV96100_H
|
|
||||||
|
|
||||||
#include <asm/addrspace.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* GT64120 config space base address
|
|
||||||
*/
|
|
||||||
#define GT64120_BASE (KSEG1ADDR(0x14000000))
|
|
||||||
#define MIPS_GT_BASE GT64120_BASE
|
|
||||||
|
|
||||||
/*
|
|
||||||
* PCI Bus allocation
|
|
||||||
*/
|
|
||||||
#define GT_PCI_MEM_BASE 0x12000000UL
|
|
||||||
#define GT_PCI_MEM_SIZE 0x02000000UL
|
|
||||||
#define GT_PCI_IO_BASE 0x10000000UL
|
|
||||||
#define GT_PCI_IO_SIZE 0x02000000UL
|
|
||||||
#define GT_ISA_IO_BASE PCI_IO_BASE
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Duart I/O ports.
|
|
||||||
*/
|
|
||||||
#define EV96100_COM1_BASE_ADDR (0xBD000000 + 0x20)
|
|
||||||
#define EV96100_COM2_BASE_ADDR (0xBD000000 + 0x00)
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* EV96100 interrupt controller register base.
|
|
||||||
*/
|
|
||||||
#define EV96100_ICTRL_REGS_BASE (KSEG1ADDR(0x1f000000))
|
|
||||||
|
|
||||||
/*
|
|
||||||
* EV96100 UART register base.
|
|
||||||
*/
|
|
||||||
#define EV96100_UART0_REGS_BASE EV96100_COM1_BASE_ADDR
|
|
||||||
#define EV96100_UART1_REGS_BASE EV96100_COM2_BASE_ADDR
|
|
||||||
#define EV96100_BASE_BAUD ( 3686400 / 16 )
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Because of an error/peculiarity in the Galileo chip, we need to swap the
|
|
||||||
* bytes when running bigendian.
|
|
||||||
*/
|
|
||||||
#define __GT_READ(ofs) \
|
|
||||||
(*(volatile u32 *)(GT64120_BASE+(ofs)))
|
|
||||||
#define __GT_WRITE(ofs, data) \
|
|
||||||
do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
|
|
||||||
#define GT_READ(ofs) le32_to_cpu(__GT_READ(ofs))
|
|
||||||
#define GT_WRITE(ofs, data) __GT_WRITE(ofs, cpu_to_le32(data))
|
|
||||||
|
|
||||||
#endif /* !(_MIPS_EV96100_H) */
|
|
|
@ -1,12 +0,0 @@
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#ifndef _MIPS_EV96100INT_H
|
|
||||||
#define _MIPS_EV96100INT_H
|
|
||||||
|
|
||||||
#define EV96100INT_UART_0 6 /* IP 6 */
|
|
||||||
#define EV96100INT_TIMER 7 /* IP 7 */
|
|
||||||
|
|
||||||
extern void ev96100int_init(void);
|
|
||||||
|
|
||||||
#endif /* !(_MIPS_EV96100_H) */
|
|
|
@ -213,12 +213,37 @@ static inline int raw_irqs_disabled_flags(unsigned long flags)
|
||||||
* Do the CPU's IRQ-state tracing from assembly code.
|
* Do the CPU's IRQ-state tracing from assembly code.
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
#ifdef CONFIG_TRACE_IRQFLAGS
|
||||||
|
/* Reload some registers clobbered by trace_hardirqs_on */
|
||||||
|
#ifdef CONFIG_64BIT
|
||||||
|
# define TRACE_IRQS_RELOAD_REGS \
|
||||||
|
LONG_L $11, PT_R11(sp); \
|
||||||
|
LONG_L $10, PT_R10(sp); \
|
||||||
|
LONG_L $9, PT_R9(sp); \
|
||||||
|
LONG_L $8, PT_R8(sp); \
|
||||||
|
LONG_L $7, PT_R7(sp); \
|
||||||
|
LONG_L $6, PT_R6(sp); \
|
||||||
|
LONG_L $5, PT_R5(sp); \
|
||||||
|
LONG_L $4, PT_R4(sp); \
|
||||||
|
LONG_L $2, PT_R2(sp)
|
||||||
|
#else
|
||||||
|
# define TRACE_IRQS_RELOAD_REGS \
|
||||||
|
LONG_L $7, PT_R7(sp); \
|
||||||
|
LONG_L $6, PT_R6(sp); \
|
||||||
|
LONG_L $5, PT_R5(sp); \
|
||||||
|
LONG_L $4, PT_R4(sp); \
|
||||||
|
LONG_L $2, PT_R2(sp)
|
||||||
|
#endif
|
||||||
# define TRACE_IRQS_ON \
|
# define TRACE_IRQS_ON \
|
||||||
|
CLI; /* make sure trace_hardirqs_on() is called in kernel level */ \
|
||||||
jal trace_hardirqs_on
|
jal trace_hardirqs_on
|
||||||
|
# define TRACE_IRQS_ON_RELOAD \
|
||||||
|
TRACE_IRQS_ON; \
|
||||||
|
TRACE_IRQS_RELOAD_REGS
|
||||||
# define TRACE_IRQS_OFF \
|
# define TRACE_IRQS_OFF \
|
||||||
jal trace_hardirqs_off
|
jal trace_hardirqs_off
|
||||||
#else
|
#else
|
||||||
# define TRACE_IRQS_ON
|
# define TRACE_IRQS_ON
|
||||||
|
# define TRACE_IRQS_ON_RELOAD
|
||||||
# define TRACE_IRQS_OFF
|
# define TRACE_IRQS_OFF
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@ extern unsigned long gt64120_base;
|
||||||
#define EV64120_UART0_REGS_BASE (KSEG1ADDR(EV64120_COM1_BASE_ADDR))
|
#define EV64120_UART0_REGS_BASE (KSEG1ADDR(EV64120_COM1_BASE_ADDR))
|
||||||
#define EV64120_UART1_REGS_BASE (KSEG1ADDR(EV64120_COM2_BASE_ADDR))
|
#define EV64120_UART1_REGS_BASE (KSEG1ADDR(EV64120_COM2_BASE_ADDR))
|
||||||
#define EV64120_BASE_BAUD ( 3686400 / 16 )
|
#define EV64120_BASE_BAUD ( 3686400 / 16 )
|
||||||
|
#define EV64120_UART_IRQ 6
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PCI interrupts will come in on either the INTA or INTD interrups lines,
|
* PCI interrupts will come in on either the INTA or INTD interrups lines,
|
||||||
|
|
|
@ -55,19 +55,18 @@
|
||||||
* Galileo EV64120 evaluation board
|
* Galileo EV64120 evaluation board
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_MIPS_EV64120
|
#ifdef CONFIG_MIPS_EV64120
|
||||||
#include <asm/galileo-boards/ev96100.h>
|
#include <mach-gt64120.h>
|
||||||
#include <asm/galileo-boards/ev96100int.h>
|
#define EV64120_SERIAL_PORT_DEFNS \
|
||||||
#define EV96100_SERIAL_PORT_DEFNS \
|
{ .baud_base = EV64120_BASE_BAUD, .irq = EV64120_UART_IRQ, \
|
||||||
{ .baud_base = EV96100_BASE_BAUD, .irq = EV96100INT_UART_0, \
|
|
||||||
.flags = STD_COM_FLAGS, \
|
.flags = STD_COM_FLAGS, \
|
||||||
.iomem_base = EV96100_UART0_REGS_BASE, .iomem_reg_shift = 2, \
|
.iomem_base = EV64120_UART0_REGS_BASE, .iomem_reg_shift = 2, \
|
||||||
.io_type = SERIAL_IO_MEM }, \
|
.io_type = SERIAL_IO_MEM }, \
|
||||||
{ .baud_base = EV96100_BASE_BAUD, .irq = EV96100INT_UART_0, \
|
{ .baud_base = EV64120_BASE_BAUD, .irq = EV64120_UART_IRQ, \
|
||||||
.flags = STD_COM_FLAGS, \
|
.flags = STD_COM_FLAGS, \
|
||||||
.iomem_base = EV96100_UART1_REGS_BASE, .iomem_reg_shift = 2, \
|
.iomem_base = EV64120_UART1_REGS_BASE, .iomem_reg_shift = 2, \
|
||||||
.io_type = SERIAL_IO_MEM },
|
.io_type = SERIAL_IO_MEM },
|
||||||
#else
|
#else
|
||||||
#define EV96100_SERIAL_PORT_DEFNS
|
#define EV64120_SERIAL_PORT_DEFNS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_MIPS_ITE8172
|
#ifdef CONFIG_MIPS_ITE8172
|
||||||
|
@ -239,7 +238,7 @@
|
||||||
|
|
||||||
#define SERIAL_PORT_DFNS \
|
#define SERIAL_PORT_DFNS \
|
||||||
DDB5477_SERIAL_PORT_DEFNS \
|
DDB5477_SERIAL_PORT_DEFNS \
|
||||||
EV96100_SERIAL_PORT_DEFNS \
|
EV64120_SERIAL_PORT_DEFNS \
|
||||||
IP32_SERIAL_PORT_DEFNS \
|
IP32_SERIAL_PORT_DEFNS \
|
||||||
ITE_SERIAL_PORT_DEFNS \
|
ITE_SERIAL_PORT_DEFNS \
|
||||||
IVR_SERIAL_PORT_DEFNS \
|
IVR_SERIAL_PORT_DEFNS \
|
||||||
|
|
44
include/asm-mips/stacktrace.h
Normal file
44
include/asm-mips/stacktrace.h
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#ifndef _ASM_STACKTRACE_H
|
||||||
|
#define _ASM_STACKTRACE_H
|
||||||
|
|
||||||
|
#include <asm/ptrace.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_KALLSYMS
|
||||||
|
extern int raw_show_trace;
|
||||||
|
extern unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
|
||||||
|
unsigned long pc, unsigned long *ra);
|
||||||
|
#else
|
||||||
|
#define raw_show_trace 1
|
||||||
|
#define unwind_stack(task, sp, pc, ra) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static __always_inline void prepare_frametrace(struct pt_regs *regs)
|
||||||
|
{
|
||||||
|
#ifndef CONFIG_KALLSYMS
|
||||||
|
/*
|
||||||
|
* Remove any garbage that may be in regs (specially func
|
||||||
|
* addresses) to avoid show_raw_backtrace() to report them
|
||||||
|
*/
|
||||||
|
memset(regs, 0, sizeof(*regs));
|
||||||
|
#endif
|
||||||
|
__asm__ __volatile__(
|
||||||
|
".set push\n\t"
|
||||||
|
".set noat\n\t"
|
||||||
|
#ifdef CONFIG_64BIT
|
||||||
|
"1: dla $1, 1b\n\t"
|
||||||
|
"sd $1, %0\n\t"
|
||||||
|
"sd $29, %1\n\t"
|
||||||
|
"sd $31, %2\n\t"
|
||||||
|
#else
|
||||||
|
"1: la $1, 1b\n\t"
|
||||||
|
"sw $1, %0\n\t"
|
||||||
|
"sw $29, %1\n\t"
|
||||||
|
"sw $31, %2\n\t"
|
||||||
|
#endif
|
||||||
|
".set pop\n\t"
|
||||||
|
: "=m" (regs->cp0_epc),
|
||||||
|
"=m" (regs->regs[29]), "=m" (regs->regs[31])
|
||||||
|
: : "memory");
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* _ASM_STACKTRACE_H */
|
Loading…
Reference in a new issue