static int diagcmd_probe(struct platform_device *pdev) { struct diagcmd_platform_data *pdata = pdev->dev.platform_data; int ret = 0; if (!pdata){ D("diagcmd_probe pdata err:%s\n", pdata->name); return -EBUSY; } D("%s:%s\n", __func__, pdata->name); diagcmd_data = kzalloc(sizeof(struct diagcmd_data), GFP_KERNEL); if (!diagcmd_data){ D("diagcmd_probe data err:%s\n", pdata->name); return -ENOMEM; } diagcmd_data->sdev.name = pdata->name; ret = diagcmd_dev_register(&diagcmd_data->sdev); if (ret < 0) goto err_diagcmd_dev_register; return 0; err_diagcmd_dev_register: kfree(diagcmd_data); return ret; }
static int diagcmd_probe(struct platform_device *pdev) { struct diagcmd_platform_data *pdata = pdev->dev.platform_data; int ret = 0; if (!pdata){ D("diagcmd_probe pdata err:%s\n", pdata->name); return -EBUSY; } D("%s:%s\n", __func__, pdata->name); diagcmd_data = kzalloc(sizeof(struct diagcmd_data), GFP_KERNEL); if (!diagcmd_data){ D("diagcmd_probe data err:%s\n", pdata->name); return -ENOMEM; } diagcmd_data->sdev.name = pdata->name; ret = diagcmd_dev_register(&diagcmd_data->sdev); if (ret < 0) goto err_diagcmd_dev_register; /* Misc device register */ ret = misc_register(&lge_diag_misc_dev); if (ret) { printk(KERN_ERR "%s: failed to register misc device.\n", __func__); goto misc_register_err1; } return 0; err_diagcmd_dev_register: kfree(diagcmd_data); misc_register_err1: misc_deregister(&lge_diag_misc_dev); return ret; }