lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 21 Nov 2022 15:17:39 -0600
From:   Andrew Davis <afd@...com>
To:     Alexander Lobakin <alobakin@...me>, <linux-kbuild@...r.kernel.org>
CC:     Masahiro Yamada <masahiroy@...nel.org>,
        Nicolas Schier <nicolas@...sle.eu>,
        Jens Axboe <axboe@...nel.dk>,
        Boris Brezillon <bbrezillon@...nel.org>,
        Borislav Petkov <bp@...en8.de>,
        Tony Luck <tony.luck@...el.com>,
        Miquel Raynal <miquel.raynal@...tlin.com>,
        "Vladimir Oltean" <vladimir.oltean@....com>,
        Alexandre Belloni <alexandre.belloni@...tlin.com>,
        Derek Chickles <dchickles@...vell.com>,
        Ioana Ciornei <ioana.ciornei@....com>,
        Salil Mehta <salil.mehta@...wei.com>,
        Sunil Goutham <sgoutham@...vell.com>,
        Grygorii Strashko <grygorii.strashko@...com>,
        Daniel Scally <djrscally@...il.com>,
        "Hans de Goede" <hdegoede@...hat.com>,
        Mark Brown <broonie@...nel.org>,
        Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
        NXP Linux Team <linux-imx@....com>, <netdev@...r.kernel.org>,
        <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 01/18] block/rnbd: fix mixed module-builtin object

On 11/19/22 5:04 PM, Alexander Lobakin wrote:
> From: Masahiro Yamada <masahiroy@...nel.org>
> 
> With CONFIG_BLK_DEV_RNBD_CLIENT=m and CONFIG_BLK_DEV_RNBD_SERVER=y
> (or vice versa), rnbd-common.o is linked to a module and also to
> vmlinux even though CFLAGS are different between builtins and modules.
> 
> This is the same situation as fixed by commit 637a642f5ca5 ("zstd:
> Fixing mixed module-builtin objects").
> 
> Turn rnbd_access_mode_str() into an inline function.
> 

Why inline? All you should need is "static" to keep these internal to
each compilation unit. Inline also bloats the object files when the
function is called from multiple places. Let the compiler decide when
to inline.

Andrew

> Signed-off-by: Masahiro Yamada <masahiroy@...nel.org>
> Reviewed-and-tested-by: Alexander Lobakin <alobakin@...me>
> Signed-off-by: Alexander Lobakin <alobakin@...me>
> ---
>   drivers/block/rnbd/Makefile      |  6 ++----
>   drivers/block/rnbd/rnbd-common.c | 23 -----------------------
>   drivers/block/rnbd/rnbd-proto.h  | 14 +++++++++++++-
>   3 files changed, 15 insertions(+), 28 deletions(-)
>   delete mode 100644 drivers/block/rnbd/rnbd-common.c
> 
> diff --git a/drivers/block/rnbd/Makefile b/drivers/block/rnbd/Makefile
> index 40b31630822c..208e5f865497 100644
> --- a/drivers/block/rnbd/Makefile
> +++ b/drivers/block/rnbd/Makefile
> @@ -3,13 +3,11 @@
>   ccflags-y := -I$(srctree)/drivers/infiniband/ulp/rtrs
> 
>   rnbd-client-y := rnbd-clt.o \
> -		  rnbd-clt-sysfs.o \
> -		  rnbd-common.o
> +		  rnbd-clt-sysfs.o
> 
>   CFLAGS_rnbd-srv-trace.o = -I$(src)
> 
> -rnbd-server-y := rnbd-common.o \
> -		  rnbd-srv.o \
> +rnbd-server-y := rnbd-srv.o \
>   		  rnbd-srv-sysfs.o \
>   		  rnbd-srv-trace.o
> 
> diff --git a/drivers/block/rnbd/rnbd-common.c b/drivers/block/rnbd/rnbd-common.c
> deleted file mode 100644
> index 596c3f732403..000000000000
> --- a/drivers/block/rnbd/rnbd-common.c
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0-or-later
> -/*
> - * RDMA Network Block Driver
> - *
> - * Copyright (c) 2014 - 2018 ProfitBricks GmbH. All rights reserved.
> - * Copyright (c) 2018 - 2019 1&1 IONOS Cloud GmbH. All rights reserved.
> - * Copyright (c) 2019 - 2020 1&1 IONOS SE. All rights reserved.
> - */
> -#include "rnbd-proto.h"
> -
> -const char *rnbd_access_mode_str(enum rnbd_access_mode mode)
> -{
> -	switch (mode) {
> -	case RNBD_ACCESS_RO:
> -		return "ro";
> -	case RNBD_ACCESS_RW:
> -		return "rw";
> -	case RNBD_ACCESS_MIGRATION:
> -		return "migration";
> -	default:
> -		return "unknown";
> -	}
> -}
> diff --git a/drivers/block/rnbd/rnbd-proto.h b/drivers/block/rnbd/rnbd-proto.h
> index ea7ac8bca63c..1849e7039fa1 100644
> --- a/drivers/block/rnbd/rnbd-proto.h
> +++ b/drivers/block/rnbd/rnbd-proto.h
> @@ -300,6 +300,18 @@ static inline u32 rq_to_rnbd_flags(struct request *rq)
>   	return rnbd_opf;
>   }
> 
> -const char *rnbd_access_mode_str(enum rnbd_access_mode mode);
> +static inline const char *rnbd_access_mode_str(enum rnbd_access_mode mode)
> +{
> +	switch (mode) {
> +	case RNBD_ACCESS_RO:
> +		return "ro";
> +	case RNBD_ACCESS_RW:
> +		return "rw";
> +	case RNBD_ACCESS_MIGRATION:
> +		return "migration";
> +	default:
> +		return "unknown";
> +	}
> +}
> 
>   #endif /* RNBD_PROTO_H */
> --
> 2.38.1
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ