CC: [email protected] BCC: [email protected] CC: [email protected] CC: [email protected] CC: Vignesh Raghavendra <[email protected]>
tree: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git ti-rt-linux-5.10.y head: 61a16f0e26b5e043e3555a0923e0ab75c5cb2239 commit: c0310e2d8c4fd7df44bc194a295314dd104df623 [15881/15918] i2c: core: let adapters be notified of client attach/detach :::::: branch date: 19 hours ago :::::: commit date: 12 days ago config: x86_64-randconfig-m001 (https://download.01.org/0day-ci/archive/20220612/[email protected]/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: drivers/i2c/i2c-core-base.c:952 i2c_new_client_device() warn: passing zero to 'ERR_PTR' vim +/ERR_PTR +952 drivers/i2c/i2c-core-base.c 4124c4eba40256 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-03-01 854 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 855 /** 7159dbdae3c58d drivers/i2c/i2c-core-base.c Heiner Kallweit 2019-05-16 856 * i2c_new_client_device - instantiate an i2c device 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 857 * @adap: the adapter managing the device 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 858 * @info: describes one I2C device; bus_num is ignored d64f73be1b59b9 drivers/i2c/i2c-core.c David Brownell 2007-07-12 859 * Context: can sleep 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 860 * f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 861 * Create an i2c device. Binding is handled through driver model f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 862 * probe()/remove() methods. A driver may be bound to this device when we f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 863 * return from this function, or any later moment (e.g. maybe hotplugging will f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 864 * load the driver module). This call is not appropriate for use by mainboard f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 865 * initialization logic, which usually runs during an arch_initcall() long f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 866 * before any i2c_adapter could exist. 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 867 * 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 868 * This returns the new i2c client, which may be saved for later use with 7159dbdae3c58d drivers/i2c/i2c-core-base.c Heiner Kallweit 2019-05-16 869 * i2c_unregister_device(); or an ERR_PTR to describe the error. 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 870 */ 550113d4e9f5c7 drivers/i2c/i2c-core-base.c Wolfram Sang 2019-06-24 871 struct i2c_client * 7159dbdae3c58d drivers/i2c/i2c-core-base.c Heiner Kallweit 2019-05-16 872 i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *info) 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 873 { 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 874 struct i2c_client *client; 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 875 int status; 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 876 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 877 client = kzalloc(sizeof *client, GFP_KERNEL); 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 878 if (!client) 7159dbdae3c58d drivers/i2c/i2c-core-base.c Heiner Kallweit 2019-05-16 879 return ERR_PTR(-ENOMEM); 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 880 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 881 client->adapter = adap; 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 882 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 883 client->dev.platform_data = info->platform_data; ee35425c8eb115 drivers/i2c/i2c-core.c Marc Pignat 2008-08-28 884 client->flags = info->flags; 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 885 client->addr = info->addr; 4124c4eba40256 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-03-01 886 93b6604c5a669d drivers/i2c/i2c-core-base.c Jim Broadus 2019-02-19 887 client->init_irq = info->irq; 93b6604c5a669d drivers/i2c/i2c-core-base.c Jim Broadus 2019-02-19 888 if (!client->init_irq) 93b6604c5a669d drivers/i2c/i2c-core-base.c Jim Broadus 2019-02-19 889 client->init_irq = i2c_dev_irq_from_resources(info->resources, 4124c4eba40256 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-03-01 890 info->num_resources); 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 891 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 892 strlcpy(client->name, info->type, sizeof(client->name)); 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 893 c4019b7040eaf8 drivers/i2c/i2c-core.c Wolfram Sang 2015-07-17 894 status = i2c_check_addr_validity(client->addr, client->flags); 3a89db5f305766 drivers/i2c/i2c-core.c Jean Delvare 2010-06-03 895 if (status) { 3a89db5f305766 drivers/i2c/i2c-core.c Jean Delvare 2010-06-03 896 dev_err(&adap->dev, "Invalid %d-bit I2C address 0x%02hx\n", 3a89db5f305766 drivers/i2c/i2c-core.c Jean Delvare 2010-06-03 897 client->flags & I2C_CLIENT_TEN ? 10 : 7, client->addr); 3a89db5f305766 drivers/i2c/i2c-core.c Jean Delvare 2010-06-03 898 goto out_err_silent; 3a89db5f305766 drivers/i2c/i2c-core.c Jean Delvare 2010-06-03 899 } 3a89db5f305766 drivers/i2c/i2c-core.c Jean Delvare 2010-06-03 900 f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 901 /* Check for address business */ 9bccc70a127cfe drivers/i2c/i2c-core.c Wolfram Sang 2015-07-17 902 status = i2c_check_addr_busy(adap, i2c_encode_flags_to_addr(client)); f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 903 if (status) f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 904 goto out_err; f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 905 f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 906 client->dev.parent = &client->adapter->dev; f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 907 client->dev.bus = &i2c_bus_type; 51298d1257b9f0 drivers/i2c/i2c-core.c Jean Delvare 2009-09-18 908 client->dev.type = &i2c_client_type; 04782265641839 drivers/i2c/i2c-core-base.c Boris Brezillon 2018-03-25 909 client->dev.of_node = of_node_get(info->of_node); ce793486e23e01 drivers/i2c/i2c-core.c Rafael J. Wysocki 2015-03-16 910 client->dev.fwnode = info->fwnode; f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 911 728fe6cef27444 drivers/i2c/i2c-core-base.c Hans de Goede 2017-10-11 912 i2c_dev_set_name(adap, client, info); d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 913 d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 914 if (info->properties) { d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 915 status = device_add_properties(&client->dev, info->properties); d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 916 if (status) { d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 917 dev_err(&adap->dev, d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 918 "Failed to add properties to client %s: %d\n", d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 919 client->name, status); 04782265641839 drivers/i2c/i2c-core-base.c Boris Brezillon 2018-03-25 920 goto out_err_put_of_node; d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 921 } d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 922 } d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 923 c0310e2d8c4fd7 drivers/i2c/i2c-core-base.c Luca Ceresoli 2022-04-13 924 if (adap->attach_ops && c0310e2d8c4fd7 drivers/i2c/i2c-core-base.c Luca Ceresoli 2022-04-13 925 adap->attach_ops->attach_client && c0310e2d8c4fd7 drivers/i2c/i2c-core-base.c Luca Ceresoli 2022-04-13 926 adap->attach_ops->attach_client(adap, info, client) != 0) c0310e2d8c4fd7 drivers/i2c/i2c-core-base.c Luca Ceresoli 2022-04-13 927 goto out_free_props; c0310e2d8c4fd7 drivers/i2c/i2c-core-base.c Luca Ceresoli 2022-04-13 928 f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 929 status = device_register(&client->dev); f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 930 if (status) c0310e2d8c4fd7 drivers/i2c/i2c-core-base.c Luca Ceresoli 2022-04-13 931 goto out_detach_client; f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 932 f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 933 dev_dbg(&adap->dev, "client [%s] registered with bus id %s\n", f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 934 client->name, dev_name(&client->dev)); f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 935 9c1600eda42e52 drivers/i2c/i2c-core.c David Brownell 2007-05-01 936 return client; f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 937 c0310e2d8c4fd7 drivers/i2c/i2c-core-base.c Luca Ceresoli 2022-04-13 938 out_detach_client: c0310e2d8c4fd7 drivers/i2c/i2c-core-base.c Luca Ceresoli 2022-04-13 939 if (adap->attach_ops && adap->attach_ops->detach_client) c0310e2d8c4fd7 drivers/i2c/i2c-core-base.c Luca Ceresoli 2022-04-13 940 adap->attach_ops->detach_client(adap, client); d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 941 out_free_props: d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 942 if (info->properties) d3e1b617ae20c4 drivers/i2c/i2c-core.c Dmitry Torokhov 2017-02-02 943 device_remove_properties(&client->dev); 04782265641839 drivers/i2c/i2c-core-base.c Boris Brezillon 2018-03-25 944 out_err_put_of_node: 04782265641839 drivers/i2c/i2c-core-base.c Boris Brezillon 2018-03-25 945 of_node_put(info->of_node); f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 946 out_err: b93d3d37392467 drivers/i2c/i2c-core.c Andy Shevchenko 2016-08-25 947 dev_err(&adap->dev, b93d3d37392467 drivers/i2c/i2c-core.c Andy Shevchenko 2016-08-25 948 "Failed to register i2c client %s at 0x%02x (%d)\n", b93d3d37392467 drivers/i2c/i2c-core.c Andy Shevchenko 2016-08-25 949 client->name, client->addr, status); 3a89db5f305766 drivers/i2c/i2c-core.c Jean Delvare 2010-06-03 950 out_err_silent: f8a227e8ac19c2 drivers/i2c/i2c-core.c Jean Delvare 2009-06-19 951 kfree(client); 7159dbdae3c58d drivers/i2c/i2c-core-base.c Heiner Kallweit 2019-05-16 @952 return ERR_PTR(status); 7159dbdae3c58d drivers/i2c/i2c-core-base.c Heiner Kallweit 2019-05-16 953 } 7159dbdae3c58d drivers/i2c/i2c-core-base.c Heiner Kallweit 2019-05-16 954 EXPORT_SYMBOL_GPL(i2c_new_client_device); 7159dbdae3c58d drivers/i2c/i2c-core-base.c Heiner Kallweit 2019-05-16 955 :::::: The code at line 952 was first introduced by commit :::::: 7159dbdae3c58d0200ae2550fab977a19a3c497a i2c: core: improve return value handling of i2c_new_device and i2c_new_dummy :::::: TO: Heiner Kallweit <[email protected]> :::::: CC: Wolfram Sang <[email protected]> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
