Re: [PATCH v10 3/4] ipc: Make the new sequence number generation mode available to all

From: kbuild test robot
Date: Mon Nov 05 2018 - 23:53:31 EST


Hi Waiman,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v4.20-rc1]
[cannot apply to next-20181105]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Waiman-Long/ipc-Increase-IPCMNI-limit-IPC-id-generation-modes/20181106-044522
reproduce: make htmldocs

All warnings (new ones prefixed by >>):

WARNING: convert(1) not found, for SVG to PDF conversion install ImageMagick (https://www.imagemagick.org)
>> ipc/util.c:262: warning: Function parameter or member 'idmode' not described in 'ipc_addid'
kernel/resource.c:337: warning: Function parameter or member 'start' not described in 'find_next_iomem_res'
kernel/resource.c:337: warning: Function parameter or member 'end' not described in 'find_next_iomem_res'
kernel/resource.c:337: warning: Function parameter or member 'flags' not described in 'find_next_iomem_res'
kernel/resource.c:337: warning: Function parameter or member 'desc' not described in 'find_next_iomem_res'
kernel/resource.c:337: warning: Function parameter or member 'first_lvl' not described in 'find_next_iomem_res'
kernel/resource.c:337: warning: Function parameter or member 'res' not described in 'find_next_iomem_res'
kernel/resource.c:409: warning: Function parameter or member 'arg' not described in 'walk_iomem_res_desc'
kernel/resource.c:409: warning: Function parameter or member 'func' not described in 'walk_iomem_res_desc'
kernel/resource.c:409: warning: Function parameter or member 'arg' not described in 'walk_iomem_res_desc'
kernel/resource.c:409: warning: Function parameter or member 'func' not described in 'walk_iomem_res_desc'
include/linux/rcutree.h:1: warning: no structured comments found
kernel/rcu/tree.c:684: warning: Excess function parameter 'irq' description in 'rcu_nmi_exit'
include/linux/srcu.h:175: warning: Function parameter or member 'p' not described in 'srcu_dereference_notrace'
include/linux/srcu.h:175: warning: Function parameter or member 'sp' not described in 'srcu_dereference_notrace'
include/linux/gfp.h:1: warning: no structured comments found
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:4439: warning: Function parameter or member 'wext.ibss' not described in 'wireless_dev'
include/net/cfg80211.h:4439: warning: Function parameter or member 'wext.connect' not described in 'wireless_dev'
include/net/cfg80211.h:4439: warning: Function parameter or member 'wext.keys' not described in 'wireless_dev'
include/net/cfg80211.h:4439: warning: Function parameter or member 'wext.ie' not described in 'wireless_dev'
include/net/cfg80211.h:4439: warning: Function parameter or member 'wext.ie_len' not described in 'wireless_dev'
include/net/cfg80211.h:4439: warning: Function parameter or member 'wext.bssid' not described in 'wireless_dev'
include/net/cfg80211.h:4439: warning: Function parameter or member 'wext.ssid' not described in 'wireless_dev'
include/net/cfg80211.h:4439: warning: Function parameter or member 'wext.default_key' not described in 'wireless_dev'
include/net/cfg80211.h:4439: warning: Function parameter or member 'wext.default_mgmt_key' not described in 'wireless_dev'
include/net/cfg80211.h:4439: warning: Function parameter or member 'wext.prev_bssid_valid' not described in 'wireless_dev'
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '
include/net/cfg80211.h:2838: warning: cannot understand function prototype: 'struct cfg80211_ftm_responder_stats '

vim +262 ipc/util.c

b8fd998384 Davidlohr Bueso 2017-11-17 243
^1da177e4c Linus Torvalds 2005-04-16 244 /**
8001c85810 Davidlohr Bueso 2014-01-27 245 * ipc_addid - add an ipc identifier
8001c85810 Davidlohr Bueso 2014-01-27 246 * @ids: ipc identifier set
8001c85810 Davidlohr Bueso 2014-01-27 247 * @new: new ipc permission set
ebf66799ac Davidlohr Bueso 2017-11-17 248 * @limit: limit for the number of used ids
^1da177e4c Linus Torvalds 2005-04-16 249 *
8001c85810 Davidlohr Bueso 2014-01-27 250 * Add an entry 'new' to the ipc ids idr. The permissions object is
27c331a174 Manfred Spraul 2018-08-21 251 * initialised and the first free entry is set up and the index assigned
f4566f0485 Nadia Derbey 2007-10-18 252 * is returned. The 'new' entry is returned in a locked state on success.
39cfffd774 Manfred Spraul 2018-08-21 253 *
283bb7fada Pierre Peiffer 2007-10-18 254 * On failure the entry is not locked and a negative err-code is returned.
39cfffd774 Manfred Spraul 2018-08-21 255 * The caller must use ipc_rcu_putref() to free the identifier.
^1da177e4c Linus Torvalds 2005-04-16 256 *
d9a605e40b Davidlohr Bueso 2013-09-11 257 * Called with writer ipc_ids.rwsem held.
^1da177e4c Linus Torvalds 2005-04-16 258 */
4073296664 Waiman Long 2018-11-05 259 int ipc_addid(struct ipc_ids *ids, struct kern_ipc_perm *new, int limit,
4073296664 Waiman Long 2018-11-05 260 int idmode)
^1da177e4c Linus Torvalds 2005-04-16 261 {
1efdb69b0b Eric W. Biederman 2012-02-07 @262 kuid_t euid;
1efdb69b0b Eric W. Biederman 2012-02-07 263 kgid_t egid;
e2652ae6bd Manfred Spraul 2018-08-21 264 int idx, err;
^1da177e4c Linus Torvalds 2005-04-16 265
39cfffd774 Manfred Spraul 2018-08-21 266 /* 1) Initialize the refcount so that ipc_rcu_putref works */
39cfffd774 Manfred Spraul 2018-08-21 267 refcount_set(&new->refcount, 1);
39cfffd774 Manfred Spraul 2018-08-21 268
fa04270b8b Waiman Long 2018-11-05 269 if (limit > ipc_mni)
fa04270b8b Waiman Long 2018-11-05 270 limit = ipc_mni;
7ca7e564e0 Nadia Derbey 2007-10-18 271
dc2c8c84de Davidlohr Bueso 2018-08-21 272 if (ids->in_use >= limit)
283bb7fada Pierre Peiffer 2007-10-18 273 return -ENOSPC;
7ca7e564e0 Nadia Derbey 2007-10-18 274
54924ea33f Tejun Heo 2013-02-27 275 idr_preload(GFP_KERNEL);
54924ea33f Tejun Heo 2013-02-27 276
e00b4ff7eb Nadia Derbey 2008-11-19 277 spin_lock_init(&new->lock);
e00b4ff7eb Nadia Derbey 2008-11-19 278 rcu_read_lock();
e00b4ff7eb Nadia Derbey 2008-11-19 279 spin_lock(&new->lock);
e00b4ff7eb Nadia Derbey 2008-11-19 280
b9a5322779 Linus Torvalds 2015-09-30 281 current_euid_egid(&euid, &egid);
b9a5322779 Linus Torvalds 2015-09-30 282 new->cuid = new->uid = euid;
b9a5322779 Linus Torvalds 2015-09-30 283 new->gid = new->cgid = egid;
b9a5322779 Linus Torvalds 2015-09-30 284
39cfffd774 Manfred Spraul 2018-08-21 285 new->deleted = false;
39cfffd774 Manfred Spraul 2018-08-21 286
4073296664 Waiman Long 2018-11-05 287 idx = ipc_idr_alloc(ids, new, idmode);
54924ea33f Tejun Heo 2013-02-27 288 idr_preload_end();
0cfb6aee70 Guillaume Knispel 2017-09-08 289
e2652ae6bd Manfred Spraul 2018-08-21 290 if (idx >= 0 && new->key != IPC_PRIVATE) {
0cfb6aee70 Guillaume Knispel 2017-09-08 291 err = rhashtable_insert_fast(&ids->key_ht, &new->khtnode,
0cfb6aee70 Guillaume Knispel 2017-09-08 292 ipc_kht_params);
0cfb6aee70 Guillaume Knispel 2017-09-08 293 if (err < 0) {
e2652ae6bd Manfred Spraul 2018-08-21 294 idr_remove(&ids->ipcs_idr, idx);
e2652ae6bd Manfred Spraul 2018-08-21 295 idx = err;
0cfb6aee70 Guillaume Knispel 2017-09-08 296 }
0cfb6aee70 Guillaume Knispel 2017-09-08 297 }
e2652ae6bd Manfred Spraul 2018-08-21 298 if (idx < 0) {
39cfffd774 Manfred Spraul 2018-08-21 299 new->deleted = true;
e00b4ff7eb Nadia Derbey 2008-11-19 300 spin_unlock(&new->lock);
e00b4ff7eb Nadia Derbey 2008-11-19 301 rcu_read_unlock();
e2652ae6bd Manfred Spraul 2018-08-21 302 return idx;
e00b4ff7eb Nadia Derbey 2008-11-19 303 }
7ca7e564e0 Nadia Derbey 2007-10-18 304
^1da177e4c Linus Torvalds 2005-04-16 305 ids->in_use++;
27c331a174 Manfred Spraul 2018-08-21 306 if (idx > ids->max_idx)
27c331a174 Manfred Spraul 2018-08-21 307 ids->max_idx = idx;
e2652ae6bd Manfred Spraul 2018-08-21 308 return idx;
^1da177e4c Linus Torvalds 2005-04-16 309 }
^1da177e4c Linus Torvalds 2005-04-16 310

:::::: The code at line 262 was first introduced by commit
:::::: 1efdb69b0bb41dec8ee3e2cac0a0f167837d0919 userns: Convert ipc to use kuid and kgid where appropriate

:::::: TO: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
:::::: CC: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip