X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fmmc%2Fcore%2Fsdio_bus.c;h=233d0f9b3c4b507b0e10e46bc0b936abd6081188;hb=623fa579e61f250c1913c70257ef3a753820bb68;hp=683d91740109ebfe9a5b6bd22b2d96b7287cfab8;hpb=9f2fcf99394b34769e3243a7f42a0ba8d21fc774;p=linux-2.6 diff --git a/drivers/mmc/core/sdio_bus.c b/drivers/mmc/core/sdio_bus.c index 683d917401..233d0f9b3c 100644 --- a/drivers/mmc/core/sdio_bus.c +++ b/drivers/mmc/core/sdio_bus.c @@ -96,30 +96,23 @@ static int sdio_bus_match(struct device *dev, struct device_driver *drv) } static int -sdio_bus_uevent(struct device *dev, char **envp, int num_envp, char *buf, - int buf_size) +sdio_bus_uevent(struct device *dev, struct kobj_uevent_env *env) { struct sdio_func *func = dev_to_sdio_func(dev); - int i = 0, length = 0; - if (add_uevent_var(envp, num_envp, &i, - buf, buf_size, &length, + if (add_uevent_var(env, "SDIO_CLASS=%02X", func->class)) return -ENOMEM; - if (add_uevent_var(envp, num_envp, &i, - buf, buf_size, &length, + if (add_uevent_var(env, "SDIO_ID=%04X:%04X", func->vendor, func->device)) return -ENOMEM; - if (add_uevent_var(envp, num_envp, &i, - buf, buf_size, &length, + if (add_uevent_var(env, "MODALIAS=sdio:c%02Xv%04Xd%04X", func->class, func->vendor, func->device)) return -ENOMEM; - envp[i] = NULL; - return 0; } @@ -211,6 +204,9 @@ static void sdio_release_func(struct device *dev) sdio_free_func_cis(func); + if (func->info) + kfree(func->info); + kfree(func); }