diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/ethosu_buffer.c | 3 | ||||
-rw-r--r-- | kernel/ethosu_inference.c | 2 | ||||
-rw-r--r-- | kernel/ethosu_network.c | 2 |
3 files changed, 7 insertions, 0 deletions
diff --git a/kernel/ethosu_buffer.c b/kernel/ethosu_buffer.c index fb4a8b4..9033f8b 100644 --- a/kernel/ethosu_buffer.c +++ b/kernel/ethosu_buffer.c @@ -75,9 +75,11 @@ static void ethosu_buffer_destroy(struct kref *kref) dev_info(dev, "Buffer destroy. buf=0x%pK", buf); + memset(buf->cpu_addr, 0, buf->capacity); dma_free_coherent(dev, buf->capacity, buf->cpu_addr, buf->dma_addr); + memset(buf, 0, sizeof(*buf)); devm_kfree(dev, buf); } @@ -214,6 +216,7 @@ free_dma: buf->dma_addr); free_buf: + memset(buf, 0, sizeof(*buf)); devm_kfree(dev, buf); return ret; diff --git a/kernel/ethosu_inference.c b/kernel/ethosu_inference.c index bc38236..4dcdc0a 100644 --- a/kernel/ethosu_inference.c +++ b/kernel/ethosu_inference.c @@ -166,6 +166,7 @@ static void ethosu_inference_kref_destroy(struct kref *kref) ethosu_buffer_put(inf->ofm[inf->ofm_count]); ethosu_network_put(inf->net); + memset(inf, 0, sizeof(*inf)); devm_kfree(dev, inf); } @@ -384,6 +385,7 @@ put_ifm: ethosu_buffer_put(inf->ifm[inf->ifm_count]); kfree: + memset(inf, 0, sizeof(*inf)); devm_kfree(dev, inf); return ret; diff --git a/kernel/ethosu_network.c b/kernel/ethosu_network.c index d64d6d7..52f6144 100644 --- a/kernel/ethosu_network.c +++ b/kernel/ethosu_network.c @@ -74,6 +74,7 @@ static void ethosu_network_destroy(struct kref *kref) if (net->buf != NULL) ethosu_buffer_put(net->buf); + memset(net, 0, sizeof(*net)); devm_kfree(dev, net); } @@ -198,6 +199,7 @@ put_buf: ethosu_buffer_put(net->buf); free_net: + memset(net, 0, sizeof(*net)); devm_kfree(dev, net); return ret; |