diff --git a/drivers/staging/hv/connection.c b/drivers/staging/hv/connection.c
index a88ad7072566780e9eae11b250bd1c47733fe66e..7a3ec75bab18e3715eb6f30ac3878f847fc0fe63 100644
--- a/drivers/staging/hv/connection.c
+++ b/drivers/staging/hv/connection.c
@@ -222,7 +222,7 @@ static void process_chn_event(u32 relid)
 	 */
 	channel = relid2channel(relid);
 
-	if (channel) {
+	if (channel && (channel->onchannel_callback != NULL)) {
 		channel->onchannel_callback(channel->channel_callback_context);
 	} else {
 		pr_err("channel not found for relid - %u\n", relid);