I don't know what to do with this.  IMHO the warning is useless in this 
particular case. It happens only on a few targets and depends on the 
kernel config, etc.

If the condition is always false in some cases then so be it. The 
compiler can optimize the unneeded code away I'm sure.

On Mon, 15 Jun 2020, kernel test robot wrote:

> Hi Nicolas,
> 
> FYI, the error/warning still remains.
> 
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   f82e7b57b5fc48199e2f26ffafe2f96f7338ad3d
> commit: 2717769e204e83e65b8819c5e2ef3e5b6639b270 vt: don't hardcode the mem 
> allocation upper bound
> date:   7 weeks ago
> :::::: branch date: 2 hours ago
> :::::: commit date: 7 weeks ago
> config: ia64-randconfig-r024-20200614 (attached as .config)
> compiler: ia64-linux-gcc (GCC) 9.3.0
> 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
>         git checkout 2717769e204e83e65b8819c5e2ef3e5b6639b270
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross 
> ARCH=ia64 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <[email protected]>
> 
> All warnings (new ones prefixed by >>, old ones prefixed by <<):
> 
> drivers/tty/vt/vt.c: In function 'vc_do_resize':
> >> drivers/tty/vt/vt.c:1210:22: warning: comparison is always false due to 
> >> limited range of data type [-Wtype-limits]
> 1210 |  if (new_screen_size > KMALLOC_MAX_SIZE)
> |                      ^
> 
> # 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2717769e204e83e65b8819c5e2ef3e5b6639b270
> git remote add linus 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git remote update linus
> git checkout 2717769e204e83e65b8819c5e2ef3e5b6639b270
> vim +1210 drivers/tty/vt/vt.c
> 
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1163  
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1164  /**
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1165   *   
> vc_do_resize    -       resizing method for the tty
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1166   *   
> @tty: tty being resized
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1167   *   
> @real_tty: real tty (different to tty if a pty/tty pair)
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1168   *   
> @vc: virtual console private data
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1169   *   
> @cols: columns
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1170   *   
> @lines: lines
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1171   *
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1172   *   
> Resize a virtual console, clipping according to the actual constraints.
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1173   *   
> If the caller passes a tty structure then update the termios winsize
> 3ad2f3fbb96142 drivers/char/vt.c   Daniel Mack         2010-02-03  1174   *   
> information and perform any necessary signal handling.
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1175   *
> 6a1c0680cf3ba9 drivers/tty/vt/vt.c Peter Hurley        2013-06-15  1176   *   
> Caller must hold the console semaphore. Takes the termios rwsem and
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1177   *   
> ctrl_lock of the tty IFF a tty is passed.
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1178   */
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1179  
> fc6f6238226e6d drivers/char/vt.c   Alan Cox            2009-01-02  1180  
> static int vc_do_resize(struct tty_struct *tty, struct vc_data *vc,
> fc6f6238226e6d drivers/char/vt.c   Alan Cox            2009-01-02  1181       
>                         unsigned int cols, unsigned int lines)
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1182  {
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1183       
> unsigned long old_origin, new_origin, new_scr_end, rlth, rrem, err = 0;
> 9e0ba741aabdf1 drivers/char/vt.c   qiaochong           2010-08-09  1184       
> unsigned long end;
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1185       
> unsigned int old_rows, old_row_size, first_copied_row;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1186       
> unsigned int new_cols, new_rows, new_row_size, new_screen_size;
> 9e0ba741aabdf1 drivers/char/vt.c   qiaochong           2010-08-09  1187       
> unsigned int user;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1188       
> unsigned short *newscreen;
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1189       
> struct uni_screen *new_uniscr = NULL;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1190  
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1191       
> WARN_CONSOLE_UNLOCKED();
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1192  
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1193       
> if (!vc)
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1194       
>         return -ENXIO;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1195  
> e400b6ec4ede4d drivers/char/vt.c   Antonino A. Daplas  2007-10-16  1196       
> user = vc->vc_resize_user;
> e400b6ec4ede4d drivers/char/vt.c   Antonino A. Daplas  2007-10-16  1197       
> vc->vc_resize_user = 0;
> e400b6ec4ede4d drivers/char/vt.c   Antonino A. Daplas  2007-10-16  1198  
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1199       
> if (cols > VC_RESIZE_MAXCOL || lines > VC_RESIZE_MAXROW)
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1200       
>         return -EINVAL;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1201  
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1202       
> new_cols = (cols ? cols : vc->vc_cols);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1203       
> new_rows = (lines ? lines : vc->vc_rows);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1204       
> new_row_size = new_cols << 1;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1205       
> new_screen_size = new_row_size * new_rows;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1206  
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1207       
> if (new_cols == vc->vc_cols && new_rows == vc->vc_rows)
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1208       
>         return 0;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1209  
> 2717769e204e83 drivers/tty/vt/vt.c Nicolas Pitre       2020-03-28 @1210       
> if (new_screen_size > KMALLOC_MAX_SIZE)
> 32b2921e6a7461 drivers/tty/vt/vt.c Dmitry Vyukov       2016-10-14  1211       
>         return -EINVAL;
> 21eff69aaaa0e7 drivers/tty/vt/vt.c Alexander Potapenko 2018-06-14  1212       
> newscreen = kzalloc(new_screen_size, GFP_USER);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1213       
> if (!newscreen)
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1214       
>         return -ENOMEM;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1215  
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1216       
> if (get_vc_uniscr(vc)) {
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1217       
>         new_uniscr = vc_uniscr_alloc(new_cols, new_rows);
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1218       
>         if (!new_uniscr) {
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1219       
>                 kfree(newscreen);
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1220       
>                 return -ENOMEM;
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1221       
>         }
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1222       
> }
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1223  
> dce05aa6eec977 drivers/tty/vt/vt.c Jiri Slaby          2020-02-19  1224       
> if (vc_is_sel(vc))
> 009e39ae44f419 drivers/tty/vt/vt.c Scot Doyle          2016-10-13  1225       
>         clear_selection();
> 009e39ae44f419 drivers/tty/vt/vt.c Scot Doyle          2016-10-13  1226  
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1227       
> old_rows = vc->vc_rows;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1228       
> old_row_size = vc->vc_size_row;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1229  
> e400b6ec4ede4d drivers/char/vt.c   Antonino A. Daplas  2007-10-16  1230       
> err = resize_screen(vc, new_cols, new_rows, user);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1231       
> if (err) {
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1232       
>         kfree(newscreen);
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1233       
>         kfree(new_uniscr);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1234       
>         return err;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1235       
> }
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1236  
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1237       
> vc->vc_rows = new_rows;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1238       
> vc->vc_cols = new_cols;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1239       
> vc->vc_size_row = new_row_size;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1240       
> vc->vc_screenbuf_size = new_screen_size;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1241  
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1242       
> rlth = min(old_row_size, new_row_size);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1243       
> rrem = new_row_size - rlth;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1244       
> old_origin = vc->vc_origin;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1245       
> new_origin = (long) newscreen;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1246       
> new_scr_end = new_origin + new_screen_size;
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1247  
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1248       
> if (vc->vc_y > new_rows) {
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1249       
>         if (old_rows - vc->vc_y < new_rows) {
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1250       
>                 /*
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1251       
>                  * Cursor near the bottom, copy contents from the
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1252       
>                  * bottom of buffer
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1253       
>                  */
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1254       
>                 first_copied_row = (old_rows - new_rows);
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1255       
>         } else {
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1256       
>                 /*
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1257       
>                  * Cursor is in no man's land, copy 1/2 screenful
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1258       
>                  * from the top and bottom of cursor position
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1259       
>                  */
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1260       
>                 first_copied_row = (vc->vc_y - new_rows/2);
> 9fc2b2d0cf7430 drivers/char/vt.c   Francisco Jerez     2010-08-22  1261       
>         }
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1262       
>         old_origin += first_copied_row * old_row_size;
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1263       
> } else
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1264       
>         first_copied_row = 0;
> 9fc2b2d0cf7430 drivers/char/vt.c   Francisco Jerez     2010-08-22  1265       
> end = old_origin + old_row_size * min(old_rows, new_rows);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1266  
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1267       
> vc_uniscr_copy_area(new_uniscr, new_cols, new_rows,
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1268       
>                     get_vc_uniscr(vc), rlth/2, first_copied_row,
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1269       
>                     min(old_rows, new_rows));
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1270       
> vc_uniscr_set(vc, new_uniscr);
> d8ae7242718738 drivers/tty/vt/vt.c Nicolas Pitre       2018-06-26  1271  
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1272       
> update_attr(vc);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1273  
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1274       
> while (old_origin < end) {
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1275       
>         scr_memcpyw((unsigned short *) new_origin,
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1276       
>                     (unsigned short *) old_origin, rlth);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1277       
>         if (rrem)
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1278       
>                 scr_memsetw((void *)(new_origin + rlth),
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1279       
>                             vc->vc_video_erase_char, rrem);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1280       
>         old_origin += old_row_size;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1281       
>         new_origin += new_row_size;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1282       
> }
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1283       
> if (new_scr_end > new_origin)
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1284       
>         scr_memsetw((void *)new_origin, vc->vc_video_erase_char,
> 3b41dc1a3c7839 drivers/char/vt.c   Antonino A. Daplas  2005-09-09  1285       
>                     new_scr_end - new_origin);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1286       
> kfree(vc->vc_screenbuf);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1287       
> vc->vc_screenbuf = newscreen;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1288       
> vc->vc_screenbuf_size = new_screen_size;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1289       
> set_origin(vc);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1290  
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1291       
> /* do part of a reset_terminal() */
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1292       
> vc->vc_top = 0;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1293       
> vc->vc_bottom = vc->vc_rows;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1294       
> gotoxy(vc, vc->vc_x, vc->vc_y);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1295       
> save_cur(vc);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1296  
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1297       
> if (tty) {
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1298       
>         /* Rewrite the requested winsize data with the actual
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1299       
>            resulting sizes */
> 8c9a9dd0fa3a26 drivers/char/vt.c   Alan Cox            2008-08-15  1300       
>         struct winsize ws;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1301       
>         memset(&ws, 0, sizeof(ws));
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1302       
>         ws.ws_row = vc->vc_rows;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1303       
>         ws.ws_col = vc->vc_cols;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1304       
>         ws.ws_ypixel = vc->vc_scan_lines;
> fc6f6238226e6d drivers/char/vt.c   Alan Cox            2009-01-02  1305       
>         tty_do_resize(tty, &ws);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1306       
> }
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1307  
> 6ca8dfd78187d8 drivers/tty/vt/vt.c Jiri Slaby          2016-06-23  1308       
> if (con_is_visible(vc))
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1309       
>         update_screen(vc);
> 8b92e87d39bfd0 drivers/char/vt.c   Alan Cox            2009-09-19  1310       
> vt_event_post(VT_EVENT_RESIZE, vc->vc_num, vc->vc_num);
> 0c9b1965faddad drivers/tty/vt/vt.c Nicolas Pitre       2019-01-08  1311       
> notify_update(vc);
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1312       
> return err;
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1313  }
> ^1da177e4c3f41 drivers/char/vt.c   Linus Torvalds      2005-04-16  1314  
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/[email protected]
> 

Reply via email to