>> Can a passed null pointer really work in this function?
>> static inline struct crypto_tfm *crypto_shash_tfm(struct crypto_shash *tfm)
>> return &tfm->base;
> Yes. It's not a dereference,
Do any processors treat the zero address still special there?
> it's just doing pointer math to get the address.
Can eventually happen anything unexpected?
Can it be nicer to avoid such a software behaviour concern generally
just by adjusting a few jump labels (as I proposed it)?