staging: hv: check return value of RingBufferInit()
RingBufferInit() would always return sucess and instead relied on an ASSERT() to test for an error condition. Remove the ASSERT() and return -EINVAL instead. The return value of RingBufferInit() was also never checked, so check it. Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Cc: Hank Janssen <hjanssen@microsoft.com> Cc: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
1bbdd7a538
Коммит
3324fb4053
|
@ -203,9 +203,18 @@ int VmbusChannelOpen(struct vmbus_channel *NewChannel, u32 SendRingBufferSize,
|
|||
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...",
|
||||
|
|
|
@ -301,7 +301,8 @@ Description:
|
|||
--*/
|
||||
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));
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче