tree 1e10a407c48ab982032084b5fc72bb62a0d95173
parent 3e71f6dd47e7e64461328adcdc3fbad1465b4c2f
author Benjamin Li <benjamin.li@qlogic.com> 1172516800 -0800
committer Jeff Garzik <jeff@garzik.org> 1172568104 -0500

qla3xxx: Check return code from pci_map_single() in ql_release_to_lrg_buf_free_list(), ql_populate_free_queue(), ql_alloc_large_buffers(), and ql3xxx_send()

pci_map_single() could fail.  We need to properly check the return
code from pci_map_single().  If we can not properly map this address,
then we should cleanup and return the proper return code.

Signed-off-by: Benjamin Li <benjamin.li@qlogic.com>
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
