Просмотр исходного кода

[PATCH] avoid signed vs unsigned comparison in efi_range_is_wc()

warning when building with gcc -W : 

 include/linux/efi.h: In function `efi_range_is_wc':
 include/linux/efi.h:320: warning: comparison between signed and unsigned

It looks to me like a significantly large 'len' passed in could cause the 
loop to never end. Isn't it safer to make 'i' an unsigned long as well? 
Like this little patch below (which of course also kills the warning) :

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Jesper Juhl 20 лет назад
Родитель
Сommit
986a80d5c1
1 измененных файлов с 1 добавлено и 1 удалено
  1. 1 1
      include/linux/efi.h

+ 1 - 1
include/linux/efi.h

@@ -315,7 +315,7 @@ extern struct efi_memory_map memmap;
  */
 static inline int efi_range_is_wc(unsigned long start, unsigned long len)
 {
-	int i;
+	unsigned long i;
 
 	for (i = 0; i < len; i += (1UL << EFI_PAGE_SHIFT)) {
 		unsigned long paddr = __pa(start + i);