From d21123afdfab4c9eee3946e44aaf0af236f76d32 Mon Sep 17 00:00:00 2001 From: Mithlesh Thukral Date: Wed, 18 Feb 2009 18:52:18 +0530 Subject: [PATCH] --- yaml --- r: 141127 b: refs/heads/master c: b9d1081a833806e2f8ee7d8b827202e1bd5949b2 h: refs/heads/master i: 141125: 14280a4f7f21392ef7b76c0a933e4b22464f787c 141123: 6d8672a220046f07b3ae02ae1211e7afc5e3d72b 141119: 9336457d5586682c06a304234bc23277a97c3a8d v: v3 --- [refs] | 2 +- trunk/drivers/staging/sxg/sxg.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index f756deab466b..463da85d1acb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9914f0536f0e87c13ad51971f0ddcda007436f34 +refs/heads/master: b9d1081a833806e2f8ee7d8b827202e1bd5949b2 diff --git a/trunk/drivers/staging/sxg/sxg.c b/trunk/drivers/staging/sxg/sxg.c index da286f5765cb..9ce3af53c891 100644 --- a/trunk/drivers/staging/sxg/sxg.c +++ b/trunk/drivers/staging/sxg/sxg.c @@ -4212,6 +4212,21 @@ static int sxg_fill_descriptor_block(struct adapter_t *adapter, adapter->FreeRcvBufferCount, adapter->AllRcvBlockCount); return (STATUS_SUCCESS); no_memory: + for (; i >= 0 ; i--) { + if (RcvDescriptorBlock->Descriptors[i].VirtualAddress) { + RcvDataBufferHdr = (struct sxg_rcv_data_buffer_hdr *) + RcvDescriptorBlock->Descriptors[i]. + VirtualAddress; + RcvDescriptorBlock->Descriptors[i].PhysicalAddress = + (dma_addr_t)NULL; + RcvDescriptorBlock->Descriptors[i].VirtualAddress=NULL; + } + SXG_FREE_RCV_DATA_BUFFER(adapter, RcvDataBufferHdr); + } + RcvDescriptorBlockHdr->State = SXG_BUFFER_FREE; + SXG_RETURN_CMD(RingZero, RcvRingInfo, RingDescriptorCmd, + RcvDescriptorBlockHdr); + return (-ENOMEM); }