*/
        if (net->skb && net->rx_hdr.frame_count) {
                /* Check the frame count fits the count field */
-               if (frame_count != net->rx_hdr.frame_count) {
+               if (frame_count != le32_to_cpu(net->rx_hdr.frame_count)) {
                        net->stats.rx_length_errors++;
                        return false;
                }
                /* Check the frame identifiers are incremented correctly,
                 * and id is matching.
                 */
-               if (frame_index != net->rx_hdr.frame_index + 1 ||
-                   frame_id != net->rx_hdr.frame_id) {
+               if (frame_index != le16_to_cpu(net->rx_hdr.frame_index) + 1 ||
+                   frame_id != le16_to_cpu(net->rx_hdr.frame_id)) {
                        net->stats.rx_missed_errors++;
                        return false;
                }
                                        TBNET_RX_PAGE_SIZE - hdr_size);
                }
 
-               net->rx_hdr.frame_size = frame_size;
-               net->rx_hdr.frame_count = le32_to_cpu(hdr->frame_count);
-               net->rx_hdr.frame_index = le16_to_cpu(hdr->frame_index);
-               net->rx_hdr.frame_id = le16_to_cpu(hdr->frame_id);
-               last = net->rx_hdr.frame_index == net->rx_hdr.frame_count - 1;
+               net->rx_hdr.frame_size = hdr->frame_size;
+               net->rx_hdr.frame_count = hdr->frame_count;
+               net->rx_hdr.frame_index = hdr->frame_index;
+               net->rx_hdr.frame_id = hdr->frame_id;
+               last = le16_to_cpu(net->rx_hdr.frame_index) ==
+                      le32_to_cpu(net->rx_hdr.frame_count) - 1;
 
                rx_packets++;
                net->stats.rx_bytes += frame_size;