On Tue, Dec 04, 2018 at 09:21:45AM +0000, Peter Zijlstra wrote: > On Mon, Dec 03, 2018 at 11:39:58PM -0800, Alison Schofield wrote: > > > +struct mktme_hw_program_info { > > + struct mktme_key_program *key_program; > > + unsigned long status; > > +}; > > + > > +/* Program a KeyID on a single package. */ > > +static void mktme_program_package(void *hw_program_info) > > +{ > > + struct mktme_hw_program_info *info = hw_program_info; > > + int ret; > > + > > + ret = mktme_key_program(info->key_program); > > + if (ret != MKTME_PROG_SUCCESS) > > + WRITE_ONCE(info->status, ret); > > What's the purpose of that WRITE_ONCE()? [I suggested the code to Alison.] Yes, you're right. Simple assignment will do. -- Kirill A. Shutemov