On Wed, Dec 28, 2022 at 03:48:05PM +0200, Mikko Perttunen wrote: > On 12/28/22 15:34, Deepak R Varma wrote: > > On Wed, Dec 28, 2022 at 03:17:59PM +0200, Mikko Perttunen wrote: > > > On 12/28/22 15:08, Deepak R Varma wrote: > > > > > > Hi, > > > > > > it gets rid of visual hints on code paths indicating the possible liveness > > > of pointer variables. I.e., after the change, whether the pointer can be > > > NULL or not is more difficult to reason about locally, instead requiring > > > more global reasoning which is mentally more taxing. > > > > > > Since C's type system doesn't help with tracking these kinds of things, I > > > believe it is important to have these kinds of local contextual cues to help > > > the programmer. > > > > Hello Mikko, > > That really helps. Thank you for the detailed explanation. I do have an extended > > question though. In this context, when we are ready to release the memory, how > > is it useful to know if it is NULL or not this late in the flow when the scope > > is about to end? > > In the current code it doesn't matter, but if someone went to change this > code (for example to add another release step), and we just had > 'kfree(job_data)', they would have to remember that kfree works with NULL > pointers, and would have to go looking elsewhere in the code to see if it is > in fact possible to assume that job_data cannot be NULL here, or not. If > they forget about kfree working with NULL pointers, which wouldn't be that > surprising since it is almost always only called with non-NULL pointers, > they might instead introduce a bug. > > In this particular instance it's probably not that bad since immediately > above we have another 'if' block that checks if job_data is NULL, which > serves as a hint to the programmer; however, as a general principle it > stands that having the NULL check here makes it obvious to any reading > programmer that they any changes they make have to consider if the pointer > is NULL or not. Sounds good. Thanks again. Would like to see if other experts have any further guidance on this patch. Regards, ./drv > > > > > > Mikko > > > > >