rpms/kernel-xen/devel linux-2.6-audit-new-msg-types.patch, NONE, 1.1 linux-2.6-debunk-i2c.patch, NONE, 1.1 linux-2.6-net-fix-iptables.patch, NONE, 1.1 linux-2.6-net-slab-corruption.patch, NONE, 1.1 linux-2.6-net-wireless-features.patch, NONE, 1.1 linux-2.6-selinux-mprotect-checks.patch, NONE, 1.1 linux-2.6-snd-powermac.patch, NONE, 1.1 linux-2.6-suspend-memhotplug-oops.patch, NONE, 1.1 linux-2.6-x86_64-add-ppoll-pselect.patch, NONE, 1.1 linux-2.6-x86_64-generic-sigsuspend.patch, NONE, 1.1 linux-2.6-x86_64-tif-restore-sigmask.patch, NONE, 1.1 .cvsignore, 1.10, 1.11 kernel-xen.spec, 1.33, 1.34 linux-2.6-crashdump-common.patch, 1.4, 1.5 linux-2.6-xen-merge.patch, 1.6, 1.7 sources, 1.10, 1.11 linux-2.6-acpi-thinkpad-c2c3.patch, 1.3, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Jan 31 21:26:20 UTC 2006


Author: quintela

Update of /cvs/dist/rpms/kernel-xen/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv15600

Modified Files:
	.cvsignore kernel-xen.spec linux-2.6-crashdump-common.patch 
	linux-2.6-xen-merge.patch sources 
Added Files:
	linux-2.6-audit-new-msg-types.patch linux-2.6-debunk-i2c.patch 
	linux-2.6-net-fix-iptables.patch 
	linux-2.6-net-slab-corruption.patch 
	linux-2.6-net-wireless-features.patch 
	linux-2.6-selinux-mprotect-checks.patch 
	linux-2.6-snd-powermac.patch 
	linux-2.6-suspend-memhotplug-oops.patch 
	linux-2.6-x86_64-add-ppoll-pselect.patch 
	linux-2.6-x86_64-generic-sigsuspend.patch 
	linux-2.6-x86_64-tif-restore-sigmask.patch 
Removed Files:
	linux-2.6-acpi-thinkpad-c2c3.patch 
Log Message:
merged with rawhide 1.1884

linux-2.6-audit-new-msg-types.patch:
 include/linux/audit.h       |   19 +++++++++++++++----
 kernel/audit.c              |    2 ++
 security/selinux/nlmsgtab.c |    6 ++++--
 3 files changed, 21 insertions(+), 6 deletions(-)

--- NEW FILE linux-2.6-audit-new-msg-types.patch ---
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -33,11 +33,20 @@
  * 1200 - 1299 messages internal to the audit daemon
  * 1300 - 1399 audit event messages
  * 1400 - 1499 SE Linux use
- * 1500 - 1999 future use
- * 2000 is for otherwise unclassified kernel audit messages
+ * 1500 - 1599 kernel LSPP events
+ * 1600 - 1699 kernel crypto events
+ * 1700 - 1999 future kernel use (maybe integrity labels and related events)
+ * 2000 is for otherwise unclassified kernel audit messages (legacy)
+ * 2001 - 2099 unused (kernel)
+ * 2100 - 2199 user space anomaly records
+ * 2200 - 2299 user space actions taken in response to anomalies
+ * 2300 - 2399 user space generated LSPP events
+ * 2400 - 2499 user space crypto events
+ * 2500 - 2999 future user space (maybe integrity labels and related events)
  *
- * Messages from 1000-1199 are bi-directional. 1200-1299 are exclusively user
- * space. Anything over that is kernel --> user space communication.
+ * Messages from 1000-1199 are bi-directional. 1200-1299 & 2100 - 2999 are
+ * exclusively user space. 1300-2099 is kernel --> user space 
+ * communication.
  */
 #define AUDIT_GET		1000	/* Get status */
 #define AUDIT_SET		1001	/* Set status (enable/disable/auditd) */
@@ -54,6 +63,8 @@
 #define AUDIT_FIRST_USER_MSG	1100	/* Userspace messages mostly uninteresting to kernel */
 #define AUDIT_USER_AVC		1107	/* We filter this differently */
 #define AUDIT_LAST_USER_MSG	1199
+#define AUDIT_FIRST_USER_MSG2	2100	/* More user space messages */
+#define AUDIT_LAST_USER_MSG2	2999
  
 #define AUDIT_DAEMON_START      1200    /* Daemon startup record */
 #define AUDIT_DAEMON_END        1201    /* Daemon normal stop record */
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -367,6 +367,7 @@ static int audit_netlink_ok(kernel_cap_t
 		break;
 	case AUDIT_USER:
 	case AUDIT_FIRST_USER_MSG...AUDIT_LAST_USER_MSG:
+	case AUDIT_FIRST_USER_MSG2...AUDIT_LAST_USER_MSG2:
 		if (!cap_raised(eff_cap, CAP_AUDIT_WRITE))
 			err = -EPERM;
 		break;
@@ -447,6 +448,7 @@ static int audit_receive_msg(struct sk_b
 		break;
 	case AUDIT_USER:
 	case AUDIT_FIRST_USER_MSG...AUDIT_LAST_USER_MSG:
+	case AUDIT_FIRST_USER_MSG2...AUDIT_LAST_USER_MSG2:
 		if (!audit_enabled && msg_type != AUDIT_USER_AVC)
 			return 0;
 
--- a/security/selinux/nlmsgtab.c
+++ b/security/selinux/nlmsgtab.c
@@ -145,8 +145,10 @@ int selinux_nlmsg_lookup(u16 sclass, u16
 		break;
 
 	case SECCLASS_NETLINK_AUDIT_SOCKET:
-		if (nlmsg_type >= AUDIT_FIRST_USER_MSG &&
-		    nlmsg_type <= AUDIT_LAST_USER_MSG) {
+		if ((nlmsg_type >= AUDIT_FIRST_USER_MSG &&
+		     nlmsg_type <= AUDIT_LAST_USER_MSG) ||
+		    (nlmsg_type >= AUDIT_FIRST_USER_MSG2 &&
+                     nlmsg_type <= AUDIT_LAST_USER_MSG2)) {
 			*perm = NETLINK_AUDIT_SOCKET__NLMSG_RELAY;
 		} else {
 			err = nlmsg_perm(nlmsg_type, perm, nlmsg_audit_perms,

linux-2.6-debunk-i2c.patch:
 drivers/i2c/i2c-core.c |   15 +++++++++++++++
 include/linux/i2c.h    |    3 +++
 2 files changed, 18 insertions(+)

--- NEW FILE linux-2.6-debunk-i2c.patch ---
>From benh at kernel.crashing.org Sun Jan  8 20:19:08 2006
From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
To: Greg KH <greg at kroah.com>
Cc: Jean Delvare <khali at linux-fr.org>, Adrian Bunk <bunk at stusta.de>
Date: Mon, 09 Jan 2006 15:19:18 +1100
Message-Id: <1136780358.14374.2.camel at localhost.localdomain>
Subject: I2C: Resurrect i2c_smbus_write_i2c_block_data.

From: Jean Delvare <khali at linux-fr.org>

Signed-off-by: Jean Delvare <khali at linux-fr.org>

---
 drivers/i2c/i2c-core.c |   15 +++++++++++++++
 include/linux/i2c.h    |    3 +++
 2 files changed, 18 insertions(+)

--- gregkh-2.6.orig/drivers/i2c/i2c-core.c
+++ gregkh-2.6/drivers/i2c/i2c-core.c
@@ -946,6 +946,20 @@ s32 i2c_smbus_read_i2c_block_data(struct
 	}
 }
 
+s32 i2c_smbus_write_i2c_block_data(struct i2c_client *client, u8 command,
+				   u8 length, u8 *values)
+{
+	union i2c_smbus_data data;
+
+	if (length > I2C_SMBUS_BLOCK_MAX)
+		length = I2C_SMBUS_BLOCK_MAX;
+	data.block[0] = length;
+	memcpy(data.block + 1, values, length);
+	return i2c_smbus_xfer(client->adapter, client->addr, client->flags,
+			      I2C_SMBUS_WRITE, command,
+			      I2C_SMBUS_I2C_BLOCK_DATA, &data);
+}
+
 /* Simulate a SMBus command using the i2c protocol 
    No checking of parameters is done!  */
 static s32 i2c_smbus_xfer_emulated(struct i2c_adapter * adapter, u16 addr, 
@@ -1150,6 +1164,7 @@ EXPORT_SYMBOL(i2c_smbus_read_word_data);
 EXPORT_SYMBOL(i2c_smbus_write_word_data);
 EXPORT_SYMBOL(i2c_smbus_write_block_data);
 EXPORT_SYMBOL(i2c_smbus_read_i2c_block_data);
+EXPORT_SYMBOL(i2c_smbus_write_i2c_block_data);
 
 MODULE_AUTHOR("Simon G. Vogl <simon at tk.uni-linz.ac.at>");
 MODULE_DESCRIPTION("I2C-Bus main module");
--- gregkh-2.6.orig/include/linux/i2c.h
+++ gregkh-2.6/include/linux/i2c.h
@@ -100,6 +100,9 @@ extern s32 i2c_smbus_write_block_data(st
 /* Returns the number of read bytes */
 extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
 					 u8 command, u8 *values);
+extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
+					  u8 command, u8 length,
+					  u8 *values);
 
 /*
  * A driver is capable of handling one or more physical devices present on

linux-2.6-net-fix-iptables.patch:
 x_tables.h |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletion(-)

--- NEW FILE linux-2.6-net-fix-iptables.patch ---
[NETFILTER] x_tables: Fix XT_ALIGN() macro on [at least] ppc32

To keep backwards compatibility with old iptables userspace programs,
the new XT_ALIGN macro always has to return the same value as IPT_ALIGN,
IP6T_ALIGN or ARPT_ALIGN in previous kernels.

However, in those kernels the macro was defined in dependency to the
respective layer3 specifi data structures, which we can no longer do with
x_tables.

The fix is an ugly kludge, but it has been tested to solve the problem. Yet
another reason to move away from the current {ip,ip6,arp,eb}tables like
data structures.

Signed-off-by: Harald Welte <laforge at netfilter.org>

---
commit 470faeb379560fe877b685ca69be6a7e4f0e91ed
tree 5732ecd9bcab28469805752514e5c57ba26189a1
parent 44718bbfa186d58477163418d37df173aa2dd079
author Harald Welte <laforge at netfilter.org> Fri, 20 Jan 2006 01:44:24 +0100
committer Harald Welte <laforge at netfilter.org> Fri, 20 Jan 2006 01:44:24 +0100

 include/linux/netfilter/x_tables.h |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h
index 472f048..65f9cd8 100644
--- a/include/linux/netfilter/x_tables.h
+++ b/include/linux/netfilter/x_tables.h
@@ -19,8 +19,22 @@ struct xt_get_revision
 /* For standard target */
 #define XT_RETURN (-NF_REPEAT - 1)
 
-#define XT_ALIGN(s) (((s) + (__alignof__(u_int64_t)-1)) & ~(__alignof__(u_int64_t)-1))
 
+/* this is a dummy structure to find out the alignment requirement for a struct
+ * containing all the fundamental data types that are used in ipt_entry, ip6t_entry
+ * and arpt_entry.  This sucks, and it is a hack.  It will be my personal pleasure
+ * to remove it -HW */
+struct _xt_align
+{
+	u_int8_t u8;
+	u_int16_t u16;
+	u_int32_t u32;
+	u_int64_t u64;
+};
+
+#define XT_ALIGN(s) (((s) + (__alignof__(struct _xt_align)-1)) 	\
+			& ~(__alignof__(struct _xt_align)-1))
+ 
 /* Standard return verdict, or do jump. */
 #define XT_STANDARD_TARGET ""
 /* Error verdict. */

linux-2.6-net-slab-corruption.patch:
 skbuff.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

--- NEW FILE linux-2.6-net-slab-corruption.patch ---
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -135,13 +135,15 @@ void skb_under_panic(struct sk_buff *skb
 struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
 			    int fclone)
 {
+	kmem_cache_t *cache;
 	struct skb_shared_info *shinfo;
 	struct sk_buff *skb;
 	u8 *data;
 
+	cache = fclone ? skbuff_fclone_cache : skbuff_head_cache;
+
 	/* Get the HEAD */
-	skb = kmem_cache_alloc(fclone ? skbuff_fclone_cache : skbuff_head_cache,
-				gfp_mask & ~__GFP_DMA);
+	skb = kmem_cache_alloc(cache, gfp_mask & ~__GFP_DMA);
 	if (!skb)
 		goto out;
 
@@ -180,7 +182,7 @@ struct sk_buff *__alloc_skb(unsigned int
 out:
 	return skb;
 nodata:
-	kmem_cache_free(skbuff_head_cache, skb);
+	kmem_cache_free(cache, skb);
 	skb = NULL;
 	goto out;
 }

linux-2.6-net-wireless-features.patch:
 a/drivers/net/wireless/ipw2200.c |    5 
 drivers/net/wireless/airo.c      |  276 ++++++++++++++++++++++++++++++++++++++-
 2 files changed, 278 insertions(+), 3 deletions(-)

--- NEW FILE linux-2.6-net-wireless-features.patch ---

Subject: [2.6.15 patch] wireless/airo: add IWENCODEEXT and IWAUTH support
From: Dan Williams <dcbw at redhat.com>
To: breed at users.sourceforge.net
Cc: netdev at vger.kernel.org, "John W. Linville" <linville at tuxdriver.com>,
        jgarzik at pobox.com, networkmanager-list at gnome.org
Date: 	Mon, 30 Jan 2006 11:58:00 -0500
Message-Id: <1138640281.12551.5.camel at dhcp83-115.boston.redhat.com>

This patch adds IWENCODEEXT and IWAUTH support to the airo driver for
WEP and unencrypted operation.  No WPA though.  It allows the driver to
operate more willingly with wpa_supplicant and NetworkManager.

Signed-off-by: Dan Williams <dcbw at redhat.com>

--- a/drivers/net/wireless/airo.c	2006-01-30 10:14:23.000000000 -0500
+++ b/drivers/net/wireless/airo.c	2006-01-30 11:05:15.000000000 -0500
@@ -5802,11 +5802,13 @@ static int airo_set_wap(struct net_devic
 	Cmd cmd;
 	Resp rsp;
 	APListRid APList_rid;
-	static const unsigned char bcast[ETH_ALEN] = { 255, 255, 255, 255, 255, 255 };
+	static const u8 any[ETH_ALEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
+	static const u8 off[ETH_ALEN] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 
 	if (awrq->sa_family != ARPHRD_ETHER)
 		return -EINVAL;
-	else if (!memcmp(bcast, awrq->sa_data, ETH_ALEN)) {
+	else if (!memcmp(any, awrq->sa_data, ETH_ALEN) ||
+	         !memcmp(off, awrq->sa_data, ETH_ALEN)) {
 		memset(&cmd, 0, sizeof(cmd));
 		cmd.cmd=CMD_LOSE_SYNC;
 		if (down_interruptible(&local->sem))
@@ -6297,6 +6299,267 @@ static int airo_get_encode(struct net_de
 
 /*------------------------------------------------------------------*/
 /*
+ * Wireless Handler : set extended Encryption parameters
+ */
+static int airo_set_encodeext(struct net_device *dev,
+			   struct iw_request_info *info,
+			    union iwreq_data *wrqu,
+			    char *extra)
+{
+	struct airo_info *local = dev->priv;
+	struct iw_point *encoding = &wrqu->encoding;
+	struct iw_encode_ext *ext = (struct iw_encode_ext *)extra;
+	CapabilityRid cap_rid;		/* Card capability info */
+	int perm = ( encoding->flags & IW_ENCODE_TEMP ? 0 : 1 );
+	u16 currentAuthType = local->config.authType;
+	int idx, key_len, alg = ext->alg;	/* Check encryption mode */
+	wep_key_t key;
+
+	/* Is WEP supported ? */
+	readCapabilityRid(local, &cap_rid, 1);
+	/* Older firmware doesn't support this...
+	if(!(cap_rid.softCap & 2)) {
+		return -EOPNOTSUPP;
+	} */
+	readConfigRid(local, 1);
+
+	/* Determine and validate the key index */
+	idx = encoding->flags & IW_ENCODE_INDEX;
+	if (idx) {
+		if (idx < 1 || idx > ((cap_rid.softCap & 0x80) ? 4:1))
+			return -EINVAL;
+		idx--;
+	} else
+		idx = get_wep_key(local, 0xffff);
+
+	if (encoding->flags & IW_ENCODE_DISABLED)
+		alg = IW_ENCODE_ALG_NONE;
+
+	/* Just setting the transmit key? */
+	if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) {
+		set_wep_key(local, idx, NULL, 0, perm, 1);
+	} else {
+		/* Set the requested key first */
+		memset(key.key, 0, MAX_KEY_SIZE);
+		switch (alg) {
+		case IW_ENCODE_ALG_NONE:
+			key.len = 0;
+			break;
+		case IW_ENCODE_ALG_WEP:
+			if (ext->key_len > MIN_KEY_SIZE) {
+				key.len = MAX_KEY_SIZE;
+			} else if (ext->key_len > 0) {
+				key.len = MIN_KEY_SIZE;
+			} else {
+				return -EINVAL;
+			}
+			key_len = min (ext->key_len, key.len);
+			memcpy(key.key, ext->key, key_len);
+			break;
+		default:
+			return -EINVAL;
+		}
+		/* Send the key to the card */
+		set_wep_key(local, idx, key.key, key.len, perm, 1);
+	}
+
+	/* Read the flags */
+	if(encoding->flags & IW_ENCODE_DISABLED)
+		local->config.authType = AUTH_OPEN;	// disable encryption
+	if(encoding->flags & IW_ENCODE_RESTRICTED)
+		local->config.authType = AUTH_SHAREDKEY;	// Only Both
+	if(encoding->flags & IW_ENCODE_OPEN)
+		local->config.authType = AUTH_ENCRYPT;	// Only Wep
+	/* Commit the changes to flags if needed */
+	if (local->config.authType != currentAuthType)
+		set_bit (FLAG_COMMIT, &local->flags);
+
+	return -EINPROGRESS;
+}
+
+
+/*------------------------------------------------------------------*/
+/*
+ * Wireless Handler : get extended Encryption parameters
+ */
+static int airo_get_encodeext(struct net_device *dev,
+			    struct iw_request_info *info,
+			    union iwreq_data *wrqu,
+			    char *extra)
+{
+	struct airo_info *local = dev->priv;
+	struct iw_point *encoding = &wrqu->encoding;
+	struct iw_encode_ext *ext = (struct iw_encode_ext *)extra;
+	CapabilityRid cap_rid;		/* Card capability info */
+	int idx, max_key_len;
+
+	/* Is it supported ? */
+	readCapabilityRid(local, &cap_rid, 1);
+	if(!(cap_rid.softCap & 2)) {
+		return -EOPNOTSUPP;
+	}
+	readConfigRid(local, 1);
+
+	max_key_len = encoding->length - sizeof(*ext);
+	if (max_key_len < 0)
+		return -EINVAL;
+
+	idx = encoding->flags & IW_ENCODE_INDEX;
+	if (idx) {
+		if (idx < 1 || idx > ((cap_rid.softCap & 0x80) ? 4:1))
+			return -EINVAL;
+		idx--;
+	} else
+		idx = get_wep_key(local, 0xffff);
+
+	encoding->flags = idx + 1;
+	memset(ext, 0, sizeof(*ext));
+
+	/* Check encryption mode */
+	switch(local->config.authType) {
+		case AUTH_ENCRYPT:
+			encoding->flags = IW_ENCODE_ALG_WEP | IW_ENCODE_ENABLED;
+			break;
+		case AUTH_SHAREDKEY:
+			encoding->flags = IW_ENCODE_ALG_WEP | IW_ENCODE_ENABLED;
+			break;
+		default:
+		case AUTH_OPEN:
+			encoding->flags = IW_ENCODE_ALG_NONE | IW_ENCODE_DISABLED;
+			break;
+	}
+	/* We can't return the key, so set the proper flag and return zero */
+	encoding->flags |= IW_ENCODE_NOKEY;
+	memset(extra, 0, 16);
+	
+	/* Copy the key to the user buffer */
+	ext->key_len = get_wep_key(local, idx);
+	if (ext->key_len > 16) {
+		ext->key_len=0;
+	}
+
+	return 0;
+}
+
+
+/*------------------------------------------------------------------*/
+/*
+ * Wireless Handler : set extended authentication parameters
+ */
+static int airo_set_auth(struct net_device *dev,
+			       struct iw_request_info *info,
+			       union iwreq_data *wrqu, char *extra)
+{
+	struct airo_info *local = dev->priv;
+	struct iw_param *param = &wrqu->param;
+	u16 currentAuthType = local->config.authType;
+
+	switch (param->flags & IW_AUTH_INDEX) {
+	case IW_AUTH_WPA_VERSION:
+	case IW_AUTH_CIPHER_PAIRWISE:
+	case IW_AUTH_CIPHER_GROUP:
+	case IW_AUTH_KEY_MGMT:
+	case IW_AUTH_RX_UNENCRYPTED_EAPOL:
+	case IW_AUTH_PRIVACY_INVOKED:
+		/*
+		 * airo does not use these parameters
+		 */
+		break;
+
+	case IW_AUTH_DROP_UNENCRYPTED:
+		if (param->value) {
+			/* Only change auth type if unencrypted */
+			if (currentAuthType == AUTH_OPEN)
+				local->config.authType = AUTH_ENCRYPT;
+		} else {
+			local->config.authType = AUTH_OPEN;
+		}
+
+		/* Commit the changes to flags if needed */
+		if (local->config.authType != currentAuthType)
+			set_bit (FLAG_COMMIT, &local->flags);
+		break;
+
+	case IW_AUTH_80211_AUTH_ALG: {
+			/* FIXME: What about AUTH_OPEN?  This API seems to
+			 * disallow setting our auth to AUTH_OPEN.
+			 */
+			if (param->value & IW_AUTH_ALG_SHARED_KEY) {
+				local->config.authType = AUTH_SHAREDKEY;
+			} else if (param->value & IW_AUTH_ALG_OPEN_SYSTEM) {
+				local->config.authType = AUTH_ENCRYPT;
+			} else
+				return -EINVAL;
+			break;
+
+			/* Commit the changes to flags if needed */
+			if (local->config.authType != currentAuthType)
+				set_bit (FLAG_COMMIT, &local->flags);
+		}
+
+	case IW_AUTH_WPA_ENABLED:
+		/* Silently accept disable of WPA */
+		if (param->value > 0)
+			return -EOPNOTSUPP;
+		break;
+
+	default:
+		return -EOPNOTSUPP;
+	}
+	return -EINPROGRESS;
+}
+
+
+/*------------------------------------------------------------------*/
+/*
+ * Wireless Handler : get extended authentication parameters
+ */
+static int airo_get_auth(struct net_device *dev,
+			       struct iw_request_info *info,
+			       union iwreq_data *wrqu, char *extra)
+{
+	struct airo_info *local = dev->priv;
+	struct iw_param *param = &wrqu->param;
+	u16 currentAuthType = local->config.authType;
+
+	switch (param->flags & IW_AUTH_INDEX) {
+	case IW_AUTH_DROP_UNENCRYPTED:
+		switch (currentAuthType) {
+		case AUTH_SHAREDKEY:
+		case AUTH_ENCRYPT:
+			param->value = 1;
+			break;
+		default:
+			param->value = 0;
+			break;
+		}
+		break;
+
+	case IW_AUTH_80211_AUTH_ALG:
+		switch (currentAuthType) {
+		case AUTH_SHAREDKEY:
+			param->value = IW_AUTH_ALG_SHARED_KEY;
+			break;
+		case AUTH_ENCRYPT:
+		default:
+			param->value = IW_AUTH_ALG_OPEN_SYSTEM;
+			break;
+		}
+		break;
+
+	case IW_AUTH_WPA_ENABLED:
+		param->value = 0;
+		break;
+
+	default:
+		return -EOPNOTSUPP;
+	}
+	return 0;
+}
+
+
+/*------------------------------------------------------------------*/
+/*
  * Wireless Handler : set Tx-Power
  */
 static int airo_set_txpow(struct net_device *dev,
@@ -7051,6 +7314,15 @@ static const iw_handler		airo_handler[] 
 	(iw_handler) airo_get_encode,		/* SIOCGIWENCODE */
 	(iw_handler) airo_set_power,		/* SIOCSIWPOWER */
 	(iw_handler) airo_get_power,		/* SIOCGIWPOWER */
+	(iw_handler) NULL,			/* -- hole -- */
+	(iw_handler) NULL,			/* -- hole -- */
+	(iw_handler) NULL,			/* SIOCSIWGENIE */
+	(iw_handler) NULL,			/* SIOCGIWGENIE */
+	(iw_handler) airo_set_auth,		/* SIOCSIWAUTH */
+	(iw_handler) airo_get_auth,		/* SIOCGIWAUTH */
+	(iw_handler) airo_set_encodeext,	/* SIOCSIWENCODEEXT */
+	(iw_handler) airo_get_encodeext,	/* SIOCGIWENCODEEXT */
+	(iw_handler) NULL,			/* SIOCSIWPMKSA */
 };
 
 /* Note : don't describe AIROIDIFC and AIROOLDIDIFC in here.


Subject: [2.6.15 PATCH] wireless/ipw2200: support WE-18 WPA enc_capa
From: Dan Williams <dcbw at redhat.com>
To: netdev at vger.kernel.org
Cc: rml at novell.com, jgarzik at pobox.com,
        "John W. Linville" <linville at tuxdriver.com>
Date: 	Mon, 30 Jan 2006 13:58:56 -0500
Message-Id: <1138647537.5393.6.camel at dhcp83-115.boston.redhat.com>

This patch allows ipw2100 driver to advertise the WPA-related encryption
options that it does really support.  It's necessary to work correctly
with NetworkManager and other programs that actually check driver & card
capabilities.

Signed-off-by: Dan Williams <dcbw at redhat.com>

--- a/drivers/net/wireless/ipw2200.c	2006-01-30 13:52:58.000000000 -0500
+++ a/drivers/net/wireless/ipw2200.c	2006-01-30 13:54:04.000000000 -0500
@@ -8383,7 +8383,7 @@
 
 	/* Set the Wireless Extension versions */
 	range->we_version_compiled = WIRELESS_EXT;
-	range->we_version_source = 16;
+	range->we_version_source = 18;
 
 	i = 0;
 	if (priv->ieee->mode & (IEEE_B | IEEE_G)) {
@@ -8415,6 +8415,9 @@
 				IW_EVENT_CAPA_MASK(SIOCGIWAP));
 	range->event_capa[1] = IW_EVENT_CAPA_K_1;
 
+	range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2 |
+		IW_ENC_CAPA_CIPHER_TKIP | IW_ENC_CAPA_CIPHER_CCMP;
+
 	IPW_DEBUG_WX("GET Range\n");
 	return 0;
 }



linux-2.6-selinux-mprotect-checks.patch:
 devel-akpm/security/selinux/hooks.c |   50 +++++++++++++++---------------------
 linux-2.6/security/selinux/hooks.c  |    4 +-
 2 files changed, 23 insertions(+), 31 deletions(-)

--- NEW FILE linux-2.6-selinux-mprotect-checks.patch ---

From: Stephen Smalley <sds at tycho.nsa.gov>

Fix the SELinux mprotect checks on executable mappings so that they are not
re-applied when the mapping is already executable as well as cleaning up
the code.  This avoids a situation where e.g.  an application is prevented
from removing PROT_WRITE on an already executable mapping previously
authorized via execmem permission due to an execmod denial.

Signed-off-by: Stephen Smalley <sds at tycho.nsa.gov>
Acked-by: James Morris <jmorris at namei.org>
Signed-off-by: Andrew Morton <akpm at osdl.org>
---

 security/selinux/hooks.c |   50 +++++++++++++++----------------------
 1 files changed, 21 insertions(+), 29 deletions(-)

diff -puN security/selinux/hooks.c~selinux-fix-and-cleanup-mprotect-checks security/selinux/hooks.c
--- devel/security/selinux/hooks.c~selinux-fix-and-cleanup-mprotect-checks	2006-01-23 16:41:27.000000000 -0800
+++ devel-akpm/security/selinux/hooks.c	2006-01-23 16:41:27.000000000 -0800
@@ -2452,35 +2452,27 @@ static int selinux_file_mprotect(struct 
 		prot = reqprot;
 
 #ifndef CONFIG_PPC32
-	if ((prot & PROT_EXEC) && !(vma->vm_flags & VM_EXECUTABLE) &&
-	   (vma->vm_start >= vma->vm_mm->start_brk &&
-	    vma->vm_end <= vma->vm_mm->brk)) {
-	    	/*
-		 * We are making an executable mapping in the brk region.
-		 * This has an additional execheap check.
-		 */
-		rc = task_has_perm(current, current, PROCESS__EXECHEAP);
-		if (rc)
-			return rc;
-	}
-	if (vma->vm_file != NULL && vma->anon_vma != NULL && (prot & PROT_EXEC)) {
-		/*
-		 * We are making executable a file mapping that has
-		 * had some COW done. Since pages might have been written,
-		 * check ability to execute the possibly modified content.
-		 * This typically should only occur for text relocations.
-		 */
-		int rc = file_has_perm(current, vma->vm_file, FILE__EXECMOD);
-		if (rc)
-			return rc;
-	}
-	if (!vma->vm_file && (prot & PROT_EXEC) &&
-		vma->vm_start <= vma->vm_mm->start_stack &&
-		vma->vm_end >= vma->vm_mm->start_stack) {
-		/* Attempt to make the process stack executable.
-		 * This has an additional execstack check.
-		 */
-		rc = task_has_perm(current, current, PROCESS__EXECSTACK);
+	if ((prot & PROT_EXEC) && !(vma->vm_flags & VM_EXEC)) {
+		rc = 0;
+		if (vma->vm_start >= vma->vm_mm->start_brk &&
+		    vma->vm_end <= vma->vm_mm->brk) {
+			rc = task_has_perm(current, current,
+					   PROCESS__EXECHEAP);
+		} else if (!vma->vm_file &&
+			   vma->vm_start <= vma->vm_mm->start_stack &&
+			   vma->vm_end >= vma->vm_mm->start_stack) {
+			rc = task_has_perm(current, current, PROCESS__EXECSTACK);
+		} else if (vma->vm_file && vma->anon_vma) {
+			/*
+			 * We are making executable a file mapping that has
+			 * had some COW done. Since pages might have been
+			 * written, check ability to execute the possibly
+			 * modified content.  This typically should only
+			 * occur for text relocations.
+			 */
+			rc = file_has_perm(current, vma->vm_file,
+					   FILE__EXECMOD);
+		}
 		if (rc)
 			return rc;
 	}
_
Index: linux-2.6/security/selinux/hooks.c
===================================================================
RCS file: /nfshome/pal/CVS/linux-2.6/security/selinux/hooks.c,v
retrieving revision 1.178
diff -u -p -r1.178 hooks.c
--- linux-2.6/security/selinux/hooks.c	19 Jan 2006 21:04:27 -0000	1.178
+++ linux-2.6/security/selinux/hooks.c	26 Jan 2006 19:16:22 -0000
@@ -2366,7 +2366,7 @@ static int selinux_file_ioctl(struct fil
 
 static int file_map_prot_check(struct file *file, unsigned long prot, int shared)
 {
-#ifndef CONFIG_PPC32
+#if !defined(CONFIG_PPC32) && !defined(CONFIG_IA64)
 	if ((prot & PROT_EXEC) && (!file || (!shared && (prot & PROT_WRITE)))) {
 		/*
 		 * We are making executable an anonymous mapping or a
@@ -2424,7 +2424,7 @@ static int selinux_file_mprotect(struct 
 	if (selinux_checkreqprot)
 		prot = reqprot;
 
-#ifndef CONFIG_PPC32
+#if !defined(CONFIG_PPC32) && !defined(CONFIG_IA64)
 	if ((prot & PROT_EXEC) && !(vma->vm_flags & VM_EXEC)) {
 		rc = 0;
 		if (vma->vm_start >= vma->vm_mm->start_brk &&

linux-2.6-snd-powermac.patch:
 oss/dmasound/tas_common.h |   16 ++++++++--------
 ppc/pmac.c                |    3 ++-
 ppc/tumbler.c             |   19 ++++++++++---------
 3 files changed, 20 insertions(+), 18 deletions(-)

--- NEW FILE linux-2.6-snd-powermac.patch ---
Ok, here's another version that uses the proper wrapper in the i2c
layer, that was removed but is coming back...

Index: linux-work/sound/ppc/tumbler.c
===================================================================
--- linux-work.orig/sound/ppc/tumbler.c	2006-01-09 10:29:54.000000000 +1100
+++ linux-work/sound/ppc/tumbler.c	2006-01-09 10:30:14.000000000 +1100
@@ -239,8 +238,8 @@ static int tumbler_set_master_volume(pma
 	block[4] = (right_vol >> 8)  & 0xff;
 	block[5] = (right_vol >> 0)  & 0xff;
   
-	if (i2c_smbus_write_block_data(mix->i2c.client, TAS_REG_VOL,
-				       6, block) < 0) {
+	if (i2c_smbus_write_i2c_block_data(mix->i2c.client, TAS_REG_VOL, 6,
+					   block) < 0) {
 		snd_printk("failed to set volume \n");
 		return -EINVAL;
 	}
@@ -340,8 +339,8 @@ static int tumbler_set_drc(pmac_tumbler_
 		val[1] = 0;
 	}
 
-	if (i2c_smbus_write_block_data(mix->i2c.client, TAS_REG_DRC,
-				       2, val) < 0) {
+	if (i2c_smbus_write_i2c_block_data(mix->i2c.client, TAS_REG_DRC,
+					   2, val) < 0) {
 		snd_printk("failed to set DRC\n");
 		return -EINVAL;
 	}
@@ -376,8 +375,8 @@ static int snapper_set_drc(pmac_tumbler_
 	val[4] = 0x60;
 	val[5] = 0xa0;
 
-	if (i2c_smbus_write_block_data(mix->i2c.client, TAS_REG_DRC,
-				       6, val) < 0) {
+	if (i2c_smbus_write_i2c_block_data(mix->i2c.client, TAS_REG_DRC,
+					   6, val) < 0) {
 		snd_printk("failed to set DRC\n");
 		return -EINVAL;
 	}
@@ -481,8 +480,8 @@ static int tumbler_set_mono_volume(pmac_
 	vol = info->table[vol];
 	for (i = 0; i < info->bytes; i++)
 		block[i] = (vol >> ((info->bytes - i - 1) * 8)) & 0xff;
-	if (i2c_smbus_write_block_data(mix->i2c.client, info->reg,
-				       info->bytes, block) < 0) {
+	if (i2c_smbus_write_i2c_block_data(mix->i2c.client, info->reg,
+					   info->bytes, block) < 0) {
 		snd_printk("failed to set mono volume %d\n", info->index);
 		return -EINVAL;
 	}
@@ -611,7 +610,8 @@ static int snapper_set_mix_vol1(pmac_tum
 		for (j = 0; j < 3; j++)
 			block[i * 3 + j] = (vol >> ((2 - j) * 8)) & 0xff;
 	}
-	if (i2c_smbus_write_block_data(mix->i2c.client, reg, 9, block) < 0) {
+	if (i2c_smbus_write_i2c_block_data(mix->i2c.client, reg,
+					   9, block) < 0) {
 		snd_printk("failed to set mono volume %d\n", reg);
 		return -EINVAL;
 	}
Index: linux-work/sound/ppc/pmac.c
===================================================================
--- linux-work.orig/sound/ppc/pmac.c	2006-01-09 10:29:54.000000000 +1100
+++ linux-work/sound/ppc/pmac.c	2006-01-09 10:30:14.000000000 +1100
@@ -74,7 +74,7 @@ static int snd_pmac_dbdma_alloc(pmac_t *
 
 static void snd_pmac_dbdma_free(pmac_t *chip, pmac_dbdma_t *rec)
 {
-	if (rec) {
+	if (rec->space) {
 		unsigned int rsize = sizeof(struct dbdma_cmd) * (rec->size + 1);
 
 		dma_free_coherent(&chip->pdev->dev, rsize, rec->space, rec->dma_base);
@@ -895,6 +895,7 @@ static int __init snd_pmac_detect(pmac_t
 	chip->can_capture = 1;
 	chip->num_freqs = ARRAY_SIZE(awacs_freqs);
 	chip->freq_table = awacs_freqs;
+	chip->pdev = NULL;
 
 	chip->control_mask = MASK_IEPC | MASK_IEE | 0x11; /* default */
 
Index: linux-work/sound/oss/dmasound/tas_common.h
===================================================================
--- linux-work.orig/sound/oss/dmasound/tas_common.h	2006-01-09 10:29:54.000000000 +1100
+++ linux-work/sound/oss/dmasound/tas_common.h	2006-01-09 10:31:09.000000000 +1100
@@ -178,10 +178,10 @@ tas_write_register(	struct tas_data_t *s
 	if (write_mode & WRITE_SHADOW)
 		memcpy(self->shadow[reg_num],data,reg_width);
 	if (write_mode & WRITE_HW) {
-		rc=i2c_smbus_write_block_data(self->client,
-					      reg_num,
-					      reg_width,
-					      data);
+		rc=i2c_smbus_write_i2c_block_data(self->client,
+						  reg_num,
+						  reg_width,
+						  data);
 		if (rc < 0) {
 			printk("tas: I2C block write failed \n");  
 			return rc; 
@@ -199,10 +199,10 @@ tas_sync_register(	struct tas_data_t *se
 
 	if (reg_width==0 || self==NULL)
 		return -EINVAL;
-	rc=i2c_smbus_write_block_data(self->client,
-				      reg_num,
-				      reg_width,
-				      self->shadow[reg_num]);
+	rc=i2c_smbus_write_i2c_block_data(self->client,
+					  reg_num,
+					  reg_width,
+					  self->shadow[reg_num]);
 	if (rc < 0) {
 		printk("tas: I2C block write failed \n");
 		return rc;



linux-2.6-suspend-memhotplug-oops.patch:
 page_alloc.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE linux-2.6-suspend-memhotplug-oops.patch ---

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=178339

pageset_cpuup_callback() is marked __meminit, but software suspend
needs it.  Unfortunatly, if you don't have CONFIG_MEMORY_HOTPLUG set,
the __meminit translates to __init, resulting in this...

Freezing cpus ...
int3: 0000 [1] SMP
last sysfs file: /power/state
CPU 0
Modules linked in: radeon drm ipv6 ppdev autofs4 rfcomm l2cap sunrpc
ip_conntrack_netbios_ns ipt_REJECT xt_state ip_conntrack nfnetlink xt_tcpudp
iptable_filter ip_tables x_tables video battery ac lp parport_pc parport nvram
hci_usb bluetooth ehci_hcd ohci1394 ieee1394 uhci_hcd snd_hda_intel saa7134
snd_hda_codec video_buf snd_seq_dummy compat_ioctl32 v4l2_common v4l1_compat
snd_seq_oss snd_seq_midi_event ir_kbd_i2c snd_seq e100 snd_seq_device ir_common
snd_pcm_oss snd_mixer_oss mii videodev snd_pcm snd_timer snd i2c_i801 hw_random
soundcore i2c_core snd_page_alloc dm_snapshot dm_zero dm_mirror dm_mod ext3 jbd
ahci libata sd_mod scsi_mod
Pid: 3373, comm: pm-suspend Not tainted 2.6.15-1.1872_FC5 #1
RIP: 0010:[<ffffffff80558435>] <ffffffff80558435>{pageset_cpuup_callback+1}
RSP: 0018:ffff81002802fdb0  EFLAGS: 00000286
RAX: 0000000000000001 RBX: ffffffff803c8560 RCX: 0000000000000001
RDX: 0000000000000001 RSI: 0000000000000005 RDI: ffffffff803c8560
RBP: 0000000000000001 R08: ffffffff8053cae8 R09: 0000000000000004
R10: 0000000000000002 R11: 0000000000000004 R12: 0000000000000005
R13: 0000000000000003 R14: 0000000000000003 R15: ffff81002802ff50
FS:  00002aee15c8cd30(0000) GS:ffffffff8051a000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 00002aee19023000 CR3: 00000000292a1000 CR4: 00000000000006e0
Process pm-suspend (pid: 3373, threadinfo ffff81002802e000, task
+ffff810026b38040)
Stack: ffffffff80341296 0000000000000001 0000000000000001 0000000000000003
       ffffffff8014b803 ffff81002802fe38 ffffffff80146641 0000000000000296
       0000000000000296 0000000000000000
Call Trace: <ffffffff80341296>{notifier_call_chain+28}
       <ffffffff8014b803>{cpu_down+96} <ffffffff80146641>{remove_wait_queue+17}
       <ffffffff80255149>{vt_waitactive+150}
<ffffffff801535e3>{disable_nonboot_cpus+82}
       <ffffffff80150625>{enter_state+161} <ffffffff80150825>{state_store+113}
       <ffffffff801bf5c3>{sysfs_write_file+201}
+<ffffffff80180d38>{vfs_write+206}
       <ffffffff801812ea>{sys_write+69} <ffffffff8010a906>{system_call+126}

Code: cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc


Signed-off-by: Dave Jones <davej at redhat.com>

--- linux-2.6.15.noarch/mm/page_alloc.c~	2006-01-27 15:40:35.000000000 -0500
+++ linux-2.6.15.noarch/mm/page_alloc.c	2006-01-27 15:40:40.000000000 -0500
@@ -1939,7 +1939,7 @@ static inline void free_zone_pagesets(in
 	}
 }
 
-static int __meminit pageset_cpuup_callback(struct notifier_block *nfb,
+static int pageset_cpuup_callback(struct notifier_block *nfb,
 		unsigned long action,
 		void *hcpu)
 {

linux-2.6-x86_64-add-ppoll-pselect.patch:
 arch/x86_64/ia32/ia32entry.S     |    2 ++
 include/asm-x86_64/ia32_unistd.h |    4 +++-
 include/asm-x86_64/unistd.h      |    6 +++++-
 3 files changed, 10 insertions(+), 2 deletions(-)

--- NEW FILE linux-2.6-x86_64-add-ppoll-pselect.patch ---
Add ppoll/pselect syscalls

Signed-off-by: Andi Kleen <ak at suse.de>

Index: linux/include/asm-x86_64/unistd.h
===================================================================
--- linux.orig/include/asm-x86_64/unistd.h
+++ linux/include/asm-x86_64/unistd.h
@@ -599,8 +599,12 @@ __SYSCALL(__NR_readlinkat, sys_readlinka
 __SYSCALL(__NR_fchmodat, sys_fchmodat)
 #define __NR_faccessat		269
 __SYSCALL(__NR_faccessat, sys_faccessat)
+#define __NR_pselect6		270
+__SYSCALL(__NR_pselect6, sys_pselect6)
+#define __NR_ppoll		271
+__SYSCALL(__NR_ppoll, sys_ppoll)
 
-#define __NR_syscall_max __NR_faccessat
+#define __NR_syscall_max __NR_ppoll
 
 #ifndef __NO_STUBS
 
Index: linux/arch/x86_64/ia32/ia32entry.S
===================================================================
--- linux.orig/arch/x86_64/ia32/ia32entry.S
+++ linux/arch/x86_64/ia32/ia32entry.S
@@ -685,6 +685,8 @@ ia32_sys_call_table:
 	.quad sys_readlinkat		/* 305 */
 	.quad sys_fchmodat
 	.quad sys_faccessat
+	.quad compat_sys_pselect6
+	.quad compat_sys_ppoll
 ia32_syscall_end:		
 	.rept IA32_NR_syscalls-(ia32_syscall_end-ia32_sys_call_table)/8
 		.quad ni_syscall
Index: linux/include/asm-x86_64/ia32_unistd.h
===================================================================
--- linux.orig/include/asm-x86_64/ia32_unistd.h
+++ linux/include/asm-x86_64/ia32_unistd.h
@@ -313,7 +313,9 @@
 #define __NR_ia32_readlinkat		305
 #define __NR_ia32_fchmodat		306
 #define __NR_ia32_faccessat		307
+#define __NR_ia32_pselect6		308
+#define __NR_ia32_ppoll			309
 
-#define IA32_NR_syscalls 308	/* must be > than biggest syscall! */
+#define IA32_NR_syscalls 310	/* must be > than biggest syscall! */
 
 #endif /* _ASM_X86_64_IA32_UNISTD_H_ */

linux-2.6-x86_64-generic-sigsuspend.patch:
 arch/x86_64/kernel/signal.c |   32 --------------------------------
 include/asm-x86_64/unistd.h |    1 +
 2 files changed, 1 insertion(+), 32 deletions(-)

--- NEW FILE linux-2.6-x86_64-generic-sigsuspend.patch ---
Use generic rt_sigsuspend

Needed for next patch

Signed-off-by: Andi Kleen <ak at suse.de>

Index: linux/arch/x86_64/kernel/signal.c
===================================================================
--- linux.orig/arch/x86_64/kernel/signal.c
+++ linux/arch/x86_64/kernel/signal.c
@@ -40,44 +40,12 @@ int ia32_setup_frame(int sig, struct k_s
             sigset_t *set, struct pt_regs * regs); 
 
 asmlinkage long
-sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize, struct pt_regs *regs)
-{
-	sigset_t saveset, newset;
-
-	/* XXX: Don't preclude handling different sized sigset_t's.  */
-	if (sigsetsize != sizeof(sigset_t))
-		return -EINVAL;
-
-	if (copy_from_user(&newset, unewset, sizeof(newset)))
-		return -EFAULT;
-	sigdelsetmask(&newset, ~_BLOCKABLE);
-
-	spin_lock_irq(&current->sighand->siglock);
-	saveset = current->blocked;
-	current->blocked = newset;
-	recalc_sigpending();
-	spin_unlock_irq(&current->sighand->siglock);
-#ifdef DEBUG_SIG
-	printk("rt_sigsuspend savset(%lx) newset(%lx) regs(%p) rip(%lx)\n",
-		saveset, newset, regs, regs->rip);
-#endif 
-	regs->rax = -EINTR;
-	while (1) {
-		current->state = TASK_INTERRUPTIBLE;
-		schedule();
-		if (do_signal(regs, &saveset))
-			return -EINTR;
-	}
-}
-
-asmlinkage long
 sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
 		struct pt_regs *regs)
 {
 	return do_sigaltstack(uss, uoss, regs->rsp);
 }
 
-
 /*
  * Do a signal return; undo the signal stack.
  */
Index: linux/include/asm-x86_64/unistd.h
===================================================================
--- linux.orig/include/asm-x86_64/unistd.h
+++ linux/include/asm-x86_64/unistd.h
@@ -639,6 +639,7 @@ do { \
 #define __ARCH_WANT_SYS_RT_SIGACTION
 #define __ARCH_WANT_SYS_TIME
 #define __ARCH_WANT_COMPAT_SYS_TIME
+#define __ARCH_WANT_SYS_RT_SIGSUSPEND
 #endif
 
 #ifndef __KERNEL_SYSCALLS__

linux-2.6-x86_64-tif-restore-sigmask.patch:
 arch/x86_64/ia32/ia32_signal.c   |   28 ++++++++-------------
 arch/x86_64/kernel/signal.c      |   51 ++++++++++++++++++++++++++-------------
 include/asm-x86_64/signal.h      |    4 ---
 include/asm-x86_64/thread_info.h |    2 +
 4 files changed, 48 insertions(+), 37 deletions(-)

--- NEW FILE linux-2.6-x86_64-tif-restore-sigmask.patch ---
Implement TIF_RESTORE_SIGMASK

Needed for ppoll/pselect.

Closely follows the i386 patch from David Howells

Signed-off-by: Andi Kleen <ak at suse.de>

Index: linux/arch/x86_64/ia32/ia32_signal.c
===================================================================
--- linux.orig/arch/x86_64/ia32/ia32_signal.c
+++ linux/arch/x86_64/ia32/ia32_signal.c
@@ -115,25 +115,19 @@ int copy_siginfo_from_user32(siginfo_t *
 }
 
 asmlinkage long
-sys32_sigsuspend(int history0, int history1, old_sigset_t mask,
-		 struct pt_regs *regs)
+sys32_sigsuspend(int history0, int history1, old_sigset_t mask)
 {
-	sigset_t saveset;
-
 	mask &= _BLOCKABLE;
 	spin_lock_irq(&current->sighand->siglock);
-	saveset = current->blocked;
+	current->saved_sigmask = current->blocked;
 	siginitset(&current->blocked, mask);
 	recalc_sigpending();
 	spin_unlock_irq(&current->sighand->siglock);
 
-	regs->rax = -EINTR;
-	while (1) {
-		current->state = TASK_INTERRUPTIBLE;
-		schedule();
-		if (do_signal(regs, &saveset))
-			return -EINTR;
-	}
+	current->state = TASK_INTERRUPTIBLE;
+	schedule();
+	set_thread_flag(TIF_RESTORE_SIGMASK);
+	return -ERESTARTNOHAND;
 }
 
 asmlinkage long
@@ -510,11 +504,11 @@ int ia32_setup_frame(int sig, struct k_s
 		current->comm, current->pid, frame, regs->rip, frame->pretcode);
 #endif
 
-	return 1;
+	return 0;
 
 give_sigsegv:
 	force_sigsegv(sig, current);
-	return 0;
+	return -EFAULT;
 }
 
 int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
@@ -597,7 +591,7 @@ int ia32_setup_rt_frame(int sig, struct 
 	regs->ss = __USER32_DS; 
 
 	set_fs(USER_DS);
-    regs->eflags &= ~TF_MASK;
+	regs->eflags &= ~TF_MASK;
     if (test_thread_flag(TIF_SINGLESTEP))
         ptrace_notify(SIGTRAP);
 
@@ -606,9 +600,9 @@ int ia32_setup_rt_frame(int sig, struct 
 		current->comm, current->pid, frame, regs->rip, frame->pretcode);
 #endif
 
-	return 1;
+	return 0;
 
 give_sigsegv:
 	force_sigsegv(sig, current);
-	return 0;
+	return -EFAULT;
 }
Index: linux/arch/x86_64/kernel/signal.c
===================================================================
--- linux.orig/arch/x86_64/kernel/signal.c
+++ linux/arch/x86_64/kernel/signal.c
@@ -312,11 +312,11 @@ static int setup_rt_frame(int sig, struc
 		current->comm, current->pid, frame, regs->rip, frame->pretcode);
 #endif
 
-	return 1;
+	return 0;
 
 give_sigsegv:
 	force_sigsegv(sig, current);
-	return 0;
+	return -EFAULT;
 }
 
 /*
@@ -379,7 +379,7 @@ handle_signal(unsigned long sig, siginfo
 #endif
 	ret = setup_rt_frame(sig, ka, info, oldset, regs);
 
-	if (ret) {
+	if (ret == 0) {
 		spin_lock_irq(&current->sighand->siglock);
 		sigorsets(&current->blocked,&current->blocked,&ka->sa.sa_mask);
 		if (!(ka->sa.sa_flags & SA_NODEFER))
@@ -396,11 +396,12 @@ handle_signal(unsigned long sig, siginfo
  * want to handle. Thus you cannot kill init even with a SIGKILL even by
  * mistake.
  */
-int do_signal(struct pt_regs *regs, sigset_t *oldset)
+static void do_signal(struct pt_regs *regs)
 {
 	struct k_sigaction ka;
 	siginfo_t info;
 	int signr;
+	sigset_t *oldset;
 
 	/*
 	 * We want the common case to go fast, which
@@ -409,12 +410,14 @@ int do_signal(struct pt_regs *regs, sigs
 	 * if so.
 	 */
 	if (!user_mode(regs))
-		return 1;
+		return;
 
 	if (try_to_freeze())
 		goto no_signal;
 
-	if (!oldset)
+	if (!test_thread_flag(TIF_RESTORE_SIGMASK))
+		oldset = &current->saved_sigmask;
+	else
 		oldset = &current->blocked;
 
 	signr = get_signal_to_deliver(&info, &ka, regs, NULL);
@@ -428,7 +431,14 @@ int do_signal(struct pt_regs *regs, sigs
 			set_debugreg(current->thread.debugreg7, 7);
 
 		/* Whee!  Actually deliver the signal.  */
-		return handle_signal(signr, &info, &ka, oldset, regs);
+		if (handle_signal(signr, &info, &ka, oldset, regs) == 0) {
+			/* a signal was successfully delivered; the saved
+			 * sigmask will have been stored in the signal frame,
+			 * and will be restored by sigreturn, so we can simply
+			 * clear the TIF_RESTORE_SIGMASK flag */
+			clear_thread_flag(TIF_RESTORE_SIGMASK);
+		}
+		return;
 	}
 
  no_signal:
@@ -436,23 +446,32 @@ int do_signal(struct pt_regs *regs, sigs
 	if ((long)regs->orig_rax >= 0) {
 		/* Restart the system call - no handlers present */
 		long res = regs->rax;
-		if (res == -ERESTARTNOHAND ||
-		    res == -ERESTARTSYS ||
-		    res == -ERESTARTNOINTR) {
+		switch (res) {
+		case -ERESTARTNOHAND:
+		case -ERESTARTSYS:
+		case -ERESTARTNOINTR:
 			regs->rax = regs->orig_rax;
 			regs->rip -= 2;
-		}
-		if (regs->rax == (unsigned long)-ERESTART_RESTARTBLOCK) {
+			break;
+		case -ERESTART_RESTARTBLOCK:
 			regs->rax = test_thread_flag(TIF_IA32) ?
 					__NR_ia32_restart_syscall :
 					__NR_restart_syscall;
 			regs->rip -= 2;
+			break;
 		}
 	}
-	return 0;
+
+	/* if there's no signal to deliver, we just put the saved sigmask
+	   back. */
+	if (test_thread_flag(TIF_RESTORE_SIGMASK)) {
+		clear_thread_flag(TIF_RESTORE_SIGMASK);
+		sigprocmask(SIG_SETMASK, &current->saved_sigmask, NULL);
+	}
 }
 
-void do_notify_resume(struct pt_regs *regs, sigset_t *oldset, __u32 thread_info_flags)
+void
+do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)
 {
 #ifdef DEBUG_SIG
 	printk("do_notify_resume flags:%x rip:%lx rsp:%lx caller:%lx pending:%lx\n",
@@ -466,8 +485,8 @@ void do_notify_resume(struct pt_regs *re
 	}
 
 	/* deal with pending signal delivery */
-	if (thread_info_flags & _TIF_SIGPENDING)
-		do_signal(regs,oldset);
+	if (thread_info_flags & (_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK))
+		do_signal(regs);
 }
 
 void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
Index: linux/include/asm-x86_64/signal.h
===================================================================
--- linux.orig/include/asm-x86_64/signal.h
+++ linux/include/asm-x86_64/signal.h
@@ -24,10 +24,6 @@ typedef struct {
 } sigset_t;
 
 
-struct pt_regs; 
-asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset);
-
-
 #else
 /* Here we must cater to libcs that poke about in kernel headers.  */
 
Index: linux/include/asm-x86_64/thread_info.h
===================================================================
--- linux.orig/include/asm-x86_64/thread_info.h
+++ linux/include/asm-x86_64/thread_info.h
@@ -101,6 +101,7 @@ static inline struct thread_info *stack_
 #define TIF_IRET		5	/* force IRET */
 #define TIF_SYSCALL_AUDIT	7	/* syscall auditing active */
 #define TIF_SECCOMP		8	/* secure computing */
+#define TIF_RESTORE_SIGMASK	9	/* restore signal mask in do_signal */
 #define TIF_POLLING_NRFLAG	16	/* true if poll_idle() is polling TIF_NEED_RESCHED */
 #define TIF_IA32		17	/* 32bit process */ 
 #define TIF_FORK		18	/* ret_from_fork */
@@ -115,6 +116,7 @@ static inline struct thread_info *stack_
 #define _TIF_IRET		(1<<TIF_IRET)
 #define _TIF_SYSCALL_AUDIT	(1<<TIF_SYSCALL_AUDIT)
 #define _TIF_SECCOMP		(1<<TIF_SECCOMP)
+#define _TIF_RESTORE_SIGMASK	(1<<TIF_RESTORE_SIGMASK)
 #define _TIF_POLLING_NRFLAG	(1<<TIF_POLLING_NRFLAG)
 #define _TIF_IA32		(1<<TIF_IA32)
 #define _TIF_FORK		(1<<TIF_FORK)


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/.cvsignore,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- .cvsignore	28 Jan 2006 00:13:50 -0000	1.10
+++ .cvsignore	31 Jan 2006 21:26:16 -0000	1.11
@@ -6,3 +6,5 @@
 patch-2.6.16-rc1.bz2
 patch-2.6.16-rc1-git4.bz2
 xen-20060127a.tar.bz2
+
+acpi-release-20060113-2.6.16-rc1.diff.bz2


Index: kernel-xen.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/kernel-xen.spec,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- kernel-xen.spec	28 Jan 2006 00:13:50 -0000	1.33
+++ kernel-xen.spec	31 Jan 2006 21:26:16 -0000	1.34
@@ -48,8 +48,7 @@
 
 %ifarch i686
 %define buildxen %{includexen}
-# broken for now.
-%define buildkdump 0
+%define buildkdump 1
 %else
 %define buildxen 0
 %define buildkdump 0
@@ -219,6 +218,7 @@
 Patch1: patch-2.6.16-rc1.bz2
 Patch2: patch-2.6.16-rc1-git4.bz2
 Patch3: drm.patch
+Patch4: acpi-release-20060113-2.6.16-rc1.diff.bz2
 
 # Patches 100 through 500 are meant for architecture patches
 Patch100: linux-2.6-bzimage.patch
@@ -231,9 +231,14 @@
 Patch203: linux-2.6.14-intel-cache-build.patch
 Patch204: linux-2.6-x86_64-silence-up-apic-errors.patch
 Patch205: linux-2.6-edid-check.patch
+Patch206: linux-2.6-x86_64-tif-restore-sigmask.patch
+Patch207: linux-2.6-x86_64-generic-sigsuspend.patch
+Patch208: linux-2.6-x86_64-add-ppoll-pselect.patch
 
 # 300 - 399   ppc(64)
 Patch301: linux-2.6.15-cell-numa-init.patch
+Patch302: linux-2.6-debunk-i2c.patch
+Patch303: linux-2.6-snd-powermac.patch
 #Patch304: linux-2.6.15-mv643xx-fixes.patch
 Patch305: linux-2.6-cell-mambo-drivers.patch
 Patch306: linux-2.6-hvc-console.patch
@@ -327,6 +332,7 @@
 
 # NIC driver updates
 Patch1301: linux-2.6-net-sundance-ip100A.patch
+Patch1302: linux-2.6-net-wireless-features.patch
 
 # Squashfs
 Patch1400: linux-2.6-squashfs.patch
@@ -350,6 +356,7 @@
 Patch1700: linux-2.6-ide-tune-locking.patch
 Patch1710: linux-2.6-autofs-pathlookup.patch
 Patch1720: linux-2.6-selinux-hush.patch
+Patch1721: linux-2.6-selinux-mprotect-checks.patch
 Patch1730: linux-2.6-ide-cd-shutup.patch
 Patch1740: linux-2.6-block-reduce-stack.patch
 Patch1750: linux-2.6-ub.patch
@@ -359,9 +366,13 @@
 Patch1790: linux-2.6-softcursor-persistent-alloc.patch
 Patch1800: linux-2.6-pwc-powerup-by-default.patch
 Patch1810: linux-2.6-smsc-ircc2-pnp.patch
+Patch1820: linux-2.6-audit-new-msg-types.patch
 Patch1830: linux-2.6-w1-hush-debug.patch
 Patch1840: linux-2.6-x86-hp-reboot.patch
 Patch1850: linux-2.6-mv643xx-compile-fix.patch
+Patch1860: linux-2.6-net-fix-iptables.patch
+Patch1870: linux-2.6-net-slab-corruption.patch
+Patch1880: linux-2.6-suspend-memhotplug-oops.patch
 
 # Warn about usage of various obsolete functionality that may go away.
 Patch1900: linux-2.6-obsolete-idescsi-warning.patch
@@ -375,9 +386,6 @@
 Patch2001: linux-2.6-vm-silence-atomic-alloc-failures.patch
 Patch2002: linux-2.6-vm-clear-unreclaimable.patch
 
-# ACPI patches.
-Patch2100: linux-2.6-acpi-thinkpad-c2c3.patch
-
 # Broadcom wireless driver
 Patch5000: linux-2.6-softmac-git.patch
 Patch5001: linux-2.6-bcm43xx.patch
@@ -595,7 +603,10 @@
 # Update to latest upstream.
 %patch1 -p1
 %patch2 -p1
+# Backout broken DRM changes.
 %patch3 -p1 -R
+# Update ACPI
+%patch4 -p1
 
 #
 # Patches 10 through 100 are meant for core subsystem upgrades
@@ -629,12 +640,22 @@
 %patch204 -p1
 # Reboot thru bios on HP laptops.
 %patch205 -p1
+# Implement TIF_RESTORE_SIGMASK
+%patch206 -p1
+# Generic sys_rt_sigsuspend()
+%patch207 -p1
+# Add ppoll/pselect syscalls
+%patch208 -p1
 
 # 
 # ppc64
 #
 # Arnd says don't call cell_spumem_init() till he fixes it.
 %patch301 -p1
+# Revert I2C Bunkage.
+%patch302 -p1
+# Fix I2C handling in snd_powermac
+%patch303 -p1
 # Fix the MV643xx Gigabit Ethernet driver
 #%patch304 -p1
 # Support the IBM Mambo simulator; core as well as disk and network drivers.
@@ -778,6 +799,8 @@
 # NIC driver fixes.
 # New PCI ID for sundance driver.
 %patch1301 -p1
+# Goodies for wireless drivers to make NetworkManager work
+%patch1302 -p1
 
 # Squashfs
 %patch1400 -p1
@@ -815,6 +838,8 @@
 %patch1710 -p1
 # Silence some selinux messages.
 %patch1720 -p1
+# Fix the SELinux mprotect checks on executable mappings
+%patch1721 -p1
 # Silence noisy CD drive spew
 %patch1730 -p1
 # Reduce stack usage in block layer
@@ -833,12 +858,20 @@
 %patch1800 -p1
 # PNP support for smsc-ircc2
 %patch1810 -p1
+%patch1820 -p1
 # Silence debug messages in w1
 %patch1830 -p1
 # Reboot through BIOS on HP laptops.
 %patch1840 -p1
 # Fix compilation for MV643xx Ethernet
 %patch1850 -p1
+# Make iptables work again
+%patch1860 -p1
+# Fix netlayer slab corruption
+%patch1870 -p1
+# Fix software suspend on kernels without memory hotplug.
+%patch1880 -p1
+
 # Warn about obsolete functionality usage.
 %patch1900 -p1
 %patch1901 -p1
@@ -855,10 +888,6 @@
 # VM oom killer tweaks.
 %patch2002 -p1
 
-# ACPI patches.
-# Blacklist another 'No C2/C3 states' Thinkpad R40e BIOS.
-%patch2100 -p1
-
 #
 # Patches 5000 to 6000 are reserved for new drivers that are about to
 # be merged upstream
@@ -989,7 +1018,10 @@
       cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/%{image_install_path}/zImage.stub-$KernelVer || :
     fi
 %if "%{buildkdump}" == "1"
-	cp vmlinux $RPM_BUILD_ROOT/%{image_install_path}/vmlinux-$KernelVer
+    if [ `grep CONFIG_CRASH_DUMP=y .config` ]; then
+        cp vmlinux $RPM_BUILD_ROOT/%{image_install_path}/vmlinux-$KernelVer
+        rm -f $RPM_BUILD_ROOT/%{image_install_path}/vmlinuz-$KernelVer
+    fi
 %endif
 
     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
@@ -1018,7 +1050,7 @@
     rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
     cp arch/%{_arch}/kernel/asm-offsets.s $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/kernel || :
     cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
-	cp .kernelrelease $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+    cp .kernelrelease $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
     cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
     if [ -d arch/%{_arch}/scripts ]; then
       cp -a arch/%{_arch}/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || :
@@ -1346,7 +1378,7 @@
 
 %files kdump
 %defattr(-,root,root)
-/%{image_install_path}/vmlinuz-%{KVERREL}kdump
+/%{image_install_path}/vmlinux-%{KVERREL}kdump
 /boot/System.map-%{KVERREL}kdump
 /boot/config-%{KVERREL}kdump
 %dir /lib/modules/%{KVERREL}kdump
@@ -1373,6 +1405,17 @@
 %endif
 
 %changelog
+* Tue Jan 31 2006 Juan Quintela <quintela at redhat.com> - 2.6.%{sublevel}-%(R="$Revision$"; RR="${R##: }"; echo ${RR%%?})_FC5%{rhbsys}
+- Merge with rawhide 1884.
+
+* Mon Jan 30 2006 Dave Jones <davej at redhat.com>
+- Dan Williams' goodies for wireless drivers to make NetworkManager
+  work with WEP/WPA on ipw2200, and WEP on airo.
+
+* Fri Jan 27 2006 Dave Jones <davej at redhat.com>
+- New userspace audit message types.
+- Fix software suspend on kernels without memory hotplug. (#178339)
+
 * Fri Jan 27 2006  Stephen Tweedie <sct at redhat.com>
 - Rebase to linux-2.6-merge.hg cset 19859
 - Rebase to HV from xen-unstable.hg cset 8680
@@ -1381,9 +1424,23 @@
 * Thu Jan 26 2006 Juan Quintela <quintela at redhat.com>
 - "don't edit patches by hand" release.
 
+* Thu Jan 26 2006 Dave Jones <davej at redhat.com>
+- Fix building of kdump kernels.
+- Fix slab corruption in network layer.
+- Make iptables work again.
+- Update ACPI to latest acpi-git tree.
+- Fix the SELinux mprotect checks on executable mappings. (#178747)
+
 * Wed Jan 25 2006 Juan Quintela <quintela at redhat.com>
 - merge with rawhide kernel 1.1869.
 
+* Wed Jan 25 2006 Dave Jones <davej at redhat.com>
+- Disable page allocation debugging again.
+
+* Tue Jan 24 2006 David Woidhouse <dwmw2 at redhat.com>
+- Fix snd_powermac I2C handling
+- Add pselect/ppoll on x86_64
+
 * Sun Jan 22 2006 Dave Jones <davej at redhat.com>
 - Add missing .kernelrelease to kernel-devel (#178491)
 - Make serial /dev nodes get created for pci modems again.

linux-2.6-crashdump-common.patch:
 linux-2.6.12/Documentation/sysrq.txt         |    8 
 linux-2.6.12/arch/i386/kernel/nmi.c          |    1 
 linux-2.6.12/arch/i386/kernel/traps.c        |    3 
 linux-2.6.12/arch/i386/mm/init.c             |   47 +++++
 linux-2.6.12/arch/i386/mm/pgtable.c          |    3 
 linux-2.6.12/arch/ia64/kernel/process.c      |   30 ++-
 linux-2.6.12/arch/ia64/kernel/traps.c        |    6 
 linux-2.6.12/arch/ia64/mm/contig.c           |    3 
 linux-2.6.12/arch/ia64/mm/discontig.c        |    3 
 linux-2.6.12/arch/ia64/mm/init.c             |   90 +++++++++
 linux-2.6.12/arch/powerpc/kernel/process.c   |    1 
 linux-2.6.12/arch/powerpc/kernel/traps.c     |    3 
 linux-2.6.12/arch/powerpc/mm/mem.c           |   29 +++
 linux-2.6.12/arch/s390/kernel/traps.c        |    6 
 linux-2.6.12/arch/x86_64/kernel/process.c    |    2 
 linux-2.6.12/arch/x86_64/kernel/traps.c      |    6 
 linux-2.6.12/arch/x86_64/mm/init.c           |   32 +++
 linux-2.6.12/drivers/char/sysrq.c            |    2 
 linux-2.6.12/include/asm-generic/crashdump.h |   47 +++++
 linux-2.6.12/include/asm-i386/crashdump.h    |  123 +++++++++++++
 linux-2.6.12/include/asm-i386/kmap_types.h   |    4 
 linux-2.6.12/include/asm-ia64/crashdump.h    |   72 +++++++
 linux-2.6.12/include/asm-powerpc/crashdump.h |   61 ++++++
 linux-2.6.12/include/asm-x86_64/crashdump.h  |   86 +++++++++
 linux-2.6.12/include/linux/kernel.h          |   18 +
 linux-2.6.12/kernel/Makefile                 |    2 
 linux-2.6.12/kernel/dump.c                   |  246 +++++++++++++++++++++++++++
 linux-2.6.12/kernel/panic.c                  |    4 
 linux-2.6.12/kernel/printk.c                 |   20 ++
 linux-2.6.12/kernel/sched.c                  |    2 
 linux-2.6.13/arch/x86_64/mm/fault.c          |    1 
 linux-2.6.13/drivers/char/sysrq.c            |    5 
 32 files changed, 952 insertions(+), 14 deletions(-)

Index: linux-2.6-crashdump-common.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/linux-2.6-crashdump-common.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- linux-2.6-crashdump-common.patch	26 Jan 2006 22:14:33 -0000	1.4
+++ linux-2.6-crashdump-common.patch	31 Jan 2006 21:26:16 -0000	1.5
@@ -397,10 +397,10 @@
  /* Values used for system_state */
  extern enum system_states {
  	SYSTEM_BOOTING,
-@@ -182,6 +193,7 @@
- 	SYSTEM_HALT,
+@@ -197,6 +197,7 @@ extern enum system_states {
  	SYSTEM_POWER_OFF,
  	SYSTEM_RESTART,
+ 	SYSTEM_SUSPEND_DISK,
 +	SYSTEM_DUMPING,
  } system_state;
  

linux-2.6-xen-merge.patch:
 arch/i386/Kconfig                                  |   81 
 arch/i386/Makefile                                 |   18 
 arch/i386/kernel/Makefile                          |   26 
 arch/i386/kernel/acpi/Makefile                     |    4 
 arch/i386/kernel/cpu/Makefile                      |    5 
 arch/i386/kernel/cpu/cpufreq/Kconfig               |    2 
 arch/i386/kernel/cpu/mtrr/Makefile                 |    7 
 arch/i386/kernel/smpboot.c                         |   10 
 arch/i386/kernel/traps.c                           |    9 
 arch/i386/kernel/vmlinux.lds.S                     |    7 
 arch/i386/mm/Makefile                              |    8 
 arch/i386/pci/Makefile                             |    5 
 arch/i386/power/Makefile                           |    4 
 arch/um/kernel/physmem.c                           |    4 
 arch/x86_64/Kconfig                                |   43 
 arch/x86_64/Makefile                               |   15 
 arch/x86_64/ia32/Makefile                          |   18 
 arch/x86_64/ia32/vsyscall-sigreturn.S              |    2 
 arch/x86_64/kernel/Makefile                        |   20 
 arch/x86_64/kernel/i387.c                          |    5 
 arch/x86_64/kernel/pci-gart.c                      |    8 
 arch/x86_64/kernel/setup64.c                       |    2 
 arch/x86_64/mm/Makefile                            |   10 
 arch/x86_64/pci/Makefile                           |    8 
 b/arch/i386/boot-xen/Makefile                      |   21 
 b/arch/i386/kernel/acpi/boot-xen.c                 | 1157 ++++++++
 b/arch/i386/kernel/apic-xen.c                      |  143 +
 b/arch/i386/kernel/cpu/common-xen.c                |  659 +++++
 b/arch/i386/kernel/cpu/mtrr/main-xen.c             |  187 +
 b/arch/i386/kernel/early_printk-xen.c              |    2 
 b/arch/i386/kernel/entry-xen.S                     |  853 ++++++
 b/arch/i386/kernel/fixup.c                         |   95 
 b/arch/i386/kernel/head-xen.S                      |  170 +
 b/arch/i386/kernel/init_task-xen.c                 |   49 
 b/arch/i386/kernel/io_apic-xen.c                   | 2725 +++++++++++++++++++++
 b/arch/i386/kernel/ioport-xen.c                    |  122 
 b/arch/i386/kernel/irq-xen.c                       |  306 ++
 b/arch/i386/kernel/ldt-xen.c                       |  262 ++
 b/arch/i386/kernel/microcode-xen.c                 |  164 +
 b/arch/i386/kernel/mpparse-xen.c                   | 1177 +++++++++
 b/arch/i386/kernel/pci-dma-xen.c                   |  326 ++
 b/arch/i386/kernel/process-xen.c                   |  821 ++++++
 b/arch/i386/kernel/quirks-xen.c                    |   48 
 b/arch/i386/kernel/setup-xen.c                     | 1876 ++++++++++++++
 b/arch/i386/kernel/smp-xen.c                       |  617 ++++
 b/arch/i386/kernel/smpalts.c                       |   85 
 b/arch/i386/kernel/swiotlb.c                       |  677 +++++
 b/arch/i386/kernel/time-xen.c                      | 1016 +++++++
 b/arch/i386/kernel/traps-xen.c                     | 1103 ++++++++
 b/arch/i386/kernel/vsyscall-note-xen.S             |   32 
 b/arch/i386/mach-xen/Makefile                      |    7 
 b/arch/i386/mach-xen/setup.c                       |   37 
 b/arch/i386/mm/fault-xen.c                         |  617 ++++
 b/arch/i386/mm/highmem-xen.c                       |  123 
 b/arch/i386/mm/hypervisor.c                        |  459 +++
 b/arch/i386/mm/init-xen.c                          |  848 ++++++
 b/arch/i386/mm/ioremap-xen.c                       |  493 +++
 b/arch/i386/mm/pgtable-xen.c                       |  597 ++++
 b/arch/i386/pci/irq-xen.c                          | 1197 +++++++++
 b/arch/x86_64/ia32/ia32entry-xen.S                 |  718 +++++
 b/arch/x86_64/ia32/syscall32-xen.c                 |  128 
 b/arch/x86_64/ia32/syscall32_syscall-xen.S         |   28 
 b/arch/x86_64/ia32/vsyscall-int80.S                |   58 
 b/arch/x86_64/kernel/apic-xen.c                    |  187 +
 b/arch/x86_64/kernel/e820-xen.c                    |  744 +++++
 b/arch/x86_64/kernel/early_printk-xen.c            |  306 ++
 b/arch/x86_64/kernel/entry-xen.S                   | 1160 ++++++++
 b/arch/x86_64/kernel/genapic-xen.c                 |  135 +
 b/arch/x86_64/kernel/genapic_xen.c                 |  162 +
 b/arch/x86_64/kernel/head-xen.S                    |  247 +
 b/arch/x86_64/kernel/head64-xen.c                  |  137 +
 b/arch/x86_64/kernel/io_apic-xen.c                 | 2191 ++++++++++++++++
 b/arch/x86_64/kernel/ioport-xen.c                  |   58 
 b/arch/x86_64/kernel/irq-xen.c                     |  157 +
 b/arch/x86_64/kernel/ldt-xen.c                     |  275 ++
 b/arch/x86_64/kernel/mpparse-xen.c                 | 1000 +++++++
 b/arch/x86_64/kernel/pci-nommu-xen.c               |   99 
 b/arch/x86_64/kernel/process-xen.c                 |  798 ++++++
 b/arch/x86_64/kernel/setup-xen.c                   | 1613 ++++++++++++
 b/arch/x86_64/kernel/setup64-xen.c                 |  353 ++
 b/arch/x86_64/kernel/smp-xen.c                     |  592 ++++
 b/arch/x86_64/kernel/traps-xen.c                   | 1010 +++++++
 b/arch/x86_64/kernel/vsyscall-xen.c                |  239 +
 b/arch/x86_64/kernel/x8664_ksyms-xen.c             |  181 +
 b/arch/x86_64/kernel/xen_entry.S                   |   41 
 b/arch/x86_64/mm/fault-xen.c                       |  601 ++++
 b/arch/x86_64/mm/init-xen.c                        | 1090 ++++++++
 b/arch/x86_64/mm/pageattr-xen.c                    |  375 ++
 b/drivers/char/tpm/tpm_xen.c                       |  525 ++++
 b/drivers/xen/Kconfig                              |  175 +
 b/drivers/xen/Makefile                             |   20 
 b/drivers/xen/balloon/Makefile                     |    2 
 b/drivers/xen/balloon/balloon.c                    |  563 ++++
 b/drivers/xen/blkback/Makefile                     |    2 
 b/drivers/xen/blkback/blkback.c                    |  590 ++++
 b/drivers/xen/blkback/common.h                     |  123 
 b/drivers/xen/blkback/interface.c                  |  164 +
 b/drivers/xen/blkback/vbd.c                        |  102 
 b/drivers/xen/blkback/xenbus.c                     |  421 +++
 b/drivers/xen/blkfront/Kconfig                     |    6 
 b/drivers/xen/blkfront/Makefile                    |    5 
 b/drivers/xen/blkfront/blkfront.c                  |  835 ++++++
 b/drivers/xen/blkfront/block.h                     |  162 +
 b/drivers/xen/blkfront/vbd.c                       |  323 ++
 b/drivers/xen/blktap/Makefile                      |    3 
 b/drivers/xen/blktap/blktap.c                      |  910 +++++++
 b/drivers/xen/blktap/common.h                      |  110 
 b/drivers/xen/blktap/interface.c                   |  146 +
 b/drivers/xen/blktap/xenbus.c                      |  234 +
 b/drivers/xen/char/Makefile                        |    2 
 b/drivers/xen/char/mem.c                           |  159 +
 b/drivers/xen/console/Makefile                     |    2 
 b/drivers/xen/console/console.c                    |  688 +++++
 b/drivers/xen/console/xencons_ring.c               |  125 
 b/drivers/xen/core/Makefile                        |    9 
 b/drivers/xen/core/evtchn.c                        |  820 ++++++
 b/drivers/xen/core/gnttab.c                        |  480 +++
 b/drivers/xen/core/reboot.c                        |  436 +++
 b/drivers/xen/core/skbuff.c                        |  143 +
 b/drivers/xen/core/smpboot.c                       |  439 +++
 b/drivers/xen/core/xen_proc.c                      |   29 
 b/drivers/xen/evtchn/Makefile                      |    2 
 b/drivers/xen/evtchn/evtchn.c                      |  459 +++
 b/drivers/xen/net_driver_util.c                    |   67 
 b/drivers/xen/netback/Makefile                     |    2 
 b/drivers/xen/netback/common.h                     |  110 
 b/drivers/xen/netback/interface.c                  |  320 ++
 b/drivers/xen/netback/loopback.c                   |  198 +
 b/drivers/xen/netback/netback.c                    |  829 ++++++
 b/drivers/xen/netback/xenbus.c                     |  327 ++
 b/drivers/xen/netfront/Kconfig                     |    6 
 b/drivers/xen/netfront/Makefile                    |    4 
 b/drivers/xen/netfront/netfront.c                  | 1487 +++++++++++
 b/drivers/xen/privcmd/Makefile                     |    2 
 b/drivers/xen/privcmd/privcmd.c                    |  274 ++
 b/drivers/xen/tpmback/Makefile                     |    4 
 b/drivers/xen/tpmback/common.h                     |   89 
 b/drivers/xen/tpmback/interface.c                  |  200 +
 b/drivers/xen/tpmback/tpmback.c                    | 1109 ++++++++
 b/drivers/xen/tpmback/xenbus.c                     |  328 ++
 b/drivers/xen/tpmfront/Makefile                    |    2 
 b/drivers/xen/tpmfront/tpmfront.c                  |  703 +++++
 b/drivers/xen/tpmfront/tpmfront.h                  |   43 
 b/drivers/xen/util.c                               |   75 
 b/drivers/xen/xenbus/Makefile                      |    8 
 b/drivers/xen/xenbus/xenbus_client.c               |  238 +
 b/drivers/xen/xenbus/xenbus_comms.c                |  203 +
 b/drivers/xen/xenbus/xenbus_comms.h                |   50 
 b/drivers/xen/xenbus/xenbus_dev.c                  |  238 +
 b/drivers/xen/xenbus/xenbus_probe.c                | 1015 +++++++
 b/drivers/xen/xenbus/xenbus_xs.c                   |  821 ++++++
 b/include/asm-i386/hypercall.h                     |  328 ++
 b/include/asm-i386/hypervisor.h                    |  180 +
 b/include/asm-i386/mach-default/mach_dma_map.h     |   85 
 b/include/asm-i386/mach-default/mach_fixmap.h      |   15 
 b/include/asm-i386/mach-default/mach_io.h          |   35 
 b/include/asm-i386/mach-default/mach_mmu.h         |   18 
 b/include/asm-i386/mach-default/mach_mode.h        |    7 
 b/include/asm-i386/mach-default/mach_page.h        |   28 
 b/include/asm-i386/mach-default/mach_pgtable.h     |   45 
 b/include/asm-i386/mach-default/mach_processor.h   |   53 
 b/include/asm-i386/mach-default/mach_seg.h         |   39 
 b/include/asm-i386/mach-default/mach_setup.h       |   50 
 b/include/asm-i386/mach-default/mach_system.h      |   87 
 b/include/asm-i386/mach-default/mach_tlbflush.h    |   59 
 b/include/asm-i386/mach-xen/irq_vectors.h          |  125 
 b/include/asm-i386/mach-xen/mach_dma_map.h         |   47 
 b/include/asm-i386/mach-xen/mach_fixmap.h          |   15 
 b/include/asm-i386/mach-xen/mach_io.h              |   50 
 b/include/asm-i386/mach-xen/mach_mmu.h             |   47 
 b/include/asm-i386/mach-xen/mach_mode.h            |    7 
 b/include/asm-i386/mach-xen/mach_page.h            |  154 +
 b/include/asm-i386/mach-xen/mach_pgtable.h         |  154 +
 b/include/asm-i386/mach-xen/mach_processor.h       |   59 
 b/include/asm-i386/mach-xen/mach_seg.h             |    9 
 b/include/asm-i386/mach-xen/mach_setup.h           |   11 
 b/include/asm-i386/mach-xen/mach_system.h          |  157 +
 b/include/asm-i386/mach-xen/mach_tlbflush.h        |   10 
 b/include/asm-i386/mach-xen/mach_traps.h           |   33 
 b/include/asm-i386/mach-xen/setup_arch_post.h      |   43 
 b/include/asm-i386/mach-xen/setup_arch_pre.h       |    5 
 b/include/asm-i386/smp_alt.h                       |   32 
 b/include/asm-i386/swiotlb.h                       |   59 
 b/include/asm-i386/synch_bitops.h                  |  143 +
 b/include/asm-x86_64/arch_hooks.h                  |   31 
 b/include/asm-x86_64/hypercall.h                   |  328 ++
 b/include/asm-x86_64/hypervisor.h                  |    2 
 b/include/asm-x86_64/mach-xen/asm/nmi.h            |   75 
 b/include/asm-x86_64/synch_bitops.h                |    1 
 b/include/xen/balloon.h                            |   70 
 b/include/xen/driver_util.h                        |   26 
 b/include/xen/evtchn.h                             |  123 
 b/include/xen/foreign_page.h                       |   40 
 b/include/xen/gnttab.h                             |   98 
 b/include/xen/interface/acm.h                      |  181 +
 b/include/xen/interface/acm_ops.h                  |   96 
 b/include/xen/interface/arch-ia64.h                |  279 ++
 b/include/xen/interface/arch-x86_32.h              |  158 +
 b/include/xen/interface/arch-x86_64.h              |  243 +
 b/include/xen/interface/dom0_ops.h                 |  482 +++
 b/include/xen/interface/event_channel.h            |  203 +
 b/include/xen/interface/grant_table.h              |  306 ++
 b/include/xen/interface/hvm/hvm_info_table.h       |   24 
 b/include/xen/interface/hvm/ioreq.h                |   90 
 b/include/xen/interface/hvm/vmx_assist.h           |   97 
 b/include/xen/interface/io/blkif.h                 |   85 
 b/include/xen/interface/io/console.h               |   33 
 b/include/xen/interface/io/netif.h                 |   76 
 b/include/xen/interface/io/ring.h                  |  270 ++
 b/include/xen/interface/io/tpmif.h                 |   56 
 b/include/xen/interface/io/vmx_vlapic.h            |   58 
 b/include/xen/interface/io/vmx_vpic.h              |   85 
 b/include/xen/interface/io/xenbus.h                |   44 
 b/include/xen/interface/io/xs_wire.h               |   97 
 b/include/xen/interface/memory.h                   |  101 
 b/include/xen/interface/nmi.h                      |   54 
 b/include/xen/interface/physdev.h                  |   70 
 b/include/xen/interface/sched.h                    |   60 
 b/include/xen/interface/sched_ctl.h                |   68 
 b/include/xen/interface/trace.h                    |   90 
 b/include/xen/interface/vcpu.h                     |   64 
 b/include/xen/interface/version.h                  |   52 
 b/include/xen/interface/xen.h                      |  449 +++
 b/include/xen/net_driver_util.h                    |   56 
 b/include/xen/public/evtchn.h                      |   98 
 b/include/xen/public/privcmd.h                     |   91 
 b/include/xen/public/xenstored.h                   |   89 
 b/include/xen/tpmfe.h                              |   33 
 b/include/xen/xen_proc.h                           |   23 
 b/include/xen/xenbus.h                             |  254 +
 b/include/xen/xencons.h                            |   14 
 b/scripts/Makefile.xen                             |   14 
 drivers/Kconfig                                    |   11 
 drivers/Makefile                                   |    1 
 drivers/acpi/Kconfig                               |    2 
 drivers/acpi/tables.c                              |    7 
 drivers/char/mem.c                                 |    6 
 drivers/char/tpm/Kconfig                           |   14 
 drivers/char/tpm/Makefile                          |    1 
 drivers/char/tpm/tpm.c                             |   47 
 drivers/char/tpm/tpm.h                             |   13 
 drivers/char/tpm/tpm_atmel.c                       |  110 
 drivers/char/tpm/tpm_nsc.c                         |  155 -
 drivers/char/tty_io.c                              |    7 
 drivers/firmware/Kconfig                           |    2 
 drivers/ide/legacy/hd.c                            |    2 
 drivers/pci/Kconfig                                |    1 
 drivers/serial/Kconfig                             |    1 
 drivers/video/fbmon.c                              |    2 
 fs/Kconfig                                         |    1 
 include/asm-i386/agp.h                             |   15 
 include/asm-i386/atomic.h                          |    7 
 include/asm-i386/bitops.h                          |   19 
 include/asm-i386/desc.h                            |   47 
 include/asm-i386/dma-mapping.h                     |  102 
 include/asm-i386/fixmap.h                          |   20 
 include/asm-i386/floppy.h                          |   43 
 include/asm-i386/futex.h                           |    4 
 include/asm-i386/highmem.h                         |    5 
 include/asm-i386/hw_irq.h                          |    4 
 include/asm-i386/io.h                              |   41 
 include/asm-i386/kmap_types.h                      |    3 
 include/asm-i386/mach-default/mach_traps.h         |   12 
 include/asm-i386/mmu.h                             |    6 
 include/asm-i386/mmu_context.h                     |   17 
 include/asm-i386/page.h                            |   14 
 include/asm-i386/pci.h                             |   31 
 include/asm-i386/pgalloc.h                         |   31 
 include/asm-i386/pgtable-2level.h                  |   12 
 include/asm-i386/pgtable-3level.h                  |   35 
 include/asm-i386/pgtable.h                         |   22 
 include/asm-i386/processor.h                       |   48 
 include/asm-i386/ptrace.h                          |    5 
 include/asm-i386/rwsem.h                           |   17 
 include/asm-i386/scatterlist.h                     |    9 
 include/asm-i386/segment.h                         |   41 
 include/asm-i386/setup.h                           |   45 
 include/asm-i386/smp.h                             |    5 
 include/asm-i386/spinlock.h                        |   43 
 include/asm-i386/system.h                          |  138 -
 include/asm-i386/tlbflush.h                        |   55 
 include/asm-i386/vga.h                             |    2 
 include/asm-um/page.h                              |    2 
 include/asm-x86_64/bootsetup.h                     |   10 
 include/asm-x86_64/desc.h                          |   36 
 include/asm-x86_64/dma-mapping.h                   |  102 
 include/asm-x86_64/fixmap.h                        |   21 
 include/asm-x86_64/floppy.h                        |   45 
 include/asm-x86_64/hw_irq.h                        |   14 
 include/asm-x86_64/i387.h                          |    7 
 include/asm-x86_64/io.h                            |   49 
 include/asm-x86_64/ipi.h                           |    8 
 include/asm-x86_64/irq.h                           |   39 
 include/asm-x86_64/mmu.h                           |   13 
 include/asm-x86_64/mmu_context.h                   |  102 
 include/asm-x86_64/page.h                          |  155 +
 include/asm-x86_64/pci.h                           |   26 
 include/asm-x86_64/pda.h                           |    5 
 include/asm-x86_64/pgalloc.h                       |  156 +
 include/asm-x86_64/pgtable.h                       |  253 +
 include/asm-x86_64/processor.h                     |   38 
 include/asm-x86_64/segment.h                       |    9 
 include/asm-x86_64/smp.h                           |   10 
 include/asm-x86_64/swiotlb.h                       |   18 
 include/asm-x86_64/system.h                        |  114 
 include/asm-x86_64/tlbflush.h                      |   14 
 include/asm-x86_64/vga.h                           |    2 
 include/asm-x86_64/xor.h                           |   23 
 include/linux/gfp.h                                |    6 
 include/linux/highmem.h                            |    6 
 include/linux/irq.h                                |    3 
 include/linux/mm.h                                 |   13 
 include/linux/skbuff.h                             |   13 
 init/Kconfig                                       |    2 
 kernel/Kconfig.preempt                             |    1 
 kernel/irq/manage.c                                |   92 
 lib/Kconfig.debug                                  |    2 
 lib/Makefile                                       |    2 
 linux-2.6.15.i686/arch/x86_64/kernel/acpi/Makefile |    1 
 mm/Kconfig                                         |    3 
 mm/highmem.c                                       |   11 
 mm/memory.c                                        |  118 
 mm/mmap.c                                          |    4 
 mm/page_alloc.c                                    |    6 
 net/core/dev.c                                     |   50 
 net/core/skbuff.c                                  |   43 
 326 files changed, 61776 insertions(+), 819 deletions(-)

Index: linux-2.6-xen-merge.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/linux-2.6-xen-merge.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- linux-2.6-xen-merge.patch	27 Jan 2006 22:30:20 -0000	1.6
+++ linux-2.6-xen-merge.patch	31 Jan 2006 21:26:16 -0000	1.7
@@ -839,14 +839,13 @@
 +obj-y := $(call cherrypickxen, $(obj-y))
 +extra-y := $(call cherrypickxen, $(extra-y))
 +endif
-diff -r df46ccb05adf -r 328a491adf0b arch/x86_64/kernel/acpi/Makefile
---- a/arch/x86_64/kernel/acpi/Makefile	Fri Jan 20 17:49:15 2006 +0800
-+++ b/arch/x86_64/kernel/acpi/Makefile	Fri Jan 27 20:45:25 2006 +0100
-@@ -1,3 +1,5 @@ obj-y			:= boot.o
- obj-y			:= boot.o
- boot-y			:= ../../../i386/kernel/acpi/boot.o
- obj-$(CONFIG_ACPI_SLEEP)	+= sleep.o wakeup.o
-+
+diff -uNp linux-2.6.15.i686/arch/x86_64/kernel/acpi/Makefile.orig linux-2.6.15.i686/arch/x86_64/kernel/acpi/Makefile
+--- linux-2.6.15.i686/arch/x86_64/kernel/acpi/Makefile.orig	2006-01-31 20:40:12.000000000 +0100
++++ linux-2.6.15.i686/arch/x86_64/kernel/acpi/Makefile	2006-01-31 20:42:30.000000000 +0100
+@@ -6,3 +6,4 @@ ifneq ($(CONFIG_ACPI_PROCESSOR),)
+ obj-y			+= processor.o
+ endif
+ 
 +boot-$(CONFIG_XEN)		:= ../../../i386/kernel/acpi/boot-xen.o
 diff -r df46ccb05adf -r 328a491adf0b arch/x86_64/kernel/i387.c
 --- a/arch/x86_64/kernel/i387.c	Fri Jan 20 17:49:15 2006 +0800
@@ -6600,12 +6599,7 @@
  struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
  			    int fclone)
  {
-@@ -180,10 +181,11 @@ out:
- out:
- 	return skb;
- nodata:
--	kmem_cache_free(skbuff_head_cache, skb);
-+	kmem_cache_free(fclone ? skbuff_fclone_cache : skbuff_head_cache, skb);
+@@ -184,6 +185,7 @@ nodata:
  	skb = NULL;
  	goto out;
  }


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/sources,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- sources	28 Jan 2006 00:13:50 -0000	1.10
+++ sources	31 Jan 2006 21:26:17 -0000	1.11
@@ -3,3 +3,6 @@
 fbc343e7737654226fd4b5b205378393  patch-2.6.16-rc1.bz2
 a247c21e1202f514283ba928d9382353  patch-2.6.16-rc1-git4.bz2
 07de3270c9a5c63915a209cd36def02e  xen-20060127a.tar.bz2
+
+
+3c236ca700ac76f28c2c4e25682541a4  acpi-release-20060113-2.6.16-rc1.diff.bz2


--- linux-2.6-acpi-thinkpad-c2c3.patch DELETED ---




More information about the fedora-cvs-commits mailing list