NewChannel->RingBufferPageCount = (SendRingBufferSize +
                                           RecvRingBufferSize) >> PAGE_SHIFT;
 
-       RingBufferInit(&NewChannel->Outbound, out, SendRingBufferSize);
+       ret = RingBufferInit(&NewChannel->Outbound, out, SendRingBufferSize);
+       if (!ret) {
+               err = ret;
+               goto errorout;
+       }
+
+       ret = RingBufferInit(&NewChannel->Inbound, in, RecvRingBufferSize);
+       if (!ret) {
+               err = ret;
+               goto errorout;
+       }
 
-       RingBufferInit(&NewChannel->Inbound, in, RecvRingBufferSize);
 
        /* Establish the gpadl for the ring buffer */
        DPRINT_DBG(VMBUS, "Establishing ring buffer's gpadl for channel %p...",
 
 --*/
 int RingBufferInit(RING_BUFFER_INFO *RingInfo, void *Buffer, u32 BufferLen)
 {
-       ASSERT(sizeof(RING_BUFFER) == PAGE_SIZE);
+       if (sizeof(RING_BUFFER) != PAGE_SIZE)
+               return -EINVAL;
 
        memset(RingInfo, 0, sizeof(RING_BUFFER_INFO));