From: Siva Durga Prasad Paladugu <siva.durga.palad...@xilinx.com>

Based on rfc951 transaction ID has 4 bytes which is not the case when
ulong type is used on ARM64.
Use u32 type which is well defined for all archs.

BOOTP_VENDOR_MAGIC is also 4 bytes.

Based on RFC1048 Time Offset (code 2) is also 4bytes long
and IP Address Lease Time also.

The patch converts NetCopyLong to netcopy32 and NetReadLong to netread32
to follow u-boot coding style.

Signed-off-by: Siva Durga Prasad Paladugu <siva...@xilinx.com>
Signed-off-by: Michal Simek <michal.si...@xilinx.com>
---

 include/net.h | 14 +++++++-------
 net/bootp.c   | 18 +++++++++---------
 net/bootp.h   |  2 +-
 3 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/include/net.h b/include/net.h
index 237c932be334..9b5f8249ddbb 100644
--- a/include/net.h
+++ b/include/net.h
@@ -607,12 +607,12 @@ static inline IPaddr_t NetReadIP(void *from)
        return ip;
 }
 
-/* return ulong *in network byteorder* */
-static inline ulong NetReadLong(ulong *from)
+/* return u32 *in network byteorder* */
+static inline u32 netread32(void *from)
 {
-       ulong l;
+       u32 l;
 
-       memcpy((void *)&l, (void *)from, sizeof(l));
+       memcpy((void *)&l, from, sizeof(u32));
        return l;
 }
 
@@ -628,10 +628,10 @@ static inline void NetCopyIP(void *to, void *from)
        memcpy((void *)to, from, sizeof(IPaddr_t));
 }
 
-/* copy ulong */
-static inline void NetCopyLong(ulong *to, ulong *from)
+/* copy u32 */
+static inline void netcopy32(void *to, void *from)
 {
-       memcpy((void *)to, (void *)from, sizeof(ulong));
+       memcpy(to, from, sizeof(u32));
 }
 
 /**
diff --git a/net/bootp.c b/net/bootp.c
index 81066015f1c2..de0d587228df 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -125,7 +125,7 @@ static int BootpCheckPkt(uchar *pkt, unsigned dest, 
unsigned src, unsigned len)
                retval = -4;
        else if (bp->bp_hlen != HWL_ETHER)
                retval = -5;
-       else if (!bootp_match_id(NetReadLong((ulong *)&bp->bp_id)))
+       else if (!bootp_match_id(netread32(&bp->bp_id)))
                retval = -6;
 
        debug("Filtering pkt = %d\n", retval);
@@ -350,7 +350,7 @@ BootpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, 
unsigned src,
        BootpCopyNetParams(bp);         /* Store net parameters from reply */
 
        /* Retrieve extended information (we must parse the vendor area) */
-       if (NetReadLong((ulong *)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC))
+       if (netread32(&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC))
                BootpVendorProcess((uchar *)&bp->bp_vend[4], len);
 
        NetSetTimeout(0, (thand_f *)0);
@@ -732,7 +732,7 @@ BootpRequest(void)
        BootpID += get_timer(0);
        BootpID = htonl(BootpID);
        bootp_add_id(BootpID);
-       NetCopyLong(&bp->bp_id, &BootpID);
+       netcopy32(&bp->bp_id, &BootpID);
 
        /*
         * Calculate proper packet lengths taking into account the
@@ -770,7 +770,7 @@ static void DhcpOptionsProcess(uchar *popt, struct Bootp_t 
*bp)
 #if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_TIMEOFFSET)
                case 2:         /* Time offset  */
                        to_ptr = &NetTimeOffset;
-                       NetCopyLong((ulong *)to_ptr, (ulong *)(popt + 2));
+                       netcopy32(to_ptr, popt + 2);
                        NetTimeOffset = ntohl(NetTimeOffset);
                        break;
 #endif
@@ -806,7 +806,7 @@ static void DhcpOptionsProcess(uchar *popt, struct Bootp_t 
*bp)
                        break;
 #endif
                case 51:
-                       NetCopyLong(&dhcp_leasetime, (ulong *) (popt + 2));
+                       netcopy32(&dhcp_leasetime, popt + 2);
                        break;
                case 53:        /* Ignore Message Type Option */
                        break;
@@ -860,7 +860,7 @@ static void DhcpOptionsProcess(uchar *popt, struct Bootp_t 
*bp)
 
 static int DhcpMessageType(unsigned char *popt)
 {
-       if (NetReadLong((ulong *)popt) != htonl(BOOTP_VENDOR_MAGIC))
+       if (netread32(popt) != htonl(BOOTP_VENDOR_MAGIC))
                return -1;
 
        popt += 4;
@@ -911,7 +911,7 @@ static void DhcpSendRequestPkt(struct Bootp_t *bp_offer)
         * ID is the id of the OFFER packet
         */
 
-       NetCopyLong(&bp->bp_id, &bp_offer->bp_id);
+       netcopy32(&bp->bp_id, &bp_offer->bp_id);
 
        /*
         * Copy options from OFFER packet if present
@@ -970,7 +970,7 @@ DhcpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, 
unsigned src,
                        debug("TRANSITIONING TO REQUESTING STATE\n");
                        dhcp_state = REQUESTING;
 
-                       if (NetReadLong((ulong *)&bp->bp_vend[0]) ==
+                       if (netread32(&bp->bp_vend[0]) ==
                                                htonl(BOOTP_VENDOR_MAGIC))
                                DhcpOptionsProcess((u8 *)&bp->bp_vend[4], bp);
 
@@ -986,7 +986,7 @@ DhcpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, 
unsigned src,
                debug("DHCP State: REQUESTING\n");
 
                if (DhcpMessageType((u8 *)bp->bp_vend) == DHCP_ACK) {
-                       if (NetReadLong((ulong *)&bp->bp_vend[0]) ==
+                       if (netread32(&bp->bp_vend[0]) ==
                                                htonl(BOOTP_VENDOR_MAGIC))
                                DhcpOptionsProcess((u8 *)&bp->bp_vend[4], bp);
                        /* Store net params from reply */
diff --git a/net/bootp.h b/net/bootp.h
index 3b95a0a2ded8..cc71b2b56dec 100644
--- a/net/bootp.h
+++ b/net/bootp.h
@@ -38,7 +38,7 @@ struct Bootp_t {
        uchar           bp_hlen;        /* Hardware address length      */
 # define HWL_ETHER     6
        uchar           bp_hops;        /* Hop count (gateway thing)    */
-       ulong           bp_id;          /* Transaction ID               */
+       u32             bp_id;          /* Transaction ID               */
        ushort          bp_secs;        /* Seconds since boot           */
        ushort          bp_spare1;      /* Alignment                    */
        IPaddr_t        bp_ciaddr;      /* Client IP address            */
-- 
2.3.5

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to