net/wan/fsl_ucc_hdlc: avoid use of IS_ERR_VALUE()
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Thu, 28 Nov 2019 14:55:49 +0000 (15:55 +0100)
committerLi Yang <leoyang.li@nxp.com>
Mon, 9 Dec 2019 19:57:45 +0000 (13:57 -0600)
When building this on a 64-bit platform gcc rightly warns that the
error checking is broken (-ENOMEM stored in an u32 does not compare
greater than (unsigned long)-MAX_ERRNO). Instead, now that
qe_muram_alloc() returns s32, use that type to store the return value
and use standard kernel style "ret < 0".

Reviewed-by: Timur Tabi <timur@kernel.org>
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
drivers/net/wan/fsl_ucc_hdlc.c
drivers/net/wan/fsl_ucc_hdlc.h

index ce6af7d..405b24a 100644 (file)
@@ -84,8 +84,8 @@ static int uhdlc_init(struct ucc_hdlc_private *priv)
        int ret, i;
        void *bd_buffer;
        dma_addr_t bd_dma_addr;
-       u32 riptr;
-       u32 tiptr;
+       s32 riptr;
+       s32 tiptr;
        u32 gumr;
 
        ut_info = priv->ut_info;
@@ -195,7 +195,7 @@ static int uhdlc_init(struct ucc_hdlc_private *priv)
        priv->ucc_pram_offset = qe_muram_alloc(sizeof(struct ucc_hdlc_param),
                                ALIGNMENT_OF_UCC_HDLC_PRAM);
 
-       if (IS_ERR_VALUE(priv->ucc_pram_offset)) {
+       if (priv->ucc_pram_offset < 0) {
                dev_err(priv->dev, "Can not allocate MURAM for hdlc parameter.\n");
                ret = -ENOMEM;
                goto free_tx_bd;
@@ -233,14 +233,14 @@ static int uhdlc_init(struct ucc_hdlc_private *priv)
 
        /* Alloc riptr, tiptr */
        riptr = qe_muram_alloc(32, 32);
-       if (IS_ERR_VALUE(riptr)) {
+       if (riptr < 0) {
                dev_err(priv->dev, "Cannot allocate MURAM mem for Receive internal temp data pointer\n");
                ret = -ENOMEM;
                goto free_tx_skbuff;
        }
 
        tiptr = qe_muram_alloc(32, 32);
-       if (IS_ERR_VALUE(tiptr)) {
+       if (tiptr < 0) {
                dev_err(priv->dev, "Cannot allocate MURAM mem for Transmit internal temp data pointer\n");
                ret = -ENOMEM;
                goto free_riptr;
index 8b3507a..71d5ad0 100644 (file)
@@ -98,7 +98,7 @@ struct ucc_hdlc_private {
 
        unsigned short tx_ring_size;
        unsigned short rx_ring_size;
-       u32 ucc_pram_offset;
+       s32 ucc_pram_offset;
 
        unsigned short encoding;
        unsigned short parity;