CC: l...@lists.linux.dev
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: Linux Memory Management List <linux...@kvack.org>
TO: Luben Tuikov <luben.tui...@amd.com>
CC: Alex Deucher <alexander.deuc...@amd.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   a32cd981a6da2373c093d471ee4405a915e217d5
commit: a6c40b178092f41b9d6cc8615697c14b1e5a1c3a [5182/12845] drm/amdgpu: Show 
IP discovery in sysfs
:::::: branch date: 6 hours ago
:::::: commit date: 4 weeks ago
config: riscv-randconfig-c006-20220310 
(https://download.01.org/0day-ci/archive/20220316/202203160354.uzsrifrq-...@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
276ca87382b8f16a65bddac700202924228982f6)
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
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a6c40b178092f41b9d6cc8615697c14b1e5a1c3a
        git remote add linux-next 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout a6c40b178092f41b9d6cc8615697c14b1e5a1c3a
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
               ^~~~
   drivers/nvmem/core.c:1481:2: note: Taking false branch
           if (!buf)
           ^
   drivers/nvmem/core.c:1484:7: note: Calling '__nvmem_cell_read'
           rc = __nvmem_cell_read(nvmem, cell->entry, buf, len, cell->id);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvmem/core.c:1441:6: note: Assuming 'rc' is not equal to 0
           if (rc)
               ^~
   drivers/nvmem/core.c:1441:2: note: Taking true branch
           if (rc)
           ^
   drivers/nvmem/core.c:1484:7: note: Returning from '__nvmem_cell_read'
           rc = __nvmem_cell_read(nvmem, cell->entry, buf, len, cell->id);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvmem/core.c:1485:6: note: 'rc' is not equal to 0
           if (rc) {
               ^~
   drivers/nvmem/core.c:1485:2: note: Taking true branch
           if (rc) {
           ^
   drivers/nvmem/core.c:1691:8: note: Returning from 'nvmem_cell_read'
           buf = nvmem_cell_read(cell, len);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvmem/core.c:1693:6: note: Calling 'IS_ERR'
           if (IS_ERR(buf))
               ^~~~~~~~~~~
   include/linux/err.h:36:9: note: Assuming the condition is false
           return IS_ERR_VALUE((unsigned long)ptr);
                  ^
   include/linux/err.h:22:34: note: expanded from macro 'IS_ERR_VALUE'
   #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned 
long)-MAX_ERRNO)
                           
~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/err.h:36:2: note: Returning zero, which participates in a 
condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvmem/core.c:1693:6: note: Returning from 'IS_ERR'
           if (IS_ERR(buf))
               ^~~~~~~~~~~
   drivers/nvmem/core.c:1693:2: note: Taking false branch
           if (IS_ERR(buf))
           ^
   drivers/nvmem/core.c:1700:6: note: Assuming 'nbits' is 0
           if (nbits)
               ^~~~~
   drivers/nvmem/core.c:1700:2: note: Taking false branch
           if (nbits)
           ^
   drivers/nvmem/core.c:1703:11: note: The left operand of '>' is a garbage 
value
           if (*len > max_len) {
               ~~~~ ^
   Suppressed 4 warnings (4 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   8 warnings generated.
   Suppressed 8 warnings (8 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.
   8 warnings generated.
   Suppressed 8 warnings (8 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.
   9 warnings generated.
>> drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c:718:4: warning: Value stored 
>> to 'res' is never read [clang-analyzer-deadcode.DeadStores]
                           res = kobject_add(&ip_hw_instance->kobj, NULL,
                           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c:718:4: note: Value stored to 
'res' is never read
                           res = kobject_add(&ip_hw_instance->kobj, NULL,
                           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 8 warnings (8 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.
   8 warnings generated.
   Suppressed 8 warnings (8 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.
   8 warnings generated.
   Suppressed 8 warnings (8 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.
   10 warnings generated.
   drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu8_smumgr.c:96:2: 
warning: Value stored to 'elapsed_us' is never read 
[clang-analyzer-deadcode.DeadStores]
           elapsed_us = ktime_us_delta(ktime_get(), t_start);
           ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu8_smumgr.c:96:2: note: 
Value stored to 'elapsed_us' is never read
           elapsed_us = ktime_us_delta(ktime_get(), t_start);
           ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 9 warnings (9 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.
   Suppressed 3 warnings (3 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.
   Suppressed 3 warnings (3 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.
   18 warnings generated.
   drivers/gpu/drm/radeon/si.c:1814:4: warning: Value stored to 'err' is never 
read [clang-analyzer-deadcode.DeadStores]
                           err = -EINVAL;
                           ^     ~~~~~~~
   drivers/gpu/drm/radeon/si.c:1814:4: note: Value stored to 'err' is never read
                           err = -EINVAL;
                           ^     ~~~~~~~
   drivers/gpu/drm/radeon/si.c:1837:4: warning: Value stored to 'err' is never 
read [clang-analyzer-deadcode.DeadStores]
                           err = -EINVAL;
                           ^     ~~~~~~~
   drivers/gpu/drm/radeon/si.c:1837:4: note: Value stored to 'err' is never read
                           err = -EINVAL;
                           ^     ~~~~~~~
   drivers/gpu/drm/radeon/si.c:1860:4: warning: Value stored to 'err' is never 
read [clang-analyzer-deadcode.DeadStores]
                           err = -EINVAL;
                           ^     ~~~~~~~
   drivers/gpu/drm/radeon/si.c:1860:4: note: Value stored to 'err' is never read
                           err = -EINVAL;
                           ^     ~~~~~~~
   drivers/gpu/drm/radeon/si.c:1891:4: warning: Value stored to 'err' is never 
read [clang-analyzer-deadcode.DeadStores]
                           err = -EINVAL;
                           ^     ~~~~~~~
   drivers/gpu/drm/radeon/si.c:1891:4: note: Value stored to 'err' is never read
                           err = -EINVAL;
                           ^     ~~~~~~~
   drivers/gpu/drm/radeon/si.c:3613:3: warning: Value stored to 'r' is never 
read [clang-analyzer-deadcode.DeadStores]
                   r = radeon_ring_lock(rdev, ring, 2);
                   ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/radeon/si.c:3613:3: note: Value stored to 'r' is never read
                   r = radeon_ring_lock(rdev, ring, 2);
                   ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/radeon/si.c:3956:3: warning: Value stored to 'tmp' is never 
read [clang-analyzer-deadcode.DeadStores]
                   tmp = RREG32(GRBM_SOFT_RESET);
                   ^
   drivers/gpu/drm/radeon/si.c:3956:3: note: Value stored to 'tmp' is never read
   drivers/gpu/drm/radeon/si.c:3970:3: warning: Value stored to 'tmp' is never 
read [clang-analyzer-deadcode.DeadStores]
                   tmp = RREG32(SRBM_SOFT_RESET);
                   ^
   drivers/gpu/drm/radeon/si.c:3970:3: note: Value stored to 'tmp' is never read
   drivers/gpu/drm/radeon/si.c:5155:3: warning: Value stored to 'tmp' is never 
read [clang-analyzer-deadcode.DeadStores]
                   tmp = RREG32(DB_DEPTH_INFO);
                   ^
   drivers/gpu/drm/radeon/si.c:5155:3: note: Value stored to 'tmp' is never read
   drivers/gpu/drm/radeon/si.c:5270:3: warning: Value stored to 'tmp' is never 
read [clang-analyzer-deadcode.DeadStores]
                   tmp = RREG32(DB_RENDER_CONTROL);
                   ^
   drivers/gpu/drm/radeon/si.c:5270:3: note: Value stored to 'tmp' is never read
   drivers/gpu/drm/radeon/si.c:5396:10: warning: Although the value stored to 
'data' is used in the enclosing expression, the value is never actually read 
from 'data' [clang-analyzer-deadcode.DeadStores]
                   orig = data = RREG32(CGTS_SM_CTRL_REG);
                          ^
   drivers/gpu/drm/radeon/si.c:5396:10: note: Although the value stored to 
'data' is used in the enclosing expression, the value is never actually read 
from 'data'
   drivers/gpu/drm/radeon/si.c:5554:11: warning: Although the value stored to 
'data' is used in the enclosing expression, the value is never actually read 
from 'data' [clang-analyzer-deadcode.DeadStores]
                           orig = data = RREG32(DMA_CLK_CTRL + offset);
                                  ^
   drivers/gpu/drm/radeon/si.c:5554:11: note: Although the value stored to 
'data' is used in the enclosing expression, the value is never actually read 
from 'data'
   drivers/gpu/drm/radeon/si.c:6824:22: warning: Value stored to 'ring' during 
its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct radeon_ring *ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX];
                               ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/radeon/si.c:6824:22: note: Value stored to 'ring' during its 
initialization is never read
           struct radeon_ring *ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX];
                               ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 6 warnings (6 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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.

vim +/res +718 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c

a6c40b178092f41 Luben Tuikov 2022-02-03  639  
a6c40b178092f41 Luben Tuikov 2022-02-03  640  static int 
amdgpu_discovery_sysfs_ips(struct amdgpu_device *adev,
a6c40b178092f41 Luben Tuikov 2022-02-03  641                                  
struct ip_die_entry *ip_die_entry,
a6c40b178092f41 Luben Tuikov 2022-02-03  642                                  
const size_t _ip_offset, const int num_ips)
a6c40b178092f41 Luben Tuikov 2022-02-03  643  {
a6c40b178092f41 Luben Tuikov 2022-02-03  644    int ii, jj, kk, res;
a6c40b178092f41 Luben Tuikov 2022-02-03  645  
a6c40b178092f41 Luben Tuikov 2022-02-03  646    DRM_DEBUG("num_ips:%d", 
num_ips);
a6c40b178092f41 Luben Tuikov 2022-02-03  647  
a6c40b178092f41 Luben Tuikov 2022-02-03  648    /* Find all IPs of a given HW 
ID, and add their instance to
a6c40b178092f41 Luben Tuikov 2022-02-03  649     * 
#die/#hw_id/#instance/<attributes>
a6c40b178092f41 Luben Tuikov 2022-02-03  650     */
a6c40b178092f41 Luben Tuikov 2022-02-03  651    for (ii = 0; ii < HW_ID_MAX; 
ii++) {
a6c40b178092f41 Luben Tuikov 2022-02-03  652            struct ip_hw_id 
*ip_hw_id = NULL;
a6c40b178092f41 Luben Tuikov 2022-02-03  653            size_t ip_offset = 
_ip_offset;
a6c40b178092f41 Luben Tuikov 2022-02-03  654  
a6c40b178092f41 Luben Tuikov 2022-02-03  655            for (jj = 0; jj < 
num_ips; jj++) {
a6c40b178092f41 Luben Tuikov 2022-02-03  656                    struct ip *ip;
a6c40b178092f41 Luben Tuikov 2022-02-03  657                    struct 
ip_hw_instance *ip_hw_instance;
a6c40b178092f41 Luben Tuikov 2022-02-03  658  
a6c40b178092f41 Luben Tuikov 2022-02-03  659                    ip = (struct ip 
*)(adev->mman.discovery_bin + ip_offset);
a6c40b178092f41 Luben Tuikov 2022-02-03  660                    if 
(amdgpu_discovery_validate_ip(ip) ||
a6c40b178092f41 Luben Tuikov 2022-02-03  661                        
le16_to_cpu(ip->hw_id) != ii)
a6c40b178092f41 Luben Tuikov 2022-02-03  662                            goto 
next_ip;
a6c40b178092f41 Luben Tuikov 2022-02-03  663  
a6c40b178092f41 Luben Tuikov 2022-02-03  664                    
DRM_DEBUG("match:%d @ ip_offset:%ld", ii, ip_offset);
a6c40b178092f41 Luben Tuikov 2022-02-03  665  
a6c40b178092f41 Luben Tuikov 2022-02-03  666                    /* We have a 
hw_id match; register the hw
a6c40b178092f41 Luben Tuikov 2022-02-03  667                     * block if not 
yet registered.
a6c40b178092f41 Luben Tuikov 2022-02-03  668                     */
a6c40b178092f41 Luben Tuikov 2022-02-03  669                    if (!ip_hw_id) {
a6c40b178092f41 Luben Tuikov 2022-02-03  670                            
ip_hw_id = kzalloc(sizeof(*ip_hw_id), GFP_KERNEL);
a6c40b178092f41 Luben Tuikov 2022-02-03  671                            if 
(!ip_hw_id)
a6c40b178092f41 Luben Tuikov 2022-02-03  672                                    
return -ENOMEM;
a6c40b178092f41 Luben Tuikov 2022-02-03  673                            
ip_hw_id->hw_id = ii;
a6c40b178092f41 Luben Tuikov 2022-02-03  674  
a6c40b178092f41 Luben Tuikov 2022-02-03  675                            
kobject_set_name(&ip_hw_id->hw_id_kset.kobj, "%d", ii);
a6c40b178092f41 Luben Tuikov 2022-02-03  676                            
ip_hw_id->hw_id_kset.kobj.kset = &ip_die_entry->ip_kset;
a6c40b178092f41 Luben Tuikov 2022-02-03  677                            
ip_hw_id->hw_id_kset.kobj.ktype = &ip_hw_id_ktype;
a6c40b178092f41 Luben Tuikov 2022-02-03  678                            res = 
kset_register(&ip_hw_id->hw_id_kset);
a6c40b178092f41 Luben Tuikov 2022-02-03  679                            if 
(res) {
a6c40b178092f41 Luben Tuikov 2022-02-03  680                                    
DRM_ERROR("Couldn't register ip_hw_id kset");
a6c40b178092f41 Luben Tuikov 2022-02-03  681                                    
kfree(ip_hw_id);
a6c40b178092f41 Luben Tuikov 2022-02-03  682                                    
return res;
a6c40b178092f41 Luben Tuikov 2022-02-03  683                            }
a6c40b178092f41 Luben Tuikov 2022-02-03  684                            if 
(hw_id_names[ii]) {
a6c40b178092f41 Luben Tuikov 2022-02-03  685                                    
res = sysfs_create_link(&ip_die_entry->ip_kset.kobj,
a6c40b178092f41 Luben Tuikov 2022-02-03  686                                    
                        &ip_hw_id->hw_id_kset.kobj,
a6c40b178092f41 Luben Tuikov 2022-02-03  687                                    
                        hw_id_names[ii]);
a6c40b178092f41 Luben Tuikov 2022-02-03  688                                    
if (res) {
a6c40b178092f41 Luben Tuikov 2022-02-03  689                                    
        DRM_ERROR("Couldn't create IP link %s in IP Die:%s\n",
a6c40b178092f41 Luben Tuikov 2022-02-03  690                                    
                  hw_id_names[ii],
a6c40b178092f41 Luben Tuikov 2022-02-03  691                                    
                  kobject_name(&ip_die_entry->ip_kset.kobj));
a6c40b178092f41 Luben Tuikov 2022-02-03  692                                    
}
a6c40b178092f41 Luben Tuikov 2022-02-03  693                            }
a6c40b178092f41 Luben Tuikov 2022-02-03  694                    }
a6c40b178092f41 Luben Tuikov 2022-02-03  695  
a6c40b178092f41 Luben Tuikov 2022-02-03  696                    /* Now register 
its instance.
a6c40b178092f41 Luben Tuikov 2022-02-03  697                     */
a6c40b178092f41 Luben Tuikov 2022-02-03  698                    ip_hw_instance 
= kzalloc(struct_size(ip_hw_instance,
a6c40b178092f41 Luben Tuikov 2022-02-03  699                                    
                     base_addr,
a6c40b178092f41 Luben Tuikov 2022-02-03  700                                    
                     ip->num_base_address),
a6c40b178092f41 Luben Tuikov 2022-02-03  701                                    
         GFP_KERNEL);
a6c40b178092f41 Luben Tuikov 2022-02-03  702                    if 
(!ip_hw_instance) {
a6c40b178092f41 Luben Tuikov 2022-02-03  703                            
DRM_ERROR("no memory for ip_hw_instance");
a6c40b178092f41 Luben Tuikov 2022-02-03  704                            return 
-ENOMEM;
a6c40b178092f41 Luben Tuikov 2022-02-03  705                    }
a6c40b178092f41 Luben Tuikov 2022-02-03  706                    
ip_hw_instance->hw_id = le16_to_cpu(ip->hw_id); /* == ii */
a6c40b178092f41 Luben Tuikov 2022-02-03  707                    
ip_hw_instance->num_instance = ip->number_instance;
a6c40b178092f41 Luben Tuikov 2022-02-03  708                    
ip_hw_instance->major = ip->major;
a6c40b178092f41 Luben Tuikov 2022-02-03  709                    
ip_hw_instance->minor = ip->minor;
a6c40b178092f41 Luben Tuikov 2022-02-03  710                    
ip_hw_instance->revision = ip->revision;
a6c40b178092f41 Luben Tuikov 2022-02-03  711                    
ip_hw_instance->num_base_addresses = ip->num_base_address;
a6c40b178092f41 Luben Tuikov 2022-02-03  712  
a6c40b178092f41 Luben Tuikov 2022-02-03  713                    for (kk = 0; kk 
< ip_hw_instance->num_base_addresses; kk++)
a6c40b178092f41 Luben Tuikov 2022-02-03  714                            
ip_hw_instance->base_addr[kk] = ip->base_address[kk];
a6c40b178092f41 Luben Tuikov 2022-02-03  715  
a6c40b178092f41 Luben Tuikov 2022-02-03  716                    
kobject_init(&ip_hw_instance->kobj, &ip_hw_instance_ktype);
a6c40b178092f41 Luben Tuikov 2022-02-03  717                    
ip_hw_instance->kobj.kset = &ip_hw_id->hw_id_kset;
a6c40b178092f41 Luben Tuikov 2022-02-03 @718                    res = 
kobject_add(&ip_hw_instance->kobj, NULL,
a6c40b178092f41 Luben Tuikov 2022-02-03  719                                    
  "%d", ip_hw_instance->num_instance);
a6c40b178092f41 Luben Tuikov 2022-02-03  720  next_ip:
a6c40b178092f41 Luben Tuikov 2022-02-03  721                    ip_offset += 
sizeof(*ip) + 4 * (ip->num_base_address - 1);
a6c40b178092f41 Luben Tuikov 2022-02-03  722            }
a6c40b178092f41 Luben Tuikov 2022-02-03  723    }
a6c40b178092f41 Luben Tuikov 2022-02-03  724  
a6c40b178092f41 Luben Tuikov 2022-02-03  725    return 0;
a6c40b178092f41 Luben Tuikov 2022-02-03  726  }
a6c40b178092f41 Luben Tuikov 2022-02-03  727  

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to