IPoIB/cm: Partial error clean up unmaps wrong address
authorRalph Campbell <ralph.campbell@qlogic.com>
Fri, 29 Jun 2007 18:37:56 +0000 (11:37 -0700)
committerRoland Dreier <rolandd@cisco.com>
Tue, 3 Jul 2007 03:48:31 +0000 (20:48 -0700)
commit841adfca9c5fc0fec6b1f0b2e5eb7a3b239a7730
treefcdc834ad623a890a0eeb499c41593615746c706
parent786f238e4f2f0d962831ee3228f2327133eb082a
IPoIB/cm: Partial error clean up unmaps wrong address

If a page can't be allocated for the frag list of a skb, the code to
unmap the partially allocated list is off by one.  For exaple, if
'frags' equals one, i == 0, and the alloc_page() fails, then the old
loop would have unmapped mapping[1] which is uninitialized.  The same
would happen if the call to ib_dma_map_page() failed.

Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Acked-by: Michael S. Tsirkin <mst@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/ipoib/ipoib_cm.c