lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 15 Dec 2009 10:31:17 +1100
From:	Stephen Rothwell <sfr@...b.auug.org.au>
To:	Grant Likely <grant.likely@...retlab.ca>
Cc:	linux-next@...r.kernel.org, linux-kernel@...r.kernel.org,
	Kumar Gala <galak@...nel.crashing.org>,
	Linus <torvalds@...ux-foundation.org>
Subject: linux-next: manual merge of the 52xx-and-virtex tree with the  tree

Hi Grant,

Today's linux-next merge of the 52xx-and-virtex tree got a conflict in
arch/powerpc/mm/fsl_booke_mmu.c between commit
8b27f0b61db57f5555fc2d3fc95c3ea9fd1a9d6c ("powerpc/fsl-booke: Rework TLB
CAM code") from Linus' tree and commit
ae4cec4736969ec2196a6bbce4ab263ff7cb7eef ("powerpc: fix up for
mmu_mapin_ram api change") from the 52xx-and-virtex tree.

I fixed it up (see below) and can carry the fix for a while.  Grant, you
can (of course) fix this by merging with Linus' tree.  (Or Linus, if you
merge Grant's tree, I think this fixup is correct).

-- 
Cheers,
Stephen Rothwell                    sfr@...b.auug.org.au

diff --cc arch/powerpc/mm/fsl_booke_mmu.c
index fcfcb6e,6da4b90..0000000
--- a/arch/powerpc/mm/fsl_booke_mmu.c
+++ b/arch/powerpc/mm/fsl_booke_mmu.c
@@@ -172,44 -148,27 +172,44 @@@ static void settlbcam(int index, unsign
  	loadcam_entry(index);
  }
  
 -void invalidate_tlbcam_entry(int index)
 -{
 -	TLBCAM[index].MAS0 = MAS0_TLBSEL(1) | MAS0_ESEL(index);
 -	TLBCAM[index].MAS1 = ~MAS1_VALID;
 -
 -	loadcam_entry(index);
 -}
 -
 -unsigned long __init mmu_mapin_ram(unsigned long top)
 +unsigned long map_mem_in_cams(unsigned long ram, int max_cam_idx)
  {
 +	int i;
  	unsigned long virt = PAGE_OFFSET;
  	phys_addr_t phys = memstart_addr;
 +	unsigned long amount_mapped = 0;
 +	unsigned long max_cam = (mfspr(SPRN_TLB1CFG) >> 16) & 0xf;
 +
 +	/* Convert (4^max) kB to (2^max) bytes */
 +	max_cam = max_cam * 2 + 10;
  
 -	while (tlbcam_index < ARRAY_SIZE(cam) && cam[tlbcam_index]) {
 -		settlbcam(tlbcam_index, virt, phys, cam[tlbcam_index], PAGE_KERNEL_X, 0);
 -		virt += cam[tlbcam_index];
 -		phys += cam[tlbcam_index];
 -		tlbcam_index++;
 +	/* Calculate CAM values */
 +	for (i = 0; ram && i < max_cam_idx; i++) {
 +		unsigned int camsize = __ilog2(ram) & ~1U;
 +		unsigned int align = __ffs(virt | phys) & ~1U;
 +		unsigned long cam_sz;
 +
 +		if (camsize > align)
 +			camsize = align;
 +		if (camsize > max_cam)
 +			camsize = max_cam;
 +
 +		cam_sz = 1UL << camsize;
 +		settlbcam(i, virt, phys, cam_sz, PAGE_KERNEL_X, 0);
 +
 +		ram -= cam_sz;
 +		amount_mapped += cam_sz;
 +		virt += cam_sz;
 +		phys += cam_sz;
  	}
 +	tlbcam_index = i;
 +
 +	return amount_mapped;
 +}
  
- unsigned long __init mmu_mapin_ram(void)
 -	return virt - PAGE_OFFSET;
++unsigned long __init mmu_mapin_ram(unsigned long top)
 +{
 +	return tlbcam_addrs[tlbcam_index - 1].limit - PAGE_OFFSET + 1;
  }
  
  /*
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ