[PATCH 1/2] arm64: signal: Report signal frame size to userspace via auxv

Dave Martin Dave.Martin at arm.com
Tue May 8 05:29:38 PDT 2018


On Tue, May 08, 2018 at 01:26:52PM +0100, Mark Rutland wrote:
> On Tue, May 08, 2018 at 12:43:24PM +0100, Dave Martin wrote:
> > On Tue, May 08, 2018 at 12:30:44PM +0100, Mark Rutland wrote:
> > > On Tue, May 08, 2018 at 11:43:30AM +0100, Dave Martin wrote:
> > > > +/*
> > > > + * Determine the stack space required for guaranteed signal devliery.
> > > > + * This function is used to populate AT_MINSIGSTKSZ at process startup.
> > > > + */
> > > > +int get_minsigstksz(void)
> > > > +{
> > > > +	static __read_mostly atomic_t minsigstksz;
> > > > +
> > > > +	int ret;
> > > > +	struct rt_sigframe_user_layout user;
> > > > +
> > > > +	ret = atomic_read(&minsigstksz);
> > > > +	if (ret)
> > > > +		return ret;
> > > > +
> > > > +	init_user_layout(&user);
> > > > +	ret = setup_sigframe_layout(&user, true);
> > > > +
> > > > +	if (ret) {
> > > > +		WARN_ON(1);
> > > > +
> > > > +		ret = SIGSTKSZ;
> > > > +	} else {
> > > > +		ret = sigframe_size(&user) +
> > > > +			round_up(sizeof(struct frame_record), 16) +
> > > > +			16; /* max alignment padding */
> > > > +	}
> > > > +
> > > > +	/*
> > > > +	 * The computed value (ret) is invariant, so its value can be
> > > > +	 * safely stored irrespective of whether some other racing
> > > > +	 * task got there first:
> > > > +	 */
> > > > +	atomic_set(&minsigstksz, ret);
> > > > +	return ret;
> > > > +}
> > > 
> > > Can we set up minsigstksz at some initcall time? that way get_minstksz()
> > > can return minsigstksz with no conditionality at all.
> > 
> > I would have preferred to do that, but I wasn't sure where to put it.
> > 
> > Unless arch_initcall_sync() works for this, I don't know what to
> > suggest.
> 
> Perhaps have a setup_minsigstksz(), and call that at the end of
> setup_cpu_features()?

That's probably reasonable.  The places the computed value can change
are ... not well defined, if the dust hasn't settled by the time we get
to the end of the cpufeatures setup then we almost certainly have more
serious problems.

I'll have a go and see what it looks like.

Cheers
---Dave



More information about the linux-arm-kernel mailing list