On Thu, 2025-03-27 at 15:23 +0200, Jarkko Sakkinen wrote: > On Thu, Mar 27, 2025 at 10:58:00AM +0100, Stefano Garzarella wrote: [...] > > > @@ -65,6 +89,7 @@ static ssize_t tpm_try_transmit(struct tpm_chip > > > *chip, void *buf, size_t bufsiz) > > > ssize_t len = 0; > > > u32 count, ordinal; > > > unsigned long stop; > > > + u8 status; > > > > Why move `status` out of the do/while block? > > I'm not a huge fan of stack allocations inside blocks, unless there > is a particular reason to do so.
The move to scope based locking and freeing in cleanup.h necessitates using scope based variables as well, so they're something we all have to embrace. They're also useful to tell the compiler when it can reclaim the variable and they often create an extra stack frame that allows the reclaim to be effective (even if the compiler can work out where a variable is no longer reference, the space can't be reclaimed if it's in the middle of an in-use stack frame). I'd say the rule of thumb should be only do something like this if it improves readability or allows you to remove an additional block from the code. Regards, James