From: Bernd Schmidt Date: Wed, 10 Oct 2007 09:54:19 +0000 (+0800) Subject: Blackfin arch: fix bug libstdc++ calling writev with an iovec containing { NULL,... X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc41bb11654f7fbb8cae2d316a7c2ac5ebf759d2;p=linux-2.6 Blackfin arch: fix bug libstdc++ calling writev with an iovec containing { NULL, 0 } fails on Blackfin 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 Signed-off-by: Bryan Wu --- diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index de7d048bd4..9124467651 100644 --- a/arch/blackfin/kernel/process.c +++ b/arch/blackfin/kernel/process.c @@ -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))