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]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
