rpms/kernel/devel kernel.spec, 1.1294.2.15, 1.1294.2.16 xen.pvops.patch, 1.1.2.13, 1.1.2.14

Michael Young myoung at fedoraproject.org
Sun Mar 29 16:55:48 UTC 2009


Author: myoung

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv1952

Modified Files:
      Tag: private-myoung-dom0-branch
	kernel.spec xen.pvops.patch 
Log Message:
Revert a couple of pvops commit to get kernel to boot



Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294.2.15
retrieving revision 1.1294.2.16
diff -u -r1.1294.2.15 -r1.1294.2.16
--- kernel.spec	28 Mar 2009 15:18:50 -0000	1.1294.2.15
+++ kernel.spec	29 Mar 2009 16:55:07 -0000	1.1294.2.16
@@ -1838,8 +1838,10 @@
 # and build.
 
 %changelog
-* Sat Mar 28 2009 Michael Young <m.a.young at durham.ac.uk>
+* Sun Mar 29 2009 Michael Young <m.a.young at durham.ac.uk>
 - drop dropwatch patch due to compile problems
+- revert pvops patches bd4a7874716d1b1f69cacfef4adf9f94050ecd82 and
+    cfb667260eb7f6dd26ceb6d49da818978396757d to get the kernel to boot
 
 * Sat Mar 28 2009 Mauro Carvalho Chehab <mchehab at redhat.com>
 - linux-2.6-revert-dvb-net-kabi-change.patch: attempt to fix dvb net breakage

xen.pvops.patch:

Index: xen.pvops.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.patch,v
retrieving revision 1.1.2.13
retrieving revision 1.1.2.14
diff -u -r1.1.2.13 -r1.1.2.14
--- xen.pvops.patch	26 Mar 2009 00:02:13 -0000	1.1.2.13
+++ xen.pvops.patch	29 Mar 2009 16:55:07 -0000	1.1.2.14
@@ -98857,9 +98857,28 @@
  {
  	if (max_nr_grant_frames() < nr_grant_frames)
 diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
-index 56892a1..0489ea2 100644
+index 56892a1..5269bb4 100644
 --- a/drivers/xen/manage.c
 +++ b/drivers/xen/manage.c
+@@ -68,15 +68,15 @@ static int xen_suspend(void *data)
+ 	gnttab_resume();
+ 	xen_mm_unpin_all();
+ 
+-	sysdev_resume();
+-	device_power_up(PMSG_RESUME);
+-
+ 	if (!*cancelled) {
+ 		xen_irq_resume();
+ 		xen_console_resume();
+ 		xen_timer_resume();
+ 	}
+ 
++	sysdev_resume();
++	device_power_up(PMSG_RESUME);
++
+ 	return 0;
+ }
+ 
 @@ -104,11 +104,10 @@ static void do_suspend(void)
  		goto out;
  	}
@@ -112213,7 +112232,7 @@
  
  #endif /* _LINUX_SELINUX_NETLINK_H */
 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index 9dcf956..509cc7f 100644
+index 9dcf956..399925a 100644
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
 @@ -15,6 +15,7 @@
@@ -112224,26 +112243,7 @@
  #include <linux/compiler.h>
  #include <linux/time.h>
  #include <linux/cache.h>
-@@ -146,6 +147,7 @@ struct skb_shared_info {
- 	unsigned short	gso_segs;
- 	unsigned short  gso_type;
- 	__be32          ip6_frag_id;
-+	unsigned int	len; /* Subtract from this shinfo to find skb->head */
- #ifdef CONFIG_HAS_DMA
- 	unsigned int	num_dma_maps;
- #endif
-@@ -154,6 +156,10 @@ struct skb_shared_info {
- #ifdef CONFIG_HAS_DMA
- 	dma_addr_t	dma_maps[MAX_SKB_FRAGS + 1];
- #endif
-+	struct skb_shared_info *orig;
-+	/* This is responsible for kfree() of header and for putting
-+	   the fragment pages. */
-+	void		(*destructor)(struct skb_shared_info *);
- };
- 
- /* We divide dataref into two halves.  The higher 16 bits hold references
-@@ -295,16 +301,18 @@ struct sk_buff {
+@@ -295,16 +296,18 @@ struct sk_buff {
  		};
  	};
  	__u32			priority;
@@ -112272,7 +112272,7 @@
  	__be16			protocol;
  
  	void			(*destructor)(struct sk_buff *skb);
-@@ -324,13 +332,17 @@ struct sk_buff {
+@@ -324,13 +327,17 @@ struct sk_buff {
  	__u16			tc_verd;	/* traffic control verdict */
  #endif
  #endif
@@ -112293,18 +112293,6 @@
  	/* 0/13/14 bit hole */
  
  #ifdef CONFIG_NET_DMA
-@@ -1002,6 +1014,11 @@ extern void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page,
- #define SKB_FRAG_ASSERT(skb) 	BUG_ON(skb_shinfo(skb)->frag_list)
- #define SKB_LINEAR_ASSERT(skb)  BUG_ON(skb_is_nonlinear(skb))
- 
-+static inline unsigned char *skb_shinfo_to_head(struct skb_shared_info *shinfo)
-+{
-+	return (unsigned char *)shinfo - shinfo->len;
-+}
-+
- #ifdef NET_SKBUFF_DATA_USES_OFFSET
- static inline unsigned char *skb_tail_pointer(const struct sk_buff *skb)
- {
 diff --git a/include/linux/slab.h b/include/linux/slab.h
 index 24c5602..1b969fa 100644
 --- a/include/linux/slab.h
@@ -152156,7 +152144,7 @@
  	help
  	  If you say Y here, you will get experimental support for
 diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index c6a6b16..cb52e5f 100644
+index c6a6b16..e83e994 100644
 --- a/net/core/skbuff.c
 +++ b/net/core/skbuff.c
 @@ -39,6 +39,7 @@
@@ -152176,15 +152164,7 @@
  	/* make sure we initialize shinfo sequentially */
  	shinfo = skb_shinfo(skb);
  	atomic_set(&shinfo->dataref, 1);
-@@ -206,11 +209,16 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
- 	shinfo->gso_type = 0;
- 	shinfo->ip6_frag_id = 0;
- 	shinfo->frag_list = NULL;
-+	shinfo->destructor = NULL;
-+	shinfo->orig = NULL;
-+	shinfo->len = skb_end_pointer(skb) - skb->head;
- 
- 	if (fclone) {
+@@ -211,6 +214,8 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
  		struct sk_buff *child = skb + 1;
  		atomic_t *fclone_ref = (atomic_t *) (child + 1);
  
@@ -152193,7 +152173,7 @@
  		skb->fclone = SKB_FCLONE_ORIG;
  		atomic_set(fclone_ref, 1);
  
-@@ -240,7 +248,7 @@ nodata:
+@@ -240,7 +245,7 @@ nodata:
  struct sk_buff *__netdev_alloc_skb(struct net_device *dev,
  		unsigned int length, gfp_t gfp_mask)
  {
@@ -152202,73 +152182,7 @@
  	struct sk_buff *skb;
  
  	skb = __alloc_skb(length + NET_SKB_PAD, gfp_mask, 0, node);
-@@ -319,21 +327,54 @@ static void skb_clone_fraglist(struct sk_buff *skb)
- 		skb_get(list);
- }
- 
--static void skb_release_data(struct sk_buff *skb)
-+static void shinfo_put(struct skb_shared_info *shinfo, bool nohdr, bool clone)
- {
--	if (!skb->cloned ||
--	    !atomic_sub_return(skb->nohdr ? (1 << SKB_DATAREF_SHIFT) + 1 : 1,
--			       &skb_shinfo(skb)->dataref)) {
--		if (skb_shinfo(skb)->nr_frags) {
--			int i;
--			for (i = 0; i < skb_shinfo(skb)->nr_frags; i++)
--				put_page(skb_shinfo(skb)->frags[i].page);
-+	struct skb_shared_info *orig;
-+
-+	do {
-+		if (clone &&
-+		    atomic_sub_return(nohdr ? (1 << SKB_DATAREF_SHIFT) + 1 : 1,
-+				      &shinfo->dataref)) {
-+			return;
- 		}
- 
--		if (skb_shinfo(skb)->frag_list)
--			skb_drop_fraglist(skb);
-+		if (shinfo->destructor)
-+			shinfo->destructor(shinfo);
-+		else {
-+			kfree(skb_shinfo_to_head(shinfo));
-+
-+			if (shinfo->nr_frags) {
-+				int i;
-+				for (i = 0; i < shinfo->nr_frags; i++)
-+					put_page(shinfo->frags[i].page);
-+			}
-+		}
-+
-+		if (shinfo->frag_list)
-+			skb_drop_list(&shinfo->frag_list);
-+
-+		orig = shinfo->orig;
-+		/* We hold a payload reference to our parent. */
-+		nohdr = true;
-+		clone = true;
-+	} while ((shinfo = orig) != NULL);
-+}
-+
-+static void skb_release_data(struct sk_buff *skb)
-+{
-+	shinfo_put(skb_shinfo(skb), skb->nohdr, skb->cloned);
-+}
- 
--		kfree(skb->head);
-+/* Now hold reference to older data, if has a destructor (recursively). */
-+static void skb_ref_data_parent(struct sk_buff *parent,
-+				struct skb_shared_info *shinfo)
-+{
-+	struct skb_shared_info *pshinfo = skb_shinfo(parent);
-+
-+	if (pshinfo->destructor || pshinfo->orig) {
-+		shinfo->orig = pshinfo;
-+		atomic_add((1 << SKB_DATAREF_SHIFT) + 1, &pshinfo->dataref);
-+		parent->cloned = 1;
- 	}
- }
- 
-@@ -600,6 +641,9 @@ struct sk_buff *skb_clone(struct sk_buff *skb, gfp_t gfp_mask)
+@@ -600,6 +605,9 @@ struct sk_buff *skb_clone(struct sk_buff *skb, gfp_t gfp_mask)
  		n = kmem_cache_alloc(skbuff_head_cache, gfp_mask);
  		if (!n)
  			return NULL;
@@ -152278,50 +152192,6 @@
  		n->fclone = SKB_FCLONE_UNAVAILABLE;
  	}
  
-@@ -719,6 +763,7 @@ struct sk_buff *pskb_copy(struct sk_buff *skb, gfp_t gfp_mask)
- 			get_page(skb_shinfo(n)->frags[i].page);
- 		}
- 		skb_shinfo(n)->nr_frags = i;
-+		skb_ref_data_parent(skb, skb_shinfo(n));
- 	}
- 
- 	if (skb_shinfo(skb)->frag_list) {
-@@ -786,6 +831,8 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail,
- 	if (skb_shinfo(skb)->frag_list)
- 		skb_clone_fraglist(skb);
- 
-+	skb_ref_data_parent(skb, (void *)(data + size));
-+
- 	skb_release_data(skb);
- 
- 	off = (data + nhead) - skb->head;
-@@ -808,6 +855,8 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail,
- 	skb->hdr_len  = 0;
- 	skb->nohdr    = 0;
- 	atomic_set(&skb_shinfo(skb)->dataref, 1);
-+	skb_shinfo(skb)->len = skb_end_pointer(skb) - skb->head;
-+	skb_shinfo(skb)->destructor = NULL;
- 	return 0;
- 
- nodata:
-@@ -2005,6 +2054,8 @@ void skb_split(struct sk_buff *skb, struct sk_buff *skb1, const u32 len)
- 		skb_split_inside_header(skb, skb1, len, pos);
- 	else		/* Second chunk has no header, nothing to copy. */
- 		skb_split_no_header(skb, skb1, len, pos);
-+
-+	skb_ref_data_parent(skb, skb_shinfo(skb1));
- }
- 
- /* Shifting from/to a cloned skb is a no-go.
-@@ -2558,6 +2609,8 @@ skip_fraglist:
- 		nskb->data_len = len - hsize;
- 		nskb->len += nskb->data_len;
- 		nskb->truesize += nskb->data_len;
-+
-+		skb_ref_data_parent(skb, skb_shinfo(nskb));
- 	} while ((offset += len) < skb->len);
- 
- 	return segs;
 diff --git a/net/core/sock.c b/net/core/sock.c
 index 5f97caa..7f3561d 100644
 --- a/net/core/sock.c
@@ -152779,6 +152649,35 @@
  	/* sort by initial order, so that other symbols are left undisturbed */
  	return sa->start_pos - sb->start_pos;
  }
+diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
+index 273d738..1572f2e 100644
+--- a/scripts/kconfig/confdata.c
++++ b/scripts/kconfig/confdata.c
+@@ -889,16 +889,17 @@ void conf_set_all_new_symbols(enum conf_def_mode mode)
+ 
+ 		cnt = 0;
+ 		expr_list_for_each_sym(prop->expr, e, sym) {
+-			if (def == cnt++) {
+-				sym->def[S_DEF_USER].tri = yes;
+-				csym->def[S_DEF_USER].val = sym;
+-			}
+-			else {
+-				sym->def[S_DEF_USER].tri = no;
++			if (sym) {
++				if (def == cnt++) {
++					sym->def[S_DEF_USER].tri = yes;
++					csym->def[S_DEF_USER].val = sym;
++				}
++				else {
++					sym->def[S_DEF_USER].tri = no;
++				}
+ 			}
+ 		}
+ 		csym->flags |= SYMBOL_DEF_USER;
+-		/* clear VALID to get value calculated */
+ 		csym->flags &= ~(SYMBOL_VALID);
+ 	}
+ }
 diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
 index 8892161..7e62303 100644
 --- a/scripts/mod/modpost.c




More information about the fedora-extras-commits mailing list