struct hisi_sas_itct *itct;
 };
 
+struct hisi_sas_debugfs_iost_cache {
+       struct hisi_sas_iost_itct_cache *cache;
+};
+
 struct hisi_hba {
        /* This must be the first element, used by SHOST_TO_SAS_HA */
        struct sas_ha_struct *p;
        struct hisi_sas_debugfs_dq debugfs_dq[HISI_SAS_MAX_QUEUES];
        struct hisi_sas_debugfs_iost debugfs_iost;
        struct hisi_sas_debugfs_itct debugfs_itct;
-       u64 *debugfs_iost_cache;
        u64 debugfs_timestamp;
+       struct hisi_sas_debugfs_iost_cache debugfs_iost_cache;
        u64 *debugfs_itct_cache;
 
        struct dentry *debugfs_dir;
 
 static void hisi_sas_debugfs_snapshot_iost_reg(struct hisi_hba *hisi_hba)
 {
        int max_command_entries = HISI_SAS_MAX_COMMANDS;
-       void *cachebuf = hisi_hba->debugfs_iost_cache;
+       void *cachebuf = hisi_hba->debugfs_iost_cache.cache;
        void *databuf = hisi_hba->debugfs_iost.iost;
        struct hisi_sas_iost *iost;
        int i;
 
 static int hisi_sas_debugfs_iost_cache_show(struct seq_file *s, void *p)
 {
-       struct hisi_hba *hisi_hba = s->private;
-       struct hisi_sas_iost_itct_cache *iost_cache =
-               (struct hisi_sas_iost_itct_cache *)hisi_hba->debugfs_iost_cache;
+       struct hisi_sas_debugfs_iost_cache *debugfs_iost_cache = s->private;
+       struct hisi_sas_iost_itct_cache *iost_cache = debugfs_iost_cache->cache;
        u32 cache_size = HISI_SAS_IOST_ITCT_CACHE_DW_SZ * 4;
        int i, tab_idx;
        __le64 *iost;
                            &hisi_hba->debugfs_iost,
                            &hisi_sas_debugfs_iost_fops);
 
-       debugfs_create_file("iost_cache", 0400, dump_dentry, hisi_hba,
+       debugfs_create_file("iost_cache", 0400, dump_dentry,
+                           &hisi_hba->debugfs_iost_cache,
                            &hisi_sas_debugfs_iost_cache_fops);
 
        debugfs_create_file("itct", 0400, dump_dentry,
        struct device *dev = hisi_hba->dev;
        int i;
 
-       devm_kfree(dev, hisi_hba->debugfs_iost_cache);
+       devm_kfree(dev, hisi_hba->debugfs_iost_cache.cache);
        devm_kfree(dev, hisi_hba->debugfs_itct_cache);
        devm_kfree(dev, hisi_hba->debugfs_iost.iost);
 
        sz = HISI_SAS_IOST_ITCT_CACHE_NUM *
             sizeof(struct hisi_sas_iost_itct_cache);
 
-       hisi_hba->debugfs_iost_cache = devm_kmalloc(dev, sz, GFP_KERNEL);
-       if (!hisi_hba->debugfs_iost_cache)
+       hisi_hba->debugfs_iost_cache.cache = devm_kmalloc(dev, sz, GFP_KERNEL);
+       if (!hisi_hba->debugfs_iost_cache.cache)
                goto fail;
 
        sz = HISI_SAS_IOST_ITCT_CACHE_NUM *