Re: [2.6 patch] drivers/w1/dscore: fix the inline mess

From: Evgeniy Polyakov
Date: Mon Nov 22 2004 - 23:08:26 EST


On Mon, 2004-11-22 at 16:52 +0100, Adrian Bunk wrote:
> <-- snip -->
>
> ...
> CC drivers/w1/ds_w1_bridge.o
> drivers/w1/ds_w1_bridge.c: In function `ds9490r_touch_bit':
> drivers/w1/dscore.h:154: sorry, unimplemented: inlining failed in call
> to 'ds_touch_bit': function body not available
> drivers/w1/ds_w1_bridge.c:37: sorry, unimplemented: called from here
> make[2]: *** [drivers/w1/ds_w1_bridge.o] Error 1
>
> <-- snip -->
>
>
> The patch below removes inline's in the following cases:
> - inline at the function prototype but not at the actual function
> - EXPORT_SYMBOL'ed inline functions

I'm ok with your changes and have applied it to my tree, thank you.

>
> diffstat output:
> drivers/w1/dscore.c | 40 ++++++++++++++++++++--------------------
> drivers/w1/dscore.h | 34 +++++++++++++++++-----------------
> 2 files changed, 37 insertions(+), 37 deletions(-)
>
>
> Signed-off-by: Adrian Bunk <bunk@xxxxxxxxx>
>
> --- linux-2.6.10-rc2-mm3-full/drivers/w1/dscore.h.old 2004-11-22 15:04:42.000000000 +0100
> +++ linux-2.6.10-rc2-mm3-full/drivers/w1/dscore.h 2004-11-22 15:08:14.000000000 +0100
> @@ -151,23 +151,23 @@
>
> };
>
> -inline int ds_touch_bit(struct ds_device *, u8, u8 *);
> -inline int ds_read_byte(struct ds_device *, u8 *);
> -inline int ds_read_bit(struct ds_device *, u8 *);
> -inline int ds_write_byte(struct ds_device *, u8);
> -inline int ds_write_bit(struct ds_device *, u8);
> -inline int ds_start_pulse(struct ds_device *, int);
> -inline int ds_set_speed(struct ds_device *, int);
> -inline int ds_reset(struct ds_device *, struct ds_status *);
> -inline int ds_detect(struct ds_device *, struct ds_status *);
> -inline int ds_stop_pulse(struct ds_device *, int);
> -inline int ds_send_data(struct ds_device *, unsigned char *, int);
> -inline int ds_recv_data(struct ds_device *, unsigned char *, int);
> -inline int ds_recv_status(struct ds_device *, struct ds_status *);
> -inline struct ds_device * ds_get_device(void);
> -inline void ds_put_device(struct ds_device *);
> -inline int ds_write_block(struct ds_device *, u8 *, int);
> -inline int ds_read_block(struct ds_device *, u8 *, int);
> +int ds_touch_bit(struct ds_device *, u8, u8 *);
> +int ds_read_byte(struct ds_device *, u8 *);
> +int ds_read_bit(struct ds_device *, u8 *);
> +int ds_write_byte(struct ds_device *, u8);
> +int ds_write_bit(struct ds_device *, u8);
> +int ds_start_pulse(struct ds_device *, int);
> +int ds_set_speed(struct ds_device *, int);
> +int ds_reset(struct ds_device *, struct ds_status *);
> +int ds_detect(struct ds_device *, struct ds_status *);
> +int ds_stop_pulse(struct ds_device *, int);
> +int ds_send_data(struct ds_device *, unsigned char *, int);
> +int ds_recv_data(struct ds_device *, unsigned char *, int);
> +int ds_recv_status(struct ds_device *, struct ds_status *);
> +struct ds_device * ds_get_device(void);
> +void ds_put_device(struct ds_device *);
> +int ds_write_block(struct ds_device *, u8 *, int);
> +int ds_read_block(struct ds_device *, u8 *, int);
>
> #endif /* __DSCORE_H */
>
> --- linux-2.6.10-rc2-mm3-full/drivers/w1/dscore.c.old 2004-11-22 15:05:19.000000000 +0100
> +++ linux-2.6.10-rc2-mm3-full/drivers/w1/dscore.c 2004-11-22 15:07:50.000000000 +0100
> @@ -35,26 +35,26 @@
> int ds_probe(struct usb_interface *, const struct usb_device_id *);
> void ds_disconnect(struct usb_interface *);
>
> -inline int ds_touch_bit(struct ds_device *, u8, u8 *);
> -inline int ds_read_byte(struct ds_device *, u8 *);
> -inline int ds_read_bit(struct ds_device *, u8 *);
> -inline int ds_write_byte(struct ds_device *, u8);
> -inline int ds_write_bit(struct ds_device *, u8);
> -inline int ds_start_pulse(struct ds_device *, int);
> -inline int ds_set_speed(struct ds_device *, int);
> -inline int ds_reset(struct ds_device *, struct ds_status *);
> -inline int ds_detect(struct ds_device *, struct ds_status *);
> -inline int ds_stop_pulse(struct ds_device *, int);
> -inline int ds_send_data(struct ds_device *, unsigned char *, int);
> -inline int ds_recv_data(struct ds_device *, unsigned char *, int);
> -inline int ds_recv_status(struct ds_device *, struct ds_status *);
> -inline struct ds_device * ds_get_device(void);
> -inline void ds_put_device(struct ds_device *);
> +int ds_touch_bit(struct ds_device *, u8, u8 *);
> +int ds_read_byte(struct ds_device *, u8 *);
> +int ds_read_bit(struct ds_device *, u8 *);
> +int ds_write_byte(struct ds_device *, u8);
> +int ds_write_bit(struct ds_device *, u8);
> +int ds_start_pulse(struct ds_device *, int);
> +int ds_set_speed(struct ds_device *, int);
> +int ds_reset(struct ds_device *, struct ds_status *);
> +int ds_detect(struct ds_device *, struct ds_status *);
> +int ds_stop_pulse(struct ds_device *, int);
> +int ds_send_data(struct ds_device *, unsigned char *, int);
> +int ds_recv_data(struct ds_device *, unsigned char *, int);
> +int ds_recv_status(struct ds_device *, struct ds_status *);
> +struct ds_device * ds_get_device(void);
> +void ds_put_device(struct ds_device *);
>
> static inline void ds_dump_status(unsigned char *, unsigned char *, int);
> -static inline int ds_send_control(struct ds_device *, u16, u16);
> -static inline int ds_send_control_mode(struct ds_device *, u16, u16);
> -static inline int ds_send_control_cmd(struct ds_device *, u16, u16);
> +static int ds_send_control(struct ds_device *, u16, u16);
> +static int ds_send_control_mode(struct ds_device *, u16, u16);
> +static int ds_send_control_cmd(struct ds_device *, u16, u16);
>
>
> static struct usb_driver ds_driver = {
> @@ -503,7 +503,7 @@
> return 0;
> }
>
> -inline int ds_read_block(struct ds_device *dev, u8 *buf, int len)
> +int ds_read_block(struct ds_device *dev, u8 *buf, int len)
> {
> struct ds_status st;
> int err;
> @@ -529,7 +529,7 @@
> return err;
> }
>
> -inline int ds_write_block(struct ds_device *dev, u8 *buf, int len)
> +int ds_write_block(struct ds_device *dev, u8 *buf, int len)
> {
> int err;
> struct ds_status st;
--

Attachment: signature.asc
Description: This is a digitally signed message part