lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202206171849.CWMWuyjV-lkp@intel.com>
Date:   Fri, 17 Jun 2022 18:11:19 +0800
From:   kernel test robot <lkp@...el.com>
To:     Matthew Auld <matthew.auld@...el.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Joonas Lahtinen <joonas.lahtinen@...ux.intel.com>,
        Chris Wilson <chris@...is-wilson.co.uk>,
        Dominik Behr <dbehr@...omium.org>,
        Stéphane Marchesin <marcheu@...omium.org>
Subject: [jsarha:topic/cros-sof-v4.14 721/9354] mm/shmem.c:4284:14: warning:
 no previous declaration for 'shmem_file_setup_with_mnt'

Hi Matthew,

FYI, the error/warning still remains.

tree:   https://github.com/jsarha/linux topic/cros-sof-v4.14
head:   6f750b16c322c9191168a3a97c427c90581d9144
commit: e29409586a0344a13ac2258d76df738f10772cff [721/9354] UPSTREAM: mm/shmem: introduce shmem_file_setup_with_mnt
config: i386-tinyconfig (https://download.01.org/0day-ci/archive/20220617/202206171849.CWMWuyjV-lkp@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build):
        # https://github.com/jsarha/linux/commit/e29409586a0344a13ac2258d76df738f10772cff
        git remote add jsarha https://github.com/jsarha/linux
        git fetch --no-tags jsarha topic/cros-sof-v4.14
        git checkout e29409586a0344a13ac2258d76df738f10772cff
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

   mm/shmem.c:4133:12: warning: no previous declaration for 'shmem_init' [-Wmissing-declarations]
    int __init shmem_init(void)
               ^~~~~~~~~~
   mm/shmem.c:4143:5: warning: no previous declaration for 'shmem_unuse' [-Wmissing-declarations]
    int shmem_unuse(swp_entry_t swap, struct page *page)
        ^~~~~~~~~~~
   mm/shmem.c:4148:5: warning: no previous declaration for 'shmem_lock' [-Wmissing-declarations]
    int shmem_lock(struct file *file, int lock, struct user_struct *user)
        ^~~~~~~~~~
   mm/shmem.c:4153:6: warning: no previous declaration for 'shmem_unlock_mapping' [-Wmissing-declarations]
    void shmem_unlock_mapping(struct address_space *mapping)
         ^~~~~~~~~~~~~~~~~~~~
   mm/shmem.c:4158:15: warning: no previous declaration for 'shmem_get_unmapped_area' [-Wmissing-declarations]
    unsigned long shmem_get_unmapped_area(struct file *file,
                  ^~~~~~~~~~~~~~~~~~~~~~~
   mm/shmem.c:4166:6: warning: no previous declaration for 'shmem_truncate_range' [-Wmissing-declarations]
    void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
         ^~~~~~~~~~~~~~~~~~~~
   mm/shmem.c:4252:14: warning: no previous declaration for 'shmem_kernel_file_setup' [-Wmissing-declarations]
    struct file *shmem_kernel_file_setup(const char *name, loff_t size, unsigned long flags)
                 ^~~~~~~~~~~~~~~~~~~~~~~
   mm/shmem.c:4263:14: warning: no previous declaration for 'shmem_file_setup' [-Wmissing-declarations]
    struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags)
                 ^~~~~~~~~~~~~~~~
>> mm/shmem.c:4284:14: warning: no previous declaration for 'shmem_file_setup_with_mnt' [-Wmissing-declarations]
    struct file *shmem_file_setup_with_mnt(struct vfsmount *mnt, const char *name,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~
   mm/shmem.c:4295:5: warning: no previous declaration for 'shmem_zero_setup' [-Wmissing-declarations]
    int shmem_zero_setup(struct vm_area_struct *vma)
        ^~~~~~~~~~~~~~~~
   mm/shmem.c:4336:14: warning: no previous declaration for 'shmem_read_mapping_page_gfp' [-Wmissing-declarations]
    struct page *shmem_read_mapping_page_gfp(struct address_space *mapping,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/shmem_file_setup_with_mnt +4284 mm/shmem.c

  4165	
> 4166	void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
  4167	{
  4168		truncate_inode_pages_range(inode->i_mapping, lstart, lend);
  4169	}
  4170	EXPORT_SYMBOL_GPL(shmem_truncate_range);
  4171	
  4172	#define shmem_vm_ops				generic_file_vm_ops
  4173	#define shmem_file_operations			ramfs_file_operations
  4174	#define shmem_get_inode(sb, dir, mode, dev, flags)	ramfs_get_inode(sb, dir, mode, dev)
  4175	#define shmem_acct_size(flags, size)		0
  4176	#define shmem_unacct_size(flags, size)		do {} while (0)
  4177	
  4178	#endif /* CONFIG_SHMEM */
  4179	
  4180	/* common code */
  4181	
  4182	static const struct dentry_operations anon_ops = {
  4183		.d_dname = simple_dname
  4184	};
  4185	
  4186	static struct file *__shmem_file_setup(struct vfsmount *mnt, const char *name, loff_t size,
  4187					       unsigned long flags, unsigned int i_flags)
  4188	{
  4189		struct file *res;
  4190		struct inode *inode;
  4191		struct path path;
  4192		struct super_block *sb;
  4193		struct qstr this;
  4194	
  4195		if (IS_ERR(mnt))
  4196			return ERR_CAST(mnt);
  4197	
  4198		if (size < 0 || size > MAX_LFS_FILESIZE)
  4199			return ERR_PTR(-EINVAL);
  4200	
  4201		if (shmem_acct_size(flags, size))
  4202			return ERR_PTR(-ENOMEM);
  4203	
  4204		res = ERR_PTR(-ENOMEM);
  4205		this.name = name;
  4206		this.len = strlen(name);
  4207		this.hash = 0; /* will go */
  4208		sb = mnt->mnt_sb;
  4209		path.mnt = mntget(mnt);
  4210		path.dentry = d_alloc_pseudo(sb, &this);
  4211		if (!path.dentry)
  4212			goto put_memory;
  4213		d_set_d_op(path.dentry, &anon_ops);
  4214	
  4215		res = ERR_PTR(-ENOSPC);
  4216		inode = shmem_get_inode(sb, NULL, S_IFREG | S_IRWXUGO, 0, flags);
  4217		if (!inode)
  4218			goto put_memory;
  4219	
  4220		inode->i_flags |= i_flags;
  4221		d_instantiate(path.dentry, inode);
  4222		inode->i_size = size;
  4223		clear_nlink(inode);	/* It is unlinked */
  4224		res = ERR_PTR(ramfs_nommu_expand_for_mapping(inode, size));
  4225		if (IS_ERR(res))
  4226			goto put_path;
  4227	
  4228		res = alloc_file(&path, FMODE_WRITE | FMODE_READ,
  4229			  &shmem_file_operations);
  4230		if (IS_ERR(res))
  4231			goto put_path;
  4232	
  4233		return res;
  4234	
  4235	put_memory:
  4236		shmem_unacct_size(flags, size);
  4237	put_path:
  4238		path_put(&path);
  4239		return res;
  4240	}
  4241	
  4242	/**
  4243	 * shmem_kernel_file_setup - get an unlinked file living in tmpfs which must be
  4244	 * 	kernel internal.  There will be NO LSM permission checks against the
  4245	 * 	underlying inode.  So users of this interface must do LSM checks at a
  4246	 *	higher layer.  The users are the big_key and shm implementations.  LSM
  4247	 *	checks are provided at the key or shm level rather than the inode.
  4248	 * @name: name for dentry (to be seen in /proc/<pid>/maps
  4249	 * @size: size to be set for the file
  4250	 * @flags: VM_NORESERVE suppresses pre-accounting of the entire object size
  4251	 */
  4252	struct file *shmem_kernel_file_setup(const char *name, loff_t size, unsigned long flags)
  4253	{
  4254		return __shmem_file_setup(shm_mnt, name, size, flags, S_PRIVATE);
  4255	}
  4256	
  4257	/**
  4258	 * shmem_file_setup - get an unlinked file living in tmpfs
  4259	 * @name: name for dentry (to be seen in /proc/<pid>/maps
  4260	 * @size: size to be set for the file
  4261	 * @flags: VM_NORESERVE suppresses pre-accounting of the entire object size
  4262	 */
  4263	struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags)
  4264	{
  4265		return __shmem_file_setup(shm_mnt, name, size, flags, 0);
  4266	}
  4267	EXPORT_SYMBOL_GPL(shmem_file_setup);
  4268	
  4269	void shmem_set_file(struct vm_area_struct *vma, struct file *file)
  4270	{
  4271		if (vma->vm_file)
  4272			fput(vma->vm_file);
  4273		vma->vm_file = file;
  4274		vma->vm_ops = &shmem_vm_ops;
  4275	}
  4276	
  4277	/**
  4278	 * shmem_file_setup_with_mnt - get an unlinked file living in tmpfs
  4279	 * @mnt: the tmpfs mount where the file will be created
  4280	 * @name: name for dentry (to be seen in /proc/<pid>/maps
  4281	 * @size: size to be set for the file
  4282	 * @flags: VM_NORESERVE suppresses pre-accounting of the entire object size
  4283	 */
> 4284	struct file *shmem_file_setup_with_mnt(struct vfsmount *mnt, const char *name,
  4285					       loff_t size, unsigned long flags)
  4286	{
  4287		return __shmem_file_setup(mnt, name, size, flags, 0);
  4288	}
  4289	EXPORT_SYMBOL_GPL(shmem_file_setup_with_mnt);
  4290	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ