[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 0/2] code style exercise: Drivers folder samples
On 16.02.2025 11:21, Oleksandr Andrushchenko wrote: > 1. Const string arrays reformatting > In case the length of items change we might need to introduce a bigger > change wrt new formatting of unaffected lines > ============================================================================== > > --- a/xen/drivers/acpi/tables.c > +++ b/xen/drivers/acpi/tables.c > @@ -38,10 +38,10 @@ > -static const char *__initdata > -mps_inti_flags_polarity[] = { "dfl", "high", "res", "low" }; > -static const char *__initdata > -mps_inti_flags_trigger[] = { "dfl", "edge", "res", "level" }; > +static const char *__initdata mps_inti_flags_polarity[] = { "dfl", "high", > + "res", "low" }; > +static const char *__initdata mps_inti_flags_trigger[] = { "dfl", "edge", > "res", > > --- a/xen/drivers/acpi/utilities/utglobal.c > +++ b/xen/drivers/acpi/utilities/utglobal.c > static const char *const acpi_gbl_region_types[ACPI_NUM_PREDEFINED_REGIONS] > = { > - "SystemMemory", > - "SystemIO", > - "PCI_Config", > - "EmbeddedControl", > - "SMBus", > - "CMOS", > - "PCIBARTarget", > - "DataTable" > + "SystemMemory", "SystemIO", "PCI_Config", "EmbeddedControl", > + "SMBus", "CMOS", "PCIBARTarget", "DataTable" > }; Why in the world would a tool need to touch anything like the two examples above? My take is that the code is worse readability-wise afterwards. > 2. Long strings in ptintk violations > I filed an issue on printk format strings [5] > ============================================================================== > @@ -225,9 +231,9 @@ void __init acpi_table_print_madt_entry(struct > acpi_subtable_header *header) > printk(KERN_DEBUG PREFIX > - "GIC Distributor (gic_id[0x%04x] > address[0x%"PRIx64"] gsi_base[%d])\n", > - p->gic_id, p->base_address, > - p->global_irq_base); > + "GIC Distributor (gic_id[0x%04x] address[0x%" PRIx64 > + "] gsi_base[%d])\n", > + p->gic_id, p->base_address, p->global_irq_base); > > @@ -629,12 +628,14 @@ acpi_parse_one_rmrr(struct acpi_dmar_header *header) > - printk(XENLOG_ERR VTDPREFIX > - "Overlapping RMRRs [%"PRIx64",%"PRIx64"] and > [%"PRIx64",%"PRIx64"]\n", > - rmrru->base_address, rmrru->end_address, > - base_addr, end_addr); > + printk(XENLOG_ERR VTDPREFIX "Overlapping RMRRs [%" PRIx64 > + ",%" PRIx64 "] and [%" PRIx64 > + ",%" PRIx64 "]\n", > + rmrru->base_address, rmrru->end_address, base_addr, > + end_addr); This yet more definitely needs avoiding. Seeing that e.g. Linux also makes line length exceptions for format string literals, I would seem pretty likely that there already is a control to leave such alone. > 3. String concatenation after clang - needs manual work to fix > ============================================================================== > --- a/xen/drivers/acpi/apei/apei-base.c > +++ b/xen/drivers/acpi/apei/apei-base.c > @@ -171,16 +169,19 @@ int __apei_exec_run(struct apei_exec_context *ctx, u8 > action, > printk(KERN_WARNING > - "Invalid action table, unknown instruction " > - "type: %d\n", entry->instruction); > + "Invalid action table, unknown instruction " "type: > %d\n", > + entry->instruction); Urgh. Why would it not join together the two literals? > 4. Looks a bit weird, but correct > ============================================================================== > --- a/xen/drivers/acpi/apei/apei-io.c > +++ b/xen/drivers/acpi/apei/apei-io.c > @@ -80,13 +78,15 @@ static void __iomem *__init apei_range_map(paddr_t paddr, > unsigned long size) > - pg = ((((paddr + size -1) & PAGE_MASK) > - - (paddr & PAGE_MASK)) >> PAGE_SHIFT) + 1; > + pg = ((((paddr + size - 1) & PAGE_MASK) - (paddr & PAGE_MASK)) >> > + PAGE_SHIFT) + > + 1; It trying to squash as much on the 1st line as it can, does it really put the lone "1;" at a separate line? > 7. Parentheses for empty functions > ============================================================================== > --- a/xen/drivers/char/console.c > +++ b/xen/drivers/char/console.c > @@ -1311,7 +1307,9 @@ void panic(const char *fmt, ...) > -static void cf_check suspend_steal_fn(const char *str, size_t nr) { } > +static void cf_check suspend_steal_fn(const char *str, size_t nr) > +{} While not the end of the world, an option for keeping the braces on the same line surely would be worthwhile for them to support in the tool? > 8. Const struct reformatting is weird and inconsistent > ============================================================================== > --- a/xen/drivers/char/ns16550.c > +++ b/xen/drivers/char/ns16550.c > @@ -1050,135 +1055,93 @@ static const struct ns16550_config __initconst > uart_config[] = > .param = param_oxford, > }, > /* Pericom PI7C9X7951 Uno UART */ > - { > - .vendor_id = PCI_VENDOR_ID_PERICOM, > + { .vendor_id = PCI_VENDOR_ID_PERICOM, > .dev_id = 0x7951, > - .param = param_pericom_1port > - }, > + .param = param_pericom_1port }, A matter of some control that needs flipping? Readability again suffers here quite a bit, imo. > 9. Define is longer than 80 chars > ============================================================================== > --- a/xen/drivers/cpufreq/cpufreq_ondemand.c > +++ b/xen/drivers/cpufreq/cpufreq_ondemand.c > @@ -27,10 +27,8 @@ > -#define MIN_STAT_SAMPLING_RATE \ > - (MIN_SAMPLING_MILLISECS * MILLISECS(1)) > -#define MIN_SAMPLING_RATE \ > - (def_sampling_rate / MIN_SAMPLING_RATE_RATIO) > +#define MIN_STAT_SAMPLING_RATE (MIN_SAMPLING_MILLISECS * > MILLISECS(1)) > +#define MIN_SAMPLING_RATE (def_sampling_rate / > MIN_SAMPLING_RATE_RATIO) Oops. Transformed code violating a fundamental rule? > 10. Union memebers require an empty line between them > ============================================================================== > --- a/xen/drivers/passthrough/amd/iommu-defs.h > +++ b/xen/drivers/passthrough/amd/iommu-defs.h > @@ -289,6 +289,7 @@ struct amd_iommu_dte { > > union amd_iommu_control { > uint64_t raw; > + > struct { This might be acceptable. It's a little wasteful for small unions, but may be quite helpful for larger ones. > 11. Multiline string alignment for at the first string, not for the function > opening bracket. Depends on the macro before the string? > ============================================================================== > --- a/xen/drivers/passthrough/pci.c > +++ b/xen/drivers/passthrough/pci.c > @@ -748,18 +757,18 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn, > printk(XENLOG_WARNING "SR-IOV device %pp has its virtual" > - " functions already enabled (%04x)\n", &pdev->sbdf, ctrl); > + " functions already enabled (%04x)\n", > + &pdev->sbdf, ctrl); This kind of line wrapping wants manual adjustment up front then, imo: printk(XENLOG_WARNING "SR-IOV device %pp has its virtual functions already enabled (%04x)\n", &pdev->sbdf, ctrl); Unless of course the tool can be convinced to do the transformations this way in the first place. > 11. const struct initializers are inconsistent > I have filed a bug on clang-format for that [7] > ============================================================================== > > [snip] > static const struct ns16550_config __initconst uart_config[] = { > [snip] > /* OXPCIe200 1 Native UART */ > { > .vendor_id = PCI_VENDOR_ID_OXSEMI, > .dev_id = 0xc4cf, > .param = param_oxford, > }, > /* Pericom PI7C9X7951 Uno UART */ > { .vendor_id = PCI_VENDOR_ID_PERICOM, > .dev_id = 0x7951, > .param = param_pericom_1port }, > [snip] Odd; related to point 8 I think. Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |