On Mon, 26 Mar 2012 12:31:19 -0700, David Daney <ddaney.cavm@xxxxxxxxx> wrote: > From: David Daney <david.daney@xxxxxxxxxx> > > Create two domains. One for the GPIO lines, and the other for on-chip > sources. > > Signed-off-by: David Daney <david.daney@xxxxxxxxxx> > --- [...] > +struct octeon_irq_gpio_domain_data { > + unsigned int base_hwirq; > +}; Hmmm... > +static int octeon_irq_gpio_xlat(struct irq_domain *d, > + struct device_node *node, > + const u32 *intspec, > + unsigned int intsize, > + unsigned long *out_hwirq, > + unsigned int *out_type) > +{ [...] > + *out_hwirq = gpiod->base_hwirq + pin; ...base_hwirq is only used here... [...] > + gpiod = kzalloc(sizeof (*gpiod), GFP_KERNEL); > + if (gpiod) { > + /* gpio domain host_data is the base hwirq number. */ > + gpiod->base_hwirq = 16; > + irq_domain_add_linear(gpio_node, 16, &octeon_irq_domain_gpio_ops, gpiod); ... and it is unconditionally set to 16. It looks to me like base_hwirq and the associated kzalloc() is unnecessary. g.