packages (LINUX_3_0): kernel/kernel-grsec_full.patch, kernel/kernel-small_f...

arekm arekm at pld-linux.org
Fri Dec 9 21:20:51 CET 2011


Author: arekm                        Date: Fri Dec  9 20:20:51 2011 GMT
Module: packages                      Tag: LINUX_3_0
---- Log message:
- up to 3.0.13

---- Files affected:
packages/kernel:
   kernel-grsec_full.patch (1.85.2.6 -> 1.85.2.7) , kernel-small_fixes.patch (1.43.2.10 -> 1.43.2.11) , kernel.spec (1.987.2.17 -> 1.987.2.18) 

---- Diffs:

================================================================
Index: packages/kernel/kernel-grsec_full.patch
diff -u packages/kernel/kernel-grsec_full.patch:1.85.2.6 packages/kernel/kernel-grsec_full.patch:1.85.2.7
--- packages/kernel/kernel-grsec_full.patch:1.85.2.6	Wed Dec  7 22:10:43 2011
+++ packages/kernel/kernel-grsec_full.patch	Fri Dec  9 21:20:43 2011
@@ -20457,7 +20457,7 @@
 diff -urNp linux-3.0.9/arch/x86/mm/highmem_32.c linux-3.0.9/arch/x86/mm/highmem_32.c
 --- linux-3.0.9/arch/x86/mm/highmem_32.c	2011-11-11 13:12:24.000000000 -0500
 +++ linux-3.0.9/arch/x86/mm/highmem_32.c	2011-11-15 20:02:59.000000000 -0500
-@@ -44,7 +44,10 @@ void *kmap_atomic_prot(struct page *page
+@@ -44,7 +44,11 @@ void *kmap_atomic_prot(struct page *page
  	idx = type + KM_TYPE_NR*smp_processor_id();
  	vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
  	BUG_ON(!pte_none(*(kmap_pte-idx)));
@@ -20465,9 +20465,10 @@
 +	pax_open_kernel();
  	set_pte(kmap_pte-idx, mk_pte(page, prot));
 +	pax_close_kernel();
++
+ 	arch_flush_lazy_mmu_mode();
  
  	return (void *)vaddr;
- }
 diff -urNp linux-3.0.9/arch/x86/mm/hugetlbpage.c linux-3.0.9/arch/x86/mm/hugetlbpage.c
 --- linux-3.0.9/arch/x86/mm/hugetlbpage.c	2011-11-11 13:12:24.000000000 -0500
 +++ linux-3.0.9/arch/x86/mm/hugetlbpage.c	2011-11-15 20:02:59.000000000 -0500

================================================================
Index: packages/kernel/kernel-small_fixes.patch
diff -u packages/kernel/kernel-small_fixes.patch:1.43.2.10 packages/kernel/kernel-small_fixes.patch:1.43.2.11
--- packages/kernel/kernel-small_fixes.patch:1.43.2.10	Fri Dec  2 20:46:24 2011
+++ packages/kernel/kernel-small_fixes.patch	Fri Dec  9 21:20:44 2011
@@ -59,83 +59,6 @@
  	/* block receiver */
  	sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET);
  }
-On Sat, 2 Jul 2011, Andi Kleen wrote:
-
-> > The problem is that blk_peek_request() calls scsi_prep_fn(), which 
-> > does this:
-> > 
-> > 	struct scsi_device *sdev = q->queuedata;
-> > 	int ret = BLKPREP_KILL;
-> > 
-> > 	if (req->cmd_type == REQ_TYPE_BLOCK_PC)
-> > 		ret = scsi_setup_blk_pc_cmnd(sdev, req);
-> > 	return scsi_prep_return(q, req, ret);
-> > 
-> > It doesn't check to see if sdev is NULL, nor does 
-> > scsi_setup_blk_pc_cmnd().  That accounts for this error:
-> 
-> I actually added a NULL check in scsi_setup_blk_pc_cmnd early on,
-> but that just caused RCU CPU stalls afterwards and then eventually
-> a hung system.
-
-The RCU problem is likely to be a separate issue.  It might even be a 
-result of the use-after-free problem with the elevator.
-
-At any rate, it's clear that the crash in the refcounting log you
-posted occurred because scsi_setup_blk_pc_cmnd() called
-scsi_prep_state_check(), which tried to dereference the NULL pointer.
-
-Would you like to try this patch to see if it fixes the problem?  As I 
-said before, I'm not certain it's the best thing to do, but it worked 
-on my system.
-
-Alan Stern
-
-
-
-
-Index: usb-3.0/drivers/scsi/scsi_lib.c
-===================================================================
---- usb-3.0.orig/drivers/scsi/scsi_lib.c
-+++ usb-3.0/drivers/scsi/scsi_lib.c
-@@ -1247,6 +1247,8 @@ int scsi_prep_fn(struct request_queue *q
- 	struct scsi_device *sdev = q->queuedata;
- 	int ret = BLKPREP_KILL;
- 
-+	if (!sdev)
-+		return ret;
- 	if (req->cmd_type == REQ_TYPE_BLOCK_PC)
- 		ret = scsi_setup_blk_pc_cmnd(sdev, req);
- 	return scsi_prep_return(q, req, ret);
-Index: usb-3.0/drivers/scsi/scsi_sysfs.c
-===================================================================
---- usb-3.0.orig/drivers/scsi/scsi_sysfs.c
-+++ usb-3.0/drivers/scsi/scsi_sysfs.c
-@@ -322,6 +322,8 @@ static void scsi_device_dev_release_user
- 		kfree(evt);
- 	}
- 
-+	/* Freeing the queue signals to block that we're done */
-+	scsi_free_queue(sdev->request_queue);
- 	blk_put_queue(sdev->request_queue);
- 	/* NULL queue means the device can't be used */
- 	sdev->request_queue = NULL;
-@@ -936,8 +938,6 @@ void __scsi_remove_device(struct scsi_de
- 	/* cause the request function to reject all I/O requests */
- 	sdev->request_queue->queuedata = NULL;
- 
--	/* Freeing the queue signals to block that we're done */
--	scsi_free_queue(sdev->request_queue);
- 	put_device(dev);
- }
- 
-
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
-the body of a message to majordomo at vger.kernel.org
-More majordomo info at  http://vger.kernel.org/majordomo-info.html
-Please read the FAQ at  http://www.tux.org/lkml/
 commit 3326c784c9f492e988617d93f647ae0cfd4c8d09
 Author: Jiri Pirko <jpirko at redhat.com>
 Date:   Wed Jul 20 04:54:38 2011 +0000
@@ -935,44 +858,6 @@
  }
  
  /*
-commit 745718132c3c7cac98a622b610e239dcd5217f71
-Author: Hannes Reinecke <hare at suse.de>
-Date:   Wed Nov 9 08:39:24 2011 +0100
-
-    [SCSI] Silencing 'killing requests for dead queue'
-    
-    When we tear down a device we try to flush all outstanding
-    commands in scsi_free_queue(). However the check in
-    scsi_request_fn() is imperfect as it only signals that
-    we _might start_ aborting commands, not that we've actually
-    aborted some.
-    So move the printk inside the scsi_kill_request function,
-    this will also give us a hint about which commands are aborted.
-    
-    Signed-off-by: Hannes Reinecke <hare at suse.de>
-    Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-
-diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
-index 06bc265..f85cfa6 100644
---- a/drivers/scsi/scsi_lib.c
-+++ b/drivers/scsi/scsi_lib.c
-@@ -1409,6 +1409,8 @@ static void scsi_kill_request(struct request *req, struct request_queue *q)
- 
- 	blk_start_request(req);
- 
-+	scmd_printk(KERN_INFO, cmd, "killing request\n");
-+
- 	sdev = cmd->device;
- 	starget = scsi_target(sdev);
- 	shost = sdev->host;
-@@ -1490,7 +1492,6 @@ static void scsi_request_fn(struct request_queue *q)
- 	struct request *req;
- 
- 	if (!sdev) {
--		printk("scsi: killing requests for dead queue\n");
- 		while ((req = blk_peek_request(q)) != NULL)
- 			scsi_kill_request(req, q);
- 		return;
 >From 4467601416e23740fc940c31b1fffacbcb69b4a0 Mon Sep 17 00:00:00 2001
 From: Corey Minyard <cminyard at mvista.com>
 Date: Mon, 21 Nov 2011 14:26:20 -0600
@@ -1077,90 +962,4 @@
 -- 
 1.7.4.1
 
-From: Christoph Hellwig <hch at lst.de>
-Date: Tue, 29 Nov 2011 18:06:14 +0000 (-0600)
-Subject: xfs: force buffer writeback before blocking on the ilock in inode reclaim
-X-Git-Url: http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs%2Fxfs.git;a=commitdiff_plain;h=4dd2cb4a28b7ab1f37163a4eba280926a13a8749
-
-xfs: force buffer writeback before blocking on the ilock in inode reclaim
-
-If we are doing synchronous inode reclaim we block the VM from making
-progress in memory reclaim.  So if we encouter a flush locked inode
-promote it in the delwri list and wake up xfsbufd to write it out now.
-Without this we can get hangs of up to 30 seconds during workloads hitting
-synchronous inode reclaim.
-
-The scheme is copied from what we do for dquot reclaims.
-
-Reported-by: Simon Kirby <sim at hostway.ca>
-Signed-off-by: Christoph Hellwig <hch at lst.de>
-Tested-by: Simon Kirby <sim at hostway.ca>
-Signed-off-by: Ben Myers <bpm at sgi.com>
----
 
-diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
-index c0237c6..755ee81 100644
---- a/fs/xfs/xfs_inode.c
-+++ b/fs/xfs/xfs_inode.c
-@@ -2835,6 +2835,27 @@ corrupt_out:
- 	return XFS_ERROR(EFSCORRUPTED);
- }
- 
-+void
-+xfs_promote_inode(
-+	struct xfs_inode	*ip)
-+{
-+	struct xfs_buf		*bp;
-+
-+	ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_ILOCK_SHARED));
-+
-+	bp = xfs_incore(ip->i_mount->m_ddev_targp, ip->i_imap.im_blkno,
-+			ip->i_imap.im_len, XBF_TRYLOCK);
-+	if (!bp)
-+		return;
-+
-+	if (XFS_BUF_ISDELAYWRITE(bp)) {
-+		xfs_buf_delwri_promote(bp);
-+		wake_up_process(ip->i_mount->m_ddev_targp->bt_task);
-+	}
-+
-+	xfs_buf_relse(bp);
-+}
-+
- /*
-  * Return a pointer to the extent record at file index idx.
-  */
-diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
-index 760140d..b4cd473 100644
---- a/fs/xfs/xfs_inode.h
-+++ b/fs/xfs/xfs_inode.h
-@@ -498,6 +498,7 @@ int		xfs_iunlink(struct xfs_trans *, xfs_inode_t *);
- void		xfs_iext_realloc(xfs_inode_t *, int, int);
- void		xfs_iunpin_wait(xfs_inode_t *);
- int		xfs_iflush(xfs_inode_t *, uint);
-+void		xfs_promote_inode(struct xfs_inode *);
- void		xfs_lock_inodes(xfs_inode_t **, int, uint);
- void		xfs_lock_two_inodes(xfs_inode_t *, xfs_inode_t *, uint);
- 
-diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c
-index aa3dc1a..be5c51d 100644
---- a/fs/xfs/linux-2.6/xfs_sync.c
-+++ b/fs/xfs/linux-2.6/xfs_sync.c
-@@ -770,6 +770,17 @@ restart:
- 	if (!xfs_iflock_nowait(ip)) {
- 		if (!(sync_mode & SYNC_WAIT))
- 			goto out;
-+
-+		/*
-+		 * If we only have a single dirty inode in a cluster there is
-+		 * a fair chance that the AIL push may have pushed it into
-+		 * the buffer, but xfsbufd won't touch it until 30 seconds
-+		 * from now, and thus we will lock up here.
-+		 *
-+		 * Promote the inode buffer to the front of the delwri list
-+		 * and wake up xfsbufd now.
-+		 */
-+		xfs_promote_inode(ip);
- 		xfs_iflock(ip);
- 	}
- 

================================================================
Index: packages/kernel/kernel.spec
diff -u packages/kernel/kernel.spec:1.987.2.17 packages/kernel/kernel.spec:1.987.2.18
--- packages/kernel/kernel.spec:1.987.2.17	Wed Dec  7 22:39:40 2011
+++ packages/kernel/kernel.spec	Fri Dec  9 21:20:44 2011
@@ -94,8 +94,8 @@
 %endif
 
 %define		basever		3.0
-%define		postver		.12
-%define		rel		3
+%define		postver		.13
+%define		rel		1
 
 %define		_enable_debug_packages			0
 
@@ -143,7 +143,7 @@
 # Source0-md5:	ecf932280e2441bdd992423ef3d55f8f
 %if "%{postver}" != ".0"
 Patch0:		http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
-# Patch0-md5:	b3030035fcc87c55ede362a47113af5d
+# Patch0-md5:	bf47382f0c923b8dc2b5e8e456c59cc9
 %endif
 
 Source3:	kernel-autoconf.h
@@ -1534,6 +1534,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.987.2.18  2011/12/09 20:20:44  arekm
+- up to 3.0.13
+
 Revision 1.987.2.17  2011/12/07 21:39:40  pluto
 - bump release into correct value - 3.
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-grsec_full.patch?r1=1.85.2.6&r2=1.85.2.7&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-small_fixes.patch?r1=1.43.2.10&r2=1.43.2.11&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel.spec?r1=1.987.2.17&r2=1.987.2.18&f=u



More information about the pld-cvs-commit mailing list