On 4/26/2007, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
>From: Andrew Morton <[EMAIL PROTECTED]> > >Fix http://bugzilla.kernel.org/show_bug.cgi?id=8343 > >Cc: Samuel Ortiz <[EMAIL PROTECTED]> >Cc: <[EMAIL PROTECTED]> >Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> This one was on my pipeline, looks good to me. Signed-off-by: Samuel Ortiz <[EMAIL PROTECTED]> >--- > > net/irda/irda_device.c | 21 ++++++++------------- > 1 file changed, 8 insertions(+), 13 deletions(-) > >diff -puN >net/irda/irda_device.c~irda_device_dongle_init-fix-kzallocgfp_kernel-in-spinlock > net/irda/irda_device.c >--- >a/net/irda/irda_device.c~irda_device_dongle_init-fix-kzallocgfp_kernel-in-spinlock >+++ a/net/irda/irda_device.c >@@ -375,7 +375,7 @@ EXPORT_SYMBOL(alloc_irdadev); > dongle_t *irda_device_dongle_init(struct net_device *dev, int type) > { > struct dongle_reg *reg; >- dongle_t *dongle = NULL; >+ dongle_t *dongle = kzalloc(sizeof(dongle_t), GFP_KERNEL); > > might_sleep(); > >@@ -397,19 +397,14 @@ dongle_t *irda_device_dongle_init(struct > if (!reg || !try_module_get(reg->owner) ) { > IRDA_ERROR("IrDA: Unable to find requested dongle type %x\n", > type); >- goto out; >+ kfree(dongle); >+ dongle = NULL; >+ } >+ if (dongle) { >+ /* Bind the registration info to this particular instance */ >+ dongle->issue = reg; >+ dongle->dev = dev; > } >- >- /* Allocate dongle info for this instance */ >- dongle = kzalloc(sizeof(dongle_t), GFP_KERNEL); >- if (!dongle) >- goto out; >- >- /* Bind the registration info to this particular instance */ >- dongle->issue = reg; >- dongle->dev = dev; >- >- out: > spin_unlock(&dongles->hb_spinlock); > return dongle; > } >_ >- >To unsubscribe from this list: send the line "unsubscribe netdev" in >the body of a message to [EMAIL PROTECTED] >More majordomo info at http://vger.kernel.org/majordomo-info.html - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
