rpms/kernel/devel linux-2.6-ext3-16tb-overflow-fixes.patch, NONE, 1.1.2.1 linux-2.6-x86-k8-powernow-clock-disable-fix.patch, NONE, 1.1.2.1 linux-2.6.18.tar.bz2.sign, NONE, 1.1.2.1 .cvsignore, 1.528, 1.528.2.1 kernel-2.6.spec, 1.2670.2.3, 1.2670.2.4 linux-2.6-lockdep-fixes.patch, 1.25, 1.25.8.1 linux-2.6-net-netlabel-cipso.patch, 1.1, 1.1.16.1 linux-2.6-x86-relocatable.patch, 1.6, 1.6.4.1 linux-2.6-xen.patch, 1.67, 1.67.2.1 sources, 1.491, 1.491.2.1 upstream, 1.425, 1.425.2.1
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Wed Sep 20 17:45:38 UTC 2006
- Previous message (by thread): rpms/kernel/devel/configs config-ia64-generic,1.46,1.46.8.1
- Next message (by thread): rpms/gcc/devel gcc41-pr29097.patch, NONE, 1.1 gcc41-strncat-chk.patch, NONE, 1.1 .cvsignore, 1.171, 1.172 gcc41.spec, 1.104, 1.105 sources, 1.173, 1.174 gcc41-pr28046.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: jmoyer
Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv27707
Modified Files:
Tag: private-jmoyer-dio-testing-branch
.cvsignore kernel-2.6.spec linux-2.6-lockdep-fixes.patch
linux-2.6-net-netlabel-cipso.patch
linux-2.6-x86-relocatable.patch linux-2.6-xen.patch sources
upstream
Added Files:
Tag: private-jmoyer-dio-testing-branch
linux-2.6-ext3-16tb-overflow-fixes.patch
linux-2.6-x86-k8-powernow-clock-disable-fix.patch
linux-2.6.18.tar.bz2.sign
Log Message:
updated to latest from head
linux-2.6-ext3-16tb-overflow-fixes.patch:
fs/ext3/super.c | 34 +++++++++++++++++--------------
linux-2.6.17-1.2654.el5/fs/ext3/balloc.c | 11 +++++-----
linux-2.6.17-1.2654.el5/fs/ext3/ialloc.c | 6 ++---
linux-2.6.17-1.2654.el5/fs/ext3/inode.c | 2 -
linux-2.6.17-1.2654.el5/fs/ext3/namei.c | 4 +--
linux-2.6.17-1.2654.el5/fs/ext3/resize.c | 17 +++++++++++++++
linux-2.6.17-1.2654.el5/fs/ext3/super.c | 25 +++++++++++-----------
linux-2.6.17-1.2654.el5/fs/ext3/xattr.c | 16 +++++++-------
8 files changed, 69 insertions(+), 46 deletions(-)
--- NEW FILE linux-2.6-ext3-16tb-overflow-fixes.patch ---
Date: Tue, 19 Sep 2006 15:33:04 -0500
From: Eric Sandeen <esandeen at redhat.com>
Subject: [RHEL5 Patch 3/3] (resend) Fix ext3 32-bit inodes
This one is in the -mm tree as ext3-inode-numbers-are-unsigned-long.patch,
resent to accomodate sct's request for uints instead; just pinged akpm
to pick up the ulonglong->uint change.
This is primarily format string fixes, with changes to ialloc.c where large
inode counts could overflow, and also pass around journal_inum as an
unsigned long, just to be pedantic about it....
Signed-off-by: Eric Sandeen <esandeen at redhat.com>
Cc: Mingming Cao <cmm at us.ibm.com>
Signed-off-by: Andrew Morton <akpm at osdl.org>
Index: linux-2.6.17-1.2654.el5/fs/ext3/ialloc.c
===================================================================
--- linux-2.6.17-1.2654.el5.orig/fs/ext3/ialloc.c
+++ linux-2.6.17-1.2654.el5/fs/ext3/ialloc.c
@@ -202,7 +202,7 @@ error_return:
static int find_group_dir(struct super_block *sb, struct inode *parent)
{
int ngroups = EXT3_SB(sb)->s_groups_count;
- int freei, avefreei;
+ unsigned int freei, avefreei;
struct ext3_group_desc *desc, *best_desc = NULL;
struct buffer_head *bh;
int group, best_group = -1;
@@ -261,10 +261,10 @@ static int find_group_orlov(struct super
struct ext3_super_block *es = sbi->s_es;
int ngroups = sbi->s_groups_count;
int inodes_per_group = EXT3_INODES_PER_GROUP(sb);
- int freei, avefreei;
+ unsigned int freei, avefreei;
ext3_fsblk_t freeb, avefreeb;
ext3_fsblk_t blocks_per_dir;
- int ndirs;
+ unsigned int ndirs;
int max_debt, max_dirs, min_inodes;
ext3_grpblk_t min_blocks;
int group = -1, i;
Index: linux-2.6.17-1.2654.el5/fs/ext3/inode.c
===================================================================
--- linux-2.6.17-1.2654.el5.orig/fs/ext3/inode.c
+++ linux-2.6.17-1.2654.el5/fs/ext3/inode.c
@@ -2115,7 +2115,7 @@ static void ext3_free_branches(handle_t
*/
if (!bh) {
ext3_error(inode->i_sb, "ext3_free_branches",
- "Read failure, inode=%ld, block="E3FSBLK,
+ "Read failure, inode=%lu, block="E3FSBLK,
inode->i_ino, nr);
continue;
}
Index: linux-2.6.17-1.2654.el5/fs/ext3/namei.c
===================================================================
--- linux-2.6.17-1.2654.el5.orig/fs/ext3/namei.c
+++ linux-2.6.17-1.2654.el5/fs/ext3/namei.c
@@ -1919,8 +1919,8 @@ int ext3_orphan_add(handle_t *handle, st
if (!err)
list_add(&EXT3_I(inode)->i_orphan, &EXT3_SB(sb)->s_orphan);
- jbd_debug(4, "superblock will point to %ld\n", inode->i_ino);
- jbd_debug(4, "orphan inode %ld will point to %d\n",
+ jbd_debug(4, "superblock will point to %lu\n", inode->i_ino);
+ jbd_debug(4, "orphan inode %lu will point to %d\n",
inode->i_ino, NEXT_ORPHAN(inode));
out_unlock:
unlock_super(sb);
Index: linux-2.6.17-1.2654.el5/fs/ext3/super.c
===================================================================
--- linux-2.6.17-1.2654.el5.orig/fs/ext3/super.c
+++ linux-2.6.17-1.2654.el5/fs/ext3/super.c
@@ -45,7 +45,7 @@
static int ext3_load_journal(struct super_block *, struct ext3_super_block *,
unsigned long journal_devnum);
static int ext3_create_journal(struct super_block *, struct ext3_super_block *,
- int);
+ unsigned int);
static void ext3_commit_super (struct super_block * sb,
struct ext3_super_block * es,
int sync);
@@ -376,7 +376,7 @@ static void dump_orphan_list(struct supe
list_for_each(l, &sbi->s_orphan) {
struct inode *inode = orphan_list_entry(l);
printk(KERN_ERR " "
- "inode %s:%ld at %p: mode %o, nlink %d, next %d\n",
+ "inode %s:%lu at %p: mode %o, nlink %d, next %d\n",
inode->i_sb->s_id, inode->i_ino, inode,
inode->i_mode, inode->i_nlink,
NEXT_ORPHAN(inode));
@@ -711,7 +711,7 @@ static ext3_fsblk_t get_sb_block(void **
}
static int parse_options (char *options, struct super_block *sb,
- unsigned long *inum, unsigned long *journal_devnum,
+ unsigned int *inum, unsigned long *journal_devnum,
ext3_fsblk_t *n_blocks_count, int is_remount)
{
struct ext3_sb_info *sbi = EXT3_SB(sb);
@@ -1264,17 +1264,17 @@ static void ext3_orphan_cleanup (struct
DQUOT_INIT(inode);
if (inode->i_nlink) {
printk(KERN_DEBUG
- "%s: truncating inode %ld to %Ld bytes\n",
+ "%s: truncating inode %lu to %Ld bytes\n",
__FUNCTION__, inode->i_ino, inode->i_size);
- jbd_debug(2, "truncating inode %ld to %Ld bytes\n",
+ jbd_debug(2, "truncating inode %lu to %Ld bytes\n",
inode->i_ino, inode->i_size);
ext3_truncate(inode);
nr_truncates++;
} else {
printk(KERN_DEBUG
- "%s: deleting unreferenced inode %ld\n",
+ "%s: deleting unreferenced inode %lu\n",
__FUNCTION__, inode->i_ino);
- jbd_debug(2, "deleting unreferenced inode %ld\n",
+ jbd_debug(2, "deleting unreferenced inode %lu\n",
inode->i_ino);
nr_orphans++;
}
@@ -1353,7 +1353,7 @@ static int ext3_fill_super (struct super
ext3_fsblk_t sb_block = get_sb_block(&data);
ext3_fsblk_t logic_sb_block;
unsigned long offset = 0;
- unsigned long journal_inum = 0;
+ unsigned int journal_inum = 0;
unsigned long journal_devnum = 0;
unsigned long def_mount_opts;
struct inode *root;
@@ -1802,7 +1802,8 @@ static void ext3_init_journal_params(str
spin_unlock(&journal->j_state_lock);
}
-static journal_t *ext3_get_journal(struct super_block *sb, int journal_inum)
+static journal_t *ext3_get_journal(struct super_block *sb,
+ unsigned int journal_inum)
{
struct inode *journal_inode;
journal_t *journal;
@@ -1937,7 +1938,7 @@ static int ext3_load_journal(struct supe
unsigned long journal_devnum)
{
journal_t *journal;
- int journal_inum = le32_to_cpu(es->s_journal_inum);
+ unsigned int journal_inum = le32_to_cpu(es->s_journal_inum);
dev_t journal_dev;
int err = 0;
int really_read_only;
@@ -2023,7 +2024,7 @@ static int ext3_load_journal(struct supe
static int ext3_create_journal(struct super_block * sb,
struct ext3_super_block * es,
- int journal_inum)
+ unsigned int journal_inum)
{
journal_t *journal;
@@ -2036,7 +2037,7 @@ static int ext3_create_journal(struct su
if (!(journal = ext3_get_journal(sb, journal_inum)))
return -EINVAL;
- printk(KERN_INFO "EXT3-fs: creating new journal on inode %d\n",
+ printk(KERN_INFO "EXT3-fs: creating new journal on inode %u\n",
journal_inum);
if (journal_create(journal)) {
Index: linux-2.6.17-1.2654.el5/fs/ext3/xattr.c
===================================================================
--- linux-2.6.17-1.2654.el5.orig/fs/ext3/xattr.c
+++ linux-2.6.17-1.2654.el5/fs/ext3/xattr.c
@@ -75,7 +75,7 @@
#ifdef EXT3_XATTR_DEBUG
# define ea_idebug(inode, f...) do { \
- printk(KERN_DEBUG "inode %s:%ld: ", \
+ printk(KERN_DEBUG "inode %s:%lu: ", \
inode->i_sb->s_id, inode->i_ino); \
printk(f); \
printk("\n"); \
@@ -233,7 +233,7 @@ ext3_xattr_block_get(struct inode *inode
atomic_read(&(bh->b_count)), le32_to_cpu(BHDR(bh)->h_refcount));
if (ext3_xattr_check_block(bh)) {
bad_block: ext3_error(inode->i_sb, __FUNCTION__,
- "inode %ld: bad block "E3FSBLK, inode->i_ino,
+ "inode %lu: bad block "E3FSBLK, inode->i_ino,
EXT3_I(inode)->i_file_acl);
error = -EIO;
goto cleanup;
@@ -375,7 +375,7 @@ ext3_xattr_block_list(struct inode *inod
atomic_read(&(bh->b_count)), le32_to_cpu(BHDR(bh)->h_refcount));
if (ext3_xattr_check_block(bh)) {
ext3_error(inode->i_sb, __FUNCTION__,
- "inode %ld: bad block "E3FSBLK, inode->i_ino,
+ "inode %lu: bad block "E3FSBLK, inode->i_ino,
EXT3_I(inode)->i_file_acl);
error = -EIO;
goto cleanup;
@@ -647,7 +647,7 @@ ext3_xattr_block_find(struct inode *inod
le32_to_cpu(BHDR(bs->bh)->h_refcount));
if (ext3_xattr_check_block(bs->bh)) {
ext3_error(sb, __FUNCTION__,
- "inode %ld: bad block "E3FSBLK, inode->i_ino,
+ "inode %lu: bad block "E3FSBLK, inode->i_ino,
EXT3_I(inode)->i_file_acl);
error = -EIO;
goto cleanup;
@@ -848,7 +848,7 @@ cleanup_dquot:
bad_block:
ext3_error(inode->i_sb, __FUNCTION__,
- "inode %ld: bad block "E3FSBLK, inode->i_ino,
+ "inode %lu: bad block "E3FSBLK, inode->i_ino,
EXT3_I(inode)->i_file_acl);
goto cleanup;
@@ -1077,14 +1077,14 @@ ext3_xattr_delete_inode(handle_t *handle
bh = sb_bread(inode->i_sb, EXT3_I(inode)->i_file_acl);
if (!bh) {
ext3_error(inode->i_sb, __FUNCTION__,
- "inode %ld: block "E3FSBLK" read error", inode->i_ino,
+ "inode %lu: block "E3FSBLK" read error", inode->i_ino,
EXT3_I(inode)->i_file_acl);
goto cleanup;
}
if (BHDR(bh)->h_magic != cpu_to_le32(EXT3_XATTR_MAGIC) ||
BHDR(bh)->h_blocks != cpu_to_le32(1)) {
ext3_error(inode->i_sb, __FUNCTION__,
- "inode %ld: bad block "E3FSBLK, inode->i_ino,
+ "inode %lu: bad block "E3FSBLK, inode->i_ino,
EXT3_I(inode)->i_file_acl);
goto cleanup;
}
@@ -1211,7 +1211,7 @@ again:
bh = sb_bread(inode->i_sb, ce->e_block);
if (!bh) {
ext3_error(inode->i_sb, __FUNCTION__,
- "inode %ld: block %lu read error",
+ "inode %lu: block %lu read error",
inode->i_ino, (unsigned long) ce->e_block);
} else if (le32_to_cpu(BHDR(bh)->h_refcount) >=
EXT3_XATTR_REFCOUNT_MAX) {
Date: Tue, 19 Sep 2006 15:32:02 -0500
From: Eric Sandeen <esandeen at redhat.com>
Subject: [RHEL5 Patch 1/3] (resend) Fix ext3 overflows at 16T
This one is in -mm as fix-ext3-mounts-at-16t.patch and
fix-ext3-mounts-at-16t-fix.patch
this gets things mounting for a 16T ext3 filesystem. (patched up
e2fsprogs will be needed too, working on that)
jarod wilson has been helping with testing.
This patch fixes these issues in the kernel:
o sbi->s_groups_count overflows in ext3_fill_super()
sbi->s_groups_count = (le32_to_cpu(es->s_blocks_count) -
le32_to_cpu(es->s_first_data_block) +
EXT3_BLOCKS_PER_GROUP(sb) - 1) /
EXT3_BLOCKS_PER_GROUP(sb);
at 16T, s_blocks_count is already maxed out; adding
EXT3_BLOCKS_PER_GROUP(sb) overflows it and groups_count comes out to 0.
Not really what we want, and causes a failed mount.
Changing it this way works & avoids the overflow:
(A + B - 1)/B changed to: ((A - 1)/B) + 1
o ext3_check_descriptors() overflows range checks
ext3_check_descriptors() iterates over all block groups making sure
that various bits are within the right block ranges... on the last pass
through, it is checking the error case
[item] >= block + EXT3_BLOCKS_PER_GROUP(sb)
where "block" is the first block in the last block group. The last
block in this group (and the last one that will fit in 32 bits) is block
+ EXT3_BLOCKS_PER_GROUP(sb)- 1. block + EXT3_BLOCKS_PER_GROUP(sb) wraps
back around to 0.
so, make things clearer with "first_block" and "last_block" where those
are first and last, inclusive, and use <, > rather than <, >=.
Finally, the last block group may be smaller than the rest, so account
for this on the last pass through: last_block = sb->s_blocks_count - 1;
Signed-off-by: Eric Sandeen <esandeen at redhat.com>
Cc: Mingming Cao <cmm at us.ibm.com>
Signed-off-by: Andrew Morton <akpm at osdl.org>
Index: linux-2.6.17-1.2654.el5/fs/ext3/super.c
===================================================================
--- linux-2.6.17-1.2654.el5.orig/fs/ext3/super.c
+++ linux-2.6.17-1.2654.el5/fs/ext3/super.c
@@ -1132,7 +1132,8 @@ static int ext3_setup_super(struct super
static int ext3_check_descriptors (struct super_block * sb)
{
struct ext3_sb_info *sbi = EXT3_SB(sb);
- ext3_fsblk_t block = le32_to_cpu(sbi->s_es->s_first_data_block);
+ ext3_fsblk_t first_block = le32_to_cpu(sbi->s_es->s_first_data_block);
+ ext3_fsblk_t last_block;
struct ext3_group_desc * gdp = NULL;
int desc_block = 0;
int i;
@@ -1141,12 +1142,17 @@ static int ext3_check_descriptors (struc
for (i = 0; i < sbi->s_groups_count; i++)
{
+ if (i == sbi->s_groups_count - 1)
+ last_block = le32_to_cpu(sbi->s_es->s_blocks_count) - 1;
+ else
+ last_block = first_block +
+ (EXT3_BLOCKS_PER_GROUP(sb) - 1);
+
if ((i % EXT3_DESC_PER_BLOCK(sb)) == 0)
gdp = (struct ext3_group_desc *)
sbi->s_group_desc[desc_block++]->b_data;
- if (le32_to_cpu(gdp->bg_block_bitmap) < block ||
- le32_to_cpu(gdp->bg_block_bitmap) >=
- block + EXT3_BLOCKS_PER_GROUP(sb))
+ if (le32_to_cpu(gdp->bg_block_bitmap) < first_block ||
+ le32_to_cpu(gdp->bg_block_bitmap) > last_block)
{
ext3_error (sb, "ext3_check_descriptors",
"Block bitmap for group %d"
@@ -1155,9 +1161,8 @@ static int ext3_check_descriptors (struc
le32_to_cpu(gdp->bg_block_bitmap));
return 0;
}
- if (le32_to_cpu(gdp->bg_inode_bitmap) < block ||
- le32_to_cpu(gdp->bg_inode_bitmap) >=
- block + EXT3_BLOCKS_PER_GROUP(sb))
+ if (le32_to_cpu(gdp->bg_inode_bitmap) < first_block ||
+ le32_to_cpu(gdp->bg_inode_bitmap) > last_block)
{
ext3_error (sb, "ext3_check_descriptors",
"Inode bitmap for group %d"
@@ -1166,9 +1171,9 @@ static int ext3_check_descriptors (struc
le32_to_cpu(gdp->bg_inode_bitmap));
return 0;
}
- if (le32_to_cpu(gdp->bg_inode_table) < block ||
- le32_to_cpu(gdp->bg_inode_table) + sbi->s_itb_per_group >=
- block + EXT3_BLOCKS_PER_GROUP(sb))
+ if (le32_to_cpu(gdp->bg_inode_table) < first_block ||
+ le32_to_cpu(gdp->bg_inode_table) + sbi->s_itb_per_group >
+ last_block)
{
ext3_error (sb, "ext3_check_descriptors",
"Inode table for group %d"
@@ -1177,7 +1182,7 @@ static int ext3_check_descriptors (struc
le32_to_cpu(gdp->bg_inode_table));
return 0;
}
- block += EXT3_BLOCKS_PER_GROUP(sb);
+ first_block += EXT3_BLOCKS_PER_GROUP(sb);
gdp++;
}
@@ -1580,10 +1585,9 @@ static int ext3_fill_super (struct super
if (EXT3_BLOCKS_PER_GROUP(sb) == 0)
goto cantfind_ext3;
- sbi->s_groups_count = (le32_to_cpu(es->s_blocks_count) -
- le32_to_cpu(es->s_first_data_block) +
- EXT3_BLOCKS_PER_GROUP(sb) - 1) /
- EXT3_BLOCKS_PER_GROUP(sb);
+ sbi->s_groups_count = ((le32_to_cpu(es->s_blocks_count) -
+ le32_to_cpu(es->s_first_data_block) - 1)
+ / EXT3_BLOCKS_PER_GROUP(sb)) + 1;
db_count = (sbi->s_groups_count + EXT3_DESC_PER_BLOCK(sb) - 1) /
EXT3_DESC_PER_BLOCK(sb);
sbi->s_group_desc = kmalloc(db_count * sizeof (struct buffer_head *),
Date: Tue, 19 Sep 2006 15:32:42 -0500
From: Eric Sandeen <esandeen at redhat.com>
Subject: [RHEL5 Patch 2/3] (resend) Fix more ext3 overflows at 16T
This is in akpm's tree as
more-ext3-16t-overflow-fixes.patch and more-ext3-16t-overflow-fixes-fix.patch
Some of the changes in balloc.c are just cosmetic -
if they overflow they'll then underflow and things are fine.
5th hunk actually fixes an overflow problem.
Also check for potential overflows in inode & block counts when resizing.
Signed-off-by: Eric Sandeen <esandeen at redhat.com>
Cc: Mingming Cao <cmm at us.ibm.com>
Signed-off-by: Andrew Morton <akpm at osdl.org>
Index: linux-2.6.17-1.2654.el5/fs/ext3/balloc.c
===================================================================
--- linux-2.6.17-1.2654.el5.orig/fs/ext3/balloc.c
+++ linux-2.6.17-1.2654.el5/fs/ext3/balloc.c
@@ -168,7 +168,7 @@ goal_in_my_reservation(struct ext3_reser
ext3_fsblk_t group_first_block, group_last_block;
group_first_block = ext3_group_first_block_no(sb, group);
- group_last_block = group_first_block + EXT3_BLOCKS_PER_GROUP(sb) - 1;
+ group_last_block = group_first_block + (EXT3_BLOCKS_PER_GROUP(sb) - 1);
if ((rsv->_rsv_start > group_last_block) ||
(rsv->_rsv_end < group_first_block))
@@ -897,7 +897,7 @@ static int alloc_new_reservation(struct
spinlock_t *rsv_lock = &EXT3_SB(sb)->s_rsv_window_lock;
group_first_block = ext3_group_first_block_no(sb, group);
- group_end_block = group_first_block + EXT3_BLOCKS_PER_GROUP(sb) - 1;
+ group_end_block = group_first_block + (EXT3_BLOCKS_PER_GROUP(sb) - 1);
if (grp_goal < 0)
start_block = group_first_block;
@@ -1063,7 +1063,7 @@ ext3_try_to_allocate_with_rsv(struct sup
struct ext3_reserve_window_node * my_rsv,
unsigned long *count, int *errp)
{
- ext3_fsblk_t group_first_block;
+ ext3_fsblk_t group_first_block, group_last_block;
ext3_grpblk_t ret = 0;
int fatal;
unsigned long num = *count;
@@ -1100,6 +1100,7 @@ ext3_try_to_allocate_with_rsv(struct sup
* first block is the block number of the first block in this group
*/
group_first_block = ext3_group_first_block_no(sb, group);
+ group_last_block = group_first_block + (EXT3_BLOCKS_PER_GROUP(sb) - 1);
/*
* Basically we will allocate a new block from inode's reservation
@@ -1132,8 +1133,8 @@ ext3_try_to_allocate_with_rsv(struct sup
try_to_extend_reservation(my_rsv, sb,
*count-my_rsv->rsv_end + grp_goal - 1);
- if ((my_rsv->rsv_start >= group_first_block + EXT3_BLOCKS_PER_GROUP(sb))
- || (my_rsv->rsv_end < group_first_block))
+ if ((my_rsv->rsv_start > group_last_block) ||
+ (my_rsv->rsv_end < group_first_block))
BUG();
ret = ext3_try_to_allocate(sb, handle, group, bitmap_bh, grp_goal,
&num, &my_rsv->rsv_window);
Index: linux-2.6.17-1.2654.el5/fs/ext3/resize.c
===================================================================
--- linux-2.6.17-1.2654.el5.orig/fs/ext3/resize.c
+++ linux-2.6.17-1.2654.el5/fs/ext3/resize.c
@@ -730,6 +730,18 @@ int ext3_group_add(struct super_block *s
return -EPERM;
}
+ if (le32_to_cpu(es->s_blocks_count) + input->blocks_count <
+ le32_to_cpu(es->s_blocks_count)) {
+ ext3_warning(sb, __FUNCTION__, "blocks_count overflow\n");
+ return -EINVAL;
+ }
+
+ if (le32_to_cpu(es->s_inodes_count) + EXT3_INODES_PER_GROUP(sb) <
+ le32_to_cpu(es->s_inodes_count)) {
+ ext3_warning(sb, __FUNCTION__, "inodes_count overflow\n");
+ return -EINVAL;
+ }
+
if (reserved_gdb || gdb_off == 0) {
if (!EXT3_HAS_COMPAT_FEATURE(sb,
EXT3_FEATURE_COMPAT_RESIZE_INODE)){
@@ -958,6 +970,11 @@ int ext3_group_extend(struct super_block
add = EXT3_BLOCKS_PER_GROUP(sb) - last;
+ if (o_blocks_count + add < o_blocks_count) {
+ ext3_warning(sb, __FUNCTION__, "blocks_count overflow");
+ return -EINVAL;
+ }
+
if (o_blocks_count + add > n_blocks_count)
add = n_blocks_count - o_blocks_count;
linux-2.6-x86-k8-powernow-clock-disable-fix.patch:
powernow-k8.c | 7 +++++--
powernow-k8.h | 2 +-
2 files changed, 6 insertions(+), 3 deletions(-)
--- NEW FILE linux-2.6-x86-k8-powernow-clock-disable-fix.patch ---
Date: Tue, 29 Aug 2006 15:23:14 -0400
From: Prarit Bhargava <prarit at redhat.com>
Subject: [RHEL5 PATCH]: BZ 204354 C1 clock disable process fixes
The current powernow-k8 driver sets the wrong bitmask when trying to disable
C1 clock ramping, and also attempts to do so on non-existant PCI devices
(because of a cpu vs. core number code error).
This patch fixes those issues in RHEL5. Successfully tested by me on an
xw9400 system.
Resolves BZ 204354.
--- linux-2.6.17.i386/arch/i386/kernel/cpu/cpufreq/powernow-k8.c.orig 2006-08-28 17:19:37.000000000 -0400
+++ linux-2.6.17.i386/arch/i386/kernel/cpu/cpufreq/powernow-k8.c 2006-08-28 17:19:51.000000000 -0400
@@ -1321,10 +1322,13 @@ static int __cpuinit powernowk8_cpu_init
if (tscsync && (cpu_family == CPU_OPTERON)) {
u32 reg;
+ struct cpuinfo_x86 *c = &cpu_data[pol->cpu];
sync_tables(pol->cpu);
- reg = read_pci_config(0, NB_PCI_ADDR + pol->cpu, NB_PM_DEV, NB_C1_REG);
+ reg = read_pci_config(0, NB_PCI_ADDR + c->cpu_core_id,
+ NB_PM_DEV, NB_C1_REG);
/* turn off C1 clock ramping */
- write_pci_config(0, NB_PCI_ADDR + pol->cpu, NB_PM_DEV, NB_C1_REG, reg & NB_C1_MASK);
+ write_pci_config(0, NB_PCI_ADDR + c->cpu_core_id,
+ NB_PM_DEV, NB_C1_REG, reg & NB_C1_MASK);
}
return 0;
--- linux-2.6.17.i386/arch/i386/kernel/cpu/cpufreq/powernow-k8.h.orig 2006-08-28 17:18:37.000000000 -0400
+++ linux-2.6.17.i386/arch/i386/kernel/cpu/cpufreq/powernow-k8.h 2006-08-28 17:19:51.000000000 -0400
@@ -177,7 +177,7 @@ struct powernow_k8_data {
#define NB_PCI_ADDR 0x18
#define NB_PM_DEV 3
#define NB_C1_REG 0x84
-#define NB_C1_MASK 0xfc
+#define NB_C1_MASK 0xfcffffff
/*
* Version 1.4 of the PSB table. This table is constructed by BIOS and is
--- NEW FILE linux-2.6.18.tar.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info
iD8DBQBFELzpyGugalF9Dw4RAnakAJ98mpXnZ8LNY3GDqAg3Nnp/+jyIgACfcaXr
fLoc6FV2SbBwpMfYHa85hXY=
=52vM
-----END PGP SIGNATURE-----
Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/.cvsignore,v
retrieving revision 1.528
retrieving revision 1.528.2.1
diff -u -r1.528 -r1.528.2.1
--- .cvsignore 18 Sep 2006 14:43:52 -0000 1.528
+++ .cvsignore 20 Sep 2006 17:45:34 -0000 1.528.2.1
@@ -1,8 +1,6 @@
clog
kernel-2.6.*.config
temp-*
-kernel-2.6.17
-linux-2.6.17.tar.bz2
-patch-2.6.18-rc7.bz2
-patch-2.6.18-rc7-git2.bz2
+kernel-2.6.18
xen-11470.tar.bz2
+linux-2.6.18.tar.bz2
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.2670.2.3
retrieving revision 1.2670.2.4
diff -u -r1.2670.2.3 -r1.2670.2.4
--- kernel-2.6.spec 20 Sep 2006 15:16:51 -0000 1.2670.2.3
+++ kernel-2.6.spec 20 Sep 2006 17:45:34 -0000 1.2670.2.4
@@ -4,6 +4,7 @@
# These are the kernels that are built IF the architecture allows it.
%define buildup 1
+# Only used on archs without run-time support (ie ppc, sparc64)
%define buildsmp 0
%define buildpae 0
# Whether to apply the Xen patches, leave this enabled.
@@ -28,10 +29,10 @@
# that the kernel isn't the stock distribution kernel, for example by
# adding some text to the end of the version number.
#
-%define sublevel 17
+%define sublevel 18
%define kversion 2.6.%{sublevel}
%define rpmversion 2.6.%{sublevel}
-%define release %(R="$Revision$"; RR="${R##: }"; echo ${RR%%?})%{?dist}.dio.2
+%define release %(R="$Revision$"; RR="${R##: }"; echo ${RR%%?})%{?dist}.dio.3
%define signmodules 0
%define xen_hv_cset 11470
%define make_target bzImage
@@ -298,8 +299,8 @@
#
# Patches 0 through 100 are meant for core subsystem upgrades
#
-Patch1: patch-2.6.18-rc7.bz2
-Patch2: patch-2.6.18-rc7-git2.bz2
+#Patch1: patch-2.6.18-rc7.bz2
+#Patch2: patch-2.6.18-rc7-git4.bz2
Patch3: git-geode.patch
Patch4: git-agpgart.patch
@@ -321,6 +322,7 @@
Patch208: linux-2.6-x86_64-add-ppoll-pselect.patch
Patch209: linux-2.6-x86_64-opterons-synchronize-p-state-using-TSC.patch
Patch210: linux-2.6-x86-relocatable.patch
+Patch211: linux-2.6-x86-k8-powernow-clock-disable-fix.patch
# 300 - 399 ppc(64)
Patch300: linux-2.6-ppc-dac960-ipr-clash.patch
@@ -418,7 +420,6 @@
# core networking changes.
Patch1300: linux-2.6-net-ipsec-labelling.patch
Patch1301: linux-2.6-net-netlabel-cipso.patch
-Patch1302: linux-2.6-secmark-export.patch
# Filesystem stuff.
# Squashfs
@@ -449,6 +450,9 @@
# Fix NFS/Selinux oops.
Patch1441: linux-2.6-nfs-selinux-oops.patch
+# EXT3 fixes
+Patch1450: linux-2.6-ext3-16tb-overflow-fixes.patch
+
# Device mapper / MD layer
Patch1500: linux-2.6-dm-mirroring.patch
@@ -781,8 +785,8 @@
cd linux-%{kversion}.%{_target_cpu}
# Update to latest upstream.
-%patch1 -p1
-%patch2 -p1
+#%patch1 -p1
+#%patch2 -p1
%patch3 -p1
%patch4 -p1
@@ -817,6 +821,8 @@
%patch208 -p1
# fix opteron timer scaling
%patch209 -p1
+# fix disabling C1 clock on k8 powernow
+#%patch211 -p1
#
# PowerPC
@@ -979,7 +985,6 @@
# core networking changes.
%patch1300 -p1
%patch1301 -p1
-%patch1302 -p1
# Filesystem patches.
# Squashfs
@@ -1010,6 +1015,10 @@
# Fix NFS/Selinux oops. (#204848)
%patch1441 -p1
+# EXT3
+# overflows at 16tb fix
+%patch1450 -p1
+
# Device mapper / MD layer
# dm mirroring
%patch1500 -p1
@@ -1902,11 +1911,39 @@
%changelog
* Wed Sep 20 2006 Jeff Moyer <jmoyer at redhat.com>
-- The relocatable kernel patch was failed to apply in brew; disabled.
+- Updated to latest from head. Hopefully this clears up my mysterious build
+ failures.
+
+* Wed Sep 20 2006 Jeff Moyer <jmoyer at redhat.com>
+- The relocatable kernel patch failed to apply in brew; disabled.
+
+* Wed Sep 20 2006 Dave Jones <davej at redhat.com>
+- 2.6.18
+
+* Tue Sep 19 2006 Juan Quintela <quintela at redhat.com>
+- xen update to 2.6.18-rc7-git4.
+ * linux-2.6 changeset: 34288:3fa5ab23fee7
+ * linux-2.6-xen-fedora changeset: 36175:275f8c0b6342
+ * xen-unstable changeset: 11486:d8bceca5f07d
+
+* Tue Sep 19 2006 Dave Jones <davej at redhat.com>
+- 2.6.18rc7-git4
+- Further lockdep fixes. (#207064)
+
+* Tue Sep 19 2006 Don Zickus <dzickus at redhat.com>
+- EXT3 overflows at 16TB (#206721)
+
+* Tue Sep 19 2006 Don Zickus <dzickus at redhat.com>
+- Increase nodes supported on ia64 (#203184)
+- Powernow K8 Clock fix (#204354)
+- NetLabel fixes
* Mon Sep 18 2006 Jeff Moyer <jmoyer at redhat.com>
- DIO error path cleanup (Zach Brown)
+* Mon Sep 18 2006 Dave Jones <davej at redhat.com>
+- Fix RTC lockdep bug. (Peter Zijlstra)
+
* Mon Sep 18 2006 Juan Quintela <quintela at redhat.com>
- xen HV update (cset 11470:2b8dc69744e3).
linux-2.6-lockdep-fixes.patch:
a/drivers/net/forcedeth.c | 31 +++++++++++++-----------
a/fs/nfsd/nfsproc.c | 2 -
a/fs/nfsd/vfs.c | 8 +++---
a/include/linux/nfsd/nfsfh.h | 11 +++++++-
a/kernel/lockdep.c | 13 ++++++++++
a/net/ipv6/tcp_ipv6.c | 2 -
linux-2.6.17-mm6/include/net/sock.h | 33 +++++++++++++++++++++++---
linux-2.6.17.noarch/drivers/char/rtc.c | 5 ++-
linux-2.6.18-rc1/drivers/input/serio/libps2.c | 6 ++--
linux-2.6.18-rc1/include/linux/libps2.h | 12 ++++++++-
linux-2.6.18-rc1/net/socket.c | 8 +++++-
11 files changed, 99 insertions(+), 32 deletions(-)
Index: linux-2.6-lockdep-fixes.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-lockdep-fixes.patch,v
retrieving revision 1.25
retrieving revision 1.25.8.1
diff -u -r1.25 -r1.25.8.1
--- linux-2.6-lockdep-fixes.patch 5 Sep 2006 18:36:57 -0000 1.25
+++ linux-2.6-lockdep-fixes.patch 20 Sep 2006 17:45:35 -0000 1.25.8.1
@@ -605,3 +605,309 @@
if (IS_ERR(dchild)) {
nfserr = nfserrno(PTR_ERR(dchild));
_
+
+BUG: warning at kernel/lockdep.c:1816/trace_hardirqs_on() (Not tainted)
+ [<c04051ee>] show_trace_log_lvl+0x58/0x171
+ [<c0405802>] show_trace+0xd/0x10
+ [<c040591b>] dump_stack+0x19/0x1b
+ [<c043abee>] trace_hardirqs_on+0xa2/0x11e
+ [<c06143c3>] _spin_unlock_irq+0x22/0x26
+ [<c0541540>] rtc_get_rtc_time+0x32/0x176
+ [<c0419ba4>] hpet_rtc_interrupt+0x92/0x14d
+ [<c0450f94>] handle_IRQ_event+0x20/0x4d
+ [<c0451055>] __do_IRQ+0x94/0xef
+ [<c040678d>] do_IRQ+0x9e/0xbd
+ [<c0404a49>] common_interrupt+0x25/0x2c
+DWARF2 unwinder stuck at common_interrupt+0x25/0x2c
+
+rtc_is_updating() is called form IRQ context, un-conditionally enabling
+interrupts is not a good thing.
+
+Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
+---
+ drivers/char/rtc.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+Index: linux-2.6.17.noarch/drivers/char/rtc.c
+===================================================================
+--- linux-2.6.17.noarch.orig/drivers/char/rtc.c 2006-09-18 21:34:11.000000000 +0200
++++ linux-2.6.17.noarch/drivers/char/rtc.c 2006-09-18 21:35:03.000000000 +0200
+@@ -209,11 +209,12 @@ static const unsigned char days_in_mo[]
+ */
+ static inline unsigned char rtc_is_updating(void)
+ {
++ unsigned long flags;
+ unsigned char uip;
+
+- spin_lock_irq(&rtc_lock);
++ spin_lock_irqsave(&rtc_lock, flags);
+ uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP);
+- spin_unlock_irq(&rtc_lock);
++ spin_unlock_irqrestore(&rtc_lock, flags);
+ return uip;
+ }
+
+From: Fabio Olive Leite <fleite at redhat.com>
+
+A while ago Ingo patched tcp_v4_rcv on net/ipv4/tcp_ipv4.c to use
+bh_lock_sock_nested and silence a lock validator warning. This fixed
+it for IPv4, but recently I saw a report of the same warning on IPv6.
+
+Cc: Herbert Xu <herbert at gondor.apana.org.au>
+Cc: "David S. Miller" <davem at davemloft.net>
+Signed-off-by: Andrew Morton <akpm at osdl.org>
+---
+
+ net/ipv6/tcp_ipv6.c | 2 +-
+ 1 files changed, 1 insertion(+), 1 deletion(-)
+
+diff -puN net/ipv6/tcp_ipv6.c~net-ipv6-bh_lock_sock_nested-on-tcp_v6_rcv net/ipv6/tcp_ipv6.c
+--- a/net/ipv6/tcp_ipv6.c~net-ipv6-bh_lock_sock_nested-on-tcp_v6_rcv
++++ a/net/ipv6/tcp_ipv6.c
+@@ -1228,7 +1228,7 @@ process:
+
+ skb->dev = NULL;
+
+- bh_lock_sock(sk);
++ bh_lock_sock_nested(sk);
+ ret = 0;
+ if (!sock_owned_by_user(sk)) {
+ #ifdef CONFIG_NET_DMA
+_
+From davej Tue Sep 19 14:16:57 2006
+Return-Path: <akpm at osdl.org>
+X-Spam-Checker-Version: SpamAssassin 3.1.4 (2006-07-25) on
+ pressure.kernelslacker.org
+X-Spam-Level:
+X-Spam-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00,
+ FORGED_RCVD_HELO,NO_REAL_NAME,UNPARSEABLE_RELAY autolearn=no
+ version=3.1.4
+Received: from pobox.devel.redhat.com [10.11.255.8]
+ by pressure.kernelslacker.org with IMAP (fetchmail-6.3.4)
+ for <davej at localhost> (single-drop); Tue, 19 Sep 2006 14:16:57 -0400 (EDT)
+Received: from pobox.devel.redhat.com ([unix socket])
+ by pobox.devel.redhat.com (Cyrus v2.2.12-Invoca-RPM-2.2.12-3.RHEL4.1) with LMTPA;
+ Tue, 19 Sep 2006 14:15:59 -0400
+X-Sieve: CMU Sieve 2.2
+Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254])
+ by pobox.devel.redhat.com (8.13.1/8.13.1) with ESMTP id k8JIFwbp015506
+ for <davej at pobox.devel.redhat.com>; Tue, 19 Sep 2006 14:15:58 -0400
+Received: from mx1.redhat.com (mx1.redhat.com [172.16.48.31])
+ by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k8JIFwpM022674
+ for <davej at redhat.com>; Tue, 19 Sep 2006 14:15:58 -0400
+Received: from smtp.osdl.org (smtp.osdl.org [65.172.181.4])
+ by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k8JIFvOb017091
+ for <davej at redhat.com>; Tue, 19 Sep 2006 14:15:58 -0400
+Received: from shell0.pdx.osdl.net (fw.osdl.org [65.172.181.6])
+ by smtp.osdl.org (8.12.8/8.12.8) with ESMTP id k8JIFXnW015308
+ (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO);
+ Tue, 19 Sep 2006 11:15:33 -0700
+Received: from localhost.localdomain (shell0.pdx.osdl.net [10.9.0.31])
+ by shell0.pdx.osdl.net (8.13.1/8.11.6) with ESMTP id k8JIFWsG028826;
+ Tue, 19 Sep 2006 11:15:32 -0700
+Message-Id: <200609191815.k8JIFWsG028826 at shell0.pdx.osdl.net>
+Subject: + forcedeth-hardirq-lockdep-warning.patch added to -mm tree
+To: mm-commits at vger.kernel.org
+Cc: a.p.zijlstra at chello.nl, aabdulla at nvidia.com, arjan at linux.intel.com,
+ davej at redhat.com, jeff at garzik.org, mingo at elte.hu
+From: akpm at osdl.org
+Date: Tue, 19 Sep 2006 11:15:32 -0700
+X-MIMEDefang-Filter: osdl$Revision$
+X-Scanned-By: MIMEDefang 2.36
+X-RedHat-Spam-Score: 0.285
+Status: RO
+Content-Length: 5878
+Lines: 191
+
+
+The patch titled
+
+ forcedeth: hardirq lockdep warning
+
+has been added to the -mm tree. Its filename is
+
+ forcedeth-hardirq-lockdep-warning.patch
+
+See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
+out what to do about this
+
+------------------------------------------------------
+Subject: forcedeth: hardirq lockdep warning
+From: Peter Zijlstra <a.p.zijlstra at chello.nl>
+
+BUG: warning at kernel/lockdep.c:1816/trace_hardirqs_on() (Not tainted)
+
+Call Trace:
+ show_trace
+ dump_stack
+ trace_hardirqs_on
+ :forcedeth:nv_nic_irq_other
+ handle_IRQ_event
+ __do_IRQ
+ do_IRQ
+ ret_from_intr
+DWARF2 barf
+ default_idle
+ cpu_idle
+ rest_init
+ start_kernel
+ _sinittext
+
+These 3 functions nv_nic_irq_tx(), nv_nic_irq_rx() and nv_nic_irq_other()
+are reachable from IRQ context and process context. Make use of the
+irq-save/restore spinlock variant.
+
+Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
+Cc: Jeff Garzik <jeff at garzik.org>
+Cc: Ingo Molnar <mingo at elte.hu>
+Cc: Arjan van de Ven <arjan at linux.intel.com>
+Cc: Dave Jones <davej at redhat.com>
+Cc: Ayaz Abdulla <aabdulla at nvidia.com>
+Signed-off-by: Andrew Morton <akpm at osdl.org>
+---
+
+ drivers/net/forcedeth.c | 31 +++++++++++++++++--------------
+ 1 files changed, 17 insertions(+), 14 deletions(-)
+
+diff -puN drivers/net/forcedeth.c~forcedeth-hardirq-lockdep-warning drivers/net/forcedeth.c
+--- a/drivers/net/forcedeth.c~forcedeth-hardirq-lockdep-warning
++++ a/drivers/net/forcedeth.c
+@@ -2497,6 +2497,7 @@ static irqreturn_t nv_nic_irq_tx(int foo
+ u8 __iomem *base = get_hwbase(dev);
+ u32 events;
+ int i;
++ unsigned long flags;
+
+ dprintk(KERN_DEBUG "%s: nv_nic_irq_tx\n", dev->name);
+
+@@ -2508,16 +2509,16 @@ static irqreturn_t nv_nic_irq_tx(int foo
+ if (!(events & np->irqmask))
+ break;
+
+- spin_lock_irq(&np->lock);
++ spin_lock_irqsave(&np->lock, flags);
+ nv_tx_done(dev);
+- spin_unlock_irq(&np->lock);
++ spin_unlock_irqrestore(&np->lock, flags);
+
+ if (events & (NVREG_IRQ_TX_ERR)) {
+ dprintk(KERN_DEBUG "%s: received irq with events 0x%x. Probably TX fail.\n",
+ dev->name, events);
+ }
+ if (i > max_interrupt_work) {
+- spin_lock_irq(&np->lock);
++ spin_lock_irqsave(&np->lock, flags);
+ /* disable interrupts on the nic */
+ writel(NVREG_IRQ_TX_ALL, base + NvRegIrqMask);
+ pci_push(base);
+@@ -2527,7 +2528,7 @@ static irqreturn_t nv_nic_irq_tx(int foo
+ mod_timer(&np->nic_poll, jiffies + POLL_WAIT);
+ }
+ printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_tx.\n", dev->name, i);
+- spin_unlock_irq(&np->lock);
++ spin_unlock_irqrestore(&np->lock, flags);
+ break;
+ }
+
+@@ -2601,6 +2602,7 @@ static irqreturn_t nv_nic_irq_rx(int foo
+ u8 __iomem *base = get_hwbase(dev);
+ u32 events;
+ int i;
++ unsigned long flags;
+
+ dprintk(KERN_DEBUG "%s: nv_nic_irq_rx\n", dev->name);
+
+@@ -2614,14 +2616,14 @@ static irqreturn_t nv_nic_irq_rx(int foo
+
+ nv_rx_process(dev, dev->weight);
+ if (nv_alloc_rx(dev)) {
+- spin_lock_irq(&np->lock);
++ spin_lock_irqsave(&np->lock, flags);
+ if (!np->in_shutdown)
+ mod_timer(&np->oom_kick, jiffies + OOM_REFILL);
+- spin_unlock_irq(&np->lock);
++ spin_unlock_irqrestore(&np->lock, flags);
+ }
+
+ if (i > max_interrupt_work) {
+- spin_lock_irq(&np->lock);
++ spin_lock_irqsave(&np->lock, flags);
+ /* disable interrupts on the nic */
+ writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask);
+ pci_push(base);
+@@ -2631,7 +2633,7 @@ static irqreturn_t nv_nic_irq_rx(int foo
+ mod_timer(&np->nic_poll, jiffies + POLL_WAIT);
+ }
+ printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_rx.\n", dev->name, i);
+- spin_unlock_irq(&np->lock);
++ spin_unlock_irqrestore(&np->lock, flags);
+ break;
+ }
+ }
+@@ -2648,6 +2650,7 @@ static irqreturn_t nv_nic_irq_other(int
+ u8 __iomem *base = get_hwbase(dev);
+ u32 events;
+ int i;
++ unsigned long flags;
+
+ dprintk(KERN_DEBUG "%s: nv_nic_irq_other\n", dev->name);
+
+@@ -2660,14 +2663,14 @@ static irqreturn_t nv_nic_irq_other(int
+ break;
+
+ if (events & NVREG_IRQ_LINK) {
+- spin_lock_irq(&np->lock);
++ spin_lock_irqsave(&np->lock, flags);
+ nv_link_irq(dev);
+- spin_unlock_irq(&np->lock);
++ spin_unlock_irqrestore(&np->lock, flags);
+ }
+ if (np->need_linktimer && time_after(jiffies, np->link_timeout)) {
+- spin_lock_irq(&np->lock);
++ spin_lock_irqsave(&np->lock, flags);
+ nv_linkchange(dev);
+- spin_unlock_irq(&np->lock);
++ spin_unlock_irqrestore(&np->lock, flags);
+ np->link_timeout = jiffies + LINK_TIMEOUT;
+ }
+ if (events & (NVREG_IRQ_UNKNOWN)) {
+@@ -2675,7 +2678,7 @@ static irqreturn_t nv_nic_irq_other(int
+ dev->name, events);
+ }
+ if (i > max_interrupt_work) {
+- spin_lock_irq(&np->lock);
++ spin_lock_irqsave(&np->lock, flags);
+ /* disable interrupts on the nic */
+ writel(NVREG_IRQ_OTHER, base + NvRegIrqMask);
+ pci_push(base);
+@@ -2685,7 +2688,7 @@ static irqreturn_t nv_nic_irq_other(int
+ mod_timer(&np->nic_poll, jiffies + POLL_WAIT);
+ }
+ printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_other.\n", dev->name, i);
+- spin_unlock_irq(&np->lock);
++ spin_unlock_irqrestore(&np->lock, flags);
+ break;
+ }
+
+_
+
+Patches currently in -mm which might be from a.p.zijlstra at chello.nl are
+
+forcedeth-hardirq-lockdep-warning.patch
+mm-tracking-shared-dirty-pages.patch
+mm-tracking-shared-dirty-pages-nommu-fix-2.patch
+mm-balance-dirty-pages.patch
+mm-optimize-the-new-mprotect-code-a-bit.patch
+mm-small-cleanup-of-install_page.patch
+mm-fixup-do_wp_page.patch
+mm-msync-cleanup.patch
+mm-tracking-shared-dirty-pages-checks.patch
+mm-tracking-shared-dirty-pages-wimp.patch
+mm-swap-write-failure-fixup.patch
+mm-swap-write-failure-fixup-update.patch
+mm-swap-write-failure-fixup-fix.patch
+block_devc-mutex_lock_nested-fix.patch
+remove-the-old-bd_mutex-lockdep-annotation.patch
+new-bd_mutex-lockdep-annotation.patch
+nfsd-lockdep-annotation.patch
+
linux-2.6-net-netlabel-cipso.patch:
linux-2.6.17.i686.w/Documentation/00-INDEX | 2
linux-2.6.17.i686.w/Documentation/netlabel/00-INDEX | 10
linux-2.6.17.i686.w/Documentation/netlabel/cipso_ipv4.txt | 48
linux-2.6.17.i686.w/Documentation/netlabel/draft-ietf-cipso-ipsecurity-01.txt | 781 ++++
linux-2.6.17.i686.w/Documentation/netlabel/introduction.txt | 46
linux-2.6.17.i686.w/Documentation/netlabel/lsm_interface.txt | 47
linux-2.6.17.i686.w/Documentation/networking/ip-sysctl.txt | 35
linux-2.6.17.i686.w/include/linux/ip.h | 1
linux-2.6.17.i686.w/include/linux/security.h | 25
linux-2.6.17.i686.w/include/linux/sysctl.h | 4
linux-2.6.17.i686.w/include/linux/utsrelease.h | 1
linux-2.6.17.i686.w/include/net/cipso_ipv4.h | 250 +
linux-2.6.17.i686.w/include/net/inet_sock.h | 2
linux-2.6.17.i686.w/include/net/netlabel.h | 291 +
linux-2.6.17.i686.w/net/Kconfig | 2
linux-2.6.17.i686.w/net/Makefile | 1
linux-2.6.17.i686.w/net/ipv4/Makefile | 1
linux-2.6.17.i686.w/net/ipv4/ah4.c | 2
linux-2.6.17.i686.w/net/ipv4/cipso_ipv4.c | 1607 ++++++++++
linux-2.6.17.i686.w/net/ipv4/ip_options.c | 19
linux-2.6.17.i686.w/net/ipv4/sysctl_net_ipv4.c | 35
linux-2.6.17.i686.w/net/netlabel/Kconfig | 14
linux-2.6.17.i686.w/net/netlabel/Makefile | 16
linux-2.6.17.i686.w/net/netlabel/netlabel_cipso_v4.c | 542 +++
linux-2.6.17.i686.w/net/netlabel/netlabel_cipso_v4.h | 217 +
linux-2.6.17.i686.w/net/netlabel/netlabel_domainhash.c | 513 +++
linux-2.6.17.i686.w/net/netlabel/netlabel_domainhash.h | 63
linux-2.6.17.i686.w/net/netlabel/netlabel_kapi.c | 231 +
linux-2.6.17.i686.w/net/netlabel/netlabel_mgmt.c | 624 +++
linux-2.6.17.i686.w/net/netlabel/netlabel_mgmt.h | 246 +
linux-2.6.17.i686.w/net/netlabel/netlabel_unlabeled.c | 253 +
linux-2.6.17.i686.w/net/netlabel/netlabel_unlabeled.h | 98
linux-2.6.17.i686.w/net/netlabel/netlabel_user.c | 158
linux-2.6.17.i686.w/net/netlabel/netlabel_user.h | 214 +
linux-2.6.17.i686.w/net/socket.c | 13
linux-2.6.17.i686.w/security/dummy.c | 6
linux-2.6.17.i686.w/security/selinux/hooks.c | 58
linux-2.6.17.i686.w/security/selinux/include/objsec.h | 8
linux-2.6.17.i686.w/security/selinux/include/selinux_netlabel.h | 125
linux-2.6.17.i686.w/security/selinux/ss/ebitmap.c | 144
linux-2.6.17.i686.w/security/selinux/ss/ebitmap.h | 6
linux-2.6.17.i686.w/security/selinux/ss/mls.c | 156
linux-2.6.17.i686.w/security/selinux/ss/mls.h | 21
linux-2.6.17.i686.w/security/selinux/ss/services.c | 488 +++
linux-2.6.17.x86_64.w/include/net/cipso_ipv4.h | 8
linux-2.6.17.x86_64.w/include/net/netlabel.h | 1
linux-2.6.17.x86_64.w/net/netlabel/netlabel_domainhash.h | 4
linux-2.6.17.x86_64.w/net/netlabel/netlabel_user.h | 5
linux-2.6.17.x86_64.w/security/selinux/hooks.c | 6
linux-2.6.17.x86_64.w/security/selinux/include/selinux_netlabel.h | 62
linux-2.6.17.x86_64.w/security/selinux/ss/ebitmap.c | 36
linux-2.6.17.x86_64.w/security/selinux/ss/services.c | 80
52 files changed, 7521 insertions(+), 105 deletions(-)
Index: linux-2.6-net-netlabel-cipso.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-net-netlabel-cipso.patch,v
retrieving revision 1.1
retrieving revision 1.1.16.1
diff -u -r1.1 -r1.1.16.1
--- linux-2.6-net-netlabel-cipso.patch 9 Aug 2006 21:52:38 -0000 1.1
+++ linux-2.6-net-netlabel-cipso.patch 20 Sep 2006 17:45:35 -0000 1.1.16.1
@@ -7988,3 +7988,429 @@
+}
+#endif /* CONFIG_NETLABEL */
+Date: Sat, 2 Sep 2006 10:59:31 -0400 (EDT)
+From: James Morris <jmorris at redhat.com>
+Subject: [RHEL5 PATCH] Netlabel fixes
+
+This is a backport of some Netlabel (CIPSO) patches posted in the
+following thread:
+
+http://thread.gmane.org/gmane.linux.network/44202/focus=44202
+
+This is needed for RHEL5.
+
+Please apply.
+
+
+ Signed-off-by: Paul Moore <paul.moore at hp.com>
+ Signed-off-by: David S. Miller <davem at davemloft.net>
+ Signed-off-by: James Morris <jmorris at redhat.com>
+
+---
+
+ include/net/cipso_ipv4.h | 8 --
+ include/net/netlabel.h | 1
+ net/netlabel/netlabel_domainhash.h | 4 +
+ net/netlabel/netlabel_user.h | 5 +
+ security/selinux/hooks.c | 6 ++
+ security/selinux/include/selinux_netlabel.h | 62 +++++++++------------
+ security/selinux/ss/ebitmap.c | 36 +++++-------
+ security/selinux/ss/services.c | 80 +++++++++++++++++++++++-----
+
+diff -purN -X dontdiff linux-2.6.17.x86_64/include/net/cipso_ipv4.h linux-2.6.17.x86_64.w/include/net/cipso_ipv4.h
+--- linux-2.6.17.x86_64/include/net/cipso_ipv4.h 2006-09-02 09:53:00.000000000 -0400
++++ linux-2.6.17.x86_64.w/include/net/cipso_ipv4.h 2006-09-02 09:59:17.000000000 -0400
+@@ -37,6 +37,8 @@
+ #include <linux/types.h>
+ #include <linux/rcupdate.h>
+ #include <linux/list.h>
++#include <linux/net.h>
++#include <linux/skbuff.h>
+ #include <net/netlabel.h>
+
+ /* known doi values */
+@@ -200,15 +202,9 @@ static inline int cipso_v4_cache_add(con
+
+ #ifdef CONFIG_NETLABEL
+ void cipso_v4_error(struct sk_buff *skb, int error, u32 gateway);
+-int cipso_v4_socket_setopt(struct socket *sock,
+- unsigned char *opt,
+- u32 opt_len);
+ int cipso_v4_socket_setattr(const struct socket *sock,
+ const struct cipso_v4_doi *doi_def,
+ const struct netlbl_lsm_secattr *secattr);
+-int cipso_v4_socket_getopt(const struct socket *sock,
+- unsigned char **opt,
+- u32 *opt_len);
+ int cipso_v4_socket_getattr(const struct socket *sock,
+ struct netlbl_lsm_secattr *secattr);
+ int cipso_v4_skbuff_getattr(const struct sk_buff *skb,
+diff -purN -X dontdiff linux-2.6.17.x86_64/include/net/netlabel.h linux-2.6.17.x86_64.w/include/net/netlabel.h
+--- linux-2.6.17.x86_64/include/net/netlabel.h 2006-09-02 09:53:00.000000000 -0400
++++ linux-2.6.17.x86_64.w/include/net/netlabel.h 2006-09-02 09:59:17.000000000 -0400
+@@ -31,6 +31,7 @@
+ #define _NETLABEL_H
+
+ #include <linux/types.h>
++#include <linux/net.h>
+ #include <linux/skbuff.h>
+ #include <net/netlink.h>
+
+diff -purN -X dontdiff linux-2.6.17.x86_64/net/netlabel/netlabel_domainhash.h linux-2.6.17.x86_64.w/net/netlabel/netlabel_domainhash.h
+--- linux-2.6.17.x86_64/net/netlabel/netlabel_domainhash.h 2006-09-02 09:53:00.000000000 -0400
++++ linux-2.6.17.x86_64.w/net/netlabel/netlabel_domainhash.h 2006-09-02 09:59:17.000000000 -0400
+@@ -32,6 +32,10 @@
+ #ifndef _NETLABEL_DOMAINHASH_H
+ #define _NETLABEL_DOMAINHASH_H
+
++#include <linux/types.h>
++#include <linux/rcupdate.h>
++#include <linux/list.h>
++
+ /* Domain hash table size */
+ /* XXX - currently this number is an uneducated guess */
+ #define NETLBL_DOMHSH_BITSIZE 7
+diff -purN -X dontdiff linux-2.6.17.x86_64/net/netlabel/netlabel_user.h linux-2.6.17.x86_64.w/net/netlabel/netlabel_user.h
+--- linux-2.6.17.x86_64/net/netlabel/netlabel_user.h 2006-09-02 09:53:00.000000000 -0400
++++ linux-2.6.17.x86_64.w/net/netlabel/netlabel_user.h 2006-09-02 09:59:17.000000000 -0400
+@@ -31,11 +31,12 @@
+ #ifndef _NETLABEL_USER_H
+ #define _NETLABEL_USER_H
+
++#include <linux/types.h>
+ #include <linux/skbuff.h>
+ #include <linux/capability.h>
+-#include <linux/genetlink.h>
+-#include <net/netlabel.h>
++#include <net/netlink.h>
+ #include <net/genetlink.h>
++#include <net/netlabel.h>
+
+ /* NetLabel NETLINK helper functions */
+
+diff -purN -X dontdiff linux-2.6.17.x86_64/security/selinux/hooks.c linux-2.6.17.x86_64.w/security/selinux/hooks.c
+--- linux-2.6.17.x86_64/security/selinux/hooks.c 2006-09-02 09:53:00.000000000 -0400
++++ linux-2.6.17.x86_64.w/security/selinux/hooks.c 2006-09-02 09:58:55.000000000 -0400
+@@ -281,6 +281,8 @@ static int sk_alloc_security(struct sock
+ ssec->sid = SECINITSID_UNLABELED;
+ sk->sk_security = ssec;
+
++ selinux_netlbl_sk_security_init(ssec, family);
++
+ return 0;
+ }
+
+@@ -3582,6 +3584,8 @@ static void selinux_sk_clone_security(co
+
+ newssec->sid = ssec->sid;
+ newssec->peer_sid = ssec->peer_sid;
++
++ selinux_netlbl_sk_clone_security(ssec, newssec);
+ }
+
+ static void selinux_sk_getsecid(struct sock *sk, u32 *secid)
+@@ -3644,6 +3648,8 @@ void selinux_inet_csk_clone(struct sock
+ new socket in sync, but we don't have the isec available yet.
+ So we will wait until sock_graft to do it, by which
+ time it will have been created and available. */
++
++ selinux_netlbl_sk_security_init(newsksec, req->rsk_ops->family);
+ }
+
+ void selinux_req_classify_flow(const struct request_sock *req, struct flowi *fl)
+diff -purN -X dontdiff linux-2.6.17.x86_64/security/selinux/include/selinux_netlabel.h linux-2.6.17.x86_64.w/security/selinux/include/selinux_netlabel.h
+--- linux-2.6.17.x86_64/security/selinux/include/selinux_netlabel.h 2006-09-02 09:53:00.000000000 -0400
++++ linux-2.6.17.x86_64.w/security/selinux/include/selinux_netlabel.h 2006-09-02 09:59:17.000000000 -0400
+@@ -27,6 +27,15 @@
+ #ifndef _SELINUX_NETLABEL_H_
+ #define _SELINUX_NETLABEL_H_
+
++#include <linux/types.h>
++#include <linux/fs.h>
++#include <linux/net.h>
++#include <linux/skbuff.h>
++#include <net/sock.h>
++
++#include "avc.h"
++#include "objsec.h"
++
+ #ifdef CONFIG_NETLABEL
+ void selinux_netlbl_cache_invalidate(void);
+ int selinux_netlbl_socket_post_create(struct socket *sock,
+@@ -39,40 +48,11 @@ int selinux_netlbl_sock_rcv_skb(struct s
+ struct avc_audit_data *ad);
+ u32 selinux_netlbl_socket_getpeersec_stream(struct socket *sock);
+ u32 selinux_netlbl_socket_getpeersec_dgram(struct sk_buff *skb);
+-
+-int __selinux_netlbl_inode_permission(struct inode *inode, int mask);
+-/**
+- * selinux_netlbl_inode_permission - Verify the socket is NetLabel labeled
+- * @inode: the file descriptor's inode
+- * @mask: the permission mask
+- *
+- * Description:
+- * Looks at a file's inode and if it is marked as a socket protected by
+- * NetLabel then verify that the socket has been labeled, if not try to label
+- * the socket now with the inode's SID. Returns zero on success, negative
+- * values on failure.
+- *
+- */
+-static inline int selinux_netlbl_inode_permission(struct inode *inode,
+- int mask)
+-{
+- int rc = 0;
+- struct inode_security_struct *isec;
+- struct sk_security_struct *sksec;
+-
+- if (!S_ISSOCK(inode->i_mode))
+- return 0;
+-
+- isec = inode->i_security;
+- sksec = SOCKET_I(inode)->sk->sk_security;
+- down(&isec->sem);
+- if (unlikely(sksec->nlbl_state == NLBL_REQUIRE &&
+- (mask & (MAY_WRITE | MAY_APPEND))))
+- rc = __selinux_netlbl_inode_permission(inode, mask);
+- up(&isec->sem);
+-
+- return rc;
+-}
++void selinux_netlbl_sk_security_init(struct sk_security_struct *ssec,
++ int family);
++void selinux_netlbl_sk_clone_security(struct sk_security_struct *ssec,
++ struct sk_security_struct *newssec);
++int selinux_netlbl_inode_permission(struct inode *inode, int mask);
+ #else
+ static inline void selinux_netlbl_cache_invalidate(void)
+ {
+@@ -115,6 +95,20 @@ static inline u32 selinux_netlbl_socket_
+ return SECSID_NULL;
+ }
+
++static inline void selinux_netlbl_sk_security_init(
++ struct sk_security_struct *ssec,
++ int family)
++{
++ return;
++}
++
++static inline void selinux_netlbl_sk_clone_security(
++ struct sk_security_struct *ssec,
++ struct sk_security_struct *newssec)
++{
++ return;
++}
++
+ static inline int selinux_netlbl_inode_permission(struct inode *inode,
+ int mask)
+ {
+diff -purN -X dontdiff linux-2.6.17.x86_64/security/selinux/ss/ebitmap.c linux-2.6.17.x86_64.w/security/selinux/ss/ebitmap.c
+--- linux-2.6.17.x86_64/security/selinux/ss/ebitmap.c 2006-09-02 09:53:00.000000000 -0400
++++ linux-2.6.17.x86_64.w/security/selinux/ss/ebitmap.c 2006-09-02 09:59:09.000000000 -0400
+@@ -145,29 +145,28 @@ int ebitmap_import(const unsigned char *
+ struct ebitmap *dst)
+ {
+ size_t src_off = 0;
++ size_t node_limit;
+ struct ebitmap_node *node_new;
+ struct ebitmap_node *node_last = NULL;
+- size_t iter;
+- size_t iter_bit;
+- size_t iter_limit;
++ u32 i_byte;
++ u32 i_bit;
+ unsigned char src_byte;
+
+- do {
+- iter_limit = src_len - src_off;
+- if (iter_limit >= sizeof(MAPTYPE)) {
++ while (src_off < src_len) {
++ if (src_len - src_off >= sizeof(MAPTYPE)) {
+ if (*(MAPTYPE *)&src[src_off] == 0) {
+ src_off += sizeof(MAPTYPE);
+ continue;
+ }
+- iter_limit = sizeof(MAPTYPE);
++ node_limit = sizeof(MAPTYPE);
+ } else {
+- iter = src_off;
+- src_byte = 0;
+- do {
+- src_byte |= src[iter++];
+- } while (iter < src_len && src_byte == 0);
++ for (src_byte = 0, i_byte = src_off;
++ i_byte < src_len && src_byte == 0;
++ i_byte++)
++ src_byte |= src[i_byte];
+ if (src_byte == 0)
+ break;
++ node_limit = src_len - src_off;
+ }
+
+ node_new = kzalloc(sizeof(*node_new), GFP_ATOMIC);
+@@ -176,24 +175,21 @@ int ebitmap_import(const unsigned char *
+ return -ENOMEM;
+ }
+ node_new->startbit = src_off * 8;
+- iter = 0;
+- do {
++ for (i_byte = 0; i_byte < node_limit; i_byte++) {
+ src_byte = src[src_off++];
+- iter_bit = iter++ * 8;
+- while (src_byte != 0) {
++ for (i_bit = i_byte * 8; src_byte != 0; i_bit++) {
+ if (src_byte & 0x80)
+- node_new->map |= MAPBIT << iter_bit;
+- iter_bit++;
++ node_new->map |= MAPBIT << i_bit;
+ src_byte <<= 1;
+ }
+- } while (iter < iter_limit);
++ }
+
+ if (node_last != NULL)
+ node_last->next = node_new;
+ else
+ dst->node = node_new;
+ node_last = node_new;
+- } while (src_off < src_len);
++ }
+
+ if (likely(node_last != NULL))
+ dst->highbit = node_last->startbit + MAPSIZE;
+diff -purN -X dontdiff linux-2.6.17.x86_64/security/selinux/ss/services.c linux-2.6.17.x86_64.w/security/selinux/ss/services.c
+--- linux-2.6.17.x86_64/security/selinux/ss/services.c 2006-09-02 09:53:00.000000000 -0400
++++ linux-2.6.17.x86_64.w/security/selinux/ss/services.c 2006-09-02 09:59:14.000000000 -0400
+@@ -2423,6 +2423,45 @@ netlbl_socket_setsid_return:
+ }
+
+ /**
++ * selinux_netlbl_sk_security_init - Setup the NetLabel fields
++ * @ssec: the sk_security_struct
++ * @family: the socket family
++ *
++ * Description:
++ * Called when a new sk_security_struct is allocated to initialize the NetLabel
++ * fields.
++ *
++ */
++void selinux_netlbl_sk_security_init(struct sk_security_struct *ssec,
++ int family)
++{
++ if (family == PF_INET)
++ ssec->nlbl_state = NLBL_REQUIRE;
++ else
++ ssec->nlbl_state = NLBL_UNSET;
++}
++
++/**
++ * selinux_netlbl_sk_clone_security - Copy the NetLabel fields
++ * @ssec: the original sk_security_struct
++ * @newssec: the cloned sk_security_struct
++ *
++ * Description:
++ * Clone the NetLabel specific sk_security_struct fields from @ssec to
++ * @newssec.
++ *
++ */
++void selinux_netlbl_sk_clone_security(struct sk_security_struct *ssec,
++ struct sk_security_struct *newssec)
++{
++ newssec->sclass = ssec->sclass;
++ if (ssec->nlbl_state != NLBL_UNSET)
++ newssec->nlbl_state = NLBL_REQUIRE;
++ else
++ newssec->nlbl_state = NLBL_UNSET;
++}
++
++/**
+ * selinux_netlbl_socket_post_create - Label a socket using NetLabel
+ * @sock: the socket to label
+ * @sock_family: the socket family
+@@ -2440,10 +2479,11 @@ int selinux_netlbl_socket_post_create(st
+ struct inode_security_struct *isec = SOCK_INODE(sock)->i_security;
+ struct sk_security_struct *sksec = sock->sk->sk_security;
+
++ sksec->sclass = isec->sclass;
++
+ if (sock_family != PF_INET)
+ return 0;
+
+- sksec->sclass = isec->sclass;
+ sksec->nlbl_state = NLBL_REQUIRE;
+ return selinux_netlbl_socket_setsid(sock, sid);
+ }
+@@ -2463,12 +2503,13 @@ void selinux_netlbl_sock_graft(struct so
+ struct inode_security_struct *isec = SOCK_INODE(sock)->i_security;
+ struct sk_security_struct *sksec = sk->sk_security;
+
++ sksec->sclass = isec->sclass;
++
+ if (sk->sk_family != PF_INET)
+ return;
+
+ sksec->nlbl_state = NLBL_REQUIRE;
+ sksec->peer_sid = sksec->sid;
+- sksec->sclass = isec->sclass;
+
+ /* Try to set the NetLabel on the socket to save time later, if we fail
+ * here we will pick up the pieces in later calls to
+@@ -2503,24 +2544,39 @@ u32 selinux_netlbl_inet_conn_request(str
+ }
+
+ /**
+- * __selinux_netlbl_inode_permission - Label a socket using NetLabel
++ * selinux_netlbl_inode_permission - Verify the socket is NetLabel labeled
+ * @inode: the file descriptor's inode
+ * @mask: the permission mask
+ *
+ * Description:
+- * Try to label a socket with the inode's SID using NetLabel. Returns zero on
+- * success, negative values on failure.
++ * Looks at a file's inode and if it is marked as a socket protected by
++ * NetLabel then verify that the socket has been labeled, if not try to label
++ * the socket now with the inode's SID. Returns zero on success, negative
++ * values on failure.
+ *
+ */
+-int __selinux_netlbl_inode_permission(struct inode *inode, int mask)
++int selinux_netlbl_inode_permission(struct inode *inode, int mask)
+ {
+ int rc;
+- struct socket *sock = SOCKET_I(inode);
+- struct sk_security_struct *sksec = sock->sk->sk_security;
++ struct inode_security_struct *isec;
++ struct sk_security_struct *sksec;
++ struct socket *sock;
++
++ if (!S_ISSOCK(inode->i_mode))
++ return 0;
+
+- lock_sock(sock->sk);
+- rc = selinux_netlbl_socket_setsid(sock, sksec->sid);
+- release_sock(sock->sk);
++ sock = SOCKET_I(inode);
++ isec = inode->i_security;
++ sksec = sock->sk->sk_security;
++ down(&isec->sem);
++ if (unlikely(sksec->nlbl_state == NLBL_REQUIRE &&
++ (mask & (MAY_WRITE | MAY_APPEND)))) {
++ lock_sock(sock->sk);
++ rc = selinux_netlbl_socket_setsid(sock, sksec->sid);
++ release_sock(sock->sk);
++ } else
++ rc = 0;
++ up(&isec->sem);
+
+ return rc;
+ }
+@@ -2576,7 +2632,7 @@ int selinux_netlbl_sock_rcv_skb(struct s
+ }
+
+ /**
+- * selinux_netlbl_socket_peersid - Return the peer SID of a connected socket
++ * selinux_netlbl_socket_getpeersec_stream - Return the connected peer's SID
+ * @sock: the socket
+ *
+ * Description:
+
linux-2.6-x86-relocatable.patch:
b/arch/i386/Kconfig | 13
b/arch/i386/Makefile | 2
b/arch/i386/boot/Makefile | 2
b/arch/i386/boot/bootsect.S | 97 +
b/arch/i386/boot/compressed/Makefile | 22
b/arch/i386/boot/compressed/head.S | 184 ++-
b/arch/i386/boot/compressed/misc.c | 513 ++++++---
b/arch/i386/boot/compressed/relocs.c | 563 ++++++++++
b/arch/i386/boot/compressed/vmlinux.lds | 40
b/arch/i386/boot/compressed/vmlinux.scr | 3
b/arch/i386/boot/setup.S | 29
b/arch/i386/boot/tools/build.c | 214 +++
b/arch/i386/kernel/alternative.c | 8
b/arch/i386/kernel/setup.c | 4
b/arch/i386/kernel/vmlinux.lds.S | 114 +-
b/arch/i386/mm/init.c | 15
b/arch/x86_64/Kconfig | 19
b/arch/x86_64/boot/Makefile | 2
b/arch/x86_64/boot/bootsect.S | 93 +
b/arch/x86_64/boot/compressed/Makefile | 13
b/arch/x86_64/boot/compressed/head.S | 301 +++--
b/arch/x86_64/boot/compressed/misc.c | 500 ++++++--
b/arch/x86_64/boot/compressed/vmlinux.lds | 44
b/arch/x86_64/boot/compressed/vmlinux.scr | 5
b/arch/x86_64/boot/tools/build.c | 232 +++-
b/arch/x86_64/defconfig | 1
b/arch/x86_64/kernel/acpi/sleep.c | 19
b/arch/x86_64/kernel/acpi/wakeup.S | 325 ++---
b/arch/x86_64/kernel/e820.c | 4
b/arch/x86_64/kernel/early_printk.c | 3
b/arch/x86_64/kernel/head.S | 326 ++---
b/arch/x86_64/kernel/head64.c | 35
b/arch/x86_64/kernel/setup.c | 24
b/arch/x86_64/kernel/setup64.c | 1
b/arch/x86_64/kernel/smp.c | 2
b/arch/x86_64/kernel/suspend.c | 3
b/arch/x86_64/kernel/trampoline.S | 168 ++
b/arch/x86_64/kernel/vmlinux.lds.S | 2
b/arch/x86_64/kernel/vsyscall.c | 10
b/arch/x86_64/mm/fault.c | 4
b/arch/x86_64/mm/init.c | 288 ++---
b/arch/x86_64/mm/pageattr.c | 20
b/include/asm-generic/vmlinux.lds.h | 2
b/include/asm-i386/page.h | 4
b/include/asm-x86_64/const.h | 20
b/include/asm-x86_64/page.h | 44
b/include/asm-x86_64/pgtable.h | 39
b/include/asm-x86_64/proto.h | 2
b/include/asm-x86_64/segment.h | 4
b/include/asm-x86_64/suspend.h | 13
b/include/linux/elf.h | 27
b/include/linux/elf_boot.h | 19
b/include/linux/screen_info.h | 3
b/scripts/kallsyms.c | 30
linux-2.6.17.noarch/arch/x86_64/mm/init.c | 2
linux-2.6.17.noarch/include/asm-x86_64/Kbuild | 2
linux-2.6.17.x86_64-root/fs/proc/kcore.c | 8
linux-2.6.18-rc3-1M-root/arch/i386/Kconfig | 34
linux-2.6.18-rc3-1M-root/arch/i386/boot/bootsect.S | 8
linux-2.6.18-rc3-1M-root/arch/i386/boot/compressed/head.S | 28
linux-2.6.18-rc3-1M-root/arch/i386/boot/compressed/misc.c | 7
linux-2.6.18-rc3-1M-root/arch/i386/boot/compressed/vmlinux.lds | 3
linux-2.6.18-rc3-1M-root/arch/i386/kernel/vmlinux.lds.S | 5
linux-2.6.18-rc3-1M-root/arch/powerpc/kernel/vmlinux.lds.S | 1
linux-2.6.18-rc3-1M-root/arch/x86_64/boot/Makefile | 3
linux-2.6.18-rc3-1M-root/arch/x86_64/boot/compressed/vmlinux.lds | 2
linux-2.6.18-rc3-1M-root/arch/x86_64/boot/tools/build.c | 129 +-
linux-2.6.18-rc3-1M-root/fs/proc/kcore.c | 4
linux-2.6.18-rc3-1M-root/include/asm-i386/boot.h | 6
69 files changed, 3400 insertions(+), 1316 deletions(-)
Index: linux-2.6-x86-relocatable.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-x86-relocatable.patch,v
retrieving revision 1.6
retrieving revision 1.6.4.1
diff -u -r1.6 -r1.6.4.1
--- linux-2.6-x86-relocatable.patch 14 Sep 2006 19:21:42 -0000 1.6
+++ linux-2.6-x86-relocatable.patch 20 Sep 2006 17:45:35 -0000 1.6.4.1
@@ -5996,7 +5996,7 @@
#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
#define VMALLOC_RESERVE ((unsigned long)__VMALLOC_RESERVE)
- #define MAXMEM (__FIXADDR_TOP-__PAGE_OFFSET-__VMALLOC_RESERVE)
+ #define MAXMEM (-__PAGE_OFFSET-__VMALLOC_RESERVE)
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
+#define __pa_symbol(x) __pa(x)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
linux-2.6-xen.patch:
arch/i386/Kconfig | 85
arch/i386/Kconfig.cpu | 4
arch/i386/Kconfig.debug | 1
arch/i386/Makefile | 24
arch/i386/boot-xen/Makefile | 21
arch/i386/kernel/Makefile | 21
arch/i386/kernel/acpi/Makefile | 4
arch/i386/kernel/acpi/boot-xen.c | 1168 ++++++++
arch/i386/kernel/alternative.c | 8
arch/i386/kernel/apic-xen.c | 160 +
arch/i386/kernel/asm-offsets.c | 7
arch/i386/kernel/cpu/Makefile | 5
arch/i386/kernel/cpu/common-xen.c | 739 +++++
arch/i386/kernel/cpu/mtrr/Makefile | 7
arch/i386/kernel/cpu/mtrr/main-xen.c | 197 +
arch/i386/kernel/early_printk-xen.c | 2
arch/i386/kernel/entry-xen.S | 1213 ++++++++
arch/i386/kernel/entry.S | 6
arch/i386/kernel/fixup.c | 92
arch/i386/kernel/head-xen.S | 200 +
arch/i386/kernel/init_task-xen.c | 51
arch/i386/kernel/io_apic-xen.c | 2771 ++++++++++++++++++++
arch/i386/kernel/ioport-xen.c | 121
arch/i386/kernel/irq-xen.c | 324 ++
arch/i386/kernel/ldt-xen.c | 270 +
arch/i386/kernel/microcode-xen.c | 147 +
arch/i386/kernel/mpparse-xen.c | 1185 ++++++++
arch/i386/kernel/pci-dma-xen.c | 379 ++
arch/i386/kernel/process-xen.c | 812 +++++
arch/i386/kernel/quirks-xen.c | 47
arch/i386/kernel/setup-xen.c | 1830 +++++++++++++
arch/i386/kernel/smp-xen.c | 624 ++++
arch/i386/kernel/swiotlb.c | 672 ++++
arch/i386/kernel/sysenter.c | 22
arch/i386/kernel/time-xen.c | 1101 +++++++
arch/i386/kernel/traps-xen.c | 1184 ++++++++
arch/i386/kernel/traps.c | 9
arch/i386/kernel/tsc.c | 2
arch/i386/kernel/vm86.c | 12
arch/i386/kernel/vmlinux.lds.S | 12
arch/i386/kernel/vsyscall-note-xen.S | 32
arch/i386/lib/delay.c | 3
arch/i386/mach-xen/Makefile | 5
arch/i386/mach-xen/irqflags.c | 99
arch/i386/mach-xen/setup.c | 154 +
arch/i386/mm/Makefile | 8
arch/i386/mm/fault-xen.c | 770 +++++
arch/i386/mm/highmem-xen.c | 133
arch/i386/mm/hypervisor.c | 457 +++
arch/i386/mm/init-xen.c | 851 ++++++
arch/i386/mm/ioremap-xen.c | 439 +++
arch/i386/mm/pageattr.c | 2
arch/i386/mm/pgtable-xen.c | 699 +++++
arch/i386/oprofile/Makefile | 4
arch/i386/oprofile/xenoprof.c | 584 ++++
arch/i386/pci/Makefile | 9
arch/i386/pci/irq-xen.c | 1206 ++++++++
arch/i386/pci/pcifront.c | 55
arch/i386/power/Makefile | 4
arch/ia64/Kconfig | 60
arch/ia64/Makefile | 16
arch/ia64/dig/setup.c | 17
arch/ia64/hp/sim/Makefile | 2
arch/ia64/kernel/asm-offsets.c | 25
arch/ia64/kernel/entry.S | 32
arch/ia64/kernel/gate.S | 113
arch/ia64/kernel/gate.lds.S | 22
arch/ia64/kernel/head.S | 6
arch/ia64/kernel/iosapic.c | 65
arch/ia64/kernel/irq_ia64.c | 259 +
arch/ia64/kernel/pal.S | 5
arch/ia64/kernel/patch.c | 71
arch/ia64/kernel/setup.c | 125
arch/ia64/mm/ioremap.c | 3
arch/ia64/xen/Makefile | 8
arch/ia64/xen/drivers/README | 2
arch/ia64/xen/hypercall.S | 413 ++
arch/ia64/xen/hypervisor.c | 833 ++++++
arch/ia64/xen/util.c | 115
arch/ia64/xen/xenentry.S | 867 ++++++
arch/ia64/xen/xenhpski.c | 19
arch/ia64/xen/xenivt.S | 2169 +++++++++++++++
arch/ia64/xen/xenminstate.h | 368 ++
arch/ia64/xen/xenpal.S | 76
arch/ia64/xen/xensetup.S | 54
arch/um/kernel/physmem.c | 4
arch/x86_64/Kconfig | 63
arch/x86_64/Makefile | 20
arch/x86_64/ia32/Makefile | 20
arch/x86_64/ia32/ia32entry-xen.S | 743 +++++
arch/x86_64/ia32/syscall32-xen.c | 128
arch/x86_64/ia32/syscall32_syscall-xen.S | 28
arch/x86_64/ia32/vsyscall-int80.S | 58
arch/x86_64/ia32/vsyscall-sigreturn.S | 2
arch/x86_64/kernel/Makefile | 19
arch/x86_64/kernel/acpi/Makefile | 1
arch/x86_64/kernel/apic-xen.c | 197 +
arch/x86_64/kernel/asm-offsets.c | 2
arch/x86_64/kernel/e820-xen.c | 757 +++++
arch/x86_64/kernel/early_printk-xen.c | 304 ++
arch/x86_64/kernel/entry-xen.S | 1213 ++++++++
arch/x86_64/kernel/genapic-xen.c | 143 +
arch/x86_64/kernel/genapic_xen.c | 176 +
arch/x86_64/kernel/head-xen.S | 191 +
arch/x86_64/kernel/head64-xen.c | 161 +
arch/x86_64/kernel/init_task.c | 3
arch/x86_64/kernel/io_apic-xen.c | 2263 ++++++++++++++++
arch/x86_64/kernel/ioport-xen.c | 99
arch/x86_64/kernel/irq-xen.c | 198 +
arch/x86_64/kernel/irqflags-xen.c | 100
arch/x86_64/kernel/ldt-xen.c | 282 ++
arch/x86_64/kernel/mpparse-xen.c | 1011 +++++++
arch/x86_64/kernel/pci-swiotlb-xen.c | 54
arch/x86_64/kernel/process-xen.c | 794 +++++
arch/x86_64/kernel/setup-xen.c | 1638 +++++++++++
arch/x86_64/kernel/setup64-xen.c | 361 ++
arch/x86_64/kernel/smp-xen.c | 600 ++++
arch/x86_64/kernel/traps-xen.c | 1173 ++++++++
arch/x86_64/kernel/vmlinux.lds.S | 31
arch/x86_64/kernel/vsyscall-xen.c | 239 +
arch/x86_64/kernel/xen_entry.S | 40
arch/x86_64/mm/Makefile | 10
arch/x86_64/mm/fault-xen.c | 723 +++++
arch/x86_64/mm/init-xen.c | 1200 ++++++++
arch/x86_64/mm/pageattr-xen.c | 396 ++
arch/x86_64/oprofile/Makefile | 5
arch/x86_64/pci/Makefile | 12
drivers/Makefile | 1
drivers/acpi/Kconfig | 3
drivers/char/hangcheck-timer.c | 2
drivers/char/mem.c | 6
drivers/char/tpm/Kconfig | 12
drivers/char/tpm/Makefile | 2
drivers/char/tpm/tpm.c | 55
drivers/char/tpm/tpm.h | 7
drivers/char/tpm/tpm_vtpm.c | 547 +++
drivers/char/tpm/tpm_vtpm.h | 68
drivers/char/tpm/tpm_xen.c | 756 +++++
drivers/char/tty_io.c | 7
drivers/firmware/Kconfig | 2
drivers/ide/ide-lib.c | 8
drivers/oprofile/buffer_sync.c | 66
drivers/oprofile/cpu_buffer.c | 51
drivers/oprofile/cpu_buffer.h | 9
drivers/oprofile/event_buffer.h | 7
drivers/oprofile/oprof.c | 32
drivers/oprofile/oprof.h | 3
drivers/oprofile/oprofile_files.c | 207 +
drivers/pci/Kconfig | 1
drivers/serial/Kconfig | 1
drivers/xen/Kconfig | 260 +
drivers/xen/Makefile | 17
drivers/xen/balloon/Makefile | 2
drivers/xen/balloon/balloon.c | 625 ++++
drivers/xen/blkback/Makefile | 3
drivers/xen/blkback/blkback.c | 567 ++++
drivers/xen/blkback/common.h | 133
drivers/xen/blkback/interface.c | 171 +
drivers/xen/blkback/vbd.c | 119
drivers/xen/blkback/xenbus.c | 468 +++
drivers/xen/blkfront/Kconfig | 6
drivers/xen/blkfront/Makefile | 5
drivers/xen/blkfront/blkfront.c | 842 ++++++
drivers/xen/blkfront/block.h | 154 +
drivers/xen/blkfront/vbd.c | 318 ++
drivers/xen/blktap/Makefile | 3
drivers/xen/blktap/blktap.c | 1444 ++++++++++
drivers/xen/blktap/common.h | 120
drivers/xen/blktap/interface.c | 164 +
drivers/xen/blktap/xenbus.c | 367 ++
drivers/xen/char/Makefile | 2
drivers/xen/char/mem.c | 180 +
drivers/xen/console/Makefile | 2
drivers/xen/console/console.c | 688 ++++
drivers/xen/console/xencons_ring.c | 143 +
drivers/xen/core/Makefile | 13
drivers/xen/core/cpu_hotplug.c | 188 +
drivers/xen/core/evtchn.c | 868 ++++++
drivers/xen/core/features.c | 30
drivers/xen/core/gnttab.c | 483 +++
drivers/xen/core/hypervisor_sysfs.c | 59
drivers/xen/core/reboot.c | 384 ++
drivers/xen/core/skbuff.c | 139 +
drivers/xen/core/smpboot.c | 429 +++
drivers/xen/core/xen_proc.c | 18
drivers/xen/core/xen_sysfs.c | 378 ++
drivers/xen/evtchn/Makefile | 2
drivers/xen/evtchn/evtchn.c | 456 +++
drivers/xen/netback/Makefile | 5
drivers/xen/netback/common.h | 141 +
drivers/xen/netback/interface.c | 339 ++
drivers/xen/netback/loopback.c | 260 +
drivers/xen/netback/netback.c | 1498 ++++++++++
drivers/xen/netback/xenbus.c | 473 +++
drivers/xen/netfront/Kconfig | 6
drivers/xen/netfront/Makefile | 4
drivers/xen/netfront/netfront.c | 2076 ++++++++++++++
drivers/xen/pciback/Makefile | 15
drivers/xen/pciback/conf_space.c | 425 +++
drivers/xen/pciback/conf_space.h | 126
drivers/xen/pciback/conf_space_capability.c | 71
drivers/xen/pciback/conf_space_capability.h | 23
drivers/xen/pciback/conf_space_capability_pm.c | 113
drivers/xen/pciback/conf_space_capability_vpd.c | 42
drivers/xen/pciback/conf_space_header.c | 299 ++
drivers/xen/pciback/conf_space_quirks.c | 128
drivers/xen/pciback/conf_space_quirks.h | 35
drivers/xen/pciback/passthrough.c | 157 +
drivers/xen/pciback/pci_stub.c | 916 ++++++
drivers/xen/pciback/pciback.h | 93
drivers/xen/pciback/pciback_ops.c | 95
drivers/xen/pciback/slot.c | 151 +
drivers/xen/pciback/vpci.c | 204 +
drivers/xen/pciback/xenbus.c | 458 +++
drivers/xen/pcifront/Makefile | 7
drivers/xen/pcifront/pci.c | 46
drivers/xen/pcifront/pci_op.c | 273 +
drivers/xen/pcifront/pcifront.h | 40
drivers/xen/pcifront/xenbus.c | 295 ++
drivers/xen/privcmd/Makefile | 2
drivers/xen/privcmd/privcmd.c | 266 +
drivers/xen/tpmback/Makefile | 4
drivers/xen/tpmback/common.h | 84
drivers/xen/tpmback/interface.c | 177 +
drivers/xen/tpmback/tpmback.c | 944 ++++++
drivers/xen/tpmback/xenbus.c | 287 ++
drivers/xen/util.c | 70
drivers/xen/xenbus/Makefile | 12
drivers/xen/xenbus/xenbus_backend_client.c | 147 +
drivers/xen/xenbus/xenbus_client.c | 299 ++
drivers/xen/xenbus/xenbus_comms.c | 203 +
drivers/xen/xenbus/xenbus_comms.h | 45
drivers/xen/xenbus/xenbus_dev.c | 356 ++
drivers/xen/xenbus/xenbus_probe.c | 1176 ++++++++
drivers/xen/xenbus/xenbus_xs.c | 853 ++++++
fs/Kconfig | 1
include/asm-generic/vmlinux.lds.h | 3
include/asm-i386/apic.h | 2
include/asm-i386/fixmap.h | 1
include/asm-i386/mach-default/mach_traps.h | 12
include/asm-i386/mach-xen/asm/agp.h | 37
include/asm-i386/mach-xen/asm/desc.h | 164 +
include/asm-i386/mach-xen/asm/dma-mapping.h | 151 +
include/asm-i386/mach-xen/asm/fixmap.h | 156 +
include/asm-i386/mach-xen/asm/floppy.h | 147 +
include/asm-i386/mach-xen/asm/highmem.h | 80
include/asm-i386/mach-xen/asm/hw_irq.h | 72
include/asm-i386/mach-xen/asm/hypercall.h | 389 ++
include/asm-i386/mach-xen/asm/hypervisor.h | 234 +
include/asm-i386/mach-xen/asm/io.h | 389 ++
include/asm-i386/mach-xen/asm/irqflags.h | 80
include/asm-i386/mach-xen/asm/kmap_types.h | 31
include/asm-i386/mach-xen/asm/maddr.h | 160 +
include/asm-i386/mach-xen/asm/mmu.h | 29
include/asm-i386/mach-xen/asm/mmu_context.h | 108
include/asm-i386/mach-xen/asm/page.h | 220 +
include/asm-i386/mach-xen/asm/param.h | 23
include/asm-i386/mach-xen/asm/pci.h | 153 +
include/asm-i386/mach-xen/asm/pgalloc.h | 63
include/asm-i386/mach-xen/asm/pgtable-2level-defs.h | 21
include/asm-i386/mach-xen/asm/pgtable-2level.h | 87
include/asm-i386/mach-xen/asm/pgtable-3level-defs.h | 25
include/asm-i386/mach-xen/asm/pgtable-3level.h | 185 +
include/asm-i386/mach-xen/asm/pgtable.h | 508 +++
include/asm-i386/mach-xen/asm/processor.h | 741 +++++
include/asm-i386/mach-xen/asm/ptrace.h | 90
include/asm-i386/mach-xen/asm/scatterlist.h | 22
include/asm-i386/mach-xen/asm/segment.h | 117
include/asm-i386/mach-xen/asm/setup.h | 81
include/asm-i386/mach-xen/asm/smp.h | 103
include/asm-i386/mach-xen/asm/spinlock.h | 202 +
include/asm-i386/mach-xen/asm/swiotlb.h | 41
include/asm-i386/mach-xen/asm/synch_bitops.h | 141 +
include/asm-i386/mach-xen/asm/system.h | 491 +++
include/asm-i386/mach-xen/asm/timer.h | 70
include/asm-i386/mach-xen/asm/tlbflush.h | 101
include/asm-i386/mach-xen/asm/vga.h | 20
include/asm-i386/mach-xen/irq_vectors.h | 125
include/asm-i386/mach-xen/mach_traps.h | 33
include/asm-i386/mach-xen/setup_arch.h | 5
include/asm-i386/pgtable-2level-defs.h | 2
include/asm-i386/pgtable-3level-defs.h | 2
include/asm-ia64/agp.h | 44
include/asm-ia64/dma-mapping.h | 100
include/asm-ia64/fixmap.h | 2
include/asm-ia64/gcc_intrin.h | 60
include/asm-ia64/hw_irq.h | 10
include/asm-ia64/hypercall.h | 423 +++
include/asm-ia64/hypervisor.h | 218 +
include/asm-ia64/intel_intrin.h | 68
include/asm-ia64/io.h | 34
include/asm-ia64/iosapic.h | 2
include/asm-ia64/irq.h | 31
include/asm-ia64/machvec_dig.h | 15
include/asm-ia64/maddr.h | 92
include/asm-ia64/meminit.h | 5
include/asm-ia64/page.h | 50
include/asm-ia64/pal.h | 1
include/asm-ia64/pgalloc.h | 4
include/asm-ia64/privop.h | 59
include/asm-ia64/processor.h | 1
include/asm-ia64/synch_bitops.h | 61
include/asm-ia64/system.h | 4
include/asm-ia64/xen/privop.h | 304 ++
include/asm-um/page.h | 2
include/asm-x86_64/apic.h | 2
include/asm-x86_64/ipi.h | 2
include/asm-x86_64/mach-xen/asm/arch_hooks.h | 27
include/asm-x86_64/mach-xen/asm/bootsetup.h | 42
include/asm-x86_64/mach-xen/asm/desc.h | 263 +
include/asm-x86_64/mach-xen/asm/dma-mapping.h | 208 +
include/asm-x86_64/mach-xen/asm/dmi.h | 29
include/asm-x86_64/mach-xen/asm/e820.h | 64
include/asm-x86_64/mach-xen/asm/fixmap.h | 113
include/asm-x86_64/mach-xen/asm/floppy.h | 206 +
include/asm-x86_64/mach-xen/asm/hw_irq.h | 136
include/asm-x86_64/mach-xen/asm/hypercall.h | 389 ++
include/asm-x86_64/mach-xen/asm/hypervisor.h | 2
include/asm-x86_64/mach-xen/asm/io.h | 327 ++
include/asm-x86_64/mach-xen/asm/irq.h | 38
include/asm-x86_64/mach-xen/asm/irqflags.h | 65
include/asm-x86_64/mach-xen/asm/maddr.h | 139 +
include/asm-x86_64/mach-xen/asm/mmu.h | 38
include/asm-x86_64/mach-xen/asm/mmu_context.h | 135
include/asm-x86_64/mach-xen/asm/msr.h | 399 ++
include/asm-x86_64/mach-xen/asm/nmi.h | 93
include/asm-x86_64/mach-xen/asm/page.h | 208 +
include/asm-x86_64/mach-xen/asm/param.h | 22
include/asm-x86_64/mach-xen/asm/pci.h | 173 +
include/asm-x86_64/mach-xen/asm/pgalloc.h | 226 +
include/asm-x86_64/mach-xen/asm/pgtable.h | 558 ++++
include/asm-x86_64/mach-xen/asm/processor.h | 504 +++
include/asm-x86_64/mach-xen/asm/ptrace.h | 125
include/asm-x86_64/mach-xen/asm/smp.h | 150 +
include/asm-x86_64/mach-xen/asm/synch_bitops.h | 2
include/asm-x86_64/mach-xen/asm/system.h | 264 +
include/asm-x86_64/mach-xen/asm/timer.h | 67
include/asm-x86_64/mach-xen/asm/tlbflush.h | 103
include/asm-x86_64/mach-xen/asm/vga.h | 20
include/asm-x86_64/mach-xen/asm/xor.h | 328 ++
include/asm-x86_64/mach-xen/irq_vectors.h | 123
include/asm-x86_64/mach-xen/mach_time.h | 111
include/asm-x86_64/mach-xen/mach_timer.h | 48
include/asm-x86_64/mach-xen/setup_arch_post.h | 58
include/asm-x86_64/mach-xen/setup_arch_pre.h | 5
include/linux/elfnote.h | 90
include/linux/gfp.h | 6
include/linux/highmem.h | 6
include/linux/interrupt.h | 6
include/linux/mm.h | 10
include/linux/oprofile.h | 11
include/linux/skbuff.h | 15
include/xen/balloon.h | 67
include/xen/cpu_hotplug.h | 43
include/xen/driver_util.h | 15
include/xen/evtchn.h | 113
include/xen/features.h | 20
include/xen/foreign_page.h | 30
include/xen/gnttab.h | 150 +
include/xen/hvm.h | 24
include/xen/hypervisor_sysfs.h | 32
include/xen/interface/acm.h | 187 +
include/xen/interface/acm_ops.h | 102
include/xen/interface/arch-ia64.h | 448 +++
include/xen/interface/arch-powerpc.h | 115
include/xen/interface/arch-x86_32.h | 255 +
include/xen/interface/arch-x86_64.h | 322 ++
include/xen/interface/callback.h | 74
include/xen/interface/dom0_ops.h | 102
include/xen/interface/domctl.h | 392 ++
include/xen/interface/elfnote.h | 133
include/xen/interface/event_channel.h | 233 +
include/xen/interface/features.h | 53
include/xen/interface/grant_table.h | 362 ++
include/xen/interface/hvm/e820.h | 32
include/xen/interface/hvm/hvm_info_table.h | 22
include/xen/interface/hvm/ioreq.h | 99
include/xen/interface/hvm/params.h | 24
include/xen/interface/hvm/vmx_assist.h | 98
include/xen/interface/io/blkif.h | 87
include/xen/interface/io/console.h | 33
include/xen/interface/io/netif.h | 166 +
include/xen/interface/io/pciif.h | 55
include/xen/interface/io/ring.h | 273 +
include/xen/interface/io/tpmif.h | 59
include/xen/interface/io/xenbus.h | 45
include/xen/interface/io/xs_wire.h | 97
include/xen/interface/memory.h | 243 +
include/xen/interface/nmi.h | 60
include/xen/interface/physdev.h | 149 +
include/xen/interface/platform.h | 125
include/xen/interface/sched.h | 103
include/xen/interface/sysctl.h | 151 +
include/xen/interface/trace.h | 87
include/xen/interface/vcpu.h | 121
include/xen/interface/version.h | 73
include/xen/interface/xen-compat.h | 26
include/xen/interface/xen.h | 581 ++++
include/xen/interface/xencomm.h | 37
include/xen/interface/xenoprof.h | 110
include/xen/pcifront.h | 76
include/xen/public/evtchn.h | 91
include/xen/public/privcmd.h | 79
include/xen/xen_proc.h | 12
include/xen/xenbus.h | 306 ++
include/xen/xencons.h | 17
kernel/Kconfig.preempt | 1
kernel/fork.c | 3
kernel/irq/manage.c | 1
lib/Kconfig.debug | 2
lib/Makefile | 3
mm/Kconfig | 3
mm/highmem.c | 11
mm/memory.c | 118
mm/mmap.c | 4
mm/page_alloc.c | 6
net/core/dev.c | 63
net/core/skbuff.c | 27
net/ipv4/netfilter/ip_nat_proto_tcp.c | 7
net/ipv4/netfilter/ip_nat_proto_udp.c | 7
net/ipv4/xfrm4_output.c | 6
net/ipv6/addrconf.c | 2
scripts/Makefile.xen | 14
423 files changed, 88433 insertions(+), 220 deletions(-)
Index: linux-2.6-xen.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-xen.patch,v
retrieving revision 1.67
retrieving revision 1.67.2.1
diff -u -r1.67 -r1.67.2.1
--- linux-2.6-xen.patch 17 Sep 2006 21:28:08 -0000 1.67
+++ linux-2.6-xen.patch 20 Sep 2006 17:45:35 -0000 1.67.2.1
@@ -1,5 +1,5 @@
-- linux-2.6 changeset: 34228:ea3369ba1e2c
-- linux-2.6-xen-fedora changeset: 36107:47256dbb1583
+- linux-2.6 changeset: 34288:3fa5ab23fee7
+- linux-2.6-xen-fedora changeset: 36175:275f8c0b6342
- linux-2.6-xen changeset: 22905:d8ae02f7df05
- xen-unstable changeset: 11460:1ece34466781ec55f41fd29d53f6dafd208ba2fa
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/arch/i386/boot-xen/Makefile linux-2.6-xen-fedora/arch/i386/boot-xen/Makefile
@@ -2710,9 +2710,9 @@
+
+#include "../../x86_64/kernel/early_printk-xen.c"
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/arch/i386/kernel/entry.S linux-2.6-xen-fedora/arch/i386/kernel/entry.S
---- linux-2.6/arch/i386/kernel/entry.S 2006-08-28 13:44:28.000000000 +0200
-+++ linux-2.6-xen-fedora/arch/i386/kernel/entry.S 2006-08-30 00:03:17.000000000 +0200
-@@ -265,7 +265,7 @@ ENTRY(sysenter_entry)
+--- linux-2.6/arch/i386/kernel/entry.S 2006-09-19 14:26:26.000000000 +0200
++++ linux-2.6-xen-fedora/arch/i386/kernel/entry.S 2006-09-20 00:44:44.000000000 +0200
+@@ -269,7 +269,7 @@ ENTRY(sysenter_entry)
CFI_STARTPROC simple
CFI_DEF_CFA esp, 0
CFI_REGISTER esp, ebp
@@ -2721,7 +2721,7 @@
sysenter_past_esp:
/*
* No need to follow this irqs on/off section: the syscall
-@@ -685,7 +685,7 @@ device_not_available_emulate:
+@@ -689,7 +689,7 @@ device_not_available_emulate:
* that sets up the real kernel stack. Check here, since we can't
* allow the wrong stack to be used.
*
@@ -2730,7 +2730,7 @@
* already pushed 3 words if it hits on the sysenter instruction:
* eflags, cs and eip.
*
-@@ -697,7 +697,7 @@ device_not_available_emulate:
+@@ -701,7 +701,7 @@ device_not_available_emulate:
cmpw $__KERNEL_CS,4(%esp); \
jne ok; \
label: \
@@ -2741,8 +2741,8 @@
pushl $sysenter_past_esp
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/arch/i386/kernel/entry-xen.S linux-2.6-xen-fedora/arch/i386/kernel/entry-xen.S
--- linux-2.6/arch/i386/kernel/entry-xen.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6-xen-fedora/arch/i386/kernel/entry-xen.S 2006-08-04 16:21:32.000000000 +0200
-@@ -0,0 +1,1209 @@
++++ linux-2.6-xen-fedora/arch/i386/kernel/entry-xen.S 2006-09-20 00:44:44.000000000 +0200
+@@ -0,0 +1,1213 @@
+/*
+ * linux/arch/i386/entry.S
+ *
@@ -2984,6 +2984,10 @@
+ GET_THREAD_INFO(%ebp)
+ popl %eax
+ CFI_ADJUST_CFA_OFFSET -4
++ pushl $0x0202 # Reset kernel eflags
++ CFI_ADJUST_CFA_OFFSET 4
++ popfl
++ CFI_ADJUST_CFA_OFFSET -4
+ jmp syscall_exit
+ CFI_ENDPROC
+
@@ -10447,8 +10451,8 @@
+#endif
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/arch/i386/kernel/setup-xen.c linux-2.6-xen-fedora/arch/i386/kernel/setup-xen.c
--- linux-2.6/arch/i386/kernel/setup-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6-xen-fedora/arch/i386/kernel/setup-xen.c 2006-09-01 16:16:24.000000000 +0200
-@@ -0,0 +1,1815 @@
++++ linux-2.6-xen-fedora/arch/i386/kernel/setup-xen.c 2006-09-20 00:44:44.000000000 +0200
+@@ -0,0 +1,1830 @@
+/*
+ * linux/arch/i386/kernel/setup.c
+ *
@@ -10514,6 +10518,7 @@
+#include <xen/interface/physdev.h>
+#include <xen/interface/memory.h>
+#include <xen/features.h>
++#include <xen/xencons.h>
+#include "setup_arch.h"
+#include <bios_ebda.h>
+
@@ -11456,6 +11461,38 @@
+ return 0;
+}
+
++ /*
++ * This function checks if the entire range <start,end> is mapped with type.
++ *
++ * Note: this function only works correct if the e820 table is sorted and
++ * not-overlapping, which is the case
++ */
++int __init
++e820_all_mapped(unsigned long s, unsigned long e, unsigned type)
++{
++ u64 start = s;
++ u64 end = e;
++ int i;
++ for (i = 0; i < e820.nr_map; i++) {
++ struct e820entry *ei = &e820.map[i];
++ if (type && ei->type != type)
++ continue;
++ /* is the region (part) in overlap with the current region ?*/
++ if (ei->addr >= end || ei->addr + ei->size <= start)
++ continue;
++ /* if the region is at the beginning of <start,end> we move
++ * start to the end of the region since it's ok until there
++ */
++ if (ei->addr <= start)
++ start = ei->addr + ei->size;
++ /* if start is now at or beyond end, we're done, full
++ * coverage */
++ if (start >= end)
++ return 1; /* we're done */
++ }
++ return 0;
++}
++
+/*
+ * Find the highest page frame number we have available
+ */
@@ -12019,33 +12056,15 @@
+ screen_info.orig_video_cols = 80;
+ screen_info.orig_video_ega_bx = 3;
+ screen_info.orig_video_points = 16;
++ screen_info.orig_y = screen_info.orig_video_lines - 1;
+ if (xen_start_info->console.dom0.info_size >=
+ sizeof(struct dom0_vga_console_info)) {
+ const struct dom0_vga_console_info *info =
+ (struct dom0_vga_console_info *)(
+ (char *)xen_start_info +
+ xen_start_info->console.dom0.info_off);
-+ screen_info.orig_video_mode = info->txt_mode;
-+ screen_info.orig_video_isVGA = info->video_type;
-+ screen_info.orig_video_lines = info->video_height;
-+ screen_info.orig_video_cols = info->video_width;
-+ screen_info.orig_video_points = info->txt_points;
-+ screen_info.lfb_width = info->video_width;
-+ screen_info.lfb_height = info->video_height;
-+ screen_info.lfb_depth = info->lfb_depth;
-+ screen_info.lfb_base = info->lfb_base;
-+ screen_info.lfb_size = info->lfb_size;
-+ screen_info.lfb_linelength = info->lfb_linelen;
-+ screen_info.red_size = info->red_size;
-+ screen_info.red_pos = info->red_pos;
-+ screen_info.green_size = info->green_size;
-+ screen_info.green_pos = info->green_pos;
-+ screen_info.blue_size = info->blue_size;
-+ screen_info.blue_pos = info->blue_pos;
-+ screen_info.rsvd_size = info->rsvd_size;
-+ screen_info.rsvd_pos = info->rsvd_pos;
++ dom0_init_screen_info(info);
+ }
-+ screen_info.orig_y = screen_info.orig_video_lines - 1;
+ xen_start_info->console.domU.mfn = 0;
+ xen_start_info->console.domU.evtchn = 0;
+ } else
@@ -16233,8 +16252,8 @@
+obj-y := setup.o irqflags.o
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/arch/i386/mach-xen/setup.c linux-2.6-xen-fedora/arch/i386/mach-xen/setup.c
--- linux-2.6/arch/i386/mach-xen/setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6-xen-fedora/arch/i386/mach-xen/setup.c 2006-08-13 01:28:21.000000000 +0200
-@@ -0,0 +1,153 @@
++++ linux-2.6-xen-fedora/arch/i386/mach-xen/setup.c 2006-09-19 14:16:07.000000000 +0200
+@@ -0,0 +1,154 @@
+/*
+ * Machine specific setup for generic
+ */
@@ -16247,6 +16266,7 @@
+#include <asm/arch_hooks.h>
+#include <asm/e820.h>
+#include <asm/setup.h>
++#include <asm/fixmap.h>
+
+#include <xen/interface/callback.h>
+#include <xen/interface/memory.h>
@@ -21753,8 +21773,17 @@
obj-$(CONFIG_SOFTWARE_SUSPEND) += swsusp.o
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/arch/ia64/dig/setup.c linux-2.6-xen-fedora/arch/ia64/dig/setup.c
--- linux-2.6/arch/ia64/dig/setup.c 2006-07-13 00:51:19.000000000 +0200
-+++ linux-2.6-xen-fedora/arch/ia64/dig/setup.c 2006-09-01 00:17:33.000000000 +0200
-@@ -67,4 +67,38 @@ dig_setup (char **cmdline_p)
++++ linux-2.6-xen-fedora/arch/ia64/dig/setup.c 2006-09-20 00:44:44.000000000 +0200
+@@ -24,6 +24,8 @@
+ #include <asm/machvec.h>
+ #include <asm/system.h>
+
++#include <xen/xencons.h>
++
+ void __init
+ dig_setup (char **cmdline_p)
+ {
+@@ -67,4 +69,19 @@ dig_setup (char **cmdline_p)
screen_info.orig_video_mode = 3; /* XXX fake */
screen_info.orig_video_isVGA = 1; /* XXX fake */
screen_info.orig_video_ega_bx = 3; /* XXX fake */
@@ -21768,27 +21797,8 @@
+ (struct dom0_vga_console_info *)(
+ (char *)xen_start_info +
+ xen_start_info->console.dom0.info_off);
-+ screen_info.orig_video_mode = info->txt_mode;
-+ screen_info.orig_video_isVGA = info->video_type;
-+ screen_info.orig_video_lines = info->video_height;
-+ screen_info.orig_video_cols = info->video_width;
-+ screen_info.orig_video_points = info->txt_points;
-+ screen_info.lfb_width = info->video_width;
-+ screen_info.lfb_height = info->video_height;
-+ screen_info.lfb_depth = info->lfb_depth;
-+ screen_info.lfb_base = info->lfb_base;
-+ screen_info.lfb_size = info->lfb_size;
-+ screen_info.lfb_linelength = info->lfb_linelen;
-+ screen_info.red_size = info->red_size;
-+ screen_info.red_pos = info->red_pos;
-+ screen_info.green_size = info->green_size;
-+ screen_info.green_pos = info->green_pos;
-+ screen_info.blue_size = info->blue_size;
-+ screen_info.blue_pos = info->blue_pos;
-+ screen_info.rsvd_size = info->rsvd_size;
-+ screen_info.rsvd_pos = info->rsvd_pos;
++ dom0_init_screen_info(info);
+ }
-+ screen_info.orig_y = screen_info.orig_video_lines - 1;
+ xen_start_info->console.domU.mfn = 0;
+ xen_start_info->console.domU.evtchn = 0;
+#endif
@@ -29452,8 +29462,8 @@
return 0;
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/arch/x86_64/kernel/e820-xen.c linux-2.6-xen-fedora/arch/x86_64/kernel/e820-xen.c
--- linux-2.6/arch/x86_64/kernel/e820-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6-xen-fedora/arch/x86_64/kernel/e820-xen.c 2006-09-01 16:16:25.000000000 +0200
-@@ -0,0 +1,728 @@
++++ linux-2.6-xen-fedora/arch/x86_64/kernel/e820-xen.c 2006-09-20 00:44:45.000000000 +0200
+@@ -0,0 +1,757 @@
+/*
+ * Handle the memory map.
+ * The functions here do the job until bootmem takes over.
@@ -29572,6 +29582,35 @@
+ return 0;
+}
+
++/*
++ * This function checks if the entire range <start,end> is mapped with type.
++ *
++ * Note: this function only works correct if the e820 table is sorted and
++ * not-overlapping, which is the case
++ */
++int __init e820_all_mapped(unsigned long start, unsigned long end, unsigned type)
++{
++ int i;
++ for (i = 0; i < e820.nr_map; i++) {
++ struct e820entry *ei = &e820.map[i];
++ if (type && ei->type != type)
++ continue;
++ /* is the region (part) in overlap with the current region ?*/
++ if (ei->addr >= end || ei->addr + ei->size <= start)
++ continue;
++
++ /* if the region is at the beginning of <start,end> we move
++ * start to the end of the region since it's ok until there
++ */
++ if (ei->addr <= start)
++ start = ei->addr + ei->size;
++ /* if start is now at or beyond end, we're done, full coverage */
++ if (start >= end)
++ return 1; /* we're done */
++ }
++ return 0;
++}
++
+/*
+ * Find a free area in a specific range.
+ */
@@ -37651,8 +37690,8 @@
+}
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/arch/x86_64/kernel/setup-xen.c linux-2.6-xen-fedora/arch/x86_64/kernel/setup-xen.c
--- linux-2.6/arch/x86_64/kernel/setup-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6-xen-fedora/arch/x86_64/kernel/setup-xen.c 2006-09-01 16:16:25.000000000 +0200
-@@ -0,0 +1,1655 @@
++++ linux-2.6-xen-fedora/arch/x86_64/kernel/setup-xen.c 2006-09-20 00:44:45.000000000 +0200
+@@ -0,0 +1,1638 @@
+/*
+ * linux/arch/x86-64/kernel/setup.c
+ *
@@ -37726,6 +37765,7 @@
+#include <asm/hypervisor.h>
+#include <xen/interface/nmi.h>
+#include <xen/features.h>
++#include <xen/xencons.h>
+#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
+#define PFN_PHYS(x) ((x) << PAGE_SHIFT)
+#include <asm/mach-xen/setup_arch_post.h>
@@ -38250,33 +38290,15 @@
+ screen_info.orig_video_cols = 80;
+ screen_info.orig_video_ega_bx = 3;
+ screen_info.orig_video_points = 16;
++ screen_info.orig_y = screen_info.orig_video_lines - 1;
+ if (xen_start_info->console.dom0.info_size >=
+ sizeof(struct dom0_vga_console_info)) {
+ const struct dom0_vga_console_info *info =
+ (struct dom0_vga_console_info *)(
+ (char *)xen_start_info +
+ xen_start_info->console.dom0.info_off);
-+ screen_info.orig_video_mode = info->txt_mode;
-+ screen_info.orig_video_isVGA = info->video_type;
-+ screen_info.orig_video_lines = info->video_height;
-+ screen_info.orig_video_cols = info->video_width;
-+ screen_info.orig_video_points = info->txt_points;
-+ screen_info.lfb_width = info->video_width;
-+ screen_info.lfb_height = info->video_height;
-+ screen_info.lfb_depth = info->lfb_depth;
-+ screen_info.lfb_base = info->lfb_base;
-+ screen_info.lfb_size = info->lfb_size;
-+ screen_info.lfb_linelength = info->lfb_linelen;
-+ screen_info.red_size = info->red_size;
-+ screen_info.red_pos = info->red_pos;
-+ screen_info.green_size = info->green_size;
-+ screen_info.green_pos = info->green_pos;
-+ screen_info.blue_size = info->blue_size;
-+ screen_info.blue_pos = info->blue_pos;
-+ screen_info.rsvd_size = info->rsvd_size;
-+ screen_info.rsvd_pos = info->rsvd_pos;
++ dom0_init_screen_info(info);
+ }
-+ screen_info.orig_y = screen_info.orig_video_lines - 1;
+ xen_start_info->console.domU.mfn = 0;
+ xen_start_info->console.domU.evtchn = 0;
+ } else
@@ -52003,8 +52025,8 @@
+};
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/drivers/xen/console/console.c linux-2.6-xen-fedora/drivers/xen/console/console.c
--- linux-2.6/drivers/xen/console/console.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6-xen-fedora/drivers/xen/console/console.c 2006-09-16 01:08:18.000000000 +0200
-@@ -0,0 +1,652 @@
++++ linux-2.6-xen-fedora/drivers/xen/console/console.c 2006-09-20 00:44:45.000000000 +0200
+@@ -0,0 +1,688 @@
+/******************************************************************************
+ * console.c
+ *
@@ -52056,6 +52078,7 @@
+#include <linux/console.h>
+#include <linux/bootmem.h>
+#include <linux/sysrq.h>
++#include <linux/screen_info.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/uaccess.h>
@@ -52273,6 +52296,41 @@
+}
+
+
++void dom0_init_screen_info(const struct dom0_vga_console_info *info)
++{
++ switch (info->video_type) {
++ case XEN_VGATYPE_TEXT_MODE_3:
++ screen_info.orig_video_mode = 3;
++ screen_info.orig_video_ega_bx = 3;
++ screen_info.orig_video_isVGA = 1;
++ screen_info.orig_video_lines = info->u.text_mode_3.rows;
++ screen_info.orig_video_cols = info->u.text_mode_3.columns;
++ screen_info.orig_x = info->u.text_mode_3.cursor_x;
++ screen_info.orig_y = info->u.text_mode_3.cursor_y;
++ screen_info.orig_video_points =
++ info->u.text_mode_3.font_height;
++ break;
++ case XEN_VGATYPE_VESA_LFB:
++ screen_info.orig_video_isVGA = VIDEO_TYPE_VLFB;
++ screen_info.lfb_width = info->u.vesa_lfb.width;
++ screen_info.lfb_height = info->u.vesa_lfb.height;
++ screen_info.lfb_depth = info->u.vesa_lfb.bits_per_pixel;
++ screen_info.lfb_base = info->u.vesa_lfb.lfb_base;
++ screen_info.lfb_size = info->u.vesa_lfb.lfb_size;
++ screen_info.lfb_linelength = info->u.vesa_lfb.bytes_per_line;
++ screen_info.red_size = info->u.vesa_lfb.red_size;
++ screen_info.red_pos = info->u.vesa_lfb.red_pos;
++ screen_info.green_size = info->u.vesa_lfb.green_size;
++ screen_info.green_pos = info->u.vesa_lfb.green_pos;
++ screen_info.blue_size = info->u.vesa_lfb.blue_size;
++ screen_info.blue_pos = info->u.vesa_lfb.blue_pos;
++ screen_info.rsvd_size = info->u.vesa_lfb.rsvd_size;
++ screen_info.rsvd_pos = info->u.vesa_lfb.rsvd_pos;
++ break;
++ }
++}
++
++
+/******************** User-space console driver (/dev/console) ************/
+
+#define DRV(_d) (_d)
@@ -75775,8 +75833,8 @@
+#endif /* __XEN_SYNCH_BITOPS_H__ */
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/include/asm-i386/mach-xen/asm/system.h linux-2.6-xen-fedora/include/asm-i386/mach-xen/asm/system.h
--- linux-2.6/include/asm-i386/mach-xen/asm/system.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6-xen-fedora/include/asm-i386/mach-xen/asm/system.h 2006-08-30 17:53:05.000000000 +0200
-@@ -0,0 +1,489 @@
++++ linux-2.6-xen-fedora/include/asm-i386/mach-xen/asm/system.h 2006-09-20 00:44:45.000000000 +0200
+@@ -0,0 +1,491 @@
+#ifndef __ASM_SYSTEM_H
+#define __ASM_SYSTEM_H
+
@@ -75800,7 +75858,8 @@
+
+#define switch_to(prev,next,last) do { \
+ unsigned long esi,edi; \
-+ asm volatile("pushl %%ebp\n\t" \
++ asm volatile("pushfl\n\t" /* Save flags */ \
++ "pushl %%ebp\n\t" \
+ "movl %%esp,%0\n\t" /* save ESP */ \
+ "movl %5,%%esp\n\t" /* restore ESP */ \
+ "movl $1f,%1\n\t" /* save EIP */ \
@@ -75808,6 +75867,7 @@
+ "jmp __switch_to\n" \
+ "1:\t" \
+ "popl %%ebp\n\t" \
++ "popfl" \
+ :"=m" (prev->thread.esp),"=m" (prev->thread.eip), \
+ "=a" (last),"=S" (esi),"=D" (edi) \
+ :"m" (next->thread.esp),"m" (next->thread.eip), \
@@ -78697,6 +78757,24 @@
#endif /* CONFIG_X86_LOCAL_APIC */
+diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/include/asm-x86_64/ipi.h linux-2.6-xen-fedora/include/asm-x86_64/ipi.h
+--- linux-2.6/include/asm-x86_64/ipi.h 2006-07-13 00:51:39.000000000 +0200
++++ linux-2.6-xen-fedora/include/asm-x86_64/ipi.h 2006-09-19 14:16:07.000000000 +0200
+@@ -49,6 +49,7 @@ static inline int __prepare_ICR2 (unsign
+ return SET_APIC_DEST_FIELD(mask);
+ }
+
++#ifndef CONFIG_XEN_UNPRIVILEGED_GUEST
+ static inline void __send_IPI_shortcut(unsigned int shortcut, int vector, unsigned int dest)
+ {
+ /*
+@@ -113,5 +114,6 @@ static inline void send_IPI_mask_sequenc
+ }
+ local_irq_restore(flags);
+ }
++#endif /* CONFIG_XEN_UNPRIVILEGED_GUEST */
+
+ #endif /* __ASM_IPI_H */
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/include/asm-x86_64/mach-xen/asm/arch_hooks.h linux-2.6-xen-fedora/include/asm-x86_64/mach-xen/asm/arch_hooks.h
--- linux-2.6/include/asm-x86_64/mach-xen/asm/arch_hooks.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6-xen-fedora/include/asm-x86_64/mach-xen/asm/arch_hooks.h 2006-07-26 16:46:35.000000000 +0200
@@ -90642,8 +90720,8 @@
+#endif /* __XEN_PUBLIC_XEN_COMPAT_H__ */
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/include/xen/interface/xen.h linux-2.6-xen-fedora/include/xen/interface/xen.h
--- linux-2.6/include/xen/interface/xen.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6-xen-fedora/include/xen/interface/xen.h 2006-09-01 00:17:34.000000000 +0200
-@@ -0,0 +1,569 @@
++++ linux-2.6-xen-fedora/include/xen/interface/xen.h 2006-09-20 00:44:45.000000000 +0200
+@@ -0,0 +1,581 @@
+/******************************************************************************
+ * xen.h
+ *
@@ -91163,25 +91241,37 @@
+#define SIF_INITDOMAIN (1<<1) /* Is this the initial control domain? */
+
+typedef struct dom0_vga_console_info {
-+ uint8_t video_type;
-+ uint8_t txt_points;
-+ uint16_t txt_mode;
-+ uint16_t txt_x;
-+ uint16_t txt_y;
-+ uint16_t video_width;
-+ uint16_t video_height;
-+ uint16_t lfb_linelen;
-+ uint16_t lfb_depth;
-+ unsigned long lfb_base;
-+ unsigned long lfb_size;
-+ uint8_t red_pos;
-+ uint8_t red_size;
-+ uint8_t green_pos;
-+ uint8_t green_size;
-+ uint8_t blue_pos;
-+ uint8_t blue_size;
-+ uint8_t rsvd_pos;
-+ uint8_t rsvd_size;
++ uint8_t video_type; /* DOM0_VGA_CONSOLE_??? */
++#define XEN_VGATYPE_TEXT_MODE_3 0x03
++#define XEN_VGATYPE_VESA_LFB 0x23
++
++ union {
++ struct {
++ /* Font height, in pixels. */
++ uint16_t font_height;
++ /* Cursor location (column, row). */
++ uint16_t cursor_x, cursor_y;
++ /* Number of rows and columns (dimensions in characters). */
++ uint16_t rows, columns;
++ } text_mode_3;
++
++ struct {
++ /* Width and height, in pixels. */
++ uint16_t width, height;
++ /* Bytes per scan line. */
++ uint16_t bytes_per_line;
++ /* Bits per pixel. */
++ uint16_t bits_per_pixel;
++ /* LFB physical address, and size (in units of 64kB). */
++ uint32_t lfb_base;
++ uint32_t lfb_size;
++ /* RGB mask offsets and sizes, as defined by VBE 1.2+ */
++ uint8_t red_pos, red_size;
++ uint8_t green_pos, green_size;
++ uint8_t blue_pos, blue_size;
++ uint8_t rsvd_pos, rsvd_size;
++ } vesa_lfb;
++ } u;
+} dom0_vga_console_info_t;
+
+typedef uint8_t xen_domain_handle_t[16];
@@ -91897,11 +91987,14 @@
+#endif /* _XEN_XENBUS_H */
diff -urNp --exclude='.hg*' --exclude='*.orig' --exclude='*~' linux-2.6/include/xen/xencons.h linux-2.6-xen-fedora/include/xen/xencons.h
--- linux-2.6/include/xen/xencons.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6-xen-fedora/include/xen/xencons.h 2006-07-26 16:46:37.000000000 +0200
-@@ -0,0 +1,14 @@
++++ linux-2.6-xen-fedora/include/xen/xencons.h 2006-09-20 00:44:46.000000000 +0200
+@@ -0,0 +1,17 @@
+#ifndef __ASM_XENCONS_H__
+#define __ASM_XENCONS_H__
+
++struct dom0_vga_console_info;
++void dom0_init_screen_info(const struct dom0_vga_console_info *info);
++
+void xencons_force_flush(void);
+void xencons_resume(void);
+
Index: sources
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/sources,v
retrieving revision 1.491
retrieving revision 1.491.2.1
diff -u -r1.491 -r1.491.2.1
--- sources 18 Sep 2006 14:43:53 -0000 1.491
+++ sources 20 Sep 2006 17:45:35 -0000 1.491.2.1
@@ -1,4 +1,2 @@
-37ddefe96625502161f075b9d907f21e linux-2.6.17.tar.bz2
-f563d6f644447a5adcf3e3e02a119fb0 patch-2.6.18-rc7.bz2
-c24a3f548eb39e77b4af41c1a798642c patch-2.6.18-rc7-git2.bz2
df88f1f6fffb516d977a3e338ec5e02d xen-11470.tar.bz2
+296a6d150d260144639c3664d127d174 linux-2.6.18.tar.bz2
Index: upstream
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/upstream,v
retrieving revision 1.425
retrieving revision 1.425.2.1
diff -u -r1.425 -r1.425.2.1
--- upstream 17 Sep 2006 15:36:19 -0000 1.425
+++ upstream 20 Sep 2006 17:45:35 -0000 1.425.2.1
@@ -1,3 +1 @@
-linux-2.6.17.tar.bz2
-patch-2.6.18-rc7.bz2
-patch-2.6.18-rc7-git2.bz2
+linux-2.6.18.tar.bz2
- Previous message (by thread): rpms/kernel/devel/configs config-ia64-generic,1.46,1.46.8.1
- Next message (by thread): rpms/gcc/devel gcc41-pr29097.patch, NONE, 1.1 gcc41-strncat-chk.patch, NONE, 1.1 .cvsignore, 1.171, 1.172 gcc41.spec, 1.104, 1.105 sources, 1.173, 1.174 gcc41-pr28046.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list