Merge branch 'for_2.6.38/pm-fixes' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into devel-fixes

+15 -18
+15 -18
arch/arm/mach-omap2/smartreflex.c
··· 282 282 dev_err(&sr_info->pdev->dev, "%s: ERROR in registering" 283 283 "interrupt handler. Smartreflex will" 284 284 "not function as desired\n", __func__); 285 + kfree(name); 285 286 kfree(sr_info); 286 287 return ret; 287 288 } ··· 880 879 ret = sr_late_init(sr_info); 881 880 if (ret) { 882 881 pr_warning("%s: Error in SR late init\n", __func__); 883 - return ret; 882 + goto err_release_region; 884 883 } 885 884 } 886 885 ··· 891 890 * not try to create rest of the debugfs entries. 892 891 */ 893 892 vdd_dbg_dir = omap_voltage_get_dbgdir(sr_info->voltdm); 894 - if (!vdd_dbg_dir) 895 - return -EINVAL; 893 + if (!vdd_dbg_dir) { 894 + ret = -EINVAL; 895 + goto err_release_region; 896 + } 896 897 897 898 dbg_dir = debugfs_create_dir("smartreflex", vdd_dbg_dir); 898 899 if (IS_ERR(dbg_dir)) { 899 900 dev_err(&pdev->dev, "%s: Unable to create debugfs directory\n", 900 901 __func__); 901 - return PTR_ERR(dbg_dir); 902 + ret = PTR_ERR(dbg_dir); 903 + goto err_release_region; 902 904 } 903 905 904 906 (void) debugfs_create_file("autocomp", S_IRUGO | S_IWUSR, dbg_dir, ··· 917 913 if (IS_ERR(nvalue_dir)) { 918 914 dev_err(&pdev->dev, "%s: Unable to create debugfs directory" 919 915 "for n-values\n", __func__); 920 - return PTR_ERR(nvalue_dir); 916 + ret = PTR_ERR(nvalue_dir); 917 + goto err_release_region; 921 918 } 922 919 923 920 omap_voltage_get_volttable(sr_info->voltdm, &volt_data); ··· 927 922 " corresponding vdd vdd_%s. Cannot create debugfs" 928 923 "entries for n-values\n", 929 924 __func__, sr_info->voltdm->name); 930 - return -ENODATA; 925 + ret = -ENODATA; 926 + goto err_release_region; 931 927 } 932 928 933 929 for (i = 0; i < sr_info->nvalue_count; i++) { 934 - char *name; 935 - char volt_name[32]; 930 + char name[NVALUE_NAME_LEN + 1]; 936 931 937 - name = kzalloc(NVALUE_NAME_LEN + 1, GFP_KERNEL); 938 - if (!name) { 939 - dev_err(&pdev->dev, "%s: Unable to allocate memory" 940 - " for n-value directory name\n", __func__); 941 - return -ENOMEM; 942 - } 943 - 944 - strcpy(name, "volt_"); 945 - sprintf(volt_name, "%d", volt_data[i].volt_nominal); 946 - strcat(name, volt_name); 932 + snprintf(name, sizeof(name), "volt_%d", 933 + volt_data[i].volt_nominal); 947 934 (void) debugfs_create_x32(name, S_IRUGO | S_IWUSR, nvalue_dir, 948 935 &(sr_info->nvalue_table[i].nvalue)); 949 936 }