Prev: introduce sys_membarrier(): process-wide memory barrier (v10)
Next: [PATCH] /dev/mem: Allow rewinding
From: Eric Dumazet on 5 Apr 2010 17:10 Le lundi 05 avril 2010 à 22:24 +0200, Eric Dumazet a écrit : > Hi Dave > > I just noticed x86info was not working anymore on latest kernel > > x86info v1.24. Dave Jones 2001-2009 > Feedback to <davej(a)redhat.com>. > > type seek: Value too large for defined data type > > > Offending syscall is an lseek(fd, -1, SEEK_CUR) on /dev/mem file > > > > open("/dev/mem", O_RDONLY) = 3 > ... > lseek(3, 1023092, SEEK_SET) = 1023092 > read(3, "PCMP\4\3\4\266HP PROLIANT \0\0\0\0\0"..., 44) = 44 > read(3, "\0"..., 1) = 1 > lseek(3, -1, SEEK_CUR) = -1 EOVERFLOW (Value too large > for defined data type) > > It seems -1 is taken as an unsigned quantity ? > Andrew, commit dcefafb6ac90ece8d68a6c203105f3d313e52da4 seems to be the problem. It breaks rewinds (negative offsets to lseek (... SEEK_CUR)) commit dcefafb6ac90ece8d68a6c203105f3d313e52da4 Author: Wu Fengguang <fengguang.wu(a)intel.com> Date: Wed Mar 10 15:21:51 2010 -0800 /dev/mem: dont allow seek to last page So as to return a uniform error -EOVERFLOW instead of a random one: # kmem-seek 0xfffffffffffffff0 seek /dev/kmem: Device or resource busy # kmem-seek 0xfffffffffffffff1 seek /dev/kmem: Block device required Suggested by OGAWA Hirofumi. Cc: OGAWA Hirofumi <hirofumi(a)mail.parknet.co.jp> Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu(a)jp.fujitsu.com> Signed-off-by: Wu Fengguang <fengguang.wu(a)intel.com> Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds(a)linux-foundation.org> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |