[PATCH 3/4] drm: Add decoding of i915 ioctls

Patrik Jakobsson patrik.jakobsson at linux.intel.com
Wed Jun 10 12:45:24 UTC 2015


On Wed, Jun 10, 2015 at 01:35:35AM +0300, Dmitry V. Levin wrote:
> On Tue, Jun 09, 2015 at 01:26:43PM +0200, Patrik Jakobsson wrote:
> [...]
> > +static int i915_getparam(struct tcb *tcp, const unsigned int code, long arg)
> > +{
> > +	struct drm_i915_getparam param;
> > +	int value;
> > +
> > +	if (entering(tcp) || umove(tcp, arg, &param))
> > +		return 0;
> > +	if (umove(tcp, (long)param.value, &value))
> > +		return 0;
> > +
> > +	tprintf(", {param=");
> 
> We use tprints to print regular strings.

Fixed in v2

> 
> > +static int i915_setparam(struct tcb *tcp, const unsigned int code, long arg)
> > +{
> > +	struct drm_i915_setparam param;
> > +
> > +	if (exiting(tcp) || umove(tcp, arg, &param))
> > +		return 0;
> 
> In this and other ioctl printers that unconditionally return 0 on exit,
> wouldn't the caller treat it as an ioctl that hasn't been printed?

Yes, seems like the exiting phase should return 1 if already handled in the
entering phase. But changing it produces the same output for some reason. Not
sure what's going on here.

> 
> 
> -- 
> ldv






More information about the Strace-devel mailing list