CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Thomas Zimmermann <[email protected]>
CC: Sam Ravnborg <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   6b75d88fa81b122cce37ebf17428a849ccd3d0f1
commit: 1d46491d4a08d7ee657e09808f87d169444a2652 drm/fb-helper: Move damage 
blit code and its setup into separate routine
date:   12 months ago
:::::: branch date: 8 hours ago
:::::: commit date: 12 months ago
config: mips-randconfig-c004-20210928 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
dc6e8dfdfe7efecfda318d43a06fae18b40eb498)
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 mips cross compiling tool for clang build
        # apt-get install binutils-mips-linux-gnu
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1d46491d4a08d7ee657e09808f87d169444a2652
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 1d46491d4a08d7ee657e09808f87d169444a2652
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips 
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/mfd/twl-core.c:1168:28: note: Assuming 'pdata' is null
           clocks_init(&client->dev, pdata ? pdata->clock : NULL);
                                     ^~~~~
   drivers/mfd/twl-core.c:1168:28: note: '?' condition is false
   drivers/mfd/twl-core.c:1168:2: note: Calling 'clocks_init'
           clocks_init(&client->dev, pdata ? pdata->clock : NULL);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mfd/twl-core.c:998:8: note: Value assigned to field 'irq', which 
participates in a condition later
           osc = clk_get(dev, "fck");
                 ^~~~~~~~~~~~~~~~~~~
   drivers/mfd/twl-core.c:999:2: note: Taking true branch
           if (IS_ERR(osc)) {
           ^
   drivers/mfd/twl-core.c:1168:2: note: Returning from 'clocks_init'
           clocks_init(&client->dev, pdata ? pdata->clock : NULL);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mfd/twl-core.c:1171:2: note: Taking false branch
           if (twl_class_is_4030()) {
           ^
   drivers/mfd/twl-core.c:1177:6: note: Assuming field 'irq' is not equal to 0
           if (client->irq) {
               ^~~~~~~~~~~
   drivers/mfd/twl-core.c:1177:2: note: Taking true branch
           if (client->irq) {
           ^
   drivers/mfd/twl-core.c:1178:3: note: Taking false branch
                   if (twl_class_is_4030()) {
                   ^
   drivers/mfd/twl-core.c:1185:7: note: Assuming 'irq_base' is >= 0
                   if (irq_base < 0) {
                       ^~~~~~~~~~~~
   drivers/mfd/twl-core.c:1185:3: note: Taking false branch
                   if (irq_base < 0) {
                   ^
   drivers/mfd/twl-core.c:1201:6: note: Calling 'twl_class_is_4030'
           if (twl_class_is_4030()) {
               ^~~~~~~~~~~~~~~~~~~
   include/linux/mfd/twl.h:160:1: note: Assuming the condition is true
   TWL_CLASS_IS(4030, TWL4030_CLASS_ID)
   ^
   include/linux/mfd/twl.h:157:10: note: expanded from macro 'TWL_CLASS_IS'
           return ((id) == (GET_TWL_REV)) ? 1 : 0; \
                   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/mfd/twl.h:160:1: note: '?' condition is true
   TWL_CLASS_IS(4030, TWL4030_CLASS_ID)
   ^
   include/linux/mfd/twl.h:157:9: note: expanded from macro 'TWL_CLASS_IS'
           return ((id) == (GET_TWL_REV)) ? 1 : 0; \
                  ^
   include/linux/mfd/twl.h:160:1: note: Returning the value 1, which 
participates in a condition later
   TWL_CLASS_IS(4030, TWL4030_CLASS_ID)
   ^
   include/linux/mfd/twl.h:157:2: note: expanded from macro 'TWL_CLASS_IS'
           return ((id) == (GET_TWL_REV)) ? 1 : 0; \
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mfd/twl-core.c:1201:6: note: Returning from 'twl_class_is_4030'
           if (twl_class_is_4030()) {
               ^~~~~~~~~~~~~~~~~~~
   drivers/mfd/twl-core.c:1201:2: note: Taking true branch
           if (twl_class_is_4030()) {
           ^
   drivers/mfd/twl-core.c:1202:3: note: 'temp' declared without an initial value
                   u8 temp;
                   ^~~~~~~
   drivers/mfd/twl-core.c:1204:3: note: Calling 'twl_i2c_read_u8'
                   twl_i2c_read_u8(TWL4030_MODULE_INTBR, &temp, REG_GPPUPDCTR1);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/mfd/twl.h:180:9: note: Calling 'twl_i2c_read'
           return twl_i2c_read(mod_no, val, reg, 1);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mfd/twl-core.c:473:7: note: 'regmap' is null
           if (!regmap)
                ^~~~~~
   drivers/mfd/twl-core.c:473:2: note: Taking true branch
           if (!regmap)
           ^
   drivers/mfd/twl-core.c:474:3: note: Returning without writing to '*value'
                   return -EPERM;
                   ^
   include/linux/mfd/twl.h:180:9: note: Returning from 'twl_i2c_read'
           return twl_i2c_read(mod_no, val, reg, 1);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/mfd/twl.h:180:2: note: Returning without writing to '*val'
           return twl_i2c_read(mod_no, val, reg, 1);
           ^
   drivers/mfd/twl-core.c:1204:3: note: Returning from 'twl_i2c_read_u8'
                   twl_i2c_read_u8(TWL4030_MODULE_INTBR, &temp, REG_GPPUPDCTR1);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mfd/twl-core.c:1205:8: note: The left expression of the compound 
assignment is an uninitialized value. The computed value will also be garbage
                   temp &= ~(SR_I2C_SDA_CTRL_PU | SR_I2C_SCL_CTRL_PU | \
                   ~~~~ ^
   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.
   drivers/gpu/drm/drm_fb_helper.c:156:24: warning: Value stored to 'helper' 
during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct drm_fb_helper *helper = info->par;
                                 ^~~~~~   ~~~~~~~~~
   drivers/gpu/drm/drm_fb_helper.c:156:24: note: Value stored to 'helper' 
during its initialization is never read
           struct drm_fb_helper *helper = info->par;
                                 ^~~~~~   ~~~~~~~~~
>> drivers/gpu/drm/drm_fb_helper.c:416:21: warning: Value stored to 'dev' 
>> during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct drm_device *dev = helper->dev;
                              ^~~   ~~~~~~~~~~~
   drivers/gpu/drm/drm_fb_helper.c:416:21: note: Value stored to 'dev' during 
its initialization is never read
           struct drm_device *dev = helper->dev;
                              ^~~   ~~~~~~~~~~~
   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.
   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.
   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/gpu/drm/selftests/test-drm_mm.c:2181:2: warning: Use of memory after 
it is freed [clang-analyzer-unix.Malloc]
           drm_mm_for_each_node_safe(node, nn, &mm) {
           ^
   include/drm/drm_mm.h:374:2: note: expanded from macro 
'drm_mm_for_each_node_safe'
           list_for_each_entry_safe(entry, next, drm_mm_nodes(mm), node_list)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:716:7: note: expanded from macro 
'list_for_each_entry_safe'
                   n = list_next_entry(pos, member);                       \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:555:2: note: expanded from macro 'list_next_entry'
           list_entry((pos)->member.next, typeof(*(pos)), member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:852:25: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                  ^~~~~
   drivers/gpu/drm/selftests/test-drm_mm.c:2034:29: note: Assuming 
'__UNIQUE_ID___x319' is >= '__UNIQUE_ID___y320'
           const unsigned int count = min(4096u, max_iterations);
                                      ^
   include/linux/minmax.h:51:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:44:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:39:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:34:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^~~~~~~~~~
   drivers/gpu/drm/selftests/test-drm_mm.c:2034:29: note: '?' condition is false
           const unsigned int count = min(4096u, max_iterations);
                                      ^
   include/linux/minmax.h:51:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^
   include/linux/minmax.h:44:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:39:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:34:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   drivers/gpu/drm/selftests/test-drm_mm.c:2050:14: note: Assuming 'n' is > 
'count'
           for (n = 1; n <= count; n++) {
                       ^~~~~~~~~~
   drivers/gpu/drm/selftests/test-drm_mm.c:2050:2: note: Loop condition is 
false. Execution continues on line 2066
           for (n = 1; n <= count; n++) {
           ^
   drivers/gpu/drm/selftests/test-drm_mm.c:2066:2: note: Left side of '&&' is 
false
           drm_mm_for_each_node_safe(node, nn, &mm) {
           ^
   include/drm/drm_mm.h:374:2: note: expanded from macro 
'drm_mm_for_each_node_safe'
           list_for_each_entry_safe(entry, next, drm_mm_nodes(mm), node_list)
           ^
   include/linux/list.h:715:13: note: expanded from macro 
'list_for_each_entry_safe'
           for (pos = list_first_entry(head, typeof(*pos), member),        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:853:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/gpu/drm/selftests/test-drm_mm.c:2066:2: note: Taking false branch
           drm_mm_for_each_node_safe(node, nn, &mm) {
           ^
   include/drm/drm_mm.h:374:2: note: expanded from macro 
'drm_mm_for_each_node_safe'
           list_for_each_entry_safe(entry, next, drm_mm_nodes(mm), node_list)
           ^
   include/linux/list.h:715:13: note: expanded from macro 
'list_for_each_entry_safe'
           for (pos = list_first_entry(head, typeof(*pos), member),        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to 
see all)
   include/linux/compiler_types.h:319:2: note: expanded from macro 
'compiletime_assert'
--
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/cardreader/rtsx_usb.c:291:7: note: 'status' is non-null
           if (!status)
                ^~~~~~
   drivers/misc/cardreader/rtsx_usb.c:291:2: note: Taking false branch
           if (!status)
           ^
   drivers/misc/cardreader/rtsx_usb.c:294:6: note: Assuming 'polling_pipe' is 
not equal to 0
           if (polling_pipe == 0) {
               ^~~~~~~~~~~~~~~~~
   drivers/misc/cardreader/rtsx_usb.c:294:2: note: Taking false branch
           if (polling_pipe == 0) {
           ^
   drivers/misc/cardreader/rtsx_usb.c:308:9: note: Calling 
'rtsx_usb_get_status_with_bulk'
                   ret = rtsx_usb_get_status_with_bulk(ucr, status);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/cardreader/rtsx_usb.c:273:6: note: 'ret' is 0
           if (ret)
               ^~~
   drivers/misc/cardreader/rtsx_usb.c:273:2: note: Taking false branch
           if (ret)
           ^
   drivers/misc/cardreader/rtsx_usb.c:277:6: note: Assuming 'ret' is not equal 
to 0
           if (ret)
               ^~~
   drivers/misc/cardreader/rtsx_usb.c:277:2: note: Taking true branch
           if (ret)
           ^
   drivers/misc/cardreader/rtsx_usb.c:278:3: note: Returning without writing to 
'*status'
                   return ret;
                   ^
   drivers/misc/cardreader/rtsx_usb.c:308:9: note: Returning from 
'rtsx_usb_get_status_with_bulk'
                   ret = rtsx_usb_get_status_with_bulk(ucr, status);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/cardreader/rtsx_usb.c:312:6: note: Assuming 'ret' is >= 0
           if (ret < 0)
               ^~~~~~~
   drivers/misc/cardreader/rtsx_usb.c:312:2: note: Taking false branch
           if (ret < 0)
           ^
   drivers/misc/cardreader/rtsx_usb.c:315:2: note: Returning without writing to 
'*status'
           return 0;
           ^
   drivers/misc/cardreader/rtsx_usb.c:315:2: note: Returning zero, which 
participates in a condition later
           return 0;
           ^~~~~~~~
   drivers/misc/cardreader/rtsx_usb.c:497:8: note: Returning from 
'rtsx_usb_get_card_status'
           ret = rtsx_usb_get_card_status(ucr, &val);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/misc/cardreader/rtsx_usb.c:502:6: note: 'ret' is 0
           if (ret)
               ^~~
   drivers/misc/cardreader/rtsx_usb.c:502:2: note: Taking false branch
           if (ret)
           ^
   drivers/misc/cardreader/rtsx_usb.c:505:10: note: The left operand of '&' is 
a garbage value
           if (val & cd_mask[card])
               ~~~ ^
   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.
   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.
   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.
   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.
   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.
   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.
   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/gpu/drm/drm_self_refresh_helper.c:85:3: warning: Value stored to 
'ret' is never read [clang-analyzer-deadcode.DeadStores]
                   ret = -ENOMEM;
                   ^     ~~~~~~~
   drivers/gpu/drm/drm_self_refresh_helper.c:85:3: note: Value stored to 'ret' 
is never read
                   ret = -ENOMEM;
                   ^     ~~~~~~~
   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.
   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.
   3 warnings generated.
   drivers/gpu/drm/drm_fb_helper.c:156:24: warning: Value stored to 'helper' 
during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct drm_fb_helper *helper = info->par;
                                 ^~~~~~   ~~~~~~~~~
   drivers/gpu/drm/drm_fb_helper.c:156:24: note: Value stored to 'helper' 
during its initialization is never read
           struct drm_fb_helper *helper = info->par;
                                 ^~~~~~   ~~~~~~~~~
>> drivers/gpu/drm/drm_fb_helper.c:416:21: warning: Value stored to 'dev' 
>> during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct drm_device *dev = helper->dev;
                              ^~~   ~~~~~~~~~~~
   drivers/gpu/drm/drm_fb_helper.c:416:21: note: Value stored to 'dev' during 
its initialization is never read
           struct drm_device *dev = helper->dev;
                              ^~~   ~~~~~~~~~~~
   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.
   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.
   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/gpu/drm/selftests/test-drm_mm.c:2181:2: warning: Use of memory after 
it is freed [clang-analyzer-unix.Malloc]
           drm_mm_for_each_node_safe(node, nn, &mm) {
           ^
   include/drm/drm_mm.h:374:2: note: expanded from macro 
'drm_mm_for_each_node_safe'
           list_for_each_entry_safe(entry, next, drm_mm_nodes(mm), node_list)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:716:7: note: expanded from macro 
'list_for_each_entry_safe'
                   n = list_next_entry(pos, member);                       \
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:555:2: note: expanded from macro 'list_next_entry'
           list_entry((pos)->member.next, typeof(*(pos)), member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:852:25: note: expanded from macro 'container_of'
           void *__mptr = (void *)(ptr);                                   \
                                  ^~~~~
   drivers/gpu/drm/selftests/test-drm_mm.c:2034:29: note: Assuming 
'__UNIQUE_ID___x319' is >= '__UNIQUE_ID___y320'
           const unsigned int count = min(4096u, max_iterations);
                                      ^
   include/linux/minmax.h:51:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:44:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:39:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:34:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^~~~~~~~~~
   drivers/gpu/drm/selftests/test-drm_mm.c:2034:29: note: '?' condition is false
           const unsigned int count = min(4096u, max_iterations);
                                      ^
   include/linux/minmax.h:51:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^
   include/linux/minmax.h:44:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:39:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:34:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   drivers/gpu/drm/selftests/test-drm_mm.c:2050:14: note: Assuming 'n' is > 
'count'
           for (n = 1; n <= count; n++) {
                       ^~~~~~~~~~
   drivers/gpu/drm/selftests/test-drm_mm.c:2050:2: note: Loop condition is 
false. Execution continues on line 2066
           for (n = 1; n <= count; n++) {
           ^
   drivers/gpu/drm/selftests/test-drm_mm.c:2066:2: note: Left side of '&&' is 
false
           drm_mm_for_each_node_safe(node, nn, &mm) {
           ^
   include/drm/drm_mm.h:374:2: note: expanded from macro 
'drm_mm_for_each_node_safe'
           list_for_each_entry_safe(entry, next, drm_mm_nodes(mm), node_list)
           ^
   include/linux/list.h:715:13: note: expanded from macro 
'list_for_each_entry_safe'
           for (pos = list_first_entry(head, typeof(*pos), member),        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:853:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/gpu/drm/selftests/test-drm_mm.c:2066:2: note: Taking false branch
           drm_mm_for_each_node_safe(node, nn, &mm) {
           ^
   include/drm/drm_mm.h:374:2: note: expanded from macro 
'drm_mm_for_each_node_safe'
           list_for_each_entry_safe(entry, next, drm_mm_nodes(mm), node_list)
           ^
   include/linux/list.h:715:13: note: expanded from macro 
'list_for_each_entry_safe'
           for (pos = list_first_entry(head, typeof(*pos), member),        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to 
see all)
   include/linux/compiler_types.h:319:2: note: expanded from macro 
'compiletime_assert'

vim +/dev +416 drivers/gpu/drm/drm_fb_helper.c

1d46491d4a08d7 Thomas Zimmermann 2020-11-20  411  
9622349ea1b623 Thomas Zimmermann 2020-11-20  412  static void 
drm_fb_helper_damage_work(struct work_struct *work)
eaa434defaca17 Noralf Trønnes    2016-04-28  413  {
eaa434defaca17 Noralf Trønnes    2016-04-28  414        struct drm_fb_helper 
*helper = container_of(work, struct drm_fb_helper,
9622349ea1b623 Thomas Zimmermann 2020-11-20  415                                
                    damage_work);
1d46491d4a08d7 Thomas Zimmermann 2020-11-20 @416        struct drm_device *dev 
= helper->dev;
9622349ea1b623 Thomas Zimmermann 2020-11-20  417        struct drm_clip_rect 
*clip = &helper->damage_clip;
eaa434defaca17 Noralf Trønnes    2016-04-28  418        struct drm_clip_rect 
clip_copy;
eaa434defaca17 Noralf Trønnes    2016-04-28  419        unsigned long flags;
a85955568939e2 Thomas Zimmermann 2020-11-03  420        int ret;
eaa434defaca17 Noralf Trønnes    2016-04-28  421  
9622349ea1b623 Thomas Zimmermann 2020-11-20  422        
spin_lock_irqsave(&helper->damage_lock, flags);
eaa434defaca17 Noralf Trønnes    2016-04-28  423        clip_copy = *clip;
eaa434defaca17 Noralf Trønnes    2016-04-28  424        clip->x1 = clip->y1 = 
~0;
eaa434defaca17 Noralf Trønnes    2016-04-28  425        clip->x2 = clip->y2 = 0;
9622349ea1b623 Thomas Zimmermann 2020-11-20  426        
spin_unlock_irqrestore(&helper->damage_lock, flags);
eaa434defaca17 Noralf Trønnes    2016-04-28  427  
2b5f31aaa8d10b Thomas Zimmermann 2020-11-20  428        /* Call damage handlers 
only if necessary */
2b5f31aaa8d10b Thomas Zimmermann 2020-11-20  429        if (!(clip_copy.x1 < 
clip_copy.x2 && clip_copy.y1 < clip_copy.y2))
2b5f31aaa8d10b Thomas Zimmermann 2020-11-20  430                return;
cf1ca9aeb930df Thomas Zimmermann 2019-07-03  431  
cf1ca9aeb930df Thomas Zimmermann 2019-07-03  432        if (helper->buffer) {
1d46491d4a08d7 Thomas Zimmermann 2020-11-20  433                ret = 
drm_fb_helper_damage_blit(helper, &clip_copy);
1d46491d4a08d7 Thomas Zimmermann 2020-11-20  434                if 
(drm_WARN_ONCE(dev, ret, "Damage blitter failed: ret=%d\n", ret))
cf1ca9aeb930df Thomas Zimmermann 2019-07-03  435                        return;
cf1ca9aeb930df Thomas Zimmermann 2019-07-03  436        }
222ec45f4c69df Thomas Zimmermann 2020-11-03  437  
f458579ede0b72 Thomas Zimmermann 2019-07-05  438        if 
(helper->fb->funcs->dirty)
2b5f31aaa8d10b Thomas Zimmermann 2020-11-20  439                
helper->fb->funcs->dirty(helper->fb, NULL, 0, 0, &clip_copy, 1);
eaa434defaca17 Noralf Trønnes    2016-04-28  440  }
eaa434defaca17 Noralf Trønnes    2016-04-28  441  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to