From 1dd4680483ce9e69efcb10d416c3838b78a01a3d Mon Sep 17 00:00:00 2001 From: Vijay Badawadagi Date: Wed, 10 Aug 2011 10:18:33 -0500 Subject: [PATCH] --- yaml --- r: 263405 b: refs/heads/master c: 78bb9697e2c4b62c426f1a2571c293a2e4463adf h: refs/heads/master i: 263403: 4d38f12a09a58d496dc3f74e8883b992769d3950 v: v3 --- [refs] | 2 +- trunk/drivers/misc/ti-st/st_core.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 14232f895458..276a1ffc68a8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 74a4fcf19eed6550651f455db5741fd216b4f004 +refs/heads/master: 78bb9697e2c4b62c426f1a2571c293a2e4463adf diff --git a/trunk/drivers/misc/ti-st/st_core.c b/trunk/drivers/misc/ti-st/st_core.c index c8e335db3451..1f973ce3043f 100644 --- a/trunk/drivers/misc/ti-st/st_core.c +++ b/trunk/drivers/misc/ti-st/st_core.c @@ -338,6 +338,12 @@ void st_int_recv(void *disc_data, /* Unknow packet? */ default: type = *ptr; + if (st_gdata->list[type] == NULL) { + pr_err("chip/interface misbehavior dropping" + " frame starting with 0x%02x", type); + goto done; + + } st_gdata->rx_skb = alloc_skb( st_gdata->list[type]->max_frame_size, GFP_ATOMIC); @@ -354,6 +360,7 @@ void st_int_recv(void *disc_data, ptr++; count--; } +done: spin_unlock_irqrestore(&st_gdata->lock, flags); pr_debug("done %s", __func__); return;