> + spin_unlock_irqrestore(&vha->e_dbell.db_lock, flags); > + kfree(node); > + spin_lock_irqsave(&vha->e_dbell.db_lock, flags); Unlock before kfree? Why? QT: I thought free behind interrupt disable could trigger warning. If there is no rule against that then we will remove the unlock/lock around it. > + > + sz = 256; /* app currently hardcode to 256. */ Shouldn't that be 'sizeof(struct edif_app_dbell)'? And shouldn't that rather be a compile-time warning, then? QT: At this time we will leave the code as is. This is part of a todo clean up for the next submission phase. We shall transition to a bsg call where app provides a buffer + size so driver would know how many doorbell events to fill up instead of hardcode. Regards, Quinn Tran