return_to_param: don't modify memory on the stack
The param_set/param_add code never tries to modify stack memory but when
we use the param_long_to_short mapping then it can happen. What that looks
like is this:
ptr = foo->bar;
frob(foo);
The frob() function sets "foo->bar" and in the original code that would
change "ptr" as well, but "ptr" is stored on the stack and should stay
the same.
For PARAM_LIMIT and PARAM_FILTER then we do want to update "ptr". That
looks like this:
ptr = foo->bar;
if (frob(foo)) { ...
Imagine that frob() only returns true if foo->bar is non-NULL then we know
that ptr is non-NULL also.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>