summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Kumar Salecha <amit.salecha@qlogic.com>2010-04-01 23:01:28 +0400
committerDavid S. Miller <davem@davemloft.net>2010-04-04 01:19:12 +0400
commit0bc92b5b4987ab55f2b75ef42251476b2e049e3d (patch)
tree7e0ee140c0723651f47fc8d8536099215e84ee9a
parent4e4f10f6498bc5038c0a110b5f21682fcb5578d7 (diff)
downloadlinux-0bc92b5b4987ab55f2b75ef42251476b2e049e3d.tar.xz
qlcnic: fix fw load from file
Rarely: Fw file size can be unaligned to 8. Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/qlcnic/qlcnic_init.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/qlcnic/qlcnic_init.c b/drivers/net/qlcnic/qlcnic_init.c
index 7c34e4e29b3f..0a424e038cff 100644
--- a/drivers/net/qlcnic/qlcnic_init.c
+++ b/drivers/net/qlcnic/qlcnic_init.c
@@ -949,6 +949,16 @@ qlcnic_load_firmware(struct qlcnic_adapter *adapter)
flashaddr += 8;
}
+
+ size = (__force u32)qlcnic_get_fw_size(adapter) % 8;
+ if (size) {
+ data = cpu_to_le64(ptr64[i]);
+
+ if (qlcnic_pci_mem_write_2M(adapter,
+ flashaddr, data))
+ return -EIO;
+ }
+
} else {
u64 data;
u32 hi, lo;