Re: [RFC v3 07/13] tables.h: add linker table support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tglx@xxxxxxxxxxxxx,mingo@xxxxxxxxxx,bp@xxxxxxxxx,linux@xxxxxxxxxxxxxxxx,masami.hiramatsu.pt@xxxxxxxxxxx,jbaron@xxxxxxxxxx,heiko.carstens@xxxxxxxxxx,ananth@xxxxxxxxxxxxxxxxxx,anil.s.keshavamurthy@xxxxxxxxx,davem@xxxxxxxxxxxxx,realmz6@xxxxxxxxx,x86@xxxxxxxxxx,luto@xxxxxxxxxxxxxx,keescook@xxxxxxxxxxxx,torvalds@xxxxxxxxxxxxxxxxxxxx,gregkh@xxxxxxxxxxxxxxxxxxx,rusty@xxxxxxxxxxxxxxx,gnomes@xxxxxxxxxxxxxxxxxxx,alan@xxxxxxxxxxxxxxx,dwmw2@xxxxxxxxxxxxx,arnd@xxxxxxxx,ming.lei@xxxxxxxxxxxxx,linux-arch@xxxxxxxxxxxxxxx,benh@xxxxxxxxxxxxxxxxxxx,ananth@xxxxxxxxxx,pebolle@xxxxxxxxxx,fontana@xxxxxxxxxxxxxxx,ciaran.farrell@xxxxxxxx,christopher.denicolo@xxxxxxxx,david.vrabel@xxxxxxxxxx,konrad.wilk@xxxxxxxxxx,mcb30@xxxxxxxx,jgross@xxxxxxxx,andrew.cooper3@xxxxxxxxxx,andriy.shevchenko@xxxxxxxxxxxxxxx,paul.gortmaker@xxxxxxxxxxxxx,xen-devel@xxxxxxxxxxxxxxxxxxx,ak@xxxxxxxxxxxxxxx,pali.rohar@xxxxxxxxx,dvhart@xxxxxxxxxxxxx,platform-driver-x86@xxxxxxxxxxxxxxx,mmarek@xxxxxxxx,linux@xxxxxxxxxxxxxxxxxx,jko!
 sina@suse
.cz,korea.drzix@xxxxxxxxx,linux-kbuild@xxxxxxxxxxxxxxx,tony.luck@xxxxxxxxx,akpm@xxxxxxxxxxxxxxxxxxxx,linux-ia64@xxxxxxxxxxxxxxx,linux-arm-kernel@xxxxxxxxxxxxxxxxxxx,linux-sh@xxxxxxxxxxxxxxx,sparclinux@xxxxxxxxxxxxxxx,catalin.marinas@xxxxxxx,will.deacon@xxxxxxx,rostedt@xxxxxxxxxxx,jpoimboe@xxxxxxxxxx
Message-ID: <01FD20B1-E788-4CC6-81CF-BA26F000FFCB@xxxxxxxxx>

On July 27, 2016 4:02:18 PM PDT, "Luis R. Rodriguez" <mcgrof@xxxxxxxxxx> wrote:
>On Tue, Jul 26, 2016 at 12:30:14AM +0900, Masami Hiramatsu wrote:
>> On Fri, 22 Jul 2016 14:24:41 -0700
>> "Luis R. Rodriguez" <mcgrof@xxxxxxxxxx> wrote:
>> 
>> > +/**
>> > + * LINKTABLE_RUN_ALL - iterate and run through all entries on a
>linker table
>> > + *
>> > + * @tbl: linker table
>> > + * @func: structure name for the function name we want to call.
>> > + * @args...: arguments to pass to func
>> > + *
>> > + * Example usage:
>> > + *
>> > + *   LINKTABLE_RUN_ALL(frobnicator_fns, some_run,);
>> > + */
>> > +#define LINKTABLE_RUN_ALL(tbl, func, args...)				\
>> > +do {									\
>> > +	size_t i;							\
>> > +	for (i = 0; i < LINUX_SECTION_SIZE(tbl); i++)			\
>> > +		(tbl[i]).func (args);					\
>> > +} while (0);
>> > +
>> > +/**
>> > + * LINKTABLE_RUN_ERR - run each linker table entry func and return
>error if any
>> > + *
>> > + * @tbl: linker table
>> > + * @func: structure name for the function name we want to call.
>> > + * @args...: arguments to pass to func
>> > + *
>> > + * Example usage:
>> > + *
>> > + *   unsigned int err = LINKTABLE_RUN_ERR(frobnicator_fns,
>some_run,);
>> > + */
>> > +#define LINKTABLE_RUN_ERR(tbl, func, args...)				\
>> > +({									\
>> > +	size_t i;							\
>> > +	int err = 0;							\
>> > +	for (i = 0; !err && i < LINUX_SECTION_SIZE(tbl); i++)		\
>> > +		err = (tbl[i]).func (args);				\
>> > +		err; \
>> > +})
>> 
>> These iteration APIs are a bit dangerous, at least for these APIs
>we'd better change
>> name like as FUNCTABLE_RUN etc. because LINKTABLE can contain not
>only function address
>> but also some data (or address of data).
>
>Sure will do, thanks for the review.
>
>  Luis

I don't know if they are dangerous.  Keep in mind C type checking is still present.
-- 
Sent from my Android device with K-9 Mail. Please excuse brevity and formatting.
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux