Files
linux/include/linux
George Spelvin 043b3f7b63 lib/list_sort: simplify and remove MAX_LIST_LENGTH_BITS
Rather than a fixed-size array of pending sorted runs, use the ->prev
links to keep track of things.  This reduces stack usage, eliminates
some ugly overflow handling, and reduces the code size.

Also:
* merge() no longer needs to handle NULL inputs, so simplify.
* The same applies to merge_and_restore_back_links(), which is renamed
  to the less ponderous merge_final().  (It's a static helper function,
  so we don't need a super-descriptive name; comments will do.)
* Document the actual return value requirements on the (*cmp)()
  function; some callers are already using this feature.

x86-64 code size 1086 -> 739 bytes (-347)

(Yes, I see checkpatch complaining about no space after comma in
"__attribute__((nonnull(2,3,4,5)))".  Checkpatch is wrong.)

Feedback from Rasmus Villemoes, Andy Shevchenko and Geert Uytterhoeven.

[akpm@linux-foundation.org: remove __pure usage due to mysterious warning]
Link: http://lkml.kernel.org/r/f63c410e0ff76009c9b58e01027e751ff7fdb749.1552704200.git.lkml@sdf.org
Signed-off-by: George Spelvin <lkml@sdf.org>
Acked-by: Andrey Abramov <st5pub@yandex.ru>
Acked-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Daniel Wagner <daniel.wagner@siemens.com>
Cc: Dave Chinner <dchinner@redhat.com>
Cc: Don Mullis <don.mullis@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-05-14 19:52:49 -07:00
..
2018-11-14 10:56:33 -08:00
2019-05-07 11:46:02 -07:00
2018-11-12 10:33:49 +01:00
2019-04-16 18:03:48 +02:00
2019-05-02 10:37:55 +09:00
2019-04-15 18:14:01 -04:00
2018-11-07 13:44:59 -07:00
2018-11-07 13:44:59 -07:00
2019-04-23 01:50:43 +02:00
2019-04-09 17:05:46 -07:00
2019-05-07 08:39:02 -06:00
2019-04-19 11:26:48 -07:00
2018-11-13 21:55:24 +01:00
2019-02-28 03:28:53 -05:00
2019-02-28 08:24:23 -07:00
2018-12-19 10:42:08 +01:00
2019-04-29 12:37:46 +02:00
2019-03-12 10:04:02 -07:00
2019-04-22 09:48:12 -06:00
2019-02-15 16:54:38 +01:00
2019-03-09 19:52:47 -08:00
2018-11-07 13:42:32 -07:00
2019-03-22 14:36:02 +01:00
2019-05-01 07:47:37 -07:00
2018-11-19 19:03:46 -07:00
2019-04-08 22:56:14 +02:00
2018-12-06 13:57:03 +01:00
2019-04-16 15:38:07 +02:00
2018-11-30 13:29:04 +00:00
2019-03-07 18:32:03 -08:00
2019-01-30 20:51:47 -05:00
2019-04-19 14:07:40 -07:00
2019-02-20 07:22:17 -07:00
2019-02-20 07:22:10 -07:00
2018-12-06 15:45:46 +01:00
2019-02-08 15:02:49 -08:00
2019-03-05 21:07:19 -08:00
2019-05-14 09:47:51 -07:00
2019-05-07 14:31:03 +02:00
2019-03-12 10:04:03 -07:00
2019-05-14 19:52:48 -07:00
2018-12-03 17:11:02 -08:00
2019-05-08 22:14:36 +02:00
2019-03-15 15:29:47 -07:00
2019-02-07 16:38:35 +01:00
2019-02-07 00:13:27 +01:00
2018-12-10 10:17:45 +01:00
2019-04-06 10:48:35 -06:00
2019-05-01 08:38:47 -06:00
2019-01-11 18:05:40 -08:00
2019-04-30 12:37:51 +02:00
2019-04-09 15:14:49 -06:00
2018-12-22 12:15:29 +01:00