What is the purpose of the above commit? The details surrounding it are vague, and it is not in mainline. This commit contains a blatant use-after-free:
usb_put_hcd(hcd); <-- FREE
if (ci->platdata->reg_vbus && !ci_otg_is_fsm_mode(ci) &&
(ci->platdata->flags & CI_HDRC_IMX_VBUS_EARLY_ON))
+ if (hcd->self.is_b_host)
+ hcd->self.is_b_host = 0; <-- use-after free
Enabling SLUB_DEBUG exposes the use-after-free, and I have confirmed this is causing corruption in other, random 1024 byte slabs.
I would just revert the commit, but would like to know the problem it is trying to solve.