rpms/kernel/FC-4 kernel-2.6.spec, 1.1517, 1.1518 linux-2.6-acpi-enable-ecburst.patch, 1.3, 1.4 linux-2.6-write-protect-rodata.patch, 1.2, 1.3

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Sun Nov 27 08:19:33 UTC 2005


Author: davej

Update of /cvs/dist/rpms/kernel/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv7890

Modified Files:
	kernel-2.6.spec linux-2.6-acpi-enable-ecburst.patch 
	linux-2.6-write-protect-rodata.patch 
Log Message:
change-page-attr fix.



Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/kernel-2.6.spec,v
retrieving revision 1.1517
retrieving revision 1.1518
diff -u -r1.1517 -r1.1518
--- kernel-2.6.spec	26 Nov 2005 06:08:56 -0000	1.1517
+++ kernel-2.6.spec	27 Nov 2005 08:19:29 -0000	1.1518
@@ -618,7 +618,7 @@
 %endif
 
 # Write protect rodata
-#%patch814 -p1
+%patch814 -p1
 
 #
 # GPG signed kernel modules
@@ -1256,6 +1256,9 @@
 %endif
 
 %changelog
+* Sun Nov 27 2005 Dave Jones <davej at redhat.com> [2.6.14-1.1644_FC4]
+- Port a change_page_attr() fix from x86-64 to i386.
+
 * Sat Nov 26 2005 Dave Jones <davej at redhat.com> [2.6.14-1.1643_FC4]
 - Fix infinite loop in rtnetlink.
 

linux-2.6-acpi-enable-ecburst.patch:
 linux-2.6.13/drivers/acpi/ec.c |    2 +-
 linux-2.6.14/drivers/acpi/ec.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6-acpi-enable-ecburst.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/linux-2.6-acpi-enable-ecburst.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- linux-2.6-acpi-enable-ecburst.patch	28 Oct 2005 05:23:06 -0000	1.3
+++ linux-2.6-acpi-enable-ecburst.patch	27 Nov 2005 08:19:29 -0000	1.4
@@ -9,3 +9,14 @@
  		.remove = acpi_ec_remove,
  		.start = acpi_ec_start,
  		.stop = acpi_ec_stop,
+--- linux-2.6.14/drivers/acpi/ec.c~	2005-11-27 02:51:40.000000000 -0500
++++ linux-2.6.14/drivers/acpi/ec.c	2005-11-27 02:51:51.000000000 -0500
+@@ -147,7 +147,7 @@ static union acpi_ec *ec_ecdt;
+ 
+ /* External interfaces use first EC only, so remember */
+ static struct acpi_device *first_ec;
+-static int acpi_ec_polling_mode = EC_POLLING;
++static int acpi_ec_polling_mode = EC_BURST;
+ 
+ /* --------------------------------------------------------------------------
+                              Transaction Management

linux-2.6-write-protect-rodata.patch:
 linux-2.6.14-fordiff/arch/i386/Kconfig.debug           |   10 +++++++
 linux-2.6.14-fordiff/arch/i386/kernel/entry.S          |    1 
 linux-2.6.14-fordiff/arch/i386/kernel/syscall_table.S  |    1 
 linux-2.6.14-fordiff/arch/i386/mm/init.c               |   24 +++++++++++++++++
 linux-2.6.14-fordiff/arch/x86_64/Kconfig.debug         |   10 +++++++
 linux-2.6.14-fordiff/arch/x86_64/kernel/syscall.c      |    2 -
 linux-2.6.14-fordiff/arch/x86_64/mm/init.c             |   23 ++++++++++++++++
 linux-2.6.14-fordiff/arch/x86_64/mm/pageattr.c         |    9 ++++--
 linux-2.6.14-fordiff/include/asm-generic/vmlinux.lds.h |    4 ++
 linux-2.6.14-fordiff/include/asm-x86_64/pgtable.h      |    2 +
 linux-2.6.14-fordiff/init/main.c                       |    6 ++++
 linux-2.6.14/arch/i386/mm/init.c                       |   12 ++++++++
 linux-2.6.14/arch/x86_64/mm/init.c                     |   12 ++++++++
 linux-2.6.9-22.EL/arch/i386/mm/pageattr.c              |   23 ++++++++++++----
 14 files changed, 130 insertions(+), 9 deletions(-)

Index: linux-2.6-write-protect-rodata.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/linux-2.6-write-protect-rodata.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-write-protect-rodata.patch	23 Nov 2005 05:29:27 -0000	1.2
+++ linux-2.6-write-protect-rodata.patch	27 Nov 2005 08:19:29 -0000	1.3
@@ -315,3 +315,66 @@
  #endif
  
  #ifdef CONFIG_BLK_DEV_INITRD
+
+
+
+
+--- linux-2.6.9-22.EL/arch/i386/mm/pageattr.c.nopatch	2005-10-04 10:33:12.000000000 -0500
++++ linux-2.6.9-22.EL/arch/i386/mm/pageattr.c	2005-10-04 10:33:33.000000000 -0500
+@@ -31,7 +31,8 @@ pte_t *lookup_address(unsigned long addr
+         return pte_offset_kernel(pmd, address);
+ } 
+ 
+-static struct page *split_large_page(unsigned long address, pgprot_t prot)
++static struct page *split_large_page(unsigned long address, pgprot_t prot,
++					pgprot_t ref_prot)
+ { 
+ 	int i; 
+ 	unsigned long addr;
+@@ -54,7 +54,7 @@ static struct page *split_large_page(uns
+ 	pbase = (pte_t *)page_address(base);
+ 	for (i = 0; i < PTRS_PER_PTE; i++, addr += PAGE_SIZE) {
+                set_pte(&pbase[i], pfn_pte(addr >> PAGE_SHIFT,
+-                                          addr == address ? prot : PAGE_KERNEL));
++                                          addr == address ? prot : ref_prot));
+ 	}
+ 	return base;
+ } 
+@@ -98,11 +98,17 @@ static void set_pmd_pte(pte_t *kpte, uns
+  */
+ static inline void revert_page(struct page *kpte_page, unsigned long address)
+ {
++	pgprot_t ref_prot;
++
++	ref_prot =
++	((address & LARGE_PAGE_MASK) < (unsigned long)&_etext)
++		? PAGE_KERNEL_LARGE_EXEC : PAGE_KERNEL_LARGE;
++
+ 	pte_t *linear = (pte_t *) 
+ 		pmd_offset(pud_offset(pgd_offset_k(address), address), address);
+ 	set_pmd_pte(linear,  address,
+ 		    pfn_pte((__pa(address) & LARGE_PAGE_MASK) >> PAGE_SHIFT,
+-			    PAGE_KERNEL_LARGE));
++			    ref_prot));
+ }
+ 
+ static int
+@@ -121,10 +128,16 @@ __change_page_attr(struct page *page, pg
+ 		if ((pte_val(*kpte) & _PAGE_PSE) == 0) { 
+ 			set_pte_atomic(kpte, mk_pte(page, prot)); 
+ 		} else {
+-			struct page *split = split_large_page(address, prot); 
++			pgprot_t ref_prot;
++			struct page *split;
++	
++			ref_prot =
++			((address & LARGE_PAGE_MASK) < (unsigned long)&_etext)
++				? PAGE_KERNEL_EXEC : PAGE_KERNEL;
++			split = split_large_page(address, prot, ref_prot); 
+ 			if (!split)
+ 				return -ENOMEM;
+-			set_pmd_pte(kpte,address,mk_pte(split, PAGE_KERNEL));
++			set_pmd_pte(kpte,address,mk_pte(split, ref_prot));
+ 			kpte_page = split;
+ 		}	
+ 		get_page(kpte_page);




More information about the fedora-cvs-commits mailing list