Hi Tejun, Haggai, On Thu, Mar 3, 2016 at 1:28 AM, Parav Pandit <pandit.parav@xxxxxxxxx> wrote: >>> + rpool->refcnt--; >>> + if (rpool->refcnt == 0 && rpool->num_max_cnt == pool_info->table_len) { >> >> If the caller charges 2 and then uncharges 1 two times, the refcnt >> underflows? Why not just track how many usages are zero? >> > This is certainly must fix bug. Changed refcnt to usage_sum and changed to do > usage_sum -= num during uncharging > and > usage_sum += num during charing. This is not sufficient as css_get() and put are done only once per call, which leads to similar problem as of refcnt. As I think more, I realised that this particular test is missing that resulted in this related bug, I realize that we don't have use case to have "num" field from the IB stack side. For bulk free IB stack will have to keep track of different or same rdmacg returned values to call uncharge() with right number of resources, all of that complexity just doesn't make sense and not required. So as first step to further simplify this, I am removing "num" input field from charge and uncharge API. -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html