Hi
Am 11.02.22 um 08:58 schrieb Dan Carpenter:
On Thu, Feb 10, 2022 at 10:16:45PM +0100, Sam Ravnborg wrote:
quoted
quoted
diff --git a/drivers/video/fbdev/core/fb_defio.c b/drivers/video/fbdev/core/fb_defio.c
index 3727b1ca87b1..1f672cf253b2 100644
--- a/drivers/video/fbdev/core/fb_defio.c
+++ b/drivers/video/fbdev/core/fb_defio.c
@@ -132,15 +132,20 @@ static vm_fault_t fb_deferred_io_mkwrite(struct vm_fault *vmf)
if (!list_empty(&page->lru))
goto page_already_added;
- /* we loop through the pagelist before adding in order
- to keep the pagelist sorted */
- list_for_each_entry(cur, &fbdefio->pagelist, lru) {
- if (cur->index > page->index)
- break;
+ if (fbdefio->sort_pagelist) {
+ /*
+ * We loop through the pagelist before adding in order
+ * to keep the pagelist sorted.
+ */
+ list_for_each_entry(cur, &fbdefio->pagelist, lru) {
+ if (cur->index > page->index)
+ break;
+ }
+ list_add_tail(&page->lru, &cur->lru);
+ } else {
+ list_add_tail(&page->lru, &fbdefio->pagelist);
}
Bikeshedding - my personal style is to have the likely part first.
This makes reading the code easier.
I've thought about this quite a bit... I guess my rule is to avoid
negatives as much as possible so I prefer the original code. My rules
right now are:
1) Always do error handling. Don't do success handling.
2) Return as quickly as possible and pull the code in an indent.
3) Avoid negatives. Never had negatives in the variable names.
From what I know, CPUs' branch prediction prefers backward jumps (e.g.,
loops) but avoids forward jumps. Compilers arrange the code to optimize
for this pattern. So I tend to put the exception or error handling into
the if branch. But I have no idea if that really makes a difference at
runtime.
Best regards
Thomas
regards,
dan carpenter
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev