|
@@ -548,6 +548,10 @@ static int desc_get_rx_status(struct xgmac_priv *priv, struct xgmac_dma_desc *p)
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /* All frames should fit into a single buffer */
|
|
|
|
+ if (!(status & RXDESC_FIRST_SEG) || !(status & RXDESC_LAST_SEG))
|
|
|
|
+ return -1;
|
|
|
|
+
|
|
/* Check if packet has checksum already */
|
|
/* Check if packet has checksum already */
|
|
if ((status & RXDESC_FRAME_TYPE) && (status & RXDESC_EXT_STATUS) &&
|
|
if ((status & RXDESC_FRAME_TYPE) && (status & RXDESC_EXT_STATUS) &&
|
|
!(ext_status & RXDESC_IP_PAYLOAD_MASK))
|
|
!(ext_status & RXDESC_IP_PAYLOAD_MASK))
|