From 4d28d3fac6df46989b49251f678d7da0d60b5335 Mon Sep 17 00:00:00 2001 From: Bill Pemberton Date: Wed, 5 May 2010 15:27:37 -0400 Subject: [PATCH] --- yaml --- r: 197295 b: refs/heads/master c: b94ef345b26b4d75e5028617e43fb51d7dd0162b h: refs/heads/master i: 197293: 6e28b930b05c07122bc85416ddc3429593403fa5 197291: 607679428d13d33f5f9c5e3e674d43c2fec7d7cc 197287: fb942ac2677261d2102f36b076614e566f3e7d6c 197279: 5c26653a551373a00da4707242b23eedc8b4474b v: v3 --- [refs] | 2 +- trunk/drivers/staging/hv/Channel.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 12adfc979b4a..41e77f02c60b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 99259159c0eb58a539ed399677c8294e3792722b +refs/heads/master: b94ef345b26b4d75e5028617e43fb51d7dd0162b diff --git a/trunk/drivers/staging/hv/Channel.c b/trunk/drivers/staging/hv/Channel.c index 8c30540b725d..fdd441174f23 100644 --- a/trunk/drivers/staging/hv/Channel.c +++ b/trunk/drivers/staging/hv/Channel.c @@ -175,7 +175,7 @@ int VmbusChannelOpen(struct vmbus_channel *NewChannel, u32 SendRingBufferSize, void (*OnChannelCallback)(void *context), void *Context) { struct vmbus_channel_open_channel *openMsg; - struct vmbus_channel_msginfo *openInfo; + struct vmbus_channel_msginfo *openInfo = NULL; void *in, *out; unsigned long flags; int ret, err = 0; @@ -218,7 +218,11 @@ int VmbusChannelOpen(struct vmbus_channel *NewChannel, u32 SendRingBufferSize, SendRingBufferSize + RecvRingBufferSize, &NewChannel->RingBufferGpadlHandle); -/* FIXME: the value of ret is not checked */ + + if (!ret) { + err = ret; + goto errorout; + } DPRINT_DBG(VMBUS, "channel %p ", @@ -250,7 +254,6 @@ int VmbusChannelOpen(struct vmbus_channel *NewChannel, u32 SendRingBufferSize, openMsg->OpenId = NewChannel->OfferMsg.ChildRelId; /* FIXME */ openMsg->ChildRelId = NewChannel->OfferMsg.ChildRelId; openMsg->RingBufferGpadlHandle = NewChannel->RingBufferGpadlHandle; - ASSERT(openMsg->RingBufferGpadlHandle); openMsg->DownstreamRingBufferPageOffset = SendRingBufferSize >> PAGE_SHIFT; openMsg->ServerContextAreaGpadlHandle = 0; /* TODO */ @@ -295,6 +298,8 @@ int VmbusChannelOpen(struct vmbus_channel *NewChannel, u32 SendRingBufferSize, return 0; errorout: + RingBufferCleanup(&NewChannel->Outbound); + RingBufferCleanup(&NewChannel->Inbound); osd_PageFree(out, (SendRingBufferSize + RecvRingBufferSize) >> PAGE_SHIFT); kfree(openInfo);