On Thursday 05 June 2008, Guennadi Liakhovetski wrote:Right. Obviously that wasn't tested with "rmmod" of a modular GPIO expander ... I only have one board which supports such an expander right now, and it's not been in use recently. A fix is obvious; any problems with what's below? - Dave --- g26.orig/drivers/gpio/gpiolib.c 2008-06-10 16:56:01.000000000 -0700 +++ g26/drivers/gpio/gpiolib.c 2008-06-10 16:55:39.000000000 -0700 @@ -726,12 +726,15 @@ int gpiochip_remove(struct gpio_chip *ch } } if (status == 0) { - gpiochip_unexport(chip); for (id = chip->base; id < chip->base + chip->ngpio; id++) gpio_desc[id].chip = NULL; } spin_unlock_irqrestore(&gpio_lock, flags); + + if (status == 0) + gpiochip_unexport(chip); + return status; } EXPORT_SYMBOL_GPL(gpiochip_remove); --
| Greg Kroah-Hartman | [PATCH 002/196] Chinese: rephrase English introduction in HOWTO |
| Kok, Auke | Re: Linux 2.6.21-rc1 |
| Greg KH | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Jeff Garzik | Re: [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in |
git: | |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Eric Dumazet | [PATCH] net: remove superfluous call to synchronize_net() |
