Pawel Wodkowski [Wed, 18 Mar 2015 10:20:39 +0000 (11:20 +0100)]
doc: add jobstats sample guide
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
[Thomas: fix image extensions for PDF]
Pawel Wodkowski [Fri, 20 Mar 2015 09:43:35 +0000 (10:43 +0100)]
doc: add jobstats library and sample release notes
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Pawel Wodkowski [Fri, 20 Mar 2015 09:43:34 +0000 (10:43 +0100)]
doc: update bonding mode 6 release notes
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Pablo de Lara [Fri, 27 Mar 2015 16:50:13 +0000 (16:50 +0000)]
doc: add missing new EAL options in testpmd guide
Added information on testpmd user guide
for -l, --lcores and --master-lcore options
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Siobhan Butler <siobhan.a.butler@intel.com>
Cunming Liang [Wed, 4 Mar 2015 00:51:16 +0000 (08:51 +0800)]
doc: cleanup multi-pthread prog guide
Fixes:
1733be6d3147 ("doc: new eal multi-pthread feature")
Reported-by: Siobhan Butler <siobhan.a.butler@intel.com>
Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Thomas Monjalon [Sat, 31 Jan 2015 22:06:06 +0000 (23:06 +0100)]
doc: nics guide
Create nics guide by moving chapters about Intel and Mellanox NICs.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Siobhan Butler <siobhan.a.butler@intel.com>
Thomas Monjalon [Fri, 30 Jan 2015 22:47:18 +0000 (23:47 +0100)]
doc: move Xen guide out of programmers guide
Xen is an environment comparable to Linux and FreeBSD which
have their own guide.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Siobhan Butler <siobhan.a.butler@intel.com>
Thomas Monjalon [Fri, 30 Jan 2015 16:18:12 +0000 (17:18 +0100)]
doc: fix file attributes
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Siobhan Butler <siobhan.a.butler@intel.com>
Nicolás Pernas Maradei [Wed, 18 Mar 2015 21:25:06 +0000 (21:25 +0000)]
maintainers: claim pcap PMD
Signed-off-by: Nicolás Pernas Maradei <nicolas.pernas.maradei@emutex.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Siobhan Butler <siobhan.a.butler@intel.com>
Pawel Wodkowski [Fri, 27 Mar 2015 10:56:00 +0000 (11:56 +0100)]
app/test: fix strict aliasing with gcc 4.4
Fix strict aliasing rule error seen in gcc 4.4
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Shelton Chia [Sat, 7 Mar 2015 03:57:38 +0000 (11:57 +0800)]
e1000: fix power down of fiber serdes link
When stopping interface, only shutdown method for copper cable was called.
Signed-off-by: Shelton Chia <jiaxt@sinogrid.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Changchun Ouyang [Fri, 27 Mar 2015 13:23:15 +0000 (21:23 +0800)]
virtio: fix crash in secondary process
It needs Rx function even in the case of secondary process,
and it also needs check if it supports mergeable feature or not.
Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
John McNamara [Thu, 12 Mar 2015 16:54:28 +0000 (16:54 +0000)]
ethdev: add packet count parameter to Rx callback
Added a parameter to the RX callback to pass in the number of
available RX packets in addition to the number of dequeued packets.
This provides the RX callback functions with additional information
that can be used to decide how packets from a burst are handled.
The TX callback doesn't require this additional parameter so the RX
and TX callbacks no longer have the same function parameters. As such
the single RX/TX callback has been refactored into two separate callbacks.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Maciej Gajdzica [Fri, 20 Feb 2015 16:13:20 +0000 (16:13 +0000)]
enic: fix possible data loss
Field ig_vlan_strip_en in struct enic type is int. It is used only by
function enic_set_nic_cfg which expects uint_8 as argument. Changed type
of the field to prevent possible loss of precision.
Macro GET_CONFIG passes result of sizeof operation to the function
vnic_dev_spec. This function expects parameter of type unsigned int.
Changed that parameter type to size_t in function declaration to prevent
possible data loss.
Define ENIC_ALIGN is used only by function rte_memzone_reserve_aligned,
which expects argument of type unsigned. Defined constant is of type
unsigned long long. Changed type to unsigned long to prevent possible
loss of precision.
In function writeq is written in two 32-bit long registers with writel
function. When trying to write val >> 32, static code analysis tool
reports that 64-bit value is passed to function expecting 32-bit value.
Added cast to clear this warning.
Issues found with static code analysis tool.
Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
Maciej Gajdzica [Fri, 20 Feb 2015 16:12:39 +0000 (16:12 +0000)]
virtio: fix type for queue id
Changed vtpci_queue_idx type in function virtio_dev_queue_setup from
uint8_t to uint16_t to prevent possible data loss. Also changed type of
head variable in function virtio_send_command from uint32_t to uint16_t.
Variable rcv_cnt declared in function virtio_recv_mergeable_pkts was of
type uint32_t. It was used by virtqueue_dequeue_burst_rx function, which
expects argument of type uint16_t. Changed rcv_cnt variable type to
uint16_t to prevent possible data loss.
Issues found with static code analysis tool.
Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Maciej Gajdzica [Fri, 20 Feb 2015 16:12:22 +0000 (16:12 +0000)]
bond: fix type for port and queue id
In some places port_id is declared as int or uint16_t, which causes data
loss when using functions expecting port_id as uint8_t.
Previous type of rx and tx queue_id field was int, which caused possible
data loss when calling functions expecting uint16_t as an argument.
Issues found with static code analysis tool.
Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
Bruce Richardson [Thu, 26 Mar 2015 21:14:54 +0000 (21:14 +0000)]
mbuf: add explanation for confusing checks when freeing
The logic used in the condition check before freeing an mbuf is
sometimes confusing, so explain it in a proper comment.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Miroslaw Walukiewicz [Tue, 3 Mar 2015 14:16:00 +0000 (09:16 -0500)]
table: fix crash during key overload
hash_key8_ext, hash_key16_ext and hash_key32_ext tables allocate cache
entries to support table overload cases. The crash can occur when cache
entry is free after use.
The problem is with computing the index of the free cache entry.
Signed-off-by: Mirek Walukiewicz <miroslaw.walukiewicz@intel.com>
Signed-off-by: Maciej Gajdzica <maciejx.t.gajdzica@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Pavel Boldin [Mon, 23 Mar 2015 12:53:45 +0000 (14:53 +0200)]
vhost: fix file struct leakage
Due to increased `struct file's reference counter subsequent call
to `filp_close' does not free the `struct file'. Prepend `fput' call
to decrease the reference counter.
Signed-off-by: Pavel Boldin <pboldin@mirantis.com>
Acked-by: Huawei Xie <huawei.xie@intel.com>
Haifeng Lin [Sat, 21 Mar 2015 01:47:00 +0000 (09:47 +0800)]
vhost: fix index when mbuf allocation fails
When failed to malloc buffer from mempool we just update last_used_idx but
not used->idx so after many times vhost thought have handle all packets
but virtio_net thought vhost have not handle all packets and will not
update avail->idx.
Signed-off-by: Haifeng Lin <haifeng.lin@huawei.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Huawei Xie <huawei.xie@intel.com>
Jia Yu [Mon, 23 Mar 2015 21:53:56 +0000 (14:53 -0700)]
bond: remove memory allocation for PCI driver
eth_driver already contains rte_pci_driver data structure.
Allocating rte_pci_driver without referencing it after bond
creation causes memory leakage.
Signed-off-by: Jia Yu <jyu@vmware.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
Adrien Mazarguil [Wed, 25 Mar 2015 10:34:31 +0000 (11:34 +0100)]
mlx4: remove old VMware compatibility code
CONFIG_RTE_LIBRTE_MLX4_COMPAT_VMWARE has no effect since this option enables
MLX4_PMD_COMPAT_VMWARE. This macro is not used by the PMD which expects
MLX4_COMPAT_VMWARE instead.
Because this option does not work and the related code is no longer useful
for VMware (as it actually supports the flow steering API), remove it
entirely.
Signed-off-by: Olga Shern <olgas@mellanox.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Jingjing Wu [Fri, 20 Mar 2015 07:31:48 +0000 (15:31 +0800)]
i40e: disable buggy VEB switching
Disable VEB switching by removing ALLOW_LB on SRIOV vsi.
If the source mac address of packet sent from VF is not listed in the
VEB's mac table, the VEB will switch the packet back to the VF.
It's a hardware issue. Enabling ALLOW_LB flag will block VF functions.
Test report: http://www.dpdk.org/ml/archives/dev/2015-March/015687.html
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Huilong Xu <huilongx.xu@intel.com>
Jingjing Wu [Wed, 25 Mar 2015 21:38:12 +0000 (05:38 +0800)]
i40e: fix flow director
This patch sets the local variable ctxt to zero to avoid uncertain
data causes error when creating a vsi for flow director.
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Jingjing Wu [Wed, 25 Mar 2015 04:47:13 +0000 (12:47 +0800)]
ixgbe: fix 5tuple filter overwrite
This patch corrects the index to fix the issue that is second 5tuple filter
overwrites the first one.
Fixes:
4c54a7e7bd42 ("ixgbe: migrate ntuple filter to new API")
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Marvin Liu <yong.liu@intel.com>
Jingjing Wu [Thu, 26 Mar 2015 04:53:21 +0000 (12:53 +0800)]
igb: fix flex filter check for unsupported 82576
Flex filter is currently not supported for NIC 82576.
Only i350 and 82580 support it.
So The MAC_TYPE_FILTER_SUP_EXT is used to check whether the MAC type is
i350 or 82580.
Fixes:
231d43909a31 ("igb: migrate flex filter to new API")
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Marvin Liu <yong.liu@intel.com>
Bruce Richardson [Thu, 26 Mar 2015 17:02:45 +0000 (17:02 +0000)]
ethdev: fix crash with multiprocess
The data structure for the rx and tx callbacks is local to each process
since it contains function pointers and cannot be shared between
different unique binaries. However, because it is not in
rte_eth_dev_data structure, the array is not getting initialized for
secondary processes - neither is it getting appropriately resized if the
number of RX/TX queues changes. This causes crashes in secondary
processes as they dereference a null pointer in struct rte_eth_dev.
This patch fixes this by introducing an upper-bound on the number of
queues per port that can be configured, and then uses this to make the
array statically sized, thereby avoiding the crashes.
Fixes:
4dc294158cac ("ethdev: support optional Rx and Tx callbacks")
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Tested-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Yerden Zhumabekov [Tue, 24 Mar 2015 13:31:55 +0000 (19:31 +0600)]
hash: fix strict-aliasing for CRC
Fix rte_hash_crc() function by making use of uintptr_t variable
to hold a pointer to data being hashed. In this way, casting uint64_t
pointer to uint32_t avoided.
Fixes:
614289298daf ("hash: slice CRC data into 8-byte pieces")
Signed-off-by: Yerden Zhumabekov <e_zhumabekov@sts.kz>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Haifeng Gao [Mon, 23 Mar 2015 08:11:39 +0000 (16:11 +0800)]
eal: remove argument need of --create_uio_dev option
eal options OPT_CREATE_UIO_DEV does not need argument so set it to zero.
It needs to reset create_uio_dev explicitly.
Fixes:
f7f97c16048e ("pci: add option --create-uio-dev to run without hotplug")
Signed-off-by: Haifeng Gao <gaohaifeng.gao@huawei.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Andre Richter [Mon, 23 Mar 2015 12:06:25 +0000 (13:06 +0100)]
tools: fix vfio support
This patch fixes several minor issues in setup.sh:
- show_nics() would not display the current Ethernet settings if
the user only loads the vfio-pci module, b/c it only checks for
presence of igb_uio. Fix this by adding a check for vfio-pci.
- unbind_nics(): Fix option naming and string inside function.
- Exchange a forgotten "igb_uio" with "vfio-pci" in a comment.
Signed-off-by: Andre Richter <andre.o.richter@gmail.com>
Julien Cretin [Mon, 9 Mar 2015 13:21:09 +0000 (14:21 +0100)]
app/testpmd: fix potential out of bounds read
After the last enabled port has been seen, and the last time we
evaluate the loop condition, there is an out of bounds read in
ports[p].enabled because p is equal to size, which is the length of
ports.
Signed-off-by: Julien Cretin <julien.cretin@trust-in-soft.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Michael Qiu [Mon, 23 Mar 2015 08:43:07 +0000 (16:43 +0800)]
hash: fix crc32 error when built for i686 and run in x86_64
When compile target i686 in platform x86_64, the stub function will
be called, and return zero.
Fixes:
12fa4a00788d ("hash: fix unsupported crc instruction in i686 platform")
Signed-off-by: Michael Qiu <michael.qiu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Pablo de Lara [Sun, 22 Mar 2015 18:02:16 +0000 (18:02 +0000)]
kni: fix build with kernel 3.19
Due to API changes in functions ndo_dflt_bridge_getlink
(commit
2c3c031c) and ndo_fdb_add (commit
f6f6424b)
in kernel 3.19, DPDK would not build.
This patch solves the problem, by checking the kernel version
and adding the necessary new parameters.
Mind that function igb_ndo_fdb_add does not need the extra parameter
if USE_CONST_DEV_UC_CHAR is not set, since that macro is only defined
when kernel is greater or equal than 3.7
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Marvin Liu [Thu, 19 Mar 2015 03:16:57 +0000 (11:16 +0800)]
app/test: fix build with gcc < 4.4
Option var-tracking-assignments supported in gcc from 4.4.
Add gcc version check wil fix this issue.
error: unrecognized command line option "-fno-var-tracking-assignments"
Fixes:
74adbc5ef704 ("app/test: disable variable tracking assignment for memcpy")
Signed-off-by: Marvin Liu <yong.liu@intel.com>
Marvin Liu [Thu, 19 Mar 2015 03:16:56 +0000 (11:16 +0800)]
app/test: fix build constructor with gcc < 4.4
Build app/test will be failed for function only defined but not used.
test_prefetch.c:65: error: ‘testfn_prefetch_cmd’ defined but not used
Add attribute used in test function declaration can fix this.
static void __attribute__((used)) testfn_##t(void);
Fixes:
727909c59231 ("app/test: introduce dynamic commands list")
Signed-off-by: Marvin Liu <yong.liu@intel.com>
Marvin Liu [Thu, 19 Mar 2015 03:16:55 +0000 (11:16 +0800)]
enic: fix build with gcc < 4.4
gcc4.3 will raise warnings in blow code for initialized field overwritten.
enic_main.c: In function ‘enic_set_rsskey’:
enic_main.c:845: error: initialized field overwritten
enic_main.c:845: error: (near initialization for ‘rss_key.key’)
enic_main.c:846: error: initialized field overwritten
enic_main.c:846: error: (near initialization for ‘rss_key.key’)
enic_main.c:847: error: initialized field overwritten
enic_main.c:847: error: (near initialization for ‘rss_key.key’)
static union vnic_rss_key rss_key = {
.key[0] = ...,
.key[1] = ...,
.key[2] = ...,
.key[3] = ...,
};
Change struct initialized code reference to ISO 9899 section 6.7.8.
gcc4.3 will happy for that.
static union vnic_rss_key rss_key = {
.key = {
[0] = ...,
[1] = ...,
[2] = ...,
[3] = ...,
}
Signed-off-by: Marvin Liu <yong.liu@intel.com>
Marvin Liu [Thu, 19 Mar 2015 03:16:54 +0000 (11:16 +0800)]
fm10k: fix build with gcc < 4.4
Build fm10k driver in Suse11 SP3 will be failed for unrecognized flag.
cc1: error: unrecognized command line option "-Wno-unused-but-set-variable"
This flag is supported from gcc 4.4, so add gcc version check in fm10k.
In the same time, make option check more clear in ixgbe driver.
Signed-off-by: Marvin Liu <yong.liu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Marvin Liu [Thu, 19 Mar 2015 03:16:52 +0000 (11:16 +0800)]
eal/x86: fix build sse3 functions with gcc < 4.4
In Suse11 SP3, there'll be errors for not found sse3 functions.
rte_memcpy.h: In function ‘rte_memcpy’:
rte_memcpy.h:625: error: implicit declaration of function ‘_mm_alignr_epi8’
rte_memcpy.h:625: error: nested extern declaration of ‘_mm_alignr_epi8’
rte_memcpy.h:625: error: incompatible type for argument 2 of ‘_mm_storeu_si128’
These functions defined in tmmintrin.h and should be included in.
Fixes:
9144d6bcdefd ("eal/x86: optimize memcpy for SSE and AVX")
Signed-off-by: Marvin Liu <yong.liu@intel.com>
Marvin Liu [Thu, 19 Mar 2015 03:16:58 +0000 (11:16 +0800)]
eal/linux: fix build functions pread and pwrite
Function pread need macro _XOPEN_SOURCE be defined.
Add _GNU_SOURCE will fix this issue.
error: implicit declaration of function ‘pread’
Fixes:
4a499c649590 ("eal/linux: enable uio_pci_generic support")
Signed-off-by: Marvin Liu <yong.liu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Yong Liu [Fri, 13 Mar 2015 02:38:23 +0000 (10:38 +0800)]
app/testpmd: fix reconfig flag for all ports
When port id is RTE_PORT_ALL, port_id_is_invalid will also return zero.
So this function will only set ports[255] need_reconfig flag, other ports will
be skipped.
Fixes:
edab33b1c01d ("app/testpmd: support port hotplug")
Signed-off-by: Marvin Liu <yong.liu@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Huawei Xie [Thu, 19 Mar 2015 10:43:24 +0000 (18:43 +0800)]
vhost: fix build
Fix the error "missing initializer" and "cast to pointer from integer of different size".
For the pointer to integer cast issue, need to investigate changing the typeof mapped_address.
Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Pawel Wodkowski [Thu, 19 Mar 2015 16:09:16 +0000 (17:09 +0100)]
ixgbe: fix buffer overrun in non-bulk alloc mode
When bulk alloc is enabled at compile time but preconditions for
it are not met at runtime the ixgbe_reset_rx_queue() function
overrides rxq->sw_ring not allocated elements.
Fixes:
01fa1d6215fa ("ixgbe: unify Rx setup")
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Konstantin Ananyev [Fri, 20 Mar 2015 13:59:37 +0000 (13:59 +0000)]
ixgbe: fix build without builk alloc
If RTE_LIBRTE_IXGBE_RX_ALLOW_BULK_ALLOC is disabled in the config file,
RTE_PMD_IXGBE_RX_MAX_BURST macro and ixgbe_recv_pkts_bulk_alloc function
are not declared, and some parts of the ixgbe code were still trying to
use them.
Fixes:
01fa1d6215fa ("ixgbe: unify Rx setup")
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Konstantin Ananyev [Wed, 18 Mar 2015 17:08:15 +0000 (17:08 +0000)]
eal/x86: move header file for vector instructions
lib/librte_eal/common/include/rte_common_vect.h ->
lib/librte_eal/common/include/arch/x86/rte_vect.h
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Wed, 18 Mar 2015 17:41:57 +0000 (18:41 +0100)]
doc: remove blank pages in pdf
The "manual" Latex template provided by Sphinx introduce a lot
of useless and confusing blank pages.
Let's remove them.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
John McNamara [Tue, 3 Feb 2015 14:11:15 +0000 (14:11 +0000)]
doc: tune pdf fonts
This mainly adds metadata but also includes an override to the
Latex formatter to control the font size in code blocks.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Thomas Monjalon [Wed, 18 Mar 2015 17:25:51 +0000 (18:25 +0100)]
doc: fix version for python 3
When generating Latex for PDF, this error occurs:
! Undefined control sequence.
\version ->b'2.0.0-rc2\n
Decoding bytes stream into UTF-8 fixes the issue.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
John McNamara [Tue, 3 Feb 2015 14:11:14 +0000 (14:11 +0000)]
doc: add pdf output
Add make system support for building PDF versions of
the guides. Requires Python Sphinx and TexLive Full.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
John McNamara [Tue, 3 Feb 2015 14:11:18 +0000 (14:11 +0000)]
doc: convert image extensions to wildcard
Changed all image.svg and image.png extensions to image.*
This allows Sphinx to decide the appropriate image type
from the available image options.
In case of PDF, SVG images are converted and Sphinx must pick
the converted version.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
John McNamara [Tue, 3 Feb 2015 14:11:17 +0000 (14:11 +0000)]
doc: refactor split cell formatting in table
Refactored split cell in test_pipeline table to allow it to
convert cleanly to PDF.
The Sphinx/Latex converter doesn't handle split cells like the
following:
+-------------+--------------+
| Header 1 | Header 2 |
+=============+==============+
| | |
| | |
+-------------+ |
| | |
| | |
+-------------+--------------+
Instead the table was refactored to a simpler format:
+-------------+--------------+
| Header 1 | Header 2 |
+=============+==============+
| | |
| | |
+-------------+--------------+
| | |
| | |
+-------------+--------------+
The same information was retained in the table.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
John McNamara [Tue, 3 Feb 2015 14:11:16 +0000 (14:11 +0000)]
doc: fix encoding of (r) character
Change encoding of (r) from Latin-1 to UTF8 to match the other
symbols in the doc and to allow it to convert cleanly to PDF.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Thomas Monjalon [Wed, 18 Mar 2015 09:55:09 +0000 (10:55 +0100)]
i40e: revert internal switch of PF
VEB switching is blocking VF.
If the source mac address of packet sent from VF is not listed in the
VEB’s mac table, the VEB will switch the packet back to the VF.
It's an hardware issue.
Reverts:
2ccabd8cd1f6 ("i40e: enable internal switch of PF").
Reported-by: Jingjing Wu <jingjing.wu@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Thomas Monjalon [Tue, 17 Mar 2015 22:02:56 +0000 (23:02 +0100)]
version: 2.0.0-rc2
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Fri, 13 Mar 2015 17:25:44 +0000 (18:25 +0100)]
version: fix include
When including rte_version.h without string.h, there is a compilation error:
include/rte_version.h: error: implicit declaration of function ‘strlen’
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Tetsuya Mukawa [Mon, 16 Mar 2015 03:43:21 +0000 (12:43 +0900)]
null: fix dereference before null check
This patch fixes potential null pointer access of eth_null_copy_tx().
Reported-by: John Mcnamara <john.mcnamara@intel.com>
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Tetsuya Mukawa [Tue, 17 Mar 2015 04:12:41 +0000 (13:12 +0900)]
null: fix memory leak of kvargs
'struct rte_kvargs' is allocated in rte_kvargs_parse(), and should be
freed with rte_kvargs_free().
Reported-by: John Mcnamara <john.mcnamara@intel.com>
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Tetsuya Mukawa [Tue, 17 Mar 2015 04:12:41 +0000 (13:12 +0900)]
pcap: fix memory leak of kvargs
'struct rte_kvargs' is allocated in rte_kvargs_parse(), and should be
freed with rte_kvargs_free().
Reported-by: John Mcnamara <john.mcnamara@intel.com>
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Ouyang Changchun [Wed, 11 Mar 2015 01:34:01 +0000 (09:34 +0800)]
af_packet: fix some leaks
Fix possible memory leak issue: free kvlist before return;
Fix possible resource lost issue: close qssockfd before return;
Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Michael Qiu <michael.qiu@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: John W. Linville <linville@tuxdriver.com>
Andre Richter [Thu, 12 Mar 2015 17:18:00 +0000 (18:18 +0100)]
tools: remove absolute path of chmod for vfio setup
setup.sh uses /usr/bin/chmod, but depending on distribution, it is not always there.
For example, Ubuntu has /bin/chmod. Fix this by removing the absolute path, like it is
done e.g. with grep.
Signed-off-by: Andre Richter <andre.o.richter@gmail.com>
Neil Horman [Tue, 17 Mar 2015 18:08:41 +0000 (14:08 -0400)]
scripts: add ABI checking utility
There was a request for an abi validation utilty for the ongoing ABI stability
work. As it turns out there is a abi compliance checker in development that
seems to be under active development and provides fairly detailed ABI compliance
reports. Its not yet intellegent enough to understand symbol versioning, but it
does provide the ability to identify symbols which have changed between
releases, along with details of the change, and offers developers the
opportunity to identify which symbols then need versioning and validation for a
given update via manual testing.
This script automates the use of the compliance checker between two arbitrarily
specified tags within the dpdk tree. To execute enter the $RTE_SDK directory
and run:
./scripts/validate_abi.sh $GIT_TAG1 $GIT_TAG2 $CONFIG
where $GIT_TAG1 and 2 are git tags and $CONFIG is a config specification
suitable for passing as the T= variable in the make config command.
Note the upstream source for the abi compliance checker is here:
http://ispras.linuxbase.org/index.php/ABI_compliance_checker
It generates a report for each DSO built from the requested tags that developers
can review to find ABI compliance issues.
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Siobhan Butler [Thu, 12 Mar 2015 10:59:29 +0000 (10:59 +0000)]
doc: remove copyright from base of html page
Removing Intel copyright from base of page for each document.
Signed-off-by: Siobhan Butler <siobhan.a.butler@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Jingjing Wu [Tue, 3 Mar 2015 07:53:39 +0000 (15:53 +0800)]
doc: fix quote
remove the coma character by using ' character
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Chen Jing D(Mark) [Fri, 13 Mar 2015 09:14:19 +0000 (17:14 +0800)]
doc: update release notes for fm10k
Add feature list for fm10k driver.
Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Siobhan Butler <siobhan.a.butler@intel.com>
Chen Jing D(Mark) [Fri, 13 Mar 2015 09:14:18 +0000 (17:14 +0800)]
doc: update fm10k prog guide
DPDK introduced pmd driver for PCIE host-interface of Intel Ethernet
Switch FM10000 Series, update programming guide to describe the new
driver and usage.
Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Siobhan Butler <siobhan.a.butler@intel.com>
[Thomas: fix title underline]
Ouyang Changchun [Mon, 2 Mar 2015 08:40:47 +0000 (16:40 +0800)]
doc: update virtio prog guide
This patch add contents for major change in single virtio implementation,
also add back something for merge-able feature and promiscuous mode in virtio.
Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Siobhan Butler <siobhan.a.butler@intel.com>
John McNamara [Wed, 25 Feb 2015 19:46:02 +0000 (19:46 +0000)]
doc: add Rx and Tx callbacks sample app user guide
Added a sample application guide for the rxtx_callbacks app.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Siobhan Butler <siobhan.a.butler@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
John McNamara [Wed, 25 Feb 2015 19:46:01 +0000 (19:46 +0000)]
doc: add basic forwarding skeleton user guide
Added a sample application guide for the basic forwarding
/skeleton app.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
John McNamara [Wed, 25 Feb 2015 19:46:00 +0000 (19:46 +0000)]
examples/skeleton: improve documentation
Minor refactoring and comments to make the sample app and
code examples clearer for the sample app guide.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Siobhan Butler <siobhan.a.butler@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Konstantin Ananyev [Wed, 11 Mar 2015 11:14:30 +0000 (11:14 +0000)]
maintainers: claim EAL Intel x86
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Wed, 11 Mar 2015 10:48:07 +0000 (10:48 +0000)]
maintainers: claim misc sample applications
Claim the following sample applications:
* dpdk_qat
* helloworld
* l2fwd
* skeleton
Signed-off-by: Bruce Richardson <bruce.richarsdon@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Bruce Richardson [Wed, 11 Mar 2015 10:31:54 +0000 (10:31 +0000)]
maintainers: claim ring pmd library
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Benoît Canet [Fri, 27 Feb 2015 10:22:45 +0000 (11:22 +0100)]
vhost: add hint on how to add or remove device to a data core
Let's make sure people will not forget to set and unset VIRTIO_DEV_RUNNING.
Signed-off-by: Benoît Canet <benoit.canet@nodalink.com>
Acked-by: Huawei Xie <huawei.xie@intel.com>
Vlad Zolotarov [Thu, 12 Mar 2015 21:17:32 +0000 (23:17 +0200)]
ixgbe: unify Rx setup
- Set the callback in a single function that is called from
ixgbe_dev_rx_init() for a primary process and from eth_ixgbe_dev_init()
for a secondary processes. This is instead of multiple, hard to track places.
- Added ixgbe_hw.rx_bulk_alloc_allowed - see ixgbe_hw.rx_vec_allowed description below.
- Added ixgbe_hw.rx_vec_allowed: like with Bulk Allocation, Vector Rx is
enabled or disabled on a per-port level. All queues have to meet the appropriate
preconditions and if any of them doesn't - the feature has to be disabled.
Therefore ixgbe_hw.rx_vec_allowed will be updated during each queues configuration
(rte_eth_rx_queue_setup()) and then used in rte_eth_dev_start() to configure the
appropriate callbacks. The same happens with ixgbe_hw.rx_vec_allowed in a Bulk Allocation
context.
- Bugs fixed:
- Vector scattered packets callback was called regardless the appropriate
preconditions:
- Vector Rx specific preconditions.
- Bulk Allocation preconditions.
- Vector Rx was enabled/disabled according to the last queue setting and not
based on all queues setting (which may be different for each queue).
Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Vlad Zolotarov [Thu, 12 Mar 2015 21:17:31 +0000 (23:17 +0200)]
ixgbe: fix Rx CRC stripping for X540
According to x540 spec chapter 8.2.4.8.9 CRCSTRIP field of RDRXCTL should
be configured to the same value as HLREG0.RXCRCSTRP.
Clearing the RDRXCTL.RSCFRSTSIZE field for x540 is not required by the spec
but seems harmless.
Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Vlad Zolotarov [Thu, 12 Mar 2015 21:17:30 +0000 (23:17 +0200)]
ixgbe: fix endianness of ring descriptor access
Use the rte_le_to_cpu_xx()/rte_cpu_to_le_xx() when reading/setting HW ring
descriptor fields.
Fixed the above in ixgbe_rx_alloc_bufs() and in ixgbe_recv_scattered_pkts().
Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Michael Qiu [Fri, 6 Mar 2015 07:56:47 +0000 (15:56 +0800)]
fm10k: set pointer to NULL after free
It could be a potential not safe issue.
Signed-off-by: Michael Qiu <michael.qiu@intel.com>
Acked-by: Jing Chen <jing.d.chen@intel.com>
Huawei Xie [Thu, 12 Mar 2015 15:30:23 +0000 (23:30 +0800)]
vhost: add build option for vhost-user
Turn on CONFIG_RTE_LIBRTE_VHOST to enable vhost.
vhost-user is turned on by default. Turn off CONFIG_RTE_LIBRTE_VHOST_USER to
enable vhost-cuse implementation.
Signed-off-by: Huawei Xie <huawei.xie@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
John McNamara [Mon, 16 Mar 2015 17:05:06 +0000 (17:05 +0000)]
eal: fix type casting of value to align
Fix a warning when the rte_common.h header is included in a compilation
using -Wbad-function-cast, such as in Open vSwitch where the
following warning is emitted repeatedly:
../rte_common.h: In function 'rte_is_aligned':
../rte_common.h:184:9: warning: cast from function call of
type 'uintptr_t' to non-matching type 'void *' [-Wbad-function-cast]
This change fixes the issue in rte_common.h by using the RTE_ALIGN_FLOOR
macro to get the aligned floor value with generic type casting.
Also removed the rte_align_floor_int() function and replaced it with
the RTE_PTR_ALIGN_FLOOR() macro.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Thomas Monjalon [Mon, 16 Mar 2015 15:55:50 +0000 (16:55 +0100)]
eal: fix build with icc and gcc < 4.4
x86intrin.h cannot be directly included as it is not
always available.
rte_common_vect.h handles compiler differences.
Suggested-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
David Marchand [Wed, 11 Mar 2015 17:25:23 +0000 (18:25 +0100)]
eal: fix tailq init for uio and vfio resources
Commit
a2348166ea18 ("tailq: move to dynamic tailq") introduced a bug in
uio/vfio resources list init.
These resources list were pointed at through a pointer initialised only once but
too early in the eal init (before tailqs init).
Fix this by "resolving" this pointer when used (which is well after tailqs
init).
Fixes:
a2348166ea18 ("tailq: move to dynamic tailq")
Reported-by: Marvin Liu <yong.liu@intel.com>
Reported-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Signed-off-by: David Marchand <david.marchand@6wind.com>
Tested-by: John McNamara <john.mcnamara@intel.com>
Tested-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Yong Liu [Wed, 11 Mar 2015 07:23:10 +0000 (15:23 +0800)]
app/testpmd: fix incorrect port number check
testpmd parameter "nb-port" mean the number of forwarding port.
It's incorrect to use function port_id_is_invalid to check number of ports.
Fixes:
edab33b1c01d ("app/testpmd: support port hotplug")
Signed-off-by: Yong Liu <yong.liu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Tue, 10 Mar 2015 16:55:25 +0000 (17:55 +0100)]
scripts: remove useless build tools
test-framework.sh is an old script to check building of some dependencies.
testhost is an old app used to check HOSTCC.
Let's clean the scripts directory.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Siobhan Butler [Fri, 27 Feb 2015 16:27:11 +0000 (16:27 +0000)]
maintainers: claim responsibility for docs
Signed-off-by: Siobhan Butler <siobhan.a.butler@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Konstantin Ananyev [Tue, 10 Mar 2015 00:53:14 +0000 (00:53 +0000)]
maintainers: claim ixgbe PMD
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Robert Sanford [Wed, 25 Feb 2015 20:18:05 +0000 (14:18 -0600)]
maintainers: claim responsibility for timers
Signed-off-by: Robert Sanford <rsanford@akamai.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Jingjing Wu [Fri, 6 Mar 2015 09:36:14 +0000 (17:36 +0800)]
doc: update testpmd commands for flow director
Because of the changing of unified flow type, commands for flow
director need to be updated.
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Jingjing Wu [Fri, 6 Mar 2015 09:36:13 +0000 (17:36 +0800)]
ixgbe: fix supported flow types
Ixgbe doesn't support the ipv4-frag and ipv6-frag flow types, remove them.
Ixgbe doesn't support configure flex mask on each kind of flow type, this
patch uses RTE_ETH_FLOW_UNKNOWN to specify global flex mask setting.
This patch also changes the string "raw" to "none" to indicate flex mask
setting unrelated with flow type in testpmd for ixgbe.
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Pablo de Lara [Fri, 27 Feb 2015 11:18:39 +0000 (11:18 +0000)]
app/testpmd: stop forwarding when quitting
When user quits testpmd, and there is traffic being forwarded,
that may produce a segmentation fault, due to ports being closed,
while they are still transmitting packets.
This patch prevents the issue from happening,
by stopping packet forwarding before closing the ports.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Bruce Richardson [Mon, 2 Mar 2015 16:34:20 +0000 (16:34 +0000)]
eal/bsd: enable contigmem blocks >1GB in size
The contigmem module was using an "int" type for specifying the
size of blocks of memory to be reserved. A 2GB block was therefore
overflowing the signed 32-bit value, making 1GB the largest block
size that could be reserved as a single unit.
The fix is to change the type used for the buffer/block size to
an "int64_t" value.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Pawel Wodkowski [Mon, 9 Mar 2015 16:05:29 +0000 (17:05 +0100)]
examples/l2fwd-jobstats: fix error handling in init sequence
Fix check of returned values during application init phase.
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Adrien Mazarguil [Fri, 27 Feb 2015 18:27:00 +0000 (19:27 +0100)]
mlx4: avoid init errors when kernel modules are not loaded
Mimic UIO/VFIO drivers behavior by not causing errors when a device cannot
be initialized due to missing or mismatching kernel modules. Display helpful
messages instead, such as:
[...]
EAL: PCI device 0000:83:00.0 on NUMA socket 1
EAL: probe driver: 15b3:1007 librte_pmd_mlx4
PMD: librte_pmd_mlx4: PCI information matches, using device "mlx4_0" (VF: false)
PMD: librte_pmd_mlx4: cannot use device, are drivers up to date?
EAL: PCI device 0000:84:00.0 on NUMA socket 1
EAL: probe driver: 15b3:1007 librte_pmd_mlx4
PMD: librte_pmd_mlx4: PCI information matches, using device "mlx4_1" (VF: false)
PMD: librte_pmd_mlx4: cannot use device, are drivers up to date?
EAL: No probed ethernet devices
[...]
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Stephen Hemminger [Sat, 7 Mar 2015 02:23:24 +0000 (18:23 -0800)]
ixgbe: rename igb prefix
To avoid any possible confusion or breakage, rename all the structures
of ixgbe driver to use ixgbe_ rather than igb_ because igb is a
different driver.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Stephen Hemminger [Sat, 7 Mar 2015 02:23:23 +0000 (18:23 -0800)]
ixgbe: prefix global function
All global functions in a driver should use the same prefix
to avoid any future name collisions.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
[Bruce: one instance was missing]
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Stephen Hemminger [Sat, 7 Mar 2015 02:23:22 +0000 (18:23 -0800)]
ixgbe: make bulk alloc static
Only used in this file, make it static.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Stephen Hemminger [Sat, 7 Mar 2015 02:23:21 +0000 (18:23 -0800)]
ixgbe: make register maps const
These are const data structures, just put them in txt segment
rather than having compiler emit code to set them up on the stack.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
Stephen Hemminger [Sat, 7 Mar 2015 02:23:20 +0000 (18:23 -0800)]
ixgbe: make txq_ops const
All virtual function tables should be const so they are put
in text segment rather than data.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
David Marchand [Wed, 4 Mar 2015 21:50:10 +0000 (22:50 +0100)]
eal: remove useless errno
There is no remaining reference to E_RTE_NO_TAILQ.
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
David Marchand [Wed, 4 Mar 2015 21:50:09 +0000 (22:50 +0100)]
tailq: remove static slots
No static entry remaining, the rte_tailq api is for "internal use" only, get rid
of the static slots.
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
David Marchand [Wed, 4 Mar 2015 21:50:08 +0000 (22:50 +0100)]
tailq: move to dynamic tailq
Use dynamic tailq rather than static entries.
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
David Marchand [Wed, 4 Mar 2015 21:50:07 +0000 (22:50 +0100)]
tailq: introduce dynamic register system
This register system makes it possible to reserve a tailq for the dpdk
libraries.
The "dynamic" tailqs are right after the "static" tailqs in shared mem.
Primary process is responsible for writing the tailq names, so that secondary
processes can find them.
This is a temp commit, "static" tailqs are removed after conversion of all
users in next commits.
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>