|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 2/3] xen/ppc: Implement early serial printk on pseries
On 17.07.2023 20:32, Shawn Anastasio wrote:
> On 7/17/23 11:17 AM, Jan Beulich wrote:
>> On 06.07.2023 21:04, Shawn Anastasio wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/ppc/boot-of.c
>>> @@ -0,0 +1,100 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
>>> +/*
>>> + * Copyright IBM Corp. 2005, 2006, 2007
>>
>> Judging from the years the file was taken from somewhere. Is the license
>> there permitting "2.0 or later"? (For files [partly] taken from somewhere,
>> a clarification as to the originals' licenses would be helpful to have in
>> the description, or maybe in the post-commit-message area.)
>
> The original license of the file that this was derived from
> (xen/arch/powerpc/boot_of.c from Xen 3.2) is GPL v2.0 or later.
>
> In any case where I'm deriving code from existing files, I'm always
> using the original license of the derived code. Should I still clarify
> this in the header comment?
I think it would be good to mention explicitly, as 2.0-only is the
common expectation.
>>> +/* OF entrypoint*/
>>> +static unsigned long __initdata of_vec;
>>> +
>>> +/* OF device handles*/
>>> +static int __initdata bof_chosen;
>>> +static int __initdata of_out;
>>> +
>>> +static int __init of_call(const char *service, uint32_t nargs, uint32_t
>>> nrets,
>>> + int32_t rets[], ...)
>>
>> Nit: Indentation.
>
> Will fix.
>
>>> +{
>>> + int rc;
>>> + va_list args;
>>> + int i;
>>
>> unsigned int?
>
> I might as well change it to uint32_t to be in line with nargs.
Please don't. See ./CODING_STYLE for when it is okay to use fixed-
width types.
>>> + va_start(args, rets);
>>> +
>>> + for ( i = 0; i < nargs; i++ )
>>> + s.ofs_args[i] = cpu_to_be32(va_arg(args, uint32_t));
>>> +
>>> + va_end(args);
>>> +
>>> + rc = enter_of(&s, of_vec);
>>> +
>>> + /* copy all return values to the output rets array */
>>> + for ( i = 0; i < nrets; i++ )
>>> + rets[i] = be32_to_cpu(s.ofs_args[i + nargs]);
>>> +
>>> + return rc;
>>> +}
>>> +
>>> +static int __init of_finddevice(const char *devspec)
>>> +{
>>> + int rets[1] = { OF_FAILURE };
>>
>> Hmm, of_call() uses int32_t. Again below several times.
>
> Good catch. I'll switch all of these to int32_t for consistency.
Here, for example, it is (because of being used to interface with
firmware).
>>> --- /dev/null
>>> +++ b/xen/arch/ppc/early_printk.c
>>> @@ -0,0 +1,28 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +#include <xen/init.h>
>>> +#include <asm/boot.h>
>>> +
>>> +static void (*putchar_func)(char);
>>
>> __initdata? (Connected to the question of building into .init.o.)
>
> Since I'm going to change this to build to .init.o, would this
> automatically be put into the correct .init section? Would it still be
> preferable style-wise to mark it as __initdata?
No, it would complain that .data or .bss is non-empty. Automatic
conversion occurs only for things you can't control at the source
level, e.g. string literals.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |