Hi Konstantin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.10-rc4 next-20201120]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201121-001320
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
4d02da974ea85a62074efedf354e82778f910d82
config: arm64-randconfig-s031-20201120 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-134-gb59dbdaf-dirty
        # 
https://github.com/0day-ci/linux/commit/af7bf0c625d20c0ebe8b4c180b4422b2a37a9dd5
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201121-001320
        git checkout af7bf0c625d20c0ebe8b4c180b4422b2a37a9dd5
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


"sparse warnings: (new ones prefixed by >>)"
>> fs/ntfs3/super.c:1251:34: sparse: sparse: cast to restricted __le16
>> fs/ntfs3/super.c:1251:34: sparse: sparse: cast to restricted __le16
>> fs/ntfs3/super.c:1251:34: sparse: sparse: cast to restricted __le16
>> fs/ntfs3/super.c:1251:34: sparse: sparse: cast to restricted __le16

vim +1251 fs/ntfs3/super.c

c7374db749d575f Konstantin Komarov 2020-11-20  1132  
c7374db749d575f Konstantin Komarov 2020-11-20  1133     /* Check bitmap 
boundary */
c7374db749d575f Konstantin Komarov 2020-11-20  1134     tt = 
sbi->used.bitmap.nbits;
c7374db749d575f Konstantin Komarov 2020-11-20  1135     if (inode->i_size < 
bitmap_size(tt)) {
c7374db749d575f Konstantin Komarov 2020-11-20  1136             err = -EINVAL;
c7374db749d575f Konstantin Komarov 2020-11-20  1137             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1138     }
c7374db749d575f Konstantin Komarov 2020-11-20  1139  
c7374db749d575f Konstantin Komarov 2020-11-20  1140     /* Not necessary */
c7374db749d575f Konstantin Komarov 2020-11-20  1141     
sbi->used.bitmap.set_tail = true;
c7374db749d575f Konstantin Komarov 2020-11-20  1142     err = 
wnd_init(&sbi->used.bitmap, sbi->sb, tt);
c7374db749d575f Konstantin Komarov 2020-11-20  1143     if (err)
c7374db749d575f Konstantin Komarov 2020-11-20  1144             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1145  
c7374db749d575f Konstantin Komarov 2020-11-20  1146     iput(inode);
c7374db749d575f Konstantin Komarov 2020-11-20  1147  
c7374db749d575f Konstantin Komarov 2020-11-20  1148     /* Compute the mft zone 
*/
c7374db749d575f Konstantin Komarov 2020-11-20  1149     err = 
ntfs_refresh_zone(sbi);
c7374db749d575f Konstantin Komarov 2020-11-20  1150     if (err)
c7374db749d575f Konstantin Komarov 2020-11-20  1151             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1152  
c7374db749d575f Konstantin Komarov 2020-11-20  1153     /* Load $AttrDef */
c7374db749d575f Konstantin Komarov 2020-11-20  1154     ref.low = 
cpu_to_le32(MFT_REC_ATTR);
c7374db749d575f Konstantin Komarov 2020-11-20  1155     ref.seq = 
cpu_to_le16(MFT_REC_ATTR);
c7374db749d575f Konstantin Komarov 2020-11-20  1156     inode = 
ntfs_iget5(sbi->sb, &ref, &NAME_ATTRDEF);
c7374db749d575f Konstantin Komarov 2020-11-20  1157     if (IS_ERR(inode)) {
c7374db749d575f Konstantin Komarov 2020-11-20  1158             err = 
PTR_ERR(inode);
c7374db749d575f Konstantin Komarov 2020-11-20  1159             ntfs_err(sb, 
"Failed to load $AttrDef -> %d", err);
c7374db749d575f Konstantin Komarov 2020-11-20  1160             inode = NULL;
c7374db749d575f Konstantin Komarov 2020-11-20  1161             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1162     }
c7374db749d575f Konstantin Komarov 2020-11-20  1163  
c7374db749d575f Konstantin Komarov 2020-11-20  1164     if (inode->i_size < 
sizeof(struct ATTR_DEF_ENTRY)) {
c7374db749d575f Konstantin Komarov 2020-11-20  1165             err = -EINVAL;
c7374db749d575f Konstantin Komarov 2020-11-20  1166             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1167     }
c7374db749d575f Konstantin Komarov 2020-11-20  1168     bytes = inode->i_size;
c7374db749d575f Konstantin Komarov 2020-11-20  1169     sbi->def_table = t = 
ntfs_alloc(bytes, 0);
c7374db749d575f Konstantin Komarov 2020-11-20  1170     if (!t) {
c7374db749d575f Konstantin Komarov 2020-11-20  1171             err = -ENOMEM;
c7374db749d575f Konstantin Komarov 2020-11-20  1172             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1173     }
c7374db749d575f Konstantin Komarov 2020-11-20  1174  
c7374db749d575f Konstantin Komarov 2020-11-20  1175     for (done = idx = 0; 
done < bytes; done += PAGE_SIZE, idx++) {
c7374db749d575f Konstantin Komarov 2020-11-20  1176             unsigned long 
tail = bytes - done;
c7374db749d575f Konstantin Komarov 2020-11-20  1177             struct page 
*page = ntfs_map_page(inode->i_mapping, idx);
c7374db749d575f Konstantin Komarov 2020-11-20  1178  
c7374db749d575f Konstantin Komarov 2020-11-20  1179             if 
(IS_ERR(page)) {
c7374db749d575f Konstantin Komarov 2020-11-20  1180                     err = 
PTR_ERR(page);
c7374db749d575f Konstantin Komarov 2020-11-20  1181                     goto 
out;
c7374db749d575f Konstantin Komarov 2020-11-20  1182             }
c7374db749d575f Konstantin Komarov 2020-11-20  1183             
memcpy(Add2Ptr(t, done), page_address(page),
c7374db749d575f Konstantin Komarov 2020-11-20  1184                    
min(PAGE_SIZE, tail));
c7374db749d575f Konstantin Komarov 2020-11-20  1185             
ntfs_unmap_page(page);
c7374db749d575f Konstantin Komarov 2020-11-20  1186  
c7374db749d575f Konstantin Komarov 2020-11-20  1187             if (!idx && 
ATTR_STD != t->type) {
c7374db749d575f Konstantin Komarov 2020-11-20  1188                     err = 
-EINVAL;
c7374db749d575f Konstantin Komarov 2020-11-20  1189                     goto 
out;
c7374db749d575f Konstantin Komarov 2020-11-20  1190             }
c7374db749d575f Konstantin Komarov 2020-11-20  1191     }
c7374db749d575f Konstantin Komarov 2020-11-20  1192  
c7374db749d575f Konstantin Komarov 2020-11-20  1193     t += 1;
c7374db749d575f Konstantin Komarov 2020-11-20  1194     sbi->def_entries = 1;
c7374db749d575f Konstantin Komarov 2020-11-20  1195     done = sizeof(struct 
ATTR_DEF_ENTRY);
c7374db749d575f Konstantin Komarov 2020-11-20  1196     sbi->reparse.max_size = 
MAXIMUM_REPARSE_DATA_BUFFER_SIZE;
c7374db749d575f Konstantin Komarov 2020-11-20  1197  
c7374db749d575f Konstantin Komarov 2020-11-20  1198     while (done + 
sizeof(struct ATTR_DEF_ENTRY) <= bytes) {
c7374db749d575f Konstantin Komarov 2020-11-20  1199             u32 t32 = 
le32_to_cpu(t->type);
c7374db749d575f Konstantin Komarov 2020-11-20  1200  
c7374db749d575f Konstantin Komarov 2020-11-20  1201             if ((t32 & 0xF) 
|| le32_to_cpu(t[-1].type) >= t32)
c7374db749d575f Konstantin Komarov 2020-11-20  1202                     break;
c7374db749d575f Konstantin Komarov 2020-11-20  1203  
c7374db749d575f Konstantin Komarov 2020-11-20  1204             if (t->type == 
ATTR_REPARSE)
c7374db749d575f Konstantin Komarov 2020-11-20  1205                     
sbi->reparse.max_size = le64_to_cpu(t->max_sz);
c7374db749d575f Konstantin Komarov 2020-11-20  1206  
c7374db749d575f Konstantin Komarov 2020-11-20  1207             done += 
sizeof(struct ATTR_DEF_ENTRY);
c7374db749d575f Konstantin Komarov 2020-11-20  1208             t += 1;
c7374db749d575f Konstantin Komarov 2020-11-20  1209             
sbi->def_entries += 1;
c7374db749d575f Konstantin Komarov 2020-11-20  1210     }
c7374db749d575f Konstantin Komarov 2020-11-20  1211     iput(inode);
c7374db749d575f Konstantin Komarov 2020-11-20  1212  
c7374db749d575f Konstantin Komarov 2020-11-20  1213     /* Load $UpCase */
c7374db749d575f Konstantin Komarov 2020-11-20  1214     ref.low = 
cpu_to_le32(MFT_REC_UPCASE);
c7374db749d575f Konstantin Komarov 2020-11-20  1215     ref.seq = 
cpu_to_le16(MFT_REC_UPCASE);
c7374db749d575f Konstantin Komarov 2020-11-20  1216     inode = ntfs_iget5(sb, 
&ref, &NAME_UPCASE);
c7374db749d575f Konstantin Komarov 2020-11-20  1217     if (IS_ERR(inode)) {
c7374db749d575f Konstantin Komarov 2020-11-20  1218             err = 
PTR_ERR(inode);
c7374db749d575f Konstantin Komarov 2020-11-20  1219             ntfs_err(sb, 
"Failed to load $LogFile.");
c7374db749d575f Konstantin Komarov 2020-11-20  1220             inode = NULL;
c7374db749d575f Konstantin Komarov 2020-11-20  1221             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1222     }
c7374db749d575f Konstantin Komarov 2020-11-20  1223  
c7374db749d575f Konstantin Komarov 2020-11-20  1224     ni = ntfs_i(inode);
c7374db749d575f Konstantin Komarov 2020-11-20  1225  
c7374db749d575f Konstantin Komarov 2020-11-20  1226     if (inode->i_size != 
0x10000 * sizeof(short)) {
c7374db749d575f Konstantin Komarov 2020-11-20  1227             err = -EINVAL;
c7374db749d575f Konstantin Komarov 2020-11-20  1228             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1229     }
c7374db749d575f Konstantin Komarov 2020-11-20  1230  
c7374db749d575f Konstantin Komarov 2020-11-20  1231     sbi->upcase = upcase = 
ntfs_alloc(0x10000 * sizeof(short), 0);
c7374db749d575f Konstantin Komarov 2020-11-20  1232     if (!upcase) {
c7374db749d575f Konstantin Komarov 2020-11-20  1233             err = -ENOMEM;
c7374db749d575f Konstantin Komarov 2020-11-20  1234             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1235     }
c7374db749d575f Konstantin Komarov 2020-11-20  1236  
c7374db749d575f Konstantin Komarov 2020-11-20  1237     for (idx = 0; idx < 
(0x10000 * sizeof(short) >> PAGE_SHIFT); idx++) {
c7374db749d575f Konstantin Komarov 2020-11-20  1238             const u16 *src;
c7374db749d575f Konstantin Komarov 2020-11-20  1239             u16 *dst = 
Add2Ptr(upcase, idx << PAGE_SHIFT);
c7374db749d575f Konstantin Komarov 2020-11-20  1240             struct page 
*page = ntfs_map_page(inode->i_mapping, idx);
c7374db749d575f Konstantin Komarov 2020-11-20  1241  
c7374db749d575f Konstantin Komarov 2020-11-20  1242             if 
(IS_ERR(page)) {
c7374db749d575f Konstantin Komarov 2020-11-20  1243                     err = 
PTR_ERR(page);
c7374db749d575f Konstantin Komarov 2020-11-20  1244                     goto 
out;
c7374db749d575f Konstantin Komarov 2020-11-20  1245             }
c7374db749d575f Konstantin Komarov 2020-11-20  1246  
c7374db749d575f Konstantin Komarov 2020-11-20  1247             src = 
page_address(page);
c7374db749d575f Konstantin Komarov 2020-11-20  1248  
c7374db749d575f Konstantin Komarov 2020-11-20  1249  #ifdef __BIG_ENDIAN
c7374db749d575f Konstantin Komarov 2020-11-20  1250             for (i = 0; i < 
PAGE_SIZE / sizeof(u16); i++)
c7374db749d575f Konstantin Komarov 2020-11-20 @1251                     *dst++ 
= le16_to_cpu(*src++);
c7374db749d575f Konstantin Komarov 2020-11-20  1252  #else
c7374db749d575f Konstantin Komarov 2020-11-20  1253             memcpy(dst, 
src, PAGE_SIZE);
c7374db749d575f Konstantin Komarov 2020-11-20  1254  #endif
c7374db749d575f Konstantin Komarov 2020-11-20  1255             
ntfs_unmap_page(page);
c7374db749d575f Konstantin Komarov 2020-11-20  1256     }
c7374db749d575f Konstantin Komarov 2020-11-20  1257  
c7374db749d575f Konstantin Komarov 2020-11-20  1258     shared = 
ntfs_set_shared(upcase, 0x10000 * sizeof(short));
c7374db749d575f Konstantin Komarov 2020-11-20  1259     if (shared && upcase != 
shared) {
c7374db749d575f Konstantin Komarov 2020-11-20  1260             sbi->upcase = 
shared;
c7374db749d575f Konstantin Komarov 2020-11-20  1261             
ntfs_free(upcase);
c7374db749d575f Konstantin Komarov 2020-11-20  1262     }
c7374db749d575f Konstantin Komarov 2020-11-20  1263  
c7374db749d575f Konstantin Komarov 2020-11-20  1264     iput(inode);
c7374db749d575f Konstantin Komarov 2020-11-20  1265     inode = NULL;
c7374db749d575f Konstantin Komarov 2020-11-20  1266  
c7374db749d575f Konstantin Komarov 2020-11-20  1267     if (is_ntfs3(sbi)) {
c7374db749d575f Konstantin Komarov 2020-11-20  1268             /* Load $Secure 
*/
c7374db749d575f Konstantin Komarov 2020-11-20  1269             err = 
ntfs_security_init(sbi);
c7374db749d575f Konstantin Komarov 2020-11-20  1270             if (err)
c7374db749d575f Konstantin Komarov 2020-11-20  1271                     goto 
out;
c7374db749d575f Konstantin Komarov 2020-11-20  1272  
c7374db749d575f Konstantin Komarov 2020-11-20  1273             /* Load $Extend 
*/
c7374db749d575f Konstantin Komarov 2020-11-20  1274             err = 
ntfs_extend_init(sbi);
c7374db749d575f Konstantin Komarov 2020-11-20  1275             if (err)
c7374db749d575f Konstantin Komarov 2020-11-20  1276                     goto 
load_root;
c7374db749d575f Konstantin Komarov 2020-11-20  1277  
c7374db749d575f Konstantin Komarov 2020-11-20  1278             /* Load 
$Extend\$Reparse */
c7374db749d575f Konstantin Komarov 2020-11-20  1279             err = 
ntfs_reparse_init(sbi);
c7374db749d575f Konstantin Komarov 2020-11-20  1280             if (err)
c7374db749d575f Konstantin Komarov 2020-11-20  1281                     goto 
load_root;
c7374db749d575f Konstantin Komarov 2020-11-20  1282  
c7374db749d575f Konstantin Komarov 2020-11-20  1283             /* Load 
$Extend\$ObjId */
c7374db749d575f Konstantin Komarov 2020-11-20  1284             err = 
ntfs_objid_init(sbi);
c7374db749d575f Konstantin Komarov 2020-11-20  1285             if (err)
c7374db749d575f Konstantin Komarov 2020-11-20  1286                     goto 
load_root;
c7374db749d575f Konstantin Komarov 2020-11-20  1287     }
c7374db749d575f Konstantin Komarov 2020-11-20  1288  
c7374db749d575f Konstantin Komarov 2020-11-20  1289  load_root:
c7374db749d575f Konstantin Komarov 2020-11-20  1290  
c7374db749d575f Konstantin Komarov 2020-11-20  1291     /* Load root */
c7374db749d575f Konstantin Komarov 2020-11-20  1292     ref.low = 
cpu_to_le32(MFT_REC_ROOT);
c7374db749d575f Konstantin Komarov 2020-11-20  1293     ref.seq = 
cpu_to_le16(MFT_REC_ROOT);
c7374db749d575f Konstantin Komarov 2020-11-20  1294     inode = ntfs_iget5(sb, 
&ref, &NAME_ROOT);
c7374db749d575f Konstantin Komarov 2020-11-20  1295     if (IS_ERR(inode)) {
c7374db749d575f Konstantin Komarov 2020-11-20  1296             err = 
PTR_ERR(inode);
c7374db749d575f Konstantin Komarov 2020-11-20  1297             ntfs_err(sb, 
"Failed to load root.");
c7374db749d575f Konstantin Komarov 2020-11-20  1298             inode = NULL;
c7374db749d575f Konstantin Komarov 2020-11-20  1299             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1300     }
c7374db749d575f Konstantin Komarov 2020-11-20  1301  
c7374db749d575f Konstantin Komarov 2020-11-20  1302     ni = ntfs_i(inode);
c7374db749d575f Konstantin Komarov 2020-11-20  1303  
c7374db749d575f Konstantin Komarov 2020-11-20  1304     sb->s_root = 
d_make_root(inode);
c7374db749d575f Konstantin Komarov 2020-11-20  1305  
c7374db749d575f Konstantin Komarov 2020-11-20  1306     if (!sb->s_root) {
c7374db749d575f Konstantin Komarov 2020-11-20  1307             err = -EINVAL;
c7374db749d575f Konstantin Komarov 2020-11-20  1308             goto out;
c7374db749d575f Konstantin Komarov 2020-11-20  1309     }
c7374db749d575f Konstantin Komarov 2020-11-20  1310  
c7374db749d575f Konstantin Komarov 2020-11-20  1311     return 0;
c7374db749d575f Konstantin Komarov 2020-11-20  1312  
c7374db749d575f Konstantin Komarov 2020-11-20  1313  out:
c7374db749d575f Konstantin Komarov 2020-11-20  1314     iput(inode);
c7374db749d575f Konstantin Komarov 2020-11-20  1315  
c7374db749d575f Konstantin Komarov 2020-11-20  1316     if (sb->s_root) {
c7374db749d575f Konstantin Komarov 2020-11-20  1317             
d_drop(sb->s_root);
c7374db749d575f Konstantin Komarov 2020-11-20  1318             sb->s_root = 
NULL;
c7374db749d575f Konstantin Komarov 2020-11-20  1319     }
c7374db749d575f Konstantin Komarov 2020-11-20  1320  
c7374db749d575f Konstantin Komarov 2020-11-20  1321     put_ntfs(sbi);
c7374db749d575f Konstantin Komarov 2020-11-20  1322  
c7374db749d575f Konstantin Komarov 2020-11-20  1323     sb->s_fs_info = NULL;
c7374db749d575f Konstantin Komarov 2020-11-20  1324     return err;
c7374db749d575f Konstantin Komarov 2020-11-20  1325  }
c7374db749d575f Konstantin Komarov 2020-11-20  1326  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to