[Bug tapsets/18597] long_arg() doesn't correctly handle negative values in 32-on-64 environment
dsmith at redhat dot com
sourceware-bugzilla@sourceware.org
Fri Jun 26 12:20:00 GMT 2015
https://sourceware.org/bugzilla/show_bug.cgi?id=18597
--- Comment #4 from David Smith <dsmith at redhat dot com> ---
(In reply to Martin Cermak from comment #1)
> Created attachment 8393 [details]
> proposed patch
>
> Fix reported misbehaviour of long_arg(); fix pread, pwrite and
> sync_file_range; simplify nd_syscall.io_submit as an example benefit of the
> fix.
OK, you lost me on this:
+# compat_sync_file_range _____________________________________
+# asmlinkage long compat_sys_sync_file_range2(int fd, unsigned int flags,
+# unsigned offset_hi, unsigned
offset_lo,
+# unsigned nbytes_hi, unsigned
nbytes_lo)
+#
+probe nd_syscall.compat_sync_file_range =
+ kprobe.function("compat_sys_sync_file_range2") ?
+{
+ asmlinkage()
+ name = "sync_file_range"
+ fd = int_arg(1)
+ flags = uint_arg(2)
+ offset = (u32_arg(3) << 32) + u32_arg(4)
+ nbytes = (u32_arg(5) << 32) + u32_arg(6)
+ flags_str = _sync_file_range_flags_str(flags)
+ argstr = sprintf("%d, %d, %d, %s", fd, offset, nbytes,
+ _sync_file_range_flags_str(flags))
+}
If this code wasn't needed before, why is it needed now?
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Systemtap
mailing list