All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oliver Hartkopp <socketcan@hartkopp.net>
To: Thomas Graf <tgraf@suug.ch>
Cc: linux-can@vger.kernel.org
Subject: Re: [PATCH 3/4] can: Properly fill the netlink header when responding to RTM_GETROUTE
Date: Mon, 09 Jul 2012 18:28:27 +0200	[thread overview]
Message-ID: <4FFB06AB.4060409@hartkopp.net> (raw)
In-Reply-To: <20120709094342.GF32535@canuck.infradead.org>

On 09.07.2012 11:43, Thomas Graf wrote:

> On Fri, Jul 06, 2012 at 10:39:05PM +0200, Oliver Hartkopp wrote:
>> what about this approach which reduces the number of parameters and stack
>> space when calling cgw_put_job() ??
>>
>>
>> diff --git a/net/can/gw.c b/net/can/gw.c
>> index b41acf2..b6b9e0a 100644
>> --- a/net/can/gw.c
>> +++ b/net/can/gw.c
>> @@ -444,11 +444,15 @@ static int cgw_notifier(struct notifier_block *nb,
>>  	return NOTIFY_DONE;
>>  }
>>  
>> -static int cgw_put_job(struct sk_buff *skb, struct cgw_job *gwj)
>> +static int cgw_put_job(struct sk_buff *skb, struct cgw_job *gwj,
>> +		       struct netlink_callback *cb)
>>  {
>>  	struct cgw_frame_mod mb;
>>  	struct rtcanmsg *rtcan;
>> -	struct nlmsghdr *nlh = nlmsg_put(skb, 0, 0, 0, sizeof(*rtcan), 0);
>> +	struct nlmsghdr *nlh;
>> +
>> +	nlh = nlmsg_put(skb, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq,
>> +			RTM_NEWROUTE, sizeof(*rtcan), NLM_F_MULTI);
>>  	if (!nlh)
>>  		return -EMSGSIZE;
>>  
>> @@ -571,7 +575,7 @@ static int cgw_dump_jobs(struct sk_buff *skb, struct netlink_callback *cb)
>>  		if (idx < s_idx)
>>  			goto cont;
>>  
>> -		if (cgw_put_job(skb, gwj) < 0)
>> +		if (cgw_put_job(skb, gwj, cb) < 0)
>>  			break;
>>  cont:
>>  		idx++;
> 
> The format I've chosen allows to implement a non-dump RTM_GETROUTE using
> cgw_put_job() if needed and is in line with how such filling functions
> are typically prototyped in other netlink protocol implementations.
> 


Yes, i also checked that the format was commonly used, but i did not find any
use-case for cgw_put_job() besides the full dump ...

Btw. both approaches are fine to me then.

Many thanks,
Oliver


  reply	other threads:[~2012-07-09 16:28 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-05 12:19 [PATCH 0/4] can: gw: Netlink related fixes Thomas Graf
2012-07-05 12:19 ` [PATCH 1/4] can: Don't bump nlmsg_len manually Thomas Graf
2012-07-05 12:19 ` [PATCH 2/4] can: Use nla_policy to validate netlink attributes Thomas Graf
2012-07-05 12:19 ` [PATCH 3/4] can: Properly fill the netlink header when responding to RTM_GETROUTE Thomas Graf
2012-07-06 20:39   ` Oliver Hartkopp
2012-07-09  9:43     ` Thomas Graf
2012-07-09 16:28       ` Oliver Hartkopp [this message]
2012-07-07  9:18   ` Oliver Hartkopp
2012-07-10 15:29     ` Marc Kleine-Budde
2012-07-10 18:48       ` Oliver Hartkopp
2012-07-05 12:19 ` [PATCH 4/4] can: Remove pointless casts Thomas Graf
2012-07-05 16:16 ` [PATCH 0/4] can: gw: Netlink related fixes Oliver Hartkopp
2012-07-10 20:55 ` Marc Kleine-Budde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FFB06AB.4060409@hartkopp.net \
    --to=socketcan@hartkopp.net \
    --cc=linux-can@vger.kernel.org \
    --cc=tgraf@suug.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.