[PATCH v7 00/23] FSI device driver implementation

Christopher Bostic cbostic at linux.vnet.ibm.com
Mon Jun 5 12:21:34 PDT 2017



On 6/3/17 4:25 PM, Steven Rostedt wrote:
> On Sat, 3 Jun 2017 19:05:10 +0900
> Greg KH <gregkh at linuxfoundation.org> wrote:
>
>> On Wed, May 31, 2017 at 12:17:05PM -0500, Christopher Bostic wrote:
>>> Hi Greg,
>>>
>>> Are there any further changes you require for this patch set? This has been
>>> extensively tested internally and all is working as expected.   Would it be
>>> possible to move forward with integration in the near future?   Any input
>>> would be appreciated.
>> Sorry for the delay.  I just tried applying this to my tree, but got the
>> following build warnings, and then errors:
>>
>> In file included from ./include/trace/define_trace.h:95:0,
>>                   from ./include/trace/events/fsi.h:127,
>>                   from drivers/fsi/fsi-core.c:27:
>> ./include/trace/events/fsi.h: In function ‘trace_raw_output_fsi_master_write’:
>> ./include/trace/events/fsi.h:58:12: warning: field width specifier ‘*’ expects argument of type ‘int’, but argument 8 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
>>    TP_printk("fsi%d:%02d:%02d %08x[%zd] <= {%*ph}",
>  From patch 16/23:
>
> +TRACE_EVENT(fsi_master_write,
> +	TP_PROTO(const struct fsi_master *master, int link, int id,
> +			uint32_t addr, size_t size, const void *data),
> +	TP_ARGS(master, link, id, addr, size, data),
> +	TP_STRUCT__entry(
> +		__field(int,	master_idx)
> +		__field(int,	link)
> +		__field(int,	id)
> +		__field(__u32,	addr)
> +		__field(size_t,	size)
> +		__field(__u32,	data)
> +	),
> +	TP_fast_assign(
> +		__entry->master_idx = master->idx;
> +		__entry->link = link;
> +		__entry->id = id;
> +		__entry->addr = addr;
> +		__entry->size = size;
> +		__entry->data = 0;
> +		memcpy(&__entry->data, data, size);
> +	),
> +	TP_printk("fsi%d:%02d:%02d %08x[%zd] <= {%*ph}",
> +		__entry->master_idx,
> +		__entry->link,
> +		__entry->id,
> +		__entry->addr,
> +		__entry->size,
> +		__entry->size, &__entry->data
> +	)
> +);
>
> Looks like the second __entry->size, probably needs a type cast.
>
> Would something like:
>
> 	__entry->size,
> 	(int)__entry->size, &__entry->data
>
> work?
Steven,

Yes that did the trick.  Thanks for the input

-Chris

>
> I haven't looked at the others, but I'm guessing they are probably
> similar issues.
>
> -- Steve
>
>>              ^
>> ./include/trace/trace_events.h:343:22: note: in definition of macro ‘DECLARE_EVENT_CLASS’
>>    trace_seq_printf(s, print);     \
>>                        ^~~~~
>> ./include/trace/trace_events.h:65:9: note: in expansion of macro ‘PARAMS’
>>           PARAMS(print));         \
>>           ^~~~~~
>> ./include/trace/events/fsi.h:37:1: note: in expansion of macro ‘TRACE_EVENT’
>>   TRACE_EVENT(fsi_master_write,
>>   ^~~~~~~~~~~
>> ./include/trace/events/fsi.h:58:2: note: in expansion of macro ‘TP_printk’
>>    TP_printk("fsi%d:%02d:%02d %08x[%zd] <= {%*ph}",
>>    ^~~~~~~~~
>> In file included from ./include/trace/trace_events.h:377:0,
>>                   from ./include/trace/define_trace.h:95,
>>                   from ./include/trace/events/fsi.h:127,
>>                   from drivers/fsi/fsi-core.c:27:
>> ./include/trace/events/fsi.h:58:44: note: format string is defined here
>>    TP_printk("fsi%d:%02d:%02d %08x[%zd] <= {%*ph}",
>>                                             ~^~
>> In file included from ./include/trace/define_trace.h:95:0,
>>                   from ./include/trace/events/fsi.h:127,
>>                   from drivers/fsi/fsi-core.c:27:
>> ./include/trace/events/fsi.h: In function ‘trace_raw_output_fsi_master_rw_resul
>> ’:
>> ./include/trace/events/fsi.h:95:12: warning: field width specifier ‘*’ expects argument of type ‘int’, but argument 9 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
>>    TP_printk("fsi%d:%02d:%02d %08x[%zd] %s {%*ph} ret %d",
>>              ^
>> ./include/trace/trace_events.h:343:22: note: in definition of macro ‘DECLARE_EVENT_CLASS’
>>    trace_seq_printf(s, print);     \
>>                        ^~~~~
>> ./include/trace/trace_events.h:65:9: note: in expansion of macro ‘PARAMS’
>>           PARAMS(print));         \
>>           ^~~~~~
>> ./include/trace/events/fsi.h:68:1: note: in expansion of macro ‘TRACE_EVENT’
>>   TRACE_EVENT(fsi_master_rw_result,
>>   ^~~~~~~~~~~
>> ./include/trace/events/fsi.h:95:2: note: in expansion of macro ‘TP_printk’
>>    TP_printk("fsi%d:%02d:%02d %08x[%zd] %s {%*ph} ret %d",
>>    ^~~~~~~~~
>> In file included from ./include/trace/trace_events.h:377:0,
>>                   from ./include/trace/define_trace.h:95,
>>                   from ./include/trace/events/fsi.h:127,
>>                   from drivers/fsi/fsi-core.c:27:
>> ./include/trace/events/fsi.h:95:44: note: format string is defined here
>>    TP_printk("fsi%d:%02d:%02d %08x[%zd] %s {%*ph} ret %d",
>>                                             ~^~
>>    CHK     include/generated/uapi/linux/version.h
>>    GEN     .version
>>    CHK     include/generated/compile.h
>>    UPD     include/generated/compile.h
>>    CC      init/version.o
>>    LD      init/built-in.o
>>    LD      vmlinux.o
>>    MODPOST vmlinux.o
>>    KSYM    .tmp_kallsyms1.o
>>    KSYM    .tmp_kallsyms2.o
>>    LD      vmlinux
>>    SORTEX  vmlinux
>>    SYSMAP  System.map
>>    CC      arch/x86/boot/version.o
>>    Building modules, stage 2.
>>    VOFFSET arch/x86/boot/compressed/../voffset.h
>>    OBJCOPY arch/x86/boot/compressed/vmlinux.bin
>>    RELOCS  arch/x86/boot/compressed/vmlinux.relocs
>>    CC      arch/x86/boot/compressed/kaslr.o
>>    GZIP    arch/x86/boot/compressed/vmlinux.bin.gz
>>    CC      arch/x86/boot/compressed/misc.o
>>    MODPOST 476 modules
>> WARNING: modpost: missing MODULE_LICENSE() in drivers/fsi/fsi-core.o
>> see include/linux/module.h for more information
>>    MKPIGGY arch/x86/boot/compressed/piggy.S
>>    AS      arch/x86/boot/compressed/piggy.o
>>    DATAREL arch/x86/boot/compressed/vmlinux
>>    LD      arch/x86/boot/compressed/vmlinux
>>    ZOFFSET arch/x86/boot/zoffset.h
>>    OBJCOPY arch/x86/boot/vmlinux.bin
>>    AS      arch/x86/boot/header.o
>>    LD      arch/x86/boot/setup.elf
>>    OBJCOPY arch/x86/boot/setup.bin
>>    BUILD   arch/x86/boot/bzImage
>> Setup is 17532 bytes (padded to 17920 bytes).
>> System is 5445 kB
>> CRC 56d8089d
>> Kernel: arch/x86/boot/bzImage is ready  (#387)
>> ERROR: "fsi_slave_claim_range" [drivers/fsi/fsi-master-hub.ko] undefined!
>> ERROR: "fsi_slave_read" [drivers/fsi/fsi-master-hub.ko] undefined!
>> ERROR: "fsi_slave_write" [drivers/fsi/fsi-master-hub.ko] undefined!
>> ERROR: "fsi_slave_release_range" [drivers/fsi/fsi-master-hub.ko] undefined!
>> make[1]: *** [scripts/Makefile.modpost:91: __modpost] Error 1
>> make: *** [Makefile:1214: modules] Error 2
>>
>>
>> Note, I'm using gcc 7.1.1, which might be what is showing the build warnings,
>> but that doesn't explain the build errors.
>>
>> So obviously, I can't take this as is :(
>>
>> thanks,
>>
>> greg k-h




More information about the linux-arm-kernel mailing list