Blackfin arch: fix bug libstdc++ calling writev with an iovec containing { NULL,...
authorBernd Schmidt <bernd.schmidt@analog.com>
Wed, 10 Oct 2007 09:54:19 +0000 (17:54 +0800)
committerBryan Wu <bryan.wu@analog.com>
Wed, 10 Oct 2007 09:54:19 +0000 (17:54 +0800)
Fix a problem reported in the forums - libstdc++ can call writev with an
iovec containing { NULL, 0 }, which works fine on i686-linux, but fails on
Blackfin.  Fixed by allowing size 0 transfers to/from userspace regardless
of the address.

Signed-off-by: Bernd Schmidt <bernd.schmidt@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
arch/blackfin/kernel/process.c

index de7d048..9124467 100644 (file)
@@ -395,7 +395,8 @@ void finish_atomic_sections (struct pt_regs *regs)
 #if defined(CONFIG_ACCESS_CHECK)
 int _access_ok(unsigned long addr, unsigned long size)
 {
-
+       if (size == 0)
+               return 1;
        if (addr > (addr + size))
                return 0;
        if (segment_eq(get_fs(), KERNEL_DS))