The problem is that we use "CPHY_PORT_COUNT" as the size of the tx_atten[] array, but that's the number of elements and not the number of bytes. I've changed it to use sizeof(tx_atten) instead. The other two calls to memset() were correct but I changed them as well for consistency. Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> --- We don't clear the cphy_base[] array. I don't know the code well enough to say if that is intentional or not. diff --git a/drivers/ata/sata_highbank.c b/drivers/ata/sata_highbank.c index 7f5e5d9..6abe2d5 100644 --- a/drivers/ata/sata_highbank.c +++ b/drivers/ata/sata_highbank.c @@ -347,9 +347,9 @@ static int highbank_initialize_phys(struct device *dev, void __iomem *addr) struct device_node *phy_nodes[CPHY_PHY_COUNT]; u32 tx_atten[CPHY_PORT_COUNT]; - memset(port_data, 0, sizeof(struct phy_lane_info) * CPHY_PORT_COUNT); - memset(phy_nodes, 0, sizeof(struct device_node*) * CPHY_PHY_COUNT); - memset(tx_atten, 0xff, CPHY_PORT_COUNT); + memset(port_data, 0, sizeof(port_data)); + memset(phy_nodes, 0, sizeof(phy_nodes)); + memset(tx_atten, 0xff, sizeof(tx_atten)); do { u32 tmp; -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html