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