Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261524AbTHYJTD (ORCPT ); Mon, 25 Aug 2003 05:19:03 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261557AbTHYJTC (ORCPT ); Mon, 25 Aug 2003 05:19:02 -0400 Received: from i238008.ppp.asahi-net.or.jp ([61.125.238.8]:46314 "EHLO mitou.y-sato.ddo.jp") by vger.kernel.org with ESMTP id S261524AbTHYJS6 (ORCPT ); Mon, 25 Aug 2003 05:18:58 -0400 Date: Mon, 25 Aug 2003 18:18:55 +0900 Message-ID: From: Yoshinori Sato To: Linus Torvalds Cc: linux kernel Mailing List Subject: [PATCH] h8300 interrupt problem fix User-Agent: Wanderlust/2.11.3 (Wonderwall) SEMI/1.14.5 (Awara-Onsen) LIMIT/1.14.7 (Fujiidera) APEL/10.6 Emacs/21.3 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2335 Lines: 64 Fixed problem that it was not got interruption at specified condition. diff -ru linux-2.6.0-test3/arch/h8300/platform/h8300h/ints.c linux-2.6.0-test3-h8300/arch/h8300/platform/h8300h/ints.c --- linux-2.6.0-test3/arch/h8300/platform/h8300h/ints.c 2003-08-22 00:42:22.000000000 +0900 +++ uCdev/linux-2.6.0-test3/arch/h8300/platform/h8300h/ints.c 2003-08-23 20:16:36.000000000 +0900 @@ -57,17 +57,20 @@ extern unsigned long *interrupt_redirect_table; +#define CPU_VECTOR ((unsigned long *)0x000000) +#define ADDR_MASK (0xffffff) + static inline unsigned long *get_vector_address(void) { - unsigned long *rom_vector = (unsigned long *)0x000000; + unsigned long *rom_vector = CPU_VECTOR; unsigned long base,tmp; int vec_no; - base = rom_vector[EXT_IRQ0]; + base = rom_vector[EXT_IRQ0] & ADDR_MASK; /* check romvector format */ for (vec_no = EXT_IRQ1; vec_no <= EXT_IRQ5; vec_no++) { - if ((base+(vec_no - EXT_IRQ0)*4) != rom_vector[vec_no]) + if ((base+(vec_no - EXT_IRQ0)*4) != (rom_vector[vec_no] & ADRR_MASK)) return NULL; } diff -ru linux-2.6.0-test3/arch/h8300/platform/h8s/ints.c linux-2.6.0-test3-h8300/arch/h8300/platform/h8s/ints.c --- linux-2.6.0-test3/arch/h8300/platform/h8s/ints.c 2003-08-22 00:42:22.000000000 +0900 +++ linux-2.6.0-test3-h8300/arch/h8300/platform/h8s/ints.c 2003-08-23 20:15:41.000000000 +0900 @@ -95,17 +95,20 @@ extern unsigned long *interrupt_redirect_table; +#define CPU_VECTOR ((unsigned long *)0x000000) +#define ADDR_MASK (0xffffff) + static inline unsigned long *get_vector_address(void) { - volatile unsigned long *rom_vector = (unsigned long *)0x000000; + volatile unsigned long *rom_vector = CPU_VECTOR; unsigned long base,tmp; int vec_no; - base = rom_vector[EXT_IRQ0]; + base = rom_vector[EXT_IRQ0] & ADDR_MASK; /* check romvector format */ for (vec_no = EXT_IRQ1; vec_no <= EXT_IRQ15; vec_no++) { - if ((base+(vec_no - EXT_IRQ0)*4) != rom_vector[vec_no]) + if ((base+(vec_no - EXT_IRQ0)*4) != (rom_vector[vec_no] & ADDR_MASK)) return NULL; } -- Yoshinori Sato - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/