local_irq_save(flags);
 
        if (unlikely(reserved_gpio_map[gpio_bank(ident)] & gpio_bit(ident))) {
+               dump_stack();
                printk(KERN_ERR
                    "%s: Peripheral %d is already reserved as GPIO by %s !\n",
                       __FUNCTION__, ident, get_label(ident));
-               dump_stack();
                local_irq_restore(flags);
                return -EBUSY;
        }
                if (cmp_label(ident, label) == 0)
                        goto anyway;
 
+                       dump_stack();
                        printk(KERN_ERR
                               "%s: Peripheral %d function %d is already reserved by %s !\n",
                               __FUNCTION__, ident, P_FUNCT2MUX(per), get_label(ident));
-                       dump_stack();
                        local_irq_restore(flags);
                        return -EBUSY;
                }
        if (!check_gpio(ident)) {
 
        if (unlikely(reserved_gpio_map[gpio_bank(ident)] & gpio_bit(ident))) {
+               dump_stack();
                printk(KERN_ERR
                       "%s: Peripheral %d is already reserved as GPIO by %s !\n",
                       __FUNCTION__, ident, get_label(ident));
-               dump_stack();
                local_irq_restore(flags);
                return -EBUSY;
        }
                if (cmp_label(ident, label) == 0)
                        goto anyway;
 
+                       dump_stack();
                        printk(KERN_ERR
                               "%s: Peripheral %d function %d is already"
                               " reserved by %s !\n",
                               __FUNCTION__, ident, P_FUNCT2MUX(per),
                                get_label(ident));
-                       dump_stack();
                        local_irq_restore(flags);
                        return -EBUSY;
                }
        }
 
        if (unlikely(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio))) {
+               dump_stack();
                printk(KERN_ERR "bfin-gpio: GPIO %d is already reserved by %s !\n",
                         gpio, get_label(gpio));
-               dump_stack();
                local_irq_restore(flags);
                return -EBUSY;
        }
        if (unlikely(reserved_peri_map[gpio_bank(gpio)] & gpio_bit(gpio))) {
+               dump_stack();
                printk(KERN_ERR
                       "bfin-gpio: GPIO %d is already reserved as Peripheral by %s !\n",
                       gpio, get_label(gpio));
-               dump_stack();
                local_irq_restore(flags);
                return -EBUSY;
        }
        local_irq_save(flags);
 
        if (unlikely(!(reserved_gpio_map[gpio_bank(gpio)] & gpio_bit(gpio)))) {
-               gpio_error(gpio);
                dump_stack();
+               gpio_error(gpio);
                local_irq_restore(flags);
                return;
        }