Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6:
driver core: debug for bad dev_attr_show() return value.
UIO: add pgprot_noncached() to UIO mmap code

+14 -1
+5
drivers/base/core.c
··· 19 #include <linux/kdev_t.h> 20 #include <linux/notifier.h> 21 #include <linux/genhd.h> 22 #include <asm/semaphore.h> 23 24 #include "base.h" ··· 69 70 if (dev_attr->show) 71 ret = dev_attr->show(dev, dev_attr, buf); 72 return ret; 73 } 74
··· 19 #include <linux/kdev_t.h> 20 #include <linux/notifier.h> 21 #include <linux/genhd.h> 22 + #include <linux/kallsyms.h> 23 #include <asm/semaphore.h> 24 25 #include "base.h" ··· 68 69 if (dev_attr->show) 70 ret = dev_attr->show(dev, dev_attr, buf); 71 + if (ret >= (ssize_t)PAGE_SIZE) { 72 + print_symbol("dev_attr_show: %s returned bad count\n", 73 + (unsigned long)dev_attr->show); 74 + } 75 return ret; 76 } 77
+2
drivers/uio/uio.c
··· 470 471 vma->vm_flags |= VM_IO | VM_RESERVED; 472 473 return remap_pfn_range(vma, 474 vma->vm_start, 475 idev->info->mem[mi].addr >> PAGE_SHIFT,
··· 470 471 vma->vm_flags |= VM_IO | VM_RESERVED; 472 473 + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); 474 + 475 return remap_pfn_range(vma, 476 vma->vm_start, 477 idev->info->mem[mi].addr >> PAGE_SHIFT,
+7 -1
fs/sysfs/file.c
··· 12 13 #include <linux/module.h> 14 #include <linux/kobject.h> 15 #include <linux/namei.h> 16 #include <linux/poll.h> 17 #include <linux/list.h> ··· 87 * The code works fine with PAGE_SIZE return but it's likely to 88 * indicate truncated result or overflow in normal use cases. 89 */ 90 - BUG_ON(count >= (ssize_t)PAGE_SIZE); 91 if (count >= 0) { 92 buffer->needs_read_fill = 0; 93 buffer->count = count;
··· 12 13 #include <linux/module.h> 14 #include <linux/kobject.h> 15 + #include <linux/kallsyms.h> 16 #include <linux/namei.h> 17 #include <linux/poll.h> 18 #include <linux/list.h> ··· 86 * The code works fine with PAGE_SIZE return but it's likely to 87 * indicate truncated result or overflow in normal use cases. 88 */ 89 + if (count >= (ssize_t)PAGE_SIZE) { 90 + print_symbol("fill_read_buffer: %s returned bad count\n", 91 + (unsigned long)ops->show); 92 + /* Try to struggle along */ 93 + count = PAGE_SIZE - 1; 94 + } 95 if (count >= 0) { 96 buffer->needs_read_fill = 0; 97 buffer->count = count;