summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Schmidt <bernd.schmidt@analog.com>2007-10-10 17:54:19 +0800
committerBryan Wu <bryan.wu@analog.com>2007-10-10 17:54:19 +0800
commitbc41bb11654f7fbb8cae2d316a7c2ac5ebf759d2 (patch)
tree00ed385f85322c42e9fcca6511de7f79716b7785
parentef4a47db52cd8c15b5de07a318e5758d2f1e1bb9 (diff)
downloadtalos-obmc-linux-bc41bb11654f7fbb8cae2d316a7c2ac5ebf759d2.tar.gz
talos-obmc-linux-bc41bb11654f7fbb8cae2d316a7c2ac5ebf759d2.zip
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 <bernd.schmidt@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
-rw-r--r--arch/blackfin/kernel/process.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c
index de7d048bd4ee..9124467651c4 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))
OpenPOWER on IntegriCloud