Revision 6af773e786ad617b0264ebe06ba60675c01f3e51 authored by Nishank Trivedi on 12 September 2012, 13:32:49 UTC, committed by David S. Miller on 13 September 2012, 21:10:00 UTC
If vlan option is being specified in the pktgen and packet size
being requested is less than 46 bytes, despite being illogical
request, pktgen should not crash the kernel.

BUG: unable to handle kernel paging request at ffff88021fb82000
Process kpktgend_0 (pid: 1184, threadinfo ffff880215f1a000, task ffff880218544530)
Call Trace:
[<ffffffffa0637cd2>] ? pktgen_finalize_skb+0x222/0x300 [pktgen]
[<ffffffff814f0084>] ? build_skb+0x34/0x1c0
[<ffffffffa0639b11>] pktgen_thread_worker+0x5d1/0x1790 [pktgen]
[<ffffffffa03ffb10>] ? igb_xmit_frame_ring+0xa30/0xa30 [igb]
[<ffffffff8107ba20>] ? wake_up_bit+0x40/0x40
[<ffffffff8107ba20>] ? wake_up_bit+0x40/0x40
[<ffffffffa0639540>] ? spin+0x240/0x240 [pktgen]
[<ffffffff8107b4e3>] kthread+0x93/0xa0
[<ffffffff81615de4>] kernel_thread_helper+0x4/0x10
[<ffffffff8107b450>] ? flush_kthread_worker+0x80/0x80
[<ffffffff81615de0>] ? gs_change+0x13/0x13

The root cause of why pktgen is not able to handle this case is due
to comparison of signed (datalen) and unsigned data (sizeof), which
eventually passes a huge number to skb_put().

Signed-off-by: Nishank Trivedi <nistrive@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 7b5342d
Raw File
Kconfig
menuconfig SAMPLES
	bool "Sample kernel code"
	help
	  You can build and test sample kernel code here.

if SAMPLES

config SAMPLE_TRACEPOINTS
	tristate "Build tracepoints examples -- loadable modules only"
	depends on TRACEPOINTS && m
	help
	  This build tracepoints example modules.

config SAMPLE_TRACE_EVENTS
	tristate "Build trace_events examples -- loadable modules only"
	depends on EVENT_TRACING && m
	help
	  This build trace event example modules.

config SAMPLE_KOBJECT
	tristate "Build kobject examples -- loadable modules only"
	depends on m
	help
	  This config option will allow you to build a number of
	  different kobject sample modules showing how to use kobjects,
	  ksets, and ktypes properly.

	  If in doubt, say "N" here.

config SAMPLE_KPROBES
	tristate "Build kprobes examples -- loadable modules only"
	depends on KPROBES && m
	help
	  This build several kprobes example modules.

config SAMPLE_KRETPROBES
	tristate "Build kretprobes example -- loadable modules only"
	default m
	depends on SAMPLE_KPROBES && KRETPROBES

config SAMPLE_HW_BREAKPOINT
	tristate "Build kernel hardware breakpoint examples -- loadable module only"
	depends on HAVE_HW_BREAKPOINT && m
	help
	  This builds kernel hardware breakpoint example modules.

config SAMPLE_KFIFO
	tristate "Build kfifo examples -- loadable modules only"
	depends on m
	help
	  This config option will allow you to build a number of
	  different kfifo sample modules showing how to use the
	  generic kfifo API.

	  If in doubt, say "N" here.

config SAMPLE_KDB
	tristate "Build kdb command example -- loadable modules only"
	depends on KGDB_KDB && m
	help
	  Build an example of how to dynamically add the hello
	  command to the kdb shell.

config SAMPLE_RPMSG_CLIENT
	tristate "Build rpmsg client sample -- loadable modules only"
	depends on RPMSG && m
	help
	  Build an rpmsg client sample driver, which demonstrates how
	  to communicate with an AMP-configured remote processor over
	  the rpmsg bus.

endif # SAMPLES
back to top