Re: [PATCH] fix inline related gcc 3.4 build failures indrivers/net/wan/dscc4.c

From: Jesper Juhl
Date: Sun Aug 01 2004 - 17:23:16 EST


On Sun, 1 Aug 2004, Francois Romieu wrote:

> Jesper Juhl <juhl-lkml@xxxxxx> :
> [inline fixes]
> > drivers/net/wan/dscc4.c: In function `dscc4_found1':
> > drivers/net/wan/dscc4.c:369: sorry, unimplemented: inlining failed in call to 'dscc4_set_quartz': function body not available
> > drivers/net/wan/dscc4.c:898: sorry, unimplemented: called from here
> >
> > This one I fixed by moving the function before the point of its first use
> > since it's quite small.
>
> Fine. You forgot to include the patch which removes the forward declaration
> though.
>

Whoops, you are right, that's of course no longer needed. Here's a fixed
patch that does that as well.

Signed-off-by: Jesper Juhl <juhl-lkml@xxxxxx>

diff -up linux-2.6.8-rc2-mm1-orig/drivers/net/wan/dscc4.c linux-2.6.8-rc2-mm1/drivers/net/wan/dscc4.c
--- linux-2.6.8-rc2-mm1-orig/drivers/net/wan/dscc4.c 2004-07-31 13:09:41.000000000 +0200
+++ linux-2.6.8-rc2-mm1/drivers/net/wan/dscc4.c 2004-08-02 00:21:25.000000000 +0200
@@ -351,8 +351,8 @@ struct dscc4_dev_priv {
#endif

/* Functions prototypes */
-static inline void dscc4_rx_irq(struct dscc4_pci_priv *, struct dscc4_dev_priv *);
-static inline void dscc4_tx_irq(struct dscc4_pci_priv *, struct dscc4_dev_priv *);
+static void dscc4_rx_irq(struct dscc4_pci_priv *, struct dscc4_dev_priv *);
+static void dscc4_tx_irq(struct dscc4_pci_priv *, struct dscc4_dev_priv *);
static int dscc4_found1(struct pci_dev *, unsigned long ioaddr);
static int dscc4_init_one(struct pci_dev *, const struct pci_device_id *ent);
static int dscc4_open(struct net_device *);
@@ -366,7 +366,6 @@ static void dscc4_tx_timeout(struct net_
static irqreturn_t dscc4_irq(int irq, void *dev_id, struct pt_regs *ptregs);
static int dscc4_hdlc_attach(struct net_device *, unsigned short, unsigned short);
static int dscc4_set_iface(struct dscc4_dev_priv *, struct net_device *);
-static inline int dscc4_set_quartz(struct dscc4_dev_priv *, int);
#ifdef DSCC4_POLLING
static int dscc4_tx_poll(struct dscc4_dev_priv *, struct net_device *);
#endif
@@ -866,6 +865,18 @@ static void dscc4_init_registers(struct
//scc_writel(0x00250008 & ~RxActivate, dpriv, dev, CCR2);
}

+static inline int dscc4_set_quartz(struct dscc4_dev_priv *dpriv, int hz)
+{
+ int ret = 0;
+
+ if ((hz < 0) || (hz > DSCC4_HZ_MAX))
+ ret = -EOPNOTSUPP;
+ else
+ dpriv->pci_priv->xtal_hz = hz;
+
+ return ret;
+}
+
static int dscc4_found1(struct pci_dev *pdev, unsigned long ioaddr)
{
struct dscc4_pci_priv *ppriv;
@@ -1340,18 +1351,6 @@ static int dscc4_ioctl(struct net_device
return ret;
}

-static inline int dscc4_set_quartz(struct dscc4_dev_priv *dpriv, int hz)
-{
- int ret = 0;
-
- if ((hz < 0) || (hz > DSCC4_HZ_MAX))
- ret = -EOPNOTSUPP;
- else
- dpriv->pci_priv->xtal_hz = hz;
-
- return ret;
-}
-
static int dscc4_match(struct thingie *p, int value)
{
int i;
@@ -1531,7 +1530,7 @@ out:
return IRQ_RETVAL(handled);
}

-static inline void dscc4_tx_irq(struct dscc4_pci_priv *ppriv,
+static void dscc4_tx_irq(struct dscc4_pci_priv *ppriv,
struct dscc4_dev_priv *dpriv)
{
struct net_device *dev = dscc4_to_dev(dpriv);
@@ -1700,7 +1699,7 @@ try:
goto try;
}

-static inline void dscc4_rx_irq(struct dscc4_pci_priv *priv,
+static void dscc4_rx_irq(struct dscc4_pci_priv *priv,
struct dscc4_dev_priv *dpriv)
{
struct net_device *dev = dscc4_to_dev(dpriv);



--
Jesper Juhl <juhl-lkml@xxxxxx>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/