On Sat, Dec 03, 2022 at 12:12:43AM +0000, luca.boccassi@xxxxxxxxx wrote: > + * Usually when closing a crypto device (eg: dm-crypt with LUKS) the volume As said last time, please correctly format your block comments so that they don't spill out of 80 characters for every single line and become completely unreadable. > + if (lk_unlk->l_state == OPAL_LK && > + lk_unlk->session.opal_key.key_len == 0) { > + struct opal_suspend_data *iter; > + > + setup_opal_dev(dev); > + list_for_each_entry(iter, &dev->unlk_lst, node) { > + if (iter->unlk.save_for_lock && > + iter->lr == lk_unlk->session.opal_key.lr && > + iter->unlk.session.opal_key.key_len > 0) { > + lk_unlk->session.opal_key.key_len = > + iter->unlk.session.opal_key.key_len; > + memcpy(lk_unlk->session.opal_key.key, > + iter->unlk.session.opal_key.key, > + iter->unlk.session.opal_key.key_len); > + break; > + } > + } And please split this logic into a helper. > __u32 l_state; > - __u8 __align[4]; > + __u8 save_for_lock:1; /* if in IOC_OPAL_SAVE will also use key to lock */ Please never use bitfields in ABIs, the psABI rules for them are just a mess to start with, and not filling all of them leads to leaks of stack contents as well. Just turn the entire 4 bytes into a flags field and then just bitmasks.