I got a failure for allocation of order 3 pages from oz_ep_alloc() function under low memory situation, so while checking the code came across this call for oz_ep_alloc() which may not be handled gracefully. So do we need to have the below check ? $ git diff diff --git a/drivers/staging/ozwpan/ozhcd.c b/drivers/staging/ozwpan/ozhcd.c index 565d873..867c3eb 100644 --- a/drivers/staging/ozwpan/ozhcd.c +++ b/drivers/staging/ozwpan/ozhcd.c @@ -722,6 +722,8 @@ void *oz_hcd_pd_arrived(void *hpd) * use for out endpoint 0. */ ep = oz_ep_alloc(GFP_ATOMIC, 0); + if(!ep) + goto out; spin_lock_bh(&ozhcd->hcd_lock); if (ozhcd->conn_port >= 0) { spin_unlock_bh(&ozhcd->hcd_lock);