From: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Date: Sat, 12 Mar 2011 09:02:21 +0000 (+0100)
Subject: cciss: Mask off error bits of c->busaddr in cmd_special_free when calling pci_free_co... 
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=16011131ced8bdb317e1bf03324ca78a27fa0a1c;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git

cciss: Mask off error bits of c->busaddr in cmd_special_free when calling pci_free_consistent

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
---

diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 27b04a32b0c5..f21116cb8b82 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -193,7 +193,7 @@ static int __devinit cciss_find_cfg_addrs(struct pci_dev *pdev,
 	u64 *cfg_offset);
 static int __devinit cciss_pci_find_memory_BAR(struct pci_dev *pdev,
 	unsigned long *memory_bar);
-
+static inline u32 cciss_tag_discard_error_bits(ctlr_info_t *h, u32 tag);
 
 /* performant mode helper functions */
 static void  calc_bucket_map(int *bucket, int num_buckets, int nsgs,
@@ -1012,8 +1012,8 @@ static void cmd_special_free(ctlr_info_t *h, CommandList_struct *c)
 	temp64.val32.upper = c->ErrDesc.Addr.upper;
 	pci_free_consistent(h->pdev, sizeof(ErrorInfo_struct),
 			    c->err_info, (dma_addr_t) temp64.val);
-	pci_free_consistent(h->pdev, sizeof(CommandList_struct),
-			    c, (dma_addr_t) c->busaddr);
+	pci_free_consistent(h->pdev, sizeof(CommandList_struct), c,
+		(dma_addr_t) cciss_tag_discard_error_bits(h, (u32) c->busaddr));
 }
 
 static inline ctlr_info_t *get_host(struct gendisk *disk)