CC: [email protected]
CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Heikki Krogerus <[email protected]>
TO: "Rafael J. Wysocki" <[email protected]>
TO: "Greg Kroah-Hartman" <[email protected]>
CC: Andy Shevchenko <[email protected]>
CC: Sakari Ailus <[email protected]>
CC: Prashant Malani <[email protected]>
CC: [email protected]
CC: [email protected]
CC: [email protected]

Hi Heikki,

I love your patch! Perhaps something to improve:

[auto build test WARNING on usb/usb-testing]
[also build test WARNING on rafael-pm/linux-next linus/master v5.16-rc4]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Heikki-Krogerus/acpi-Store-_PLD-information-and-convert-users/20211207-223940
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git 
usb-testing
:::::: branch date: 5 days ago
:::::: commit date: 5 days ago
config: i386-randconfig-c001-20211207 
(https://download.01.org/0day-ci/archive/20211212/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://github.com/0day-ci/linux/commit/447d4051cf4a7ba3c5f9277c945528a5efd787f3
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Heikki-Krogerus/acpi-Store-_PLD-information-and-convert-users/20211207-223940
        git checkout 447d4051cf4a7ba3c5f9277c945528a5efd787f3
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
                          ^~~
   drivers/net/ethernet/intel/ice/ice_devlink.c:619:17: note: Value stored to 
'dev' during its initialization is never read
           struct device *dev = ice_pf_to_dev(pf);
                          ^~~
   drivers/net/ethernet/intel/ice/ice_devlink.c:676:17: warning: Value stored 
to 'dev' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct device *dev = ice_pf_to_dev(pf);
                          ^~~
   drivers/net/ethernet/intel/ice/ice_devlink.c:676:17: note: Value stored to 
'dev' during its initialization is never read
           struct device *dev = ice_pf_to_dev(pf);
                          ^~~
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   drivers/net/ethernet/intel/ice/ice_fw_update.c:366:17: warning: Value stored 
to 'dev' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct device *dev = ice_pf_to_dev(pf);
                          ^~~
   drivers/net/ethernet/intel/ice/ice_fw_update.c:366:17: note: Value stored to 
'dev' during its initialization is never read
           struct device *dev = ice_pf_to_dev(pf);
                          ^~~
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   14 warnings generated.
   drivers/net/ethernet/intel/ice/ice_lag.c:65:17: warning: Value stored to 
'dev' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct device *dev = &lag->pf->pdev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:65:17: note: Value stored to 'dev' 
during its initialization is never read
           struct device *dev = &lag->pf->pdev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:67:2: warning: Value stored to 
'name' is never read [clang-analyzer-deadcode.DeadStores]
           name = lag->netdev ? netdev_name(lag->netdev) : "unset";
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:67:2: note: Value stored to 'name' 
is never read
           name = lag->netdev ? netdev_name(lag->netdev) : "unset";
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:68:2: warning: Value stored to 
'peer' is never read [clang-analyzer-deadcode.DeadStores]
           peer = lag->peer_netdev ? netdev_name(lag->peer_netdev) : "unset";
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:68:2: note: Value stored to 'peer' 
is never read
           peer = lag->peer_netdev ? netdev_name(lag->peer_netdev) : "unset";
           ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:69:2: warning: Value stored to 
'upper' is never read [clang-analyzer-deadcode.DeadStores]
           upper = lag->upper_netdev ? netdev_name(lag->upper_netdev) : "unset";
           ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:69:2: note: Value stored to 'upper' 
is never read
           upper = lag->upper_netdev ? netdev_name(lag->upper_netdev) : "unset";
           ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:70:2: warning: Value stored to 
'master' is never read [clang-analyzer-deadcode.DeadStores]
           master = lag->master ? "TRUE" : "FALSE";
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:70:2: note: Value stored to 
'master' is never read
           master = lag->master ? "TRUE" : "FALSE";
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:71:2: warning: Value stored to 
'bonded' is never read [clang-analyzer-deadcode.DeadStores]
           bonded = lag->bonded ? "BONDED" : "UNBONDED";
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:71:2: note: Value stored to 
'bonded' is never read
           bonded = lag->bonded ? "BONDED" : "UNBONDED";
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:75:3: warning: Value stored to 
'role' is never read [clang-analyzer-deadcode.DeadStores]
                   role = "NONE";
                   ^      ~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:75:3: note: Value stored to 'role' 
is never read
                   role = "NONE";
                   ^      ~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:78:3: warning: Value stored to 
'role' is never read [clang-analyzer-deadcode.DeadStores]
                   role = "PRIMARY";
                   ^      ~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:78:3: note: Value stored to 'role' 
is never read
                   role = "PRIMARY";
                   ^      ~~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:81:3: warning: Value stored to 
'role' is never read [clang-analyzer-deadcode.DeadStores]
                   role = "BACKUP";
                   ^      ~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:81:3: note: Value stored to 'role' 
is never read
                   role = "BACKUP";
                   ^      ~~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:84:3: warning: Value stored to 
'role' is never read [clang-analyzer-deadcode.DeadStores]
                   role = "UNSET";
                   ^      ~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:84:3: note: Value stored to 'role' 
is never read
                   role = "UNSET";
                   ^      ~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:87:3: warning: Value stored to 
'role' is never read [clang-analyzer-deadcode.DeadStores]
                   role = "ERROR";
                   ^      ~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:87:3: note: Value stored to 'role' 
is never read
                   role = "ERROR";
                   ^      ~~~~~~~
   drivers/net/ethernet/intel/ice/ice_lag.c:348:17: warning: Value stored to 
'dev' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct device *dev = ice_pf_to_dev(lag->pf);
                          ^~~
   drivers/net/ethernet/intel/ice/ice_lag.c:348:17: note: Value stored to 'dev' 
during its initialization is never read
           struct device *dev = ice_pf_to_dev(lag->pf);
                          ^~~
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
>> drivers/usb/typec/port-mapper.c:45:2: warning: Dereference of null pointer 
>> [clang-analyzer-core.NullDereference]
           list_for_each_entry(adev, &location->devices, location_list) {
           ^
   include/linux/list.h:632:13: note: expanded from macro 'list_for_each_entry'
                pos = list_next_entry(pos, member))
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:557:2: note: expanded from macro 'list_next_entry'
           list_entry((pos)->member.next, typeof(*(pos)), member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:513:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/container_of.h:18:25: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                  ^~~~~
   drivers/usb/typec/port-mapper.c:40:38: note: Assuming the condition is true
           location = acpi_device_get_location(ACPI_COMPANION(&con->dev));
                                               ^
   include/linux/acpi.h:43:30: note: expanded from macro 'ACPI_COMPANION'
   #define ACPI_COMPANION(dev)             to_acpi_device_node((dev)->fwnode)
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/acpi/acpi_bus.h:426:3: note: expanded from macro 
'to_acpi_device_node'
                   is_acpi_device_node(__to_acpi_device_node_fwnode) ?     \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/typec/port-mapper.c:40:38: note: '?' condition is true
           location = acpi_device_get_location(ACPI_COMPANION(&con->dev));
                                               ^
   include/linux/acpi.h:43:30: note: expanded from macro 'ACPI_COMPANION'
   #define ACPI_COMPANION(dev)             to_acpi_device_node((dev)->fwnode)
                                           ^
   include/acpi/acpi_bus.h:426:3: note: expanded from macro 
'to_acpi_device_node'
                   is_acpi_device_node(__to_acpi_device_node_fwnode) ?     \
                   ^
   drivers/usb/typec/port-mapper.c:41:6: note: Assuming 'location' is non-null
           if (!location)
               ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                      ^~~~
   drivers/usb/typec/port-mapper.c:41:2: note: '?' condition is false
           if (!location)
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                 ^
   drivers/usb/typec/port-mapper.c:41:7: note: 'location' is non-null
           if (!location)
                ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                                
        ^~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   drivers/usb/typec/port-mapper.c:41:2: note: '?' condition is false
           if (!location)
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
           ^
   drivers/usb/typec/port-mapper.c:41:2: note: Taking false branch
           if (!location)
           ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   drivers/usb/typec/port-mapper.c:45:2: note: Loop condition is true.  
Entering loop body
           list_for_each_entry(adev, &location->devices, location_list) {
           ^
   include/linux/list.h:630:2: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
           ^
   drivers/usb/typec/port-mapper.c:46:15: note: Assuming the condition is false
                   if (adev == ACPI_COMPANION(&con->dev))
                               ^
   include/linux/acpi.h:43:30: note: expanded from macro 'ACPI_COMPANION'
   #define ACPI_COMPANION(dev)             to_acpi_device_node((dev)->fwnode)
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/acpi/acpi_bus.h:426:3: note: expanded from macro 
'to_acpi_device_node'
                   is_acpi_device_node(__to_acpi_device_node_fwnode) ?     \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))

vim +45 drivers/usb/typec/port-mapper.c

ae196ddb0d3186 Heikki Krogerus 2021-04-07  33  
447d4051cf4a7b Heikki Krogerus 2021-12-07  34  int typec_link_ports(struct 
typec_port *con)
ae196ddb0d3186 Heikki Krogerus 2021-04-07  35  {
447d4051cf4a7b Heikki Krogerus 2021-12-07  36   struct acpi_device_location 
*location;
447d4051cf4a7b Heikki Krogerus 2021-12-07  37   struct component_match *match = 
NULL;
447d4051cf4a7b Heikki Krogerus 2021-12-07  38   struct acpi_device *adev;
ae196ddb0d3186 Heikki Krogerus 2021-04-07  39  
447d4051cf4a7b Heikki Krogerus 2021-12-07  40   location = 
acpi_device_get_location(ACPI_COMPANION(&con->dev));
447d4051cf4a7b Heikki Krogerus 2021-12-07  41   if (!location)
ae196ddb0d3186 Heikki Krogerus 2021-04-07  42           return 0;
ae196ddb0d3186 Heikki Krogerus 2021-04-07  43  
447d4051cf4a7b Heikki Krogerus 2021-12-07  44   /* Component match for every 
device that shares the same _PLD. */
447d4051cf4a7b Heikki Krogerus 2021-12-07 @45   list_for_each_entry(adev, 
&location->devices, location_list) {
447d4051cf4a7b Heikki Krogerus 2021-12-07  46           if (adev == 
ACPI_COMPANION(&con->dev))
447d4051cf4a7b Heikki Krogerus 2021-12-07  47                   continue;
ae196ddb0d3186 Heikki Krogerus 2021-04-07  48  
447d4051cf4a7b Heikki Krogerus 2021-12-07  49           
component_match_add(&con->dev, &match, typec_port_compare,
447d4051cf4a7b Heikki Krogerus 2021-12-07  50                               
acpi_fwnode_handle(adev));
ae196ddb0d3186 Heikki Krogerus 2021-04-07  51   }
ae196ddb0d3186 Heikki Krogerus 2021-04-07  52  
447d4051cf4a7b Heikki Krogerus 2021-12-07  53   /*
447d4051cf4a7b Heikki Krogerus 2021-12-07  54    * REVISIT: Now each connector 
can have only a single component master.
447d4051cf4a7b Heikki Krogerus 2021-12-07  55    * So far only the USB ports 
connected to the USB Type-C connector share
447d4051cf4a7b Heikki Krogerus 2021-12-07  56    * the _PLD with it, but if 
there one day is something else (like maybe
447d4051cf4a7b Heikki Krogerus 2021-12-07  57    * the DisplayPort ACPI device 
object) that also shares the _PLD with
447d4051cf4a7b Heikki Krogerus 2021-12-07  58    * the connector, every one of 
those needs to have its own component
447d4051cf4a7b Heikki Krogerus 2021-12-07  59    * master, because each 
different type of component needs to be bind to
447d4051cf4a7b Heikki Krogerus 2021-12-07  60    * the connector independently 
of the other components. That requires
447d4051cf4a7b Heikki Krogerus 2021-12-07  61    * improvements to the 
component framework. Right now you can only have
447d4051cf4a7b Heikki Krogerus 2021-12-07  62    * one master per device.
ae196ddb0d3186 Heikki Krogerus 2021-04-07  63    */
ee64fc599b721c Heikki Krogerus 2021-04-07  64  
447d4051cf4a7b Heikki Krogerus 2021-12-07  65   return 
component_master_add_with_match(&con->dev, &typec_aggregate_ops, match);
ee64fc599b721c Heikki Krogerus 2021-04-07  66  }
ee64fc599b721c Heikki Krogerus 2021-04-07  67  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to