diff options
author | Bernd Schmidt <bernd.schmidt@analog.com> | 2007-10-10 17:54:19 +0800 |
---|---|---|
committer | Bryan Wu <bryan.wu@analog.com> | 2007-10-10 17:54:19 +0800 |
commit | bc41bb11654f7fbb8cae2d316a7c2ac5ebf759d2 (patch) | |
tree | 00ed385f85322c42e9fcca6511de7f79716b7785 | |
parent | ef4a47db52cd8c15b5de07a318e5758d2f1e1bb9 (diff) | |
download | op-kernel-dev-bc41bb11654f7fbb8cae2d316a7c2ac5ebf759d2.zip op-kernel-dev-bc41bb11654f7fbb8cae2d316a7c2ac5ebf759d2.tar.gz |
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.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index de7d048..9124467 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)) |