sound/core/oss/mixer_oss.c:312:29: sparse: sparse: incorrect type in initializer (different address spaces)
From: kernel test robot
Date: Mon Jun 29 2020 - 15:37:49 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 9ebcfadb0610322ac537dd7aa5d9cbc2b2894c68
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date: 11 days ago
config: sh-randconfig-s031-20200629 (attached as .config)
compiler: sh4-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.2-3-gfa153962-dirty
git checkout 670d0a4b10704667765f7d18f7592993d02783aa
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C= CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sh
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
sparse warnings: (new ones prefixed by >>)
>> sound/core/oss/mixer_oss.c:312:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/mixer_oss.c:312:29: sparse: expected int const *__gu_addr
>> sound/core/oss/mixer_oss.c:312:29: sparse: got int [noderef] __user *p
>> sound/core/oss/mixer_oss.c:312:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
>> sound/core/oss/mixer_oss.c:312:29: sparse: expected void const volatile [noderef] __user *
sound/core/oss/mixer_oss.c:312:29: sparse: got int const *__gu_addr
sound/core/oss/mixer_oss.c:350:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/mixer_oss.c:350:21: sparse: expected int const *__gu_addr
sound/core/oss/mixer_oss.c:350:21: sparse: got int [noderef] __user *p
sound/core/oss/mixer_oss.c:350:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
sound/core/oss/mixer_oss.c:350:21: sparse: expected void const volatile [noderef] __user *
sound/core/oss/mixer_oss.c:350:21: sparse: got int const *__gu_addr
--
sound/core/oss/pcm_oss.c:884:53: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected int format @@ got restricted snd_pcm_format_t [assigned] [usertype] format @@
sound/core/oss/pcm_oss.c:884:53: sparse: expected int format
sound/core/oss/pcm_oss.c:884:53: sparse: got restricted snd_pcm_format_t [assigned] [usertype] format
sound/core/oss/pcm_oss.c:884:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted snd_pcm_format_t [assigned] [usertype] sformat @@ got int @@
sound/core/oss/pcm_oss.c:884:25: sparse: expected restricted snd_pcm_format_t [assigned] [usertype] sformat
sound/core/oss/pcm_oss.c:884:25: sparse: got int
>> sound/core/oss/pcm_oss.c:2592:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2592:21: sparse: expected int const *__gu_addr
>> sound/core/oss/pcm_oss.c:2592:21: sparse: got int [noderef] __user *p
>> sound/core/oss/pcm_oss.c:2592:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
>> sound/core/oss/pcm_oss.c:2592:21: sparse: expected void const volatile [noderef] __user *
sound/core/oss/pcm_oss.c:2592:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2603:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2603:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2603:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2603:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2603:21: sparse: expected void const volatile [noderef] __user *
sound/core/oss/pcm_oss.c:2603:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2615:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2615:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2615:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2615:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2615:21: sparse: expected void const volatile [noderef] __user *
sound/core/oss/pcm_oss.c:2615:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2627:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2627:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2627:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2627:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2627:21: sparse: expected void const volatile [noderef] __user *
sound/core/oss/pcm_oss.c:2627:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2644:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2644:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2644:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2644:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2644:21: sparse: expected void const volatile [noderef] __user *
sound/core/oss/pcm_oss.c:2644:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2651:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2651:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2651:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2651:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2651:21: sparse: expected void const volatile [noderef] __user *
sound/core/oss/pcm_oss.c:2651:21: sparse: got int const *__gu_addr
sound/core/oss/pcm_oss.c:2678:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *p @@
sound/core/oss/pcm_oss.c:2678:21: sparse: expected int const *__gu_addr
sound/core/oss/pcm_oss.c:2678:21: sparse: got int [noderef] __user *p
sound/core/oss/pcm_oss.c:2678:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
sound/core/oss/pcm_oss.c:2678:21: sparse: expected void const volatile [noderef] __user *
sound/core/oss/pcm_oss.c:2678:21: sparse: got int const *__gu_addr
--
fs/cifs/dfs_cache.c:194:14: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected char const *__gu_addr @@ got char const [noderef] __user *buffer @@
fs/cifs/dfs_cache.c:194:14: sparse: expected char const *__gu_addr
fs/cifs/dfs_cache.c:194:14: sparse: got char const [noderef] __user *buffer
>> fs/cifs/dfs_cache.c:194:14: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got char const *__gu_addr @@
>> fs/cifs/dfs_cache.c:194:14: sparse: expected void const volatile [noderef] __user *
fs/cifs/dfs_cache.c:194:14: sparse: got char const *__gu_addr
--
fs/f2fs/file.c:47:54: sparse: sparse: cast from restricted vm_fault_t
fs/f2fs/file.c:1976:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user * @@
fs/f2fs/file.c:1976:13: sparse: expected int const *__gu_addr
fs/f2fs/file.c:1976:13: sparse: got int [noderef] __user *
>> fs/f2fs/file.c:1976:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
>> fs/f2fs/file.c:1976:13: sparse: expected void const volatile [noderef] __user *
fs/f2fs/file.c:1976:13: sparse: got int const *__gu_addr
fs/f2fs/file.c:2230:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user * @@
fs/f2fs/file.c:2230:13: sparse: expected unsigned int const *__gu_addr
fs/f2fs/file.c:2230:13: sparse: got unsigned int [noderef] [usertype] __user *
>> fs/f2fs/file.c:2230:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@
fs/f2fs/file.c:2230:13: sparse: expected void const volatile [noderef] __user *
fs/f2fs/file.c:2230:13: sparse: got unsigned int const *__gu_addr
fs/f2fs/file.c:2467:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user * @@
fs/f2fs/file.c:2467:13: sparse: expected unsigned int const *__gu_addr
fs/f2fs/file.c:2467:13: sparse: got unsigned int [noderef] [usertype] __user *
fs/f2fs/file.c:2467:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@
fs/f2fs/file.c:2467:13: sparse: expected void const volatile [noderef] __user *
fs/f2fs/file.c:2467:13: sparse: got unsigned int const *__gu_addr
fs/f2fs/file.c:3222:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user * @@
fs/f2fs/file.c:3222:13: sparse: expected unsigned int const *__gu_addr
fs/f2fs/file.c:3222:13: sparse: got unsigned int [noderef] [usertype] __user *
fs/f2fs/file.c:3222:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@
fs/f2fs/file.c:3222:13: sparse: expected void const volatile [noderef] __user *
fs/f2fs/file.c:3222:13: sparse: got unsigned int const *__gu_addr
fs/f2fs/file.c:3375:36: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short const [usertype] *pwcs @@ got restricted __le16 * @@
fs/f2fs/file.c:3375:36: sparse: expected unsigned short const [usertype] *pwcs
fs/f2fs/file.c:3375:36: sparse: got restricted __le16 *
fs/f2fs/file.c:3411:28: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected unsigned short [usertype] *pwcs @@ got restricted __le16 * @@
fs/f2fs/file.c:3411:28: sparse: expected unsigned short [usertype] *pwcs
fs/f2fs/file.c:3411:28: sparse: got restricted __le16 *
--
drivers/vhost/scsi.c:1218:30: sparse: sparse: restricted __virtio32 degrades to integer
drivers/vhost/scsi.c:1218:30: sparse: sparse: restricted __virtio32 degrades to integer
>> drivers/vhost/scsi.c:1697:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user *eventsp @@
drivers/vhost/scsi.c:1697:21: sparse: expected unsigned int const *__gu_addr
>> drivers/vhost/scsi.c:1697:21: sparse: got unsigned int [noderef] [usertype] __user *eventsp
>> drivers/vhost/scsi.c:1697:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@
>> drivers/vhost/scsi.c:1697:21: sparse: expected void const volatile [noderef] __user *
drivers/vhost/scsi.c:1697:21: sparse: got unsigned int const *__gu_addr
--
>> drivers/vhost/vhost.c:1564:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user *idxp @@
drivers/vhost/vhost.c:1564:13: sparse: expected unsigned int const *__gu_addr
>> drivers/vhost/vhost.c:1564:13: sparse: got unsigned int [noderef] [usertype] __user *idxp
>> drivers/vhost/vhost.c:1564:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@
>> drivers/vhost/vhost.c:1564:13: sparse: expected void const volatile [noderef] __user *
drivers/vhost/vhost.c:1564:13: sparse: got unsigned int const *__gu_addr
>> drivers/vhost/vhost.c:1761:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user * @@
drivers/vhost/vhost.c:1761:21: sparse: expected int const *__gu_addr
>> drivers/vhost/vhost.c:1761:21: sparse: got int [noderef] __user *
>> drivers/vhost/vhost.c:1761:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got int const *__gu_addr @@
drivers/vhost/vhost.c:1761:21: sparse: expected void const volatile [noderef] __user *
drivers/vhost/vhost.c:1761:21: sparse: got int const *__gu_addr
--
>> drivers/vhost/vdpa.c:346:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] [usertype] __user * @@
drivers/vhost/vdpa.c:346:13: sparse: expected unsigned int const *__gu_addr
>> drivers/vhost/vdpa.c:346:13: sparse: got unsigned int [noderef] [usertype] __user *
>> drivers/vhost/vdpa.c:346:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int const *__gu_addr @@
>> drivers/vhost/vdpa.c:346:13: sparse: expected void const volatile [noderef] __user *
drivers/vhost/vdpa.c:346:13: sparse: got unsigned int const *__gu_addr
vim +312 sound/core/oss/mixer_oss.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 296
f956b4a3ae790e Takashi Iwai 2005-11-17 297 static int snd_mixer_oss_ioctl1(struct snd_mixer_oss_file *fmixer, unsigned int cmd, unsigned long arg)
^1da177e4c3f41 Linus Torvalds 2005-04-16 298 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 299 void __user *argp = (void __user *)arg;
^1da177e4c3f41 Linus Torvalds 2005-04-16 300 int __user *p = argp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 301 int tmp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 302
7eaa943c8ed8e9 Takashi Iwai 2008-08-08 303 if (snd_BUG_ON(!fmixer))
7eaa943c8ed8e9 Takashi Iwai 2008-08-08 304 return -ENXIO;
^1da177e4c3f41 Linus Torvalds 2005-04-16 305 if (((cmd >> 8) & 0xff) == 'M') {
^1da177e4c3f41 Linus Torvalds 2005-04-16 306 switch (cmd) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 307 case SOUND_MIXER_INFO:
^1da177e4c3f41 Linus Torvalds 2005-04-16 308 return snd_mixer_oss_info(fmixer, argp);
^1da177e4c3f41 Linus Torvalds 2005-04-16 309 case SOUND_OLD_MIXER_INFO:
^1da177e4c3f41 Linus Torvalds 2005-04-16 310 return snd_mixer_oss_info_obsolete(fmixer, argp);
^1da177e4c3f41 Linus Torvalds 2005-04-16 311 case SOUND_MIXER_WRITE_RECSRC:
^1da177e4c3f41 Linus Torvalds 2005-04-16 @312 if (get_user(tmp, p))
^1da177e4c3f41 Linus Torvalds 2005-04-16 313 return -EFAULT;
^1da177e4c3f41 Linus Torvalds 2005-04-16 314 tmp = snd_mixer_oss_set_recsrc(fmixer, tmp);
^1da177e4c3f41 Linus Torvalds 2005-04-16 315 if (tmp < 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16 316 return tmp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 317 return put_user(tmp, p);
^1da177e4c3f41 Linus Torvalds 2005-04-16 318 case OSS_GETVERSION:
^1da177e4c3f41 Linus Torvalds 2005-04-16 319 return put_user(SNDRV_OSS_VERSION, p);
^1da177e4c3f41 Linus Torvalds 2005-04-16 320 case OSS_ALSAEMULVER:
^1da177e4c3f41 Linus Torvalds 2005-04-16 321 return put_user(1, p);
^1da177e4c3f41 Linus Torvalds 2005-04-16 322 case SOUND_MIXER_READ_DEVMASK:
^1da177e4c3f41 Linus Torvalds 2005-04-16 323 tmp = snd_mixer_oss_devmask(fmixer);
^1da177e4c3f41 Linus Torvalds 2005-04-16 324 if (tmp < 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16 325 return tmp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 326 return put_user(tmp, p);
^1da177e4c3f41 Linus Torvalds 2005-04-16 327 case SOUND_MIXER_READ_STEREODEVS:
^1da177e4c3f41 Linus Torvalds 2005-04-16 328 tmp = snd_mixer_oss_stereodevs(fmixer);
^1da177e4c3f41 Linus Torvalds 2005-04-16 329 if (tmp < 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16 330 return tmp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 331 return put_user(tmp, p);
^1da177e4c3f41 Linus Torvalds 2005-04-16 332 case SOUND_MIXER_READ_RECMASK:
^1da177e4c3f41 Linus Torvalds 2005-04-16 333 tmp = snd_mixer_oss_recmask(fmixer);
^1da177e4c3f41 Linus Torvalds 2005-04-16 334 if (tmp < 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16 335 return tmp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 336 return put_user(tmp, p);
^1da177e4c3f41 Linus Torvalds 2005-04-16 337 case SOUND_MIXER_READ_CAPS:
^1da177e4c3f41 Linus Torvalds 2005-04-16 338 tmp = snd_mixer_oss_caps(fmixer);
^1da177e4c3f41 Linus Torvalds 2005-04-16 339 if (tmp < 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16 340 return tmp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 341 return put_user(tmp, p);
^1da177e4c3f41 Linus Torvalds 2005-04-16 342 case SOUND_MIXER_READ_RECSRC:
^1da177e4c3f41 Linus Torvalds 2005-04-16 343 tmp = snd_mixer_oss_get_recsrc(fmixer);
^1da177e4c3f41 Linus Torvalds 2005-04-16 344 if (tmp < 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16 345 return tmp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 346 return put_user(tmp, p);
^1da177e4c3f41 Linus Torvalds 2005-04-16 347 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 348 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 349 if (cmd & SIOC_IN) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 350 if (get_user(tmp, p))
^1da177e4c3f41 Linus Torvalds 2005-04-16 351 return -EFAULT;
^1da177e4c3f41 Linus Torvalds 2005-04-16 352 tmp = snd_mixer_oss_set_volume(fmixer, cmd & 0xff, tmp);
^1da177e4c3f41 Linus Torvalds 2005-04-16 353 if (tmp < 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16 354 return tmp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 355 return put_user(tmp, p);
^1da177e4c3f41 Linus Torvalds 2005-04-16 356 } else if (cmd & SIOC_OUT) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 357 tmp = snd_mixer_oss_get_volume(fmixer, cmd & 0xff);
^1da177e4c3f41 Linus Torvalds 2005-04-16 358 if (tmp < 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16 359 return tmp;
^1da177e4c3f41 Linus Torvalds 2005-04-16 360 return put_user(tmp, p);
^1da177e4c3f41 Linus Torvalds 2005-04-16 361 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 362 return -ENXIO;
^1da177e4c3f41 Linus Torvalds 2005-04-16 363 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 364
:::::: The code at line 312 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip