From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030901AbXD1CJy (ORCPT ); Fri, 27 Apr 2007 22:09:54 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1030915AbXD1CJy (ORCPT ); Fri, 27 Apr 2007 22:09:54 -0400 Received: from smtp1.linux-foundation.org ([65.172.181.25]:45978 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030901AbXD1CJx (ORCPT ); Fri, 27 Apr 2007 22:09:53 -0400 Date: Fri, 27 Apr 2007 19:09:35 -0700 From: Andrew Morton To: Yoshinori Sato Cc: lkml Subject: Re: [PATCH] h8300 generic irq Message-Id: <20070427190935.68606a3a.akpm@linux-foundation.org> In-Reply-To: References: X-Mailer: Sylpheed version 2.2.7 (GTK+ 2.8.6; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 26 Apr 2007 17:34:37 +0900 Yoshinori Sato wrote: > h8300 using generic irq handler patch. > > Signed-off-by: Yoshinori Sato > Minor things: > > --- /dev/null > +++ b/arch/h8300/kernel/irq.c > @@ -0,0 +1,211 @@ > +/* > + * linux/arch/h8300/kernel/irq.c > + * > + * Copyright 2007 Yoshinori Sato > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include > +#include > +#include > +#include > +#include > + > +/*#define DEBUG*/ > + > +extern unsigned long *interrupt_redirect_table; > +extern const int h8300_saved_vectors[]; > +extern const unsigned long h8300_trap_table[]; > +int h8300_enable_irq_pin(unsigned int irq); > +void h8300_disable_irq_pin(unsigned int irq); Please always avoid putting extern declarations into C files. Please them in a header file which is visible tot he definition site asw well as all callers/users. For something which is defined in assembly code (like interrupt_redirect_table) it isn't so clear, because we cannot do typechecking. But I think it's still best to include the declaration in a header file so that we only have to declare it once. Plus it _is_ a global symbol. > + > +/* > + * h8300 interrupt controler implementation > + */ > +struct irq_chip h8300irq_chip = { > + .name = "H8300-INTC", > + .startup = h8300_startup_irq, > + .shutdown = h8300_shutdown_irq, > + .enable = h8300_enable_irq, > + .disable = h8300_disable_irq, > + .ack = NULL, > + .end = h8300_end_irq, > +}; I think this could have static scope. > +void ack_bad_irq(unsigned int irq) > +{ > + printk("unexpected IRQ trap at vector %02x\n", irq); > +} printks should generally have facility levels (KERN_*) > + panic("interrupt vector serup failed."); typo > + for ( i = 0; i < NR_IRQS; i++) { for (i = 0 > + if (i == *saved_vector) { > + ramvec_p++; > + saved_vector++; > + } else { > + if ( i < NR_TRAPS ) { if (i < NR_TRAPS)