瀏覽代碼

fsl_law: Fix bug in calculation of LAW sizing

In set_ddr_laws() when we determined how much of the size requested
to be mapped was covered by the the first LAW we needed to recalculate
the size based on what was actually mapped.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Kumar Gala 16 年之前
父節點
當前提交
e6a6789f41
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      drivers/misc/fsl_law.c

+ 3 - 0
drivers/misc/fsl_law.c

@@ -139,6 +139,9 @@ int set_ddr_laws(u64 start, u64 sz, enum law_trgt_if id)
 	if (set_last_law(start, law_sz_enc, id) < 0)
 		return -1;
 
+	/* recalculate size based on what was actually covered by the law */
+	law_sz = 1ull << __ilog2_u64(law_sz);
+
 	/* do we still have anything to map */
 	sz = sz - law_sz;
 	if (sz) {