Hello Franklin S Cooper Jr, This is a semi-automatic email about new static checker warnings. The patch 13c23cd18bd1: "Input: edt-ft5x06 - switch to newer gpio framework" from Sep 11, 2015, leads to the following Smatch complaint: drivers/input/touchscreen/edt-ft5x06.c:988 edt_ft5x06_ts_probe() error: we previously assumed 'tsdata->wake_gpio' could be null (see line 908) drivers/input/touchscreen/edt-ft5x06.c 907 908 if (tsdata->wake_gpio) { ^^^^^^^^^^^^^^^^^ Patch introduces a new NULL check. 909 usleep_range(5000, 6000); 910 gpiod_set_value_cansleep(tsdata->wake_gpio, 1); 911 } 912 913 if (tsdata->reset_gpio) { 914 usleep_range(5000, 6000); 915 gpiod_set_value_cansleep(tsdata->reset_gpio, 0); 916 msleep(300); 917 } 918 919 input = devm_input_allocate_device(&client->dev); 920 if (!input) { 921 dev_err(&client->dev, "failed to allocate input device.\n"); 922 return -ENOMEM; 923 } 924 925 mutex_init(&tsdata->mutex); 926 tsdata->client = client; 927 tsdata->input = input; 928 tsdata->factory_mode = false; 929 930 error = edt_ft5x06_ts_identify(client, tsdata, fw_version); 931 if (error) { 932 dev_err(&client->dev, "touchscreen probe failed\n"); 933 return error; 934 } 935 936 edt_ft5x06_ts_set_regs(tsdata); 937 edt_ft5x06_ts_get_defaults(&client->dev, tsdata); 938 edt_ft5x06_ts_get_parameters(tsdata); 939 940 dev_dbg(&client->dev, 941 "Model \"%s\", Rev. \"%s\", %dx%d sensors\n", 942 tsdata->name, fw_version, tsdata->num_x, tsdata->num_y); 943 944 input->name = tsdata->name; 945 input->id.bustype = BUS_I2C; 946 input->dev.parent = &client->dev; 947 948 input_set_abs_params(input, ABS_MT_POSITION_X, 949 0, tsdata->num_x * 64 - 1, 0, 0); 950 input_set_abs_params(input, ABS_MT_POSITION_Y, 951 0, tsdata->num_y * 64 - 1, 0, 0); 952 953 touchscreen_parse_properties(input, true); 954 955 error = input_mt_init_slots(input, MAX_SUPPORT_POINTS, INPUT_MT_DIRECT); 956 if (error) { 957 dev_err(&client->dev, "Unable to init MT slots.\n"); 958 return error; 959 } 960 961 input_set_drvdata(input, tsdata); 962 i2c_set_clientdata(client, tsdata); 963 964 irq_flags = irq_get_trigger_type(client->irq); 965 if (irq_flags == IRQF_TRIGGER_NONE) 966 irq_flags = IRQF_TRIGGER_FALLING; 967 irq_flags |= IRQF_ONESHOT; 968 969 error = devm_request_threaded_irq(&client->dev, client->irq, 970 NULL, edt_ft5x06_ts_isr, irq_flags, 971 client->name, tsdata); 972 if (error) { 973 dev_err(&client->dev, "Unable to request touchscreen IRQ.\n"); 974 return error; 975 } 976 977 error = sysfs_create_group(&client->dev.kobj, &edt_ft5x06_attr_group); 978 if (error) 979 return error; 980 981 error = input_register_device(input); 982 if (error) 983 goto err_remove_attrs; 984 985 edt_ft5x06_ts_prepare_debugfs(tsdata, dev_driver_string(&client->dev)); 986 device_init_wakeup(&client->dev, 1); 987 988 dev_dbg(&client->dev, 989 "EDT FT5x06 initialized: IRQ %d, WAKE pin %d, Reset pin %d.\n", 990 client->irq, desc_to_gpio(tsdata->wake_gpio), ^^^^^^^^^^^^^^^^^ Patch introduces a new unchecked dereference, (inside the function call). regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html