[PATCH] bssgp: Fix call to llist_entry in fc_queue_timer_cfg

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/.

Holger Freyther holger at freyther.de
Sat May 2 06:03:29 UTC 2015


> On 01 May 2015, at 12:23, Mike McTernan (wavemobile) <mike.mcternan at wavemobile.com> wrote:
> 
> Yikes!
> 
> I think the definition of container_of() shouldn't cast ptr:
> 
> #define container_of(ptr, type, member) ({                     \
> -        const typeof( ((type *)0)->member ) *__mptr = (typeof( ((type *)0)->member ) *)(ptr);  \
> +        const typeof( ((type *)0)->member ) *__mptr = (ptr);   \
>         (type *)( (char *)__mptr - offsetof(type, member) );})


In OpenBSC the cast was added in be68f6fc6cde1367a4481d2e774a64e2cd657267

    Change the variable "new" to "_new" in order to include it from C++ code.
    The define "container_of" will cast pointer before assigning. Compilers
    with stricter options require this. (Andreas Eversberg)

I still think we should revert the cast and see how C++ code complains and then look
at the compiler warning. As you were able to compile osmo-pcu (a C++ app that uses
linked lists) it can’t be that bad.





More information about the OpenBSC mailing list