diff --git a/src/ipa/libipa/awb.h b/src/ipa/libipa/awb.h
index a86581adf43e..4bab7a451ce5 100644
--- a/src/ipa/libipa/awb.h
+++ b/src/ipa/libipa/awb.h
@@ -27,6 +27,9 @@ struct AwbResult {
 struct AwbStats {
 	virtual double computeColourError(const RGB<double> &gains) const = 0;
 	virtual RGB<double> rgbMeans() const = 0;
+
+protected:
+	~AwbStats() = default;
 };
 
 class AwbAlgorithm
diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp
index 6f9d454eb88f..eafe93081bb1 100644
--- a/src/ipa/rkisp1/algorithms/awb.cpp
+++ b/src/ipa/rkisp1/algorithms/awb.cpp
@@ -42,7 +42,7 @@ constexpr int32_t kDefaultColourTemperature = 5000;
 /* Minimum mean value below which AWB can't operate. */
 constexpr double kMeanMinThreshold = 2.0;
 
-class RkISP1AwbStats : public AwbStats
+class RkISP1AwbStats final : public AwbStats
 {
 public:
 	RkISP1AwbStats(const RGB<double> &rgbMeans)
