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]
Message-Id: <20080722132439.dfbd6597.randy.dunlap@oracle.com>
Date:	Tue, 22 Jul 2008 13:24:39 -0700
From:	Randy Dunlap <randy.dunlap@...cle.com>
To:	Dave Jones <davej@...hat.com>
Cc:	netdev@...r.kernel.org, davem@...emloft.net
Subject: Re: Fix build failure with 'make mandocs'.

On Mon, 21 Jul 2008 16:52:29 -0400 Dave Jones wrote:

> The function header comments have to go with the functions
> they are documenting, or things go horribly wrong when we
> try to process them with the docbook tools.
> 
> Warning(include/linux/netdevice.h:1006): No description found for parameter 'dev_queue'
> Warning(include/linux/netdevice.h:1033): No description found for parameter 'dev_queue'
> Warning(include/linux/netdevice.h:1067): No description found for parameter 'dev_queue'
> Warning(include/linux/netdevice.h:1093): No description found for parameter 'dev_queue'
> Warning(include/linux/netdevice.h:1474): No description found for parameter 'txq'
> Error(net/core/dev.c:1674): cannot understand prototype: 'u32 simple_tx_hashrnd; '
> 
> Signed-off-by: Dave Jones <davej@...hat.com>

Acked-by: Randy Dunlap <randy.dunlap@...cle.com>

DaveM, please expedite since this Error is fatal (breaks 'make *docs').


> --- linux-2.6.26.noarch/net/core/dev.c~	2008-07-21 16:49:10.000000000 -0400
> +++ linux-2.6.26.noarch/net/core/dev.c	2008-07-21 16:49:47.000000000 -0400
> @@ -1645,32 +1645,6 @@ out_kfree_skb:
>  	return 0;
>  }
>  
> -/**
> - *	dev_queue_xmit - transmit a buffer
> - *	@skb: buffer to transmit
> - *
> - *	Queue a buffer for transmission to a network device. The caller must
> - *	have set the device and priority and built the buffer before calling
> - *	this function. The function can be called from an interrupt.
> - *
> - *	A negative errno code is returned on a failure. A success does not
> - *	guarantee the frame will be transmitted as it may be dropped due
> - *	to congestion or traffic shaping.
> - *
> - * -----------------------------------------------------------------------------------
> - *      I notice this method can also return errors from the queue disciplines,
> - *      including NET_XMIT_DROP, which is a positive value.  So, errors can also
> - *      be positive.
> - *
> - *      Regardless of the return value, the skb is consumed, so it is currently
> - *      difficult to retry a send to this method.  (You can bump the ref count
> - *      before sending to hold a reference for retry if you are careful.)
> - *
> - *      When calling this method, interrupts MUST be enabled.  This is because
> - *      the BH enable code must have IRQs enabled so that it will not deadlock.
> - *          --BLG
> - */
> -
>  static u32 simple_tx_hashrnd;
>  static int simple_tx_hashrnd_initialized = 0;
>  
> @@ -1738,6 +1712,31 @@ static struct netdev_queue *dev_pick_tx(
>  	return netdev_get_tx_queue(dev, queue_index);
>  }
>  
> +/**
> + *	dev_queue_xmit - transmit a buffer
> + *	@skb: buffer to transmit
> + *
> + *	Queue a buffer for transmission to a network device. The caller must
> + *	have set the device and priority and built the buffer before calling
> + *	this function. The function can be called from an interrupt.
> + *
> + *	A negative errno code is returned on a failure. A success does not
> + *	guarantee the frame will be transmitted as it may be dropped due
> + *	to congestion or traffic shaping.
> + *
> + * -----------------------------------------------------------------------------------
> + *      I notice this method can also return errors from the queue disciplines,
> + *      including NET_XMIT_DROP, which is a positive value.  So, errors can also
> + *      be positive.
> + *
> + *      Regardless of the return value, the skb is consumed, so it is currently
> + *      difficult to retry a send to this method.  (You can bump the ref count
> + *      before sending to hold a reference for retry if you are careful.)
> + *
> + *      When calling this method, interrupts MUST be enabled.  This is because
> + *      the BH enable code must have IRQs enabled so that it will not deadlock.
> + *          --BLG
> + */
>  int dev_queue_xmit(struct sk_buff *skb)
>  {
>  	struct net_device *dev = skb->dev;
> --- linux-2.6.26.noarch/include/linux/netdevice.h~	2008-07-21 16:46:36.000000000 -0400
> +++ linux-2.6.26.noarch/include/linux/netdevice.h	2008-07-21 16:48:53.000000000 -0400
> @@ -996,17 +996,17 @@ static inline void netif_tx_schedule_all
>  		netif_schedule_queue(netdev_get_tx_queue(dev, i));
>  }
>  
> +static inline void netif_tx_start_queue(struct netdev_queue *dev_queue)
> +{
> +	clear_bit(__QUEUE_STATE_XOFF, &dev_queue->state);
> +}
> +
>  /**
>   *	netif_start_queue - allow transmit
>   *	@dev: network device
>   *
>   *	Allow upper layers to call the device hard_start_xmit routine.
>   */
> -static inline void netif_tx_start_queue(struct netdev_queue *dev_queue)
> -{
> -	clear_bit(__QUEUE_STATE_XOFF, &dev_queue->state);
> -}
> -
>  static inline void netif_start_queue(struct net_device *dev)
>  {
>  	netif_tx_start_queue(netdev_get_tx_queue(dev, 0));
> @@ -1022,13 +1022,6 @@ static inline void netif_tx_start_all_qu
>  	}
>  }
>  
> -/**
> - *	netif_wake_queue - restart transmit
> - *	@dev: network device
> - *
> - *	Allow upper layers to call the device hard_start_xmit routine.
> - *	Used for flow control when transmit resources are available.
> - */
>  static inline void netif_tx_wake_queue(struct netdev_queue *dev_queue)
>  {
>  #ifdef CONFIG_NETPOLL_TRAP
> @@ -1041,6 +1034,13 @@ static inline void netif_tx_wake_queue(s
>  		__netif_schedule(dev_queue->qdisc);
>  }
>  
> +/**
> + *	netif_wake_queue - restart transmit
> + *	@dev: network device
> + *
> + *	Allow upper layers to call the device hard_start_xmit routine.
> + *	Used for flow control when transmit resources are available.
> + */
>  static inline void netif_wake_queue(struct net_device *dev)
>  {
>  	netif_tx_wake_queue(netdev_get_tx_queue(dev, 0));
> @@ -1056,6 +1056,11 @@ static inline void netif_tx_wake_all_que
>  	}
>  }
>  
> +static inline void netif_tx_stop_queue(struct netdev_queue *dev_queue)
> +{
> +	set_bit(__QUEUE_STATE_XOFF, &dev_queue->state);
> +}
> +
>  /**
>   *	netif_stop_queue - stop transmitted packets
>   *	@dev: network device
> @@ -1063,11 +1068,6 @@ static inline void netif_tx_wake_all_que
>   *	Stop upper layers calling the device hard_start_xmit routine.
>   *	Used for flow control when transmit resources are unavailable.
>   */
> -static inline void netif_tx_stop_queue(struct netdev_queue *dev_queue)
> -{
> -	set_bit(__QUEUE_STATE_XOFF, &dev_queue->state);
> -}
> -
>  static inline void netif_stop_queue(struct net_device *dev)
>  {
>  	netif_tx_stop_queue(netdev_get_tx_queue(dev, 0));
> @@ -1083,17 +1083,17 @@ static inline void netif_tx_stop_all_que
>  	}
>  }
>  
> +static inline int netif_tx_queue_stopped(const struct netdev_queue *dev_queue)
> +{
> +	return test_bit(__QUEUE_STATE_XOFF, &dev_queue->state);
> +}
> +
>  /**
>   *	netif_queue_stopped - test if transmit queue is flowblocked
>   *	@dev: network device
>   *
>   *	Test if transmit queue on device is currently unable to send.
>   */
> -static inline int netif_tx_queue_stopped(const struct netdev_queue *dev_queue)
> -{
> -	return test_bit(__QUEUE_STATE_XOFF, &dev_queue->state);
> -}
> -
>  static inline int netif_queue_stopped(const struct net_device *dev)
>  {
>  	return netif_tx_queue_stopped(netdev_get_tx_queue(dev, 0));
> @@ -1463,13 +1463,6 @@ static inline void netif_rx_complete(str
>  	local_irq_restore(flags);
>  }
>  
> -/**
> - *	netif_tx_lock - grab network device transmit lock
> - *	@dev: network device
> - *	@cpu: cpu number of lock owner
> - *
> - * Get network device transmit lock
> - */
>  static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu)
>  {
>  	spin_lock(&txq->_xmit_lock);
> @@ -1482,6 +1475,13 @@ static inline void __netif_tx_lock_bh(st
>  	txq->xmit_lock_owner = smp_processor_id();
>  }
>  
> +/**
> + *	netif_tx_lock - grab network device transmit lock
> + *	@dev: network device
> + *	@cpu: cpu number of lock owner
> + *
> + * Get network device transmit lock
> + */
>  static inline void netif_tx_lock(struct net_device *dev)
>  {
>  	int cpu = smp_processor_id();
> 
> -- 

---
~Randy
Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA
http://linuxplumbersconf.org/
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ