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 *********************************************************************************** | **** Queued for 3.2 *********************************************************************************** | ||||||
| 
 | 
 | ||||||
| * hvcs_pi_buf_alloc.patch |  | ||||||
| * acpi-ensure-thermal-limits-match-cpu-freq.patch | * acpi-ensure-thermal-limits-match-cpu-freq.patch | ||||||
| * revert-efi-rtclock.patch | * revert-efi-rtclock.patch | ||||||
| * block-stray-block-put-after-teardown.patch | * block-stray-block-put-after-teardown.patch | ||||||
| * efi-dont-map-boot-services-on-32bit.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) | * usb-add-quirk-for-logitech-webcams.patch (reworked, sent upstream) | ||||||
| * epoll-limit-paths.patch (in linux-next via -mm tree) | * epoll-limit-paths.patch (in linux-next via -mm tree) | ||||||
| 
 | 
 | ||||||
| @ -101,6 +99,3 @@ | |||||||
| *********************************************************************************** | *********************************************************************************** | ||||||
| 
 | 
 | ||||||
| Spec file/config todos/cleanups | 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_ATM_HE is not set | ||||||
| # CONFIG_SCSI_ACARD is not set | # CONFIG_SCSI_ACARD is not set | ||||||
| # CONFIG_ARM_KPROBES_TEST 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_LZO=y | ||||||
| CONFIG_SQUASHFS_XZ=y | CONFIG_SQUASHFS_XZ=y | ||||||
| CONFIG_SQUASHFS_ZLIB=y | CONFIG_SQUASHFS_ZLIB=y | ||||||
|  | # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set | ||||||
| # CONFIG_SQUASHFS_EMBEDDED is not set | # CONFIG_SQUASHFS_EMBEDDED is not set | ||||||
| CONFIG_VXFS_FS=m | CONFIG_VXFS_FS=m | ||||||
| # CONFIG_HPFS_FS is not set | # CONFIG_HPFS_FS is not set | ||||||
| @ -4433,6 +4434,7 @@ CONFIG_UWB_WHCI=m | |||||||
| CONFIG_UWB_I1480U=m | CONFIG_UWB_I1480U=m | ||||||
| 
 | 
 | ||||||
| CONFIG_STAGING=y | CONFIG_STAGING=y | ||||||
|  | # CONFIG_STAGING_MEDIA is not set | ||||||
| # CONFIG_ET131X is not set | # CONFIG_ET131X is not set | ||||||
| # CONFIG_SLICOSS is not set | # CONFIG_SLICOSS is not set | ||||||
| # CONFIG_WLAGS49_H2 is not set | # CONFIG_WLAGS49_H2 is not set | ||||||
|  | |||||||
| @ -8,6 +8,8 @@ CONFIG_PPC_PMAC64=y | |||||||
| CONFIG_PPC_ISERIES=y | CONFIG_PPC_ISERIES=y | ||||||
| CONFIG_PPC_PSERIES=y | CONFIG_PPC_PSERIES=y | ||||||
| CONFIG_PPC_PMAC=y | CONFIG_PPC_PMAC=y | ||||||
|  | CONFIG_PPC_POWERNV=y | ||||||
|  | CONFIG_PPC_POWERNV_RTAS=y | ||||||
| # CONFIG_PPC_PASEMI is not set | # CONFIG_PPC_PASEMI is not set | ||||||
| # CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set | # CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set | ||||||
| # CONFIG_PPC_PS3 is not set | # CONFIG_PPC_PS3 is not set | ||||||
| @ -41,6 +43,7 @@ CONFIG_SCSI_IPR_TRACE=y | |||||||
| CONFIG_SCSI_IPR_DUMP=y | CONFIG_SCSI_IPR_DUMP=y | ||||||
| CONFIG_HVC_RTAS=y | CONFIG_HVC_RTAS=y | ||||||
| CONFIG_HVC_ISERIES=y | CONFIG_HVC_ISERIES=y | ||||||
|  | CONFIG_HVC_OPAL=y | ||||||
| 
 | 
 | ||||||
| # iSeries device drivers | # iSeries device drivers | ||||||
| # | # | ||||||
|  | |||||||
| @ -83,7 +83,7 @@ CONFIG_SGI_GRU=m | |||||||
| 
 | 
 | ||||||
| # CONFIG_VIDEO_CAFE_CCIC is not set | # 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_BALLOON_MEMORY_HOTPLUG is not set | ||||||
| CONFIG_XEN_DEV_EVTCHN=m | CONFIG_XEN_DEV_EVTCHN=m | ||||||
| CONFIG_XEN_SYS_HYPERVISOR=y | 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 | # The rc snapshot level | ||||||
| %define rcrev 0 | %define rcrev 0 | ||||||
| # The git snapshot level | # The git snapshot level | ||||||
| %define gitrev 6 | %define gitrev 7 | ||||||
| # Set rpm version accordingly | # Set rpm version accordingly | ||||||
| %define rpmversion 3.%{upstream_sublevel}.0 | %define rpmversion 3.%{upstream_sublevel}.0 | ||||||
| %endif | %endif | ||||||
| @ -691,10 +691,6 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch | |||||||
| Patch13002: revert-efi-rtclock.patch | Patch13002: revert-efi-rtclock.patch | ||||||
| Patch13003: efi-dont-map-boot-services-on-32bit.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 | Patch20000: utrace.patch | ||||||
| 
 | 
 | ||||||
| # Flattened devicetree support | # Flattened devicetree support | ||||||
| @ -1321,11 +1317,6 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch | |||||||
| ApplyPatch revert-efi-rtclock.patch | ApplyPatch revert-efi-rtclock.patch | ||||||
| ApplyPatch efi-dont-map-boot-services-on-32bit.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. | # utrace. | ||||||
| ApplyPatch utrace.patch | ApplyPatch utrace.patch | ||||||
| 
 | 
 | ||||||
| @ -2035,6 +2026,10 @@ fi | |||||||
| #                 ||----w | | #                 ||----w | | ||||||
| #                 ||     || | #                 ||     || | ||||||
| %changelog | %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> | * Fri Nov 04 2011 Josh Boyer <jwboyer@redhat.com> | ||||||
| - Linux 3.1-git6 | - 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