From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Felipe Balbi <balbi@ti.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Ben Dooks <ben.dooks@codethink.co.uk>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
Robert Baldyga <r.baldyga@samsung.com>
Subject: Re: [PATCH] usb: gadget: s3c-hsotg: Mark s3c_hsotg_map_dma()/s3c_hsotg_unmap_dma() inline
Date: Tue, 06 May 2014 20:08:02 +0200 [thread overview]
Message-ID: <2511463.ZWBomfirPI@amdc1032> (raw)
In-Reply-To: <1399397822-351-1-git-send-email-geert@linux-m68k.org>
Hi,
On Tuesday, May 06, 2014 07:37:01 PM Geert Uytterhoeven wrote:
> If NO_DMA=y, depending on the gcc version:
>
> drivers/built-in.o: In function `s3c_hsotg_map_dma':
> s3c-hsotg.c:(.text+0x375b2c): undefined reference to `usb_gadget_map_request'
> drivers/built-in.o: In function `s3c_hsotg_unmap_dma':
> s3c-hsotg.c:(.text+0x376a32): undefined reference to `usb_gadget_unmap_request'
> make[3]: *** [vmlinux] Error 1
>
> The obvious fix of making USB_S3C_HSOTG depend on HAS_DMA is a bit overkill,
> as DMA is never actually used. All (two) calls to s3c_hsotg_map_dma() and
> s3c_hsotg_unmap_dma() are protected by a call into the using_dma() checking
> function, which always returns false:
>
> static inline bool using_dma(struct s3c_hsotg *hsotg)
> {
> return false; /* support is not complete */
> }
>
> Due to the constant return value, gcc optimizes away the calls to
> s3c_hsotg_map_dma() and s3c_hsotg_unmap_dma(). But some versions of gcc
> (e.g. 4.1.2) still emit the functions themselves, causing link errors.
>
> Marking s3c_hsotg_map_dma()/s3c_hsotg_unmap_dma() inline fixes this.
How's about just removing the dead code instead? It has never worked since
the driver introduction back in June 2009 (almost 5 years) and it is trivial
to bring it back from kernel git repository if needed in the future.
PS Could you please fix -next kernels as well (drivers/usb/gadget/s3c-hsotg.c
has moved to drivers/usb/dwc2/gadget.c recently)?
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> This replaces "[PATCH/RFC] usb: gadget: CONFIG_USB_S3C_HSOTG should depend on
> HAS_DMA"
>
> drivers/usb/gadget/s3c-hsotg.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
> index 2a9cb674926a..2740042228a4 100644
> --- a/drivers/usb/gadget/s3c-hsotg.c
> +++ b/drivers/usb/gadget/s3c-hsotg.c
> @@ -437,9 +437,9 @@ static inline int is_ep_periodic(struct s3c_hsotg_ep *hs_ep)
> * This is the reverse of s3c_hsotg_map_dma(), called for the completion
> * of a request to ensure the buffer is ready for access by the caller.
> */
> -static void s3c_hsotg_unmap_dma(struct s3c_hsotg *hsotg,
> - struct s3c_hsotg_ep *hs_ep,
> - struct s3c_hsotg_req *hs_req)
> +static inline void s3c_hsotg_unmap_dma(struct s3c_hsotg *hsotg,
> + struct s3c_hsotg_ep *hs_ep,
> + struct s3c_hsotg_req *hs_req)
> {
> struct usb_request *req = &hs_req->req;
>
> @@ -861,9 +861,9 @@ static void s3c_hsotg_start_req(struct s3c_hsotg *hsotg,
> * DMA memory, then we map the memory and mark our request to allow us to
> * cleanup on completion.
> */
> -static int s3c_hsotg_map_dma(struct s3c_hsotg *hsotg,
> - struct s3c_hsotg_ep *hs_ep,
> - struct usb_request *req)
> +static inline int s3c_hsotg_map_dma(struct s3c_hsotg *hsotg,
> + struct s3c_hsotg_ep *hs_ep,
> + struct usb_request *req)
> {
> struct s3c_hsotg_req *hs_req = our_req(req);
> int ret;
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
prev parent reply other threads:[~2014-05-06 18:08 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-06 17:37 [PATCH] usb: gadget: s3c-hsotg: Mark s3c_hsotg_map_dma()/s3c_hsotg_unmap_dma() inline Geert Uytterhoeven
2014-05-06 18:08 ` Bartlomiej Zolnierkiewicz [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2511463.ZWBomfirPI@amdc1032 \
--to=b.zolnierkie@samsung.com \
--cc=balbi@ti.com \
--cc=ben.dooks@codethink.co.uk \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=r.baldyga@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.