[PATCH net-next v2 3/6] gtp: unify genl_find_pdp and prepare for per socket lookup

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Andreas Schultz aschultz at tpip.net
Thu Feb 2 14:27:17 UTC 2017



----- On Feb 2, 2017, at 3:19 PM, pablo pablo at netfilter.org wrote:

> On Mon, Jan 30, 2017 at 05:37:10PM +0100, Andreas Schultz wrote:
>> This unifies duplicate code into a helper. It also prepares the
>> groundwork to add a lookup version that uses the socket to find
>> attache pdp contexts.
>> 
>> Signed-off-by: Andreas Schultz <aschultz at tpip.net>
>> ---
>>  drivers/net/gtp.c | 120 +++++++++++++++++++++++-------------------------------
>>  1 file changed, 51 insertions(+), 69 deletions(-)
>> 
>> diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
>> index c96c71f..6b7a3c2 100644
>> --- a/drivers/net/gtp.c
>> +++ b/drivers/net/gtp.c
> [...]
>> +static struct pdp_ctx *gtp_genl_find_pdp(struct sk_buff *skb,
>> +					 struct genl_info *info)
>> +{
>> +	struct pdp_ctx *pctx;
>> +
>> +	if (info->attrs[GTPA_LINK])
>> +		pctx = gtp_genl_find_pdp_by_link(skb, info);
>> +	else
>> +		pctx = ERR_PTR(-EINVAL);
>> +	if (!pctx)
>> +		pctx = ERR_PTR(-ENOENT);
>> +
>> +	return pctx;
>> +}
> 
> For gtp_genl_find_pdp(),  I think this is easier to read:
> 
>        if (!info->attrs[GTPA_LINK])
>                return ERR_PTR(-EINVAL);
> 
>        pctx = gtp_genl_find_pdp_by_link(skb, info);
>	if (!pctx)
>		return ERR_PTR(-ENOENT);
> 
>         return pctx;

Yes, but a later patch (will be submitted after this series is
accepted) will change that to:

        if (info->attrs[GTPA_LINK])
                pctx = gtp_genl_find_pdp_by_link(skb, info);
        else if (info->attrs[GTPA_FD])
                pctx = gtp_genl_find_pdp_by_socket(skb, info);
        else
                pctx = ERR_PTR(-EINVAL);

        if (!pctx)
                pctx = ERR_PTR(-ENOENT);

        return pctx;

I can use your form for this change, but have a larger change
later. Which way do you prefer it?

Andreas




More information about the OpenBSC mailing list