netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] sparse related patches
@ 2011-02-23 19:06 Stephen Hemminger
  2011-02-23 19:06 ` [PATCH 1/5] socket: suppress sparse warnings Stephen Hemminger
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Stephen Hemminger @ 2011-02-23 19:06 UTC (permalink / raw)
  To: davem; +Cc: netdev



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/5] socket: suppress sparse warnings
  2011-02-23 19:06 [PATCH 0/5] sparse related patches Stephen Hemminger
@ 2011-02-23 19:06 ` Stephen Hemminger
  2011-02-23 19:06 ` [PATCH 2/5] atl1[ce]: fix " Stephen Hemminger
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2011-02-23 19:06 UTC (permalink / raw)
  To: davem; +Cc: netdev

[-- Attachment #1: socket-sparse --]
[-- Type: text/plain, Size: 1122 bytes --]

Use __force to quiet sparse warnings for cases where the code
is simulating user space pointers.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/net/socket.c	2011-02-23 08:26:51.905069267 -0800
+++ b/net/socket.c	2011-02-23 08:26:59.005160474 -0800
@@ -2648,7 +2648,8 @@ static int bond_ioctl(struct net *net, u
 
 		old_fs = get_fs();
 		set_fs(KERNEL_DS);
-		err = dev_ioctl(net, cmd, &kifr);
+		err = dev_ioctl(net, cmd,
+				(struct ifreq __user __force *) &kifr);
 		set_fs(old_fs);
 
 		return err;
@@ -2757,7 +2758,7 @@ static int compat_sioc_ifmap(struct net
 
 	old_fs = get_fs();
 	set_fs(KERNEL_DS);
-	err = dev_ioctl(net, cmd, (void __user *)&ifr);
+	err = dev_ioctl(net, cmd, (void  __user __force *)&ifr);
 	set_fs(old_fs);
 
 	if (cmd == SIOCGIFMAP && !err) {
@@ -2862,7 +2863,8 @@ static int routing_ioctl(struct net *net
 		ret |= __get_user(rtdev, &(ur4->rt_dev));
 		if (rtdev) {
 			ret |= copy_from_user(devname, compat_ptr(rtdev), 15);
-			r4.rt_dev = devname; devname[15] = 0;
+			r4.rt_dev = (char __user __force *)devname;
+			devname[15] = 0;
 		} else
 			r4.rt_dev = NULL;
 



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 2/5] atl1[ce]: fix sparse warnings
  2011-02-23 19:06 [PATCH 0/5] sparse related patches Stephen Hemminger
  2011-02-23 19:06 ` [PATCH 1/5] socket: suppress sparse warnings Stephen Hemminger
@ 2011-02-23 19:06 ` Stephen Hemminger
  2011-02-23 19:06 ` [PATCH 3/5] afkey: add sparse annotation about rcu Stephen Hemminger
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2011-02-23 19:06 UTC (permalink / raw)
  To: davem; +Cc: netdev

[-- Attachment #1: atl1c-sparse.patch --]
[-- Type: text/plain, Size: 1751 bytes --]

The dmaw_block is an enum and max_pay_load is u32. Therefore
sparse gives warning about comparison of unsigned and signed value.
Resolve by using min_t to force cast.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/drivers/net/atl1c/atl1c_main.c	2011-02-23 09:58:11.282457630 -0800
+++ b/drivers/net/atl1c/atl1c_main.c	2011-02-23 09:58:42.626823758 -0800
@@ -1102,10 +1102,10 @@ static void atl1c_configure_tx(struct at
 	AT_READ_REG(hw, REG_DEVICE_CTRL, &dev_ctrl_data);
 	max_pay_load  = (dev_ctrl_data >> DEVICE_CTRL_MAX_PAYLOAD_SHIFT) &
 			DEVICE_CTRL_MAX_PAYLOAD_MASK;
-	hw->dmaw_block = min(max_pay_load, hw->dmaw_block);
+	hw->dmaw_block = min_t(u32, max_pay_load, hw->dmaw_block);
 	max_pay_load  = (dev_ctrl_data >> DEVICE_CTRL_MAX_RREQ_SZ_SHIFT) &
 			DEVICE_CTRL_MAX_RREQ_SZ_MASK;
-	hw->dmar_block = min(max_pay_load, hw->dmar_block);
+	hw->dmar_block = min_t(u32, max_pay_load, hw->dmar_block);
 
 	txq_ctrl_data = (hw->tpd_burst & TXQ_NUM_TPD_BURST_MASK) <<
 			TXQ_NUM_TPD_BURST_SHIFT;
--- a/drivers/net/atl1e/atl1e_main.c	2011-02-23 09:58:52.594940247 -0800
+++ b/drivers/net/atl1e/atl1e_main.c	2011-02-23 09:59:03.859071913 -0800
@@ -932,11 +932,11 @@ static inline void atl1e_configure_tx(st
 	max_pay_load  = ((dev_ctrl_data >> DEVICE_CTRL_MAX_PAYLOAD_SHIFT)) &
 			DEVICE_CTRL_MAX_PAYLOAD_MASK;
 
-	hw->dmaw_block = min(max_pay_load, hw->dmaw_block);
+	hw->dmaw_block = min_t(u32, max_pay_load, hw->dmaw_block);
 
 	max_pay_load  = ((dev_ctrl_data >> DEVICE_CTRL_MAX_RREQ_SZ_SHIFT)) &
 			DEVICE_CTRL_MAX_RREQ_SZ_MASK;
-	hw->dmar_block = min(max_pay_load, hw->dmar_block);
+	hw->dmar_block = min_t(u32, max_pay_load, hw->dmar_block);
 
 	if (hw->nic_type != athr_l2e_revB)
 		AT_WRITE_REGW(hw, REG_TXQ_CTRL + 2,



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 3/5] afkey: add sparse annotation about rcu
  2011-02-23 19:06 [PATCH 0/5] sparse related patches Stephen Hemminger
  2011-02-23 19:06 ` [PATCH 1/5] socket: suppress sparse warnings Stephen Hemminger
  2011-02-23 19:06 ` [PATCH 2/5] atl1[ce]: fix " Stephen Hemminger
@ 2011-02-23 19:06 ` Stephen Hemminger
  2011-02-23 19:06 ` [PATCH 4/5] mqprio: cleanups Stephen Hemminger
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2011-02-23 19:06 UTC (permalink / raw)
  To: davem; +Cc: netdev

[-- Attachment #1: afkey-sparse --]
[-- Type: text/plain, Size: 604 bytes --]

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/net/key/af_key.c	2011-02-23 10:20:23.181943425 -0800
+++ b/net/key/af_key.c	2011-02-23 10:20:47.290221581 -0800
@@ -3655,6 +3655,7 @@ static int pfkey_seq_show(struct seq_fil
 }
 
 static void *pfkey_seq_start(struct seq_file *f, loff_t *ppos)
+	__acquires(rcu)
 {
 	struct net *net = seq_file_net(f);
 	struct netns_pfkey *net_pfkey = net_generic(net, pfkey_net_id);
@@ -3672,6 +3673,7 @@ static void *pfkey_seq_next(struct seq_f
 }
 
 static void pfkey_seq_stop(struct seq_file *f, void *v)
+	__releases(rcu)
 {
 	rcu_read_unlock();
 }



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 4/5] mqprio: cleanups
  2011-02-23 19:06 [PATCH 0/5] sparse related patches Stephen Hemminger
                   ` (2 preceding siblings ...)
  2011-02-23 19:06 ` [PATCH 3/5] afkey: add sparse annotation about rcu Stephen Hemminger
@ 2011-02-23 19:06 ` Stephen Hemminger
  2011-02-23 19:06 ` [PATCH 5/5] em_meta: fix sparse warning Stephen Hemminger
  2011-02-23 22:11 ` [PATCH 0/5] sparse related patches David Miller
  5 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2011-02-23 19:06 UTC (permalink / raw)
  To: davem; +Cc: netdev

[-- Attachment #1: mqprio-sparse.patch --]
[-- Type: text/plain, Size: 914 bytes --]

* make qdisc_ops local 
* add sparse annotation about expected unlock/unlock in dump_class_stats
* fix indentation

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/net/sched/sch_mqprio.c	2011-02-23 10:22:17.171259588 -0800
+++ b/net/sched/sch_mqprio.c	2011-02-23 10:28:51.955835730 -0800
@@ -311,7 +311,9 @@ static int mqprio_dump_class(struct Qdis
 }
 
 static int mqprio_dump_class_stats(struct Qdisc *sch, unsigned long cl,
-			       struct gnet_dump *d)
+				   struct gnet_dump *d)
+	__releases(d->lock)
+	__acquires(d->lock)
 {
 	struct net_device *dev = qdisc_dev(sch);
 
@@ -389,7 +391,7 @@ static const struct Qdisc_class_ops mqpr
 	.dump_stats	= mqprio_dump_class_stats,
 };
 
-struct Qdisc_ops mqprio_qdisc_ops __read_mostly = {
+static struct Qdisc_ops mqprio_qdisc_ops __read_mostly = {
 	.cl_ops		= &mqprio_class_ops,
 	.id		= "mqprio",
 	.priv_size	= sizeof(struct mqprio_sched),



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 5/5] em_meta: fix sparse warning
  2011-02-23 19:06 [PATCH 0/5] sparse related patches Stephen Hemminger
                   ` (3 preceding siblings ...)
  2011-02-23 19:06 ` [PATCH 4/5] mqprio: cleanups Stephen Hemminger
@ 2011-02-23 19:06 ` Stephen Hemminger
  2011-02-23 22:11 ` [PATCH 0/5] sparse related patches David Miller
  5 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2011-02-23 19:06 UTC (permalink / raw)
  To: davem; +Cc: netdev

[-- Attachment #1: em-meta-sparse --]
[-- Type: text/plain, Size: 457 bytes --]

gfp_t needs to be cast to integer.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/net/sched/em_meta.c	2011-02-23 10:26:17.534042646 -0800
+++ b/net/sched/em_meta.c	2011-02-23 10:30:37.533063770 -0800
@@ -401,7 +401,7 @@ META_COLLECTOR(int_sk_sndbuf)
 META_COLLECTOR(int_sk_alloc)
 {
 	SKIP_NONLOCAL(skb);
-	dst->value = skb->sk->sk_allocation;
+	dst->value = (__force int) skb->sk->sk_allocation;
 }
 
 META_COLLECTOR(int_sk_route_caps)



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/5] sparse related patches
  2011-02-23 19:06 [PATCH 0/5] sparse related patches Stephen Hemminger
                   ` (4 preceding siblings ...)
  2011-02-23 19:06 ` [PATCH 5/5] em_meta: fix sparse warning Stephen Hemminger
@ 2011-02-23 22:11 ` David Miller
  5 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2011-02-23 22:11 UTC (permalink / raw)
  To: shemminger; +Cc: netdev


All applied, thanks Stephen.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-02-23 22:11 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-23 19:06 [PATCH 0/5] sparse related patches Stephen Hemminger
2011-02-23 19:06 ` [PATCH 1/5] socket: suppress sparse warnings Stephen Hemminger
2011-02-23 19:06 ` [PATCH 2/5] atl1[ce]: fix " Stephen Hemminger
2011-02-23 19:06 ` [PATCH 3/5] afkey: add sparse annotation about rcu Stephen Hemminger
2011-02-23 19:06 ` [PATCH 4/5] mqprio: cleanups Stephen Hemminger
2011-02-23 19:06 ` [PATCH 5/5] em_meta: fix sparse warning Stephen Hemminger
2011-02-23 22:11 ` [PATCH 0/5] sparse related patches David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).