Messages in this thread | | | Date | Fri, 13 Apr 2012 10:09:54 -0700 | From | Stephen Hemminger <> | Subject | Re: sky2: in free_buffers() do proper checks before call of rx_clean() |
| |
On Tue, 3 Apr 2012 02:13:27 +0200 Lino Sanfilippo <LinoSanfilippo@gmx.de> wrote:
> In sky2_open() free_buffers() is called in case that alloc_buffers() failed. > Here we do the check for sky2->rx_le too late, since we already called > rx_clean() which accessed rx_le. Furthermore we lack a check for sky2->rx_ring > which is also accessed by rx_clean(). > > With this patch both sky2->rx_le and sky2->rx_ring are checked before > alloc_buffers() is called. > > Signed-off-by: Lino Sanfilippo <LinoSanfilippo@gmx.de>
Looking at sky2_alloc_buffers, it really needs to change to have proper unwind instead. If some portion of the memory required isn't available everything needs to be undone.
| |