forked from rpms/kernel
		
	Linux 3.1-git7 (upstream 31555213f)
This commit is contained in:
		
							parent
							
								
									05e763b50e
								
							
						
					
					
						commit
						ea8a97de39
					
				
							
								
								
									
										5
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								TODO
									
									
									
									
									
								
							| @ -1,11 +1,9 @@ | ||||
| **** Queued for 3.2 *********************************************************************************** | ||||
| 
 | ||||
| * hvcs_pi_buf_alloc.patch | ||||
| * acpi-ensure-thermal-limits-match-cpu-freq.patch | ||||
| * revert-efi-rtclock.patch | ||||
| * block-stray-block-put-after-teardown.patch | ||||
| * efi-dont-map-boot-services-on-32bit.patch | ||||
| * powerpc-Fix-deadlock-in-icswx-code.patch | ||||
| * usb-add-quirk-for-logitech-webcams.patch (reworked, sent upstream) | ||||
| * epoll-limit-paths.patch (in linux-next via -mm tree) | ||||
| 
 | ||||
| @ -101,6 +99,3 @@ | ||||
| *********************************************************************************** | ||||
| 
 | ||||
| Spec file/config todos/cleanups | ||||
| 
 | ||||
| * Remove all of the RHEL stuff.  It isn't maintained in fedora at all and is | ||||
| just cruft | ||||
|  | ||||
| @ -176,3 +176,5 @@ CONFIG_FTGMAC100=m | ||||
| # CONFIG_ATM_HE is not set | ||||
| # CONFIG_SCSI_ACARD is not set | ||||
| # CONFIG_ARM_KPROBES_TEST is not set | ||||
| # CONFIG_PL330_DMA is not set | ||||
| # CONFIG_VIDEO_S5K6AA is not set | ||||
|  | ||||
| @ -3698,6 +3698,7 @@ CONFIG_SQUASHFS_XATTR=y | ||||
| CONFIG_SQUASHFS_LZO=y | ||||
| CONFIG_SQUASHFS_XZ=y | ||||
| CONFIG_SQUASHFS_ZLIB=y | ||||
| # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set | ||||
| # CONFIG_SQUASHFS_EMBEDDED is not set | ||||
| CONFIG_VXFS_FS=m | ||||
| # CONFIG_HPFS_FS is not set | ||||
| @ -4433,6 +4434,7 @@ CONFIG_UWB_WHCI=m | ||||
| CONFIG_UWB_I1480U=m | ||||
| 
 | ||||
| CONFIG_STAGING=y | ||||
| # CONFIG_STAGING_MEDIA is not set | ||||
| # CONFIG_ET131X is not set | ||||
| # CONFIG_SLICOSS is not set | ||||
| # CONFIG_WLAGS49_H2 is not set | ||||
|  | ||||
| @ -8,6 +8,8 @@ CONFIG_PPC_PMAC64=y | ||||
| CONFIG_PPC_ISERIES=y | ||||
| CONFIG_PPC_PSERIES=y | ||||
| CONFIG_PPC_PMAC=y | ||||
| CONFIG_PPC_POWERNV=y | ||||
| CONFIG_PPC_POWERNV_RTAS=y | ||||
| # CONFIG_PPC_PASEMI is not set | ||||
| # CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set | ||||
| # CONFIG_PPC_PS3 is not set | ||||
| @ -41,6 +43,7 @@ CONFIG_SCSI_IPR_TRACE=y | ||||
| CONFIG_SCSI_IPR_DUMP=y | ||||
| CONFIG_HVC_RTAS=y | ||||
| CONFIG_HVC_ISERIES=y | ||||
| CONFIG_HVC_OPAL=y | ||||
| 
 | ||||
| # iSeries device drivers | ||||
| # | ||||
|  | ||||
| @ -83,7 +83,7 @@ CONFIG_SGI_GRU=m | ||||
| 
 | ||||
| # CONFIG_VIDEO_CAFE_CCIC is not set | ||||
| 
 | ||||
| CONFIG_XEN_MAX_DOMAIN_MEMORY=32 | ||||
| CONFIG_XEN_MAX_DOMAIN_MEMORY=128 | ||||
| # CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not set | ||||
| CONFIG_XEN_DEV_EVTCHN=m | ||||
| CONFIG_XEN_SYS_HYPERVISOR=y | ||||
|  | ||||
| @ -1,43 +0,0 @@ | ||||
| 
 | ||||
| The Power platform requires the partner info buffer to be page aligned | ||||
| otherwise it will fail the partner info hcall with H_PARAMETER. Switch | ||||
| from using kmalloc to allocate this buffer to __get_free_page to ensure | ||||
| page alignment. | ||||
| 
 | ||||
| Signed-off-by: Brian King <brking@linux.vnet.ibm.com> | ||||
| ---
 | ||||
| 
 | ||||
|  drivers/tty/hvc/hvcs.c |    6 +++--- | ||||
|  1 file changed, 3 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff -puN drivers/tty/hvc/hvcs.c~hvcs_pi_buf_alloc drivers/tty/hvc/hvcs.c
 | ||||
| --- linux-2.6/drivers/tty/hvc/hvcs.c~hvcs_pi_buf_alloc	2011-09-09 16:00:25.000000000 -0500
 | ||||
| +++ linux-2.6-bjking1/drivers/tty/hvc/hvcs.c	2011-09-09 16:07:08.000000000 -0500
 | ||||
| @@ -1532,7 +1532,7 @@ static int __devinit hvcs_initialize(voi
 | ||||
|  		goto register_fail; | ||||
|  	} | ||||
|   | ||||
| -	hvcs_pi_buff = kmalloc(PAGE_SIZE, GFP_KERNEL);
 | ||||
| +	hvcs_pi_buff = (unsigned long *) __get_free_page(GFP_KERNEL);
 | ||||
|  	if (!hvcs_pi_buff) { | ||||
|  		rc = -ENOMEM; | ||||
|  		goto buff_alloc_fail; | ||||
| @@ -1548,7 +1548,7 @@ static int __devinit hvcs_initialize(voi
 | ||||
|  	return 0; | ||||
|   | ||||
|  kthread_fail: | ||||
| -	kfree(hvcs_pi_buff);
 | ||||
| +	free_page((unsigned long)hvcs_pi_buff);
 | ||||
|  buff_alloc_fail: | ||||
|  	tty_unregister_driver(hvcs_tty_driver); | ||||
|  register_fail: | ||||
| @@ -1597,7 +1597,7 @@ static void __exit hvcs_module_exit(void
 | ||||
|  	kthread_stop(hvcs_task); | ||||
|   | ||||
|  	spin_lock(&hvcs_pi_lock); | ||||
| -	kfree(hvcs_pi_buff);
 | ||||
| +	free_page((unsigned long)hvcs_pi_buff);
 | ||||
|  	hvcs_pi_buff = NULL; | ||||
|  	spin_unlock(&hvcs_pi_lock); | ||||
|   | ||||
| _ | ||||
							
								
								
									
										15
									
								
								kernel.spec
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								kernel.spec
									
									
									
									
									
								
							| @ -87,7 +87,7 @@ Summary: The Linux kernel | ||||
| # The rc snapshot level | ||||
| %define rcrev 0 | ||||
| # The git snapshot level | ||||
| %define gitrev 6 | ||||
| %define gitrev 7 | ||||
| # Set rpm version accordingly | ||||
| %define rpmversion 3.%{upstream_sublevel}.0 | ||||
| %endif | ||||
| @ -691,10 +691,6 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch | ||||
| Patch13002: revert-efi-rtclock.patch | ||||
| Patch13003: efi-dont-map-boot-services-on-32bit.patch | ||||
| 
 | ||||
| Patch13009: hvcs_pi_buf_alloc.patch | ||||
| 
 | ||||
| Patch13013: powerpc-Fix-deadlock-in-icswx-code.patch | ||||
| 
 | ||||
| Patch20000: utrace.patch | ||||
| 
 | ||||
| # Flattened devicetree support | ||||
| @ -1321,11 +1317,6 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch | ||||
| ApplyPatch revert-efi-rtclock.patch | ||||
| ApplyPatch efi-dont-map-boot-services-on-32bit.patch | ||||
| 
 | ||||
| 
 | ||||
| ApplyPatch hvcs_pi_buf_alloc.patch | ||||
| 
 | ||||
| ApplyPatch powerpc-Fix-deadlock-in-icswx-code.patch | ||||
| 
 | ||||
| # utrace. | ||||
| ApplyPatch utrace.patch | ||||
| 
 | ||||
| @ -2035,6 +2026,10 @@ fi | ||||
| #                 ||----w | | ||||
| #                 ||     || | ||||
| %changelog | ||||
| * Mon Nov 07 2011 Josh Boyer <jwboyer@redhat.com> | ||||
| - Linux 3.1-git7 | ||||
| - Drop override for XEN_MAX_DOMAIN_MEMORY (rhbz 751789) | ||||
| 
 | ||||
| * Fri Nov 04 2011 Josh Boyer <jwboyer@redhat.com> | ||||
| - Linux 3.1-git6 | ||||
| 
 | ||||
|  | ||||
| @ -1,74 +0,0 @@ | ||||
| From patchwork Wed Sep 14 19:43:15 2011 | ||||
| Content-Type: text/plain; charset="utf-8" | ||||
| MIME-Version: 1.0 | ||||
| Content-Transfer-Encoding: 7bit | ||||
| Subject: powerpc: Fix deadlock in icswx code | ||||
| Date: Wed, 14 Sep 2011 09:43:15 -0000 | ||||
| From: Anton Blanchard <anton@samba.org> | ||||
| X-Patchwork-Id: 114701 | ||||
| Message-Id: <20110915054315.5e5ae062@kryten> | ||||
| To: benh@kernel.crashing.org, paulus@samba.org | ||||
| Cc: linuxppc-dev@lists.ozlabs.org | ||||
| 
 | ||||
| The icswx code introduced an A-B B-A deadlock: | ||||
| 
 | ||||
|      CPU0                    CPU1 | ||||
|      ----                    ---- | ||||
| lock(&anon_vma->mutex); | ||||
|                              lock(&mm->mmap_sem); | ||||
|                              lock(&anon_vma->mutex); | ||||
| lock(&mm->mmap_sem); | ||||
| 
 | ||||
| Instead of using the mmap_sem to keep mm_users constant, take the | ||||
| page table spinlock. | ||||
| 
 | ||||
| Signed-off-by: Anton Blanchard <anton@samba.org> | ||||
| Cc: <stable@kernel.org> | ||||
| 
 | ||||
| ---
 | ||||
| 
 | ||||
| 
 | ||||
| diff --git a/arch/powerpc/mm/mmu_context_hash64.c b/arch/powerpc/mm/mmu_context_hash64.c
 | ||||
| index 3bafc3d..4ff587e 100644
 | ||||
| --- a/arch/powerpc/mm/mmu_context_hash64.c
 | ||||
| +++ b/arch/powerpc/mm/mmu_context_hash64.c
 | ||||
| @@ -136,8 +136,8 @@ int use_cop(unsigned long acop, struct mm_struct *mm)
 | ||||
|  	if (!mm || !acop) | ||||
|  		return -EINVAL; | ||||
|   | ||||
| -	/* We need to make sure mm_users doesn't change */
 | ||||
| -	down_read(&mm->mmap_sem);
 | ||||
| +	/* The page_table_lock ensures mm_users won't change under us */
 | ||||
| +	spin_lock(&mm->page_table_lock);
 | ||||
|  	spin_lock(mm->context.cop_lockp); | ||||
|   | ||||
|  	if (mm->context.cop_pid == COP_PID_NONE) { | ||||
| @@ -164,7 +164,7 @@ int use_cop(unsigned long acop, struct mm_struct *mm)
 | ||||
|   | ||||
|  out: | ||||
|  	spin_unlock(mm->context.cop_lockp); | ||||
| -	up_read(&mm->mmap_sem);
 | ||||
| +	spin_unlock(&mm->page_table_lock);
 | ||||
|   | ||||
|  	return ret; | ||||
|  } | ||||
| @@ -185,8 +185,8 @@ void drop_cop(unsigned long acop, struct mm_struct *mm)
 | ||||
|  	if (WARN_ON_ONCE(!mm)) | ||||
|  		return; | ||||
|   | ||||
| -	/* We need to make sure mm_users doesn't change */
 | ||||
| -	down_read(&mm->mmap_sem);
 | ||||
| +	/* The page_table_lock ensures mm_users won't change under us */
 | ||||
| +	spin_lock(&mm->page_table_lock);
 | ||||
|  	spin_lock(mm->context.cop_lockp); | ||||
|   | ||||
|  	mm->context.acop &= ~acop; | ||||
| @@ -213,7 +213,7 @@ void drop_cop(unsigned long acop, struct mm_struct *mm)
 | ||||
|  	} | ||||
|   | ||||
|  	spin_unlock(mm->context.cop_lockp); | ||||
| -	up_read(&mm->mmap_sem);
 | ||||
| +	spin_unlock(&mm->page_table_lock);
 | ||||
|  } | ||||
|  EXPORT_SYMBOL_GPL(drop_cop); | ||||
|   | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user