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>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 26 Nov 2018 06:52:33 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Eric Dumazet <edumazet@...gle.com>
Cc:     kbuild-all@...org, "David S . Miller" <davem@...emloft.net>,
        netdev <netdev@...r.kernel.org>,
        Eric Dumazet <edumazet@...gle.com>,
        Eric Dumazet <eric.dumazet@...il.com>,
        Faisal Latif <faisal.latif@...el.com>,
        Doug Ledford <dledford@...hat.com>,
        Jason Gunthorpe <jgg@...pe.ca>,
        linux-rdma <linux-rdma@...r.kernel.org>
Subject: Re: [PATCH net-next] net: remove unsafe skb_insert()

Hi Eric,

I love your patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Eric-Dumazet/net-remove-unsafe-skb_insert/20181126-061342
config: x86_64-randconfig-x009-201847 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/infiniband//hw/nes/nes_mgt.c: In function 'queue_fpdus':
>> drivers/infiniband//hw/nes/nes_mgt.c:561:29: error: passing argument 3 of '__skb_insert' from incompatible pointer type [-Werror=incompatible-pointer-types]
      __skb_insert(tmpskb, skb, &nesqp->pau_list);
                                ^
   In file included from drivers/infiniband//hw/nes/nes_mgt.c:34:0:
   include/linux/skbuff.h:1752:20: note: expected 'struct sk_buff *' but argument is of type 'struct sk_buff_head *'
    static inline void __skb_insert(struct sk_buff *newsk,
                       ^~~~~~~~~~~~
>> drivers/infiniband//hw/nes/nes_mgt.c:561:3: error: too few arguments to function '__skb_insert'
      __skb_insert(tmpskb, skb, &nesqp->pau_list);
      ^~~~~~~~~~~~
   In file included from drivers/infiniband//hw/nes/nes_mgt.c:34:0:
   include/linux/skbuff.h:1752:20: note: declared here
    static inline void __skb_insert(struct sk_buff *newsk,
                       ^~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/__skb_insert +561 drivers/infiniband//hw/nes/nes_mgt.c

   503	
   504	/**
   505	 * queue_fpdus - Handle fpdu's that hw passed up to sw
   506	 */
   507	static void queue_fpdus(struct sk_buff *skb, struct nes_vnic *nesvnic, struct nes_qp *nesqp)
   508	{
   509		struct sk_buff *tmpskb;
   510		struct nes_rskb_cb *cb;
   511		struct iphdr *iph;
   512		struct tcphdr *tcph;
   513		unsigned char *tcph_end;
   514		u32 rcv_nxt;
   515		u32 rcv_wnd;
   516		u32 seqnum;
   517		u32 len;
   518		bool process_it = false;
   519		unsigned long flags;
   520	
   521		/* Move data ptr to after tcp header */
   522		iph = (struct iphdr *)skb->data;
   523		tcph = (struct tcphdr *)(((char *)iph) + (4 * iph->ihl));
   524		seqnum = be32_to_cpu(tcph->seq);
   525		tcph_end = (((char *)tcph) + (4 * tcph->doff));
   526	
   527		len = be16_to_cpu(iph->tot_len);
   528		if (skb->len > len)
   529			skb_trim(skb, len);
   530		skb_pull(skb, tcph_end - skb->data);
   531	
   532		/* Initialize tracking values */
   533		cb = (struct nes_rskb_cb *)&skb->cb[0];
   534		cb->seqnum = seqnum;
   535	
   536		/* Make sure data is in the receive window */
   537		rcv_nxt = nesqp->pau_rcv_nxt;
   538		rcv_wnd = le32_to_cpu(nesqp->nesqp_context->rcv_wnd);
   539		if (!between(seqnum, rcv_nxt, (rcv_nxt + rcv_wnd))) {
   540			nes_mgt_free_skb(nesvnic->nesdev, skb, PCI_DMA_TODEVICE);
   541			nes_rem_ref_cm_node(nesqp->cm_node);
   542			return;
   543		}
   544	
   545		spin_lock_irqsave(&nesqp->pau_lock, flags);
   546	
   547		if (nesqp->pau_busy)
   548			nesqp->pau_pending = 1;
   549		else
   550			nesqp->pau_busy = 1;
   551	
   552		/* Queue skb by sequence number */
   553		if (skb_queue_len(&nesqp->pau_list) == 0) {
   554			__skb_queue_head(&nesqp->pau_list, skb);
   555		} else {
   556			skb_queue_walk(&nesqp->pau_list, tmpskb) {
   557				cb = (struct nes_rskb_cb *)&tmpskb->cb[0];
   558				if (before(seqnum, cb->seqnum))
   559					break;
   560			}
 > 561			__skb_insert(tmpskb, skb, &nesqp->pau_list);
   562		}
   563		if (nesqp->pau_state == PAU_READY)
   564			process_it = true;
   565		spin_unlock_irqrestore(&nesqp->pau_lock, flags);
   566	
   567		if (process_it)
   568			process_fpdus(nesvnic, nesqp);
   569	
   570		return;
   571	}
   572	

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

Download attachment ".config.gz" of type "application/gzip" (30370 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ