23 Sep, 2009
16 commits
-
This patch adds the device definition for the at91_can device to
the generic device definiton file for the at91sam9263.Signed-off-by: Hans J. Koch
Signed-off-by: Marc Kleine-Budde
Acked-by: Wolfgang Grandegger
Signed-off-by: David S. Miller -
Usbnet framework assumes USB hardware doesn't handle zero length
packets, but SMSC LAN95xx requires these to be sent for correct
operation.This patch fixes an easily reproducible tx lockup when sending a frame
that results in exactly 512 bytes in a USB transmission (e.g. a UDP
frame with 458 data bytes, due to IP headers and our USB headers). It
adds an extra flag to usbnet for the hardware driver to indicate that
it can handle and requires the zero length packets.This patch should not affect other usbnet users, please also consider
for -stable.Signed-off-by: Steve Glendinning
Signed-off-by: David S. Miller -
After commit 2b980dbd77d229eb60588802162c9659726b11f4
("lsm: Add hooks to the TUN driver") tun_set_iff doesn't
return -EINVAL though neither IFF_TUN nor IFF_TAP is set.Signed-off-by: Kusanagi Kouichi
Reviewed-by: Paul Moore
Signed-off-by: David S. Miller -
This was introduced by b93d58 "8139*: convert printk() to pr_()":
[ 2256252443 ] 8139cp: 10/100 PCI Ethernet driver v1.3 (Mar 22, 2004)
The "version" string is printed using pr_info(), so it doesn't need to
include a loglevel.Signed-off-by: Alan Jenkins
CC: Alexander Beregalov
Signed-off-by: David S. Miller -
rcv_q & snd_q initializations were reversed in commit
31e6d363abcd0d05766c82f1a9c905a4c974a199
(net: correct off-by-one write allocations reports)Signed-off-by: Jan Rafaj
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
he_dev->rbps_virt or he_dev->rbpl_virt allocation may fail, s
them. Make sure that he_init_group() cleans up after errors.Signed-off-by: Roel Kluin
Signed-off-by: David S. Miller -
The SKY2_HW_RAM_BUFFER bit in hw->flags was checked in sky2_mac_init(),
before being set later in sky2_up().Setting SKY2_HW_RAM_BUFFER in sky2_init() where other hw->flags are set
should avoid this problem recurring.Signed-off-by: Mike McCormack
Acked-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Set wol_ctrl_data to value 0, to remove compiling warning.
Signed-off-by: Jie Yang
Signed-off-by: David S. Miller -
The definitions of vnet_ops and ehea_netdev_ops have initializations of a
local function and eth_change_mtu for their respective ndo_change_mtu
fields. This change uses only the local function.The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)//
@r@
identifier I, s, fld;
position p0,p;
expression E;
@@struct I s =@p0 { ... .fld@p = E, ...};
@s@
identifier I, s, r.fld;
position r.p0,p;
expression E;
@@struct I s =@p0 { ... .fld@p = E, ...};
@script:python@
p0 << r.p0;
fld << r.fld;
ps << s.p;
pr << r.p;
@@if int(ps[0].line)!=int(pr[0].line) or int(ps[0].column)!=int(pr[0].column):
cocci.print_main(fld,p0)
//Signed-off-by: Julia Lawall
Signed-off-by: David S. Miller -
kaweth_control() never frees the buffer that it allocates for the USB
control message. Test case:while :; do ifconfig eth2 down ; ifconfig eth2 up ; done
This is a tiny buffer so it is a slow leak. If you want to speed up the
process, you can change the allocation size to e.g. 16384 bytes, and it
will consume several megabytes within a few minutes.Signed-off-by: Kevin Cernekee
Acked-by: Oliver Neukum
Signed-off-by: David S. Miller -
Signed-off-by: Steve Glendinning
Signed-off-by: David S. Miller -
Jens Rosenboom noticed that a possibly unaligned const char*
is cast to a const struct in6_addr *.Avoid this at the cost of a struct in6_addr copy on the stack.
Signed-off-by: Joe Perches
Signed-off-by: David S. Miller -
You can't ping the board or connect to it unless you send
any packet out from board.Tested-by: John Williams
Signed-off-by: Michal Simek
Acked-by: John Linn
Acked-by: Grant Likely
Signed-off-by: David S. Miller -
After successful firmware init, return instead of
falling to error path (leading to detach) after
resuming to D0 state. This was broken in recent
firmware reset rehaul.Signed-off-by: Dhananjay Phadke
Signed-off-by: David S. Miller -
Fix minor bug in netdev tx timeout handling which could
always lead to firmware reset instead of pci function reset.netxen_nic_reset_context() requires __NX_RESETTING bit
cleared.Signed-off-by: Dhananjay Phadke
Signed-off-by: David S. Miller -
'if (i < NR_INFO)' will only true if we breaks from 'for (i = 0; i < NR_INFO; i++)'
So removing useless 'if (i < NR_INFO)'This also fixed following compilation warning :
CC [M] drivers/net/pcmcia/pcnet_cs.o
drivers/net/pcmcia/pcnet_cs.c: In function ‘get_hwinfo’:
drivers/net/pcmcia/pcnet_cs.c:321: warning: ‘base’ may be used uninitialized in this functionSigned-off-by: Jaswinder Singh Rajput
Signed-off-by: David S. Miller
22 Sep, 2009
8 commits
-
This patch resolves a warning seen when doing namespace checking via
"make namespacecheck"Signed-off-by: Alexander Duyck
Signed-off-by: Jeff Kirsher
Signed-off-by: David S. Miller -
Shorten ixgbe_configure_rx() and lessen indent depth.
Signed-off-by: Shannon Nelson
Acked-by: Peter P Waskiewicz Jr
Signed-off-by: Don Skidmore
Signed-off-by: Jeff Kirsher
Signed-off-by: David S. Miller -
Allow the user to set Tx specific itr values. This only makes sense
when there are separate vectors for Tx and Rx. When the queues are
doubled up RxTx on the vectors, we still only use the rx itr value.Signed-off-by: Shannon Nelson
Acked-by: Peter P Waskiewicz Jr
Signed-off-by: Jeff Kirsher
Signed-off-by: David S. Miller -
We weren't stoping the sfp_timer after the device was brought down.
This patch properly cleans up.Signed-off-by: Shannon Nelson
Signed-off-by: Don Skidmore
Acked-by: Peter P Waskiewicz Jr
Signed-off-by: Jeff Kirsher
Signed-off-by: David S. Miller -
sparc64 allnoconfig:
arch/sparc/kernel/built-in.o(.text+0x134e0): In function `sys32_recvfrom':
: undefined reference to `compat_sys_recvfrom'
arch/sparc/kernel/built-in.o(.text+0x134e4): In function `sys32_recvfrom':
: undefined reference to `compat_sys_recvfrom'Signed-off-by: Andrew Morton
Signed-off-by: David S. Miller -
This patch adds support for one channel CAN/USB interace CPC-USB/ARM7 from
EMS Dr. Thomas Wuensche (http://www.ems-wuensche.com).Signed-off-by: Sebastian Haas
Signed-off-by: Wolfgang Grandegger
Signed-off-by: David S. Miller -
This patch prepares replacing the staging driver cpc-usb with the new
developed ems_usb CAN driver.Signed-off-by: Sebastian Haas
Acked-by: Greg Kroah-Hartman
Signed-off-by: David S. Miller -
With the removal of BUS_ID_SIZE, cpmac was not fully
converted to use MII_BUS_ID_SIZE as it ought to. This
patch fixes the following cpmac build failure:
CC drivers/net/cpmac.o
drivers/net/cpmac.c: In function 'cpmac_start_xmit':
drivers/net/cpmac.c:563: warning: comparison of distinct pointer types lacks a cast
drivers/net/cpmac.c: In function 'cpmac_probe':
drivers/net/cpmac.c:1112: error: 'BUS_ID_SIZE' undeclared (first use in this function)
drivers/net/cpmac.c:1112: error: (Each undeclared identifier is reported only once
drivers/net/cpmac.c:1112: error: for each function it appears in.)Reported-by: Ralf Baechle
Signed-off-by: Florian Fainelli
Signed-off-by: David S. Miller
18 Sep, 2009
5 commits
-
All cmds issued to BE after the creation of mccq must now use the mcc-q
(and not mbox) to avoid a hw issue that results in mbox poll timeout.Signed-off-by: Sathya Perla
Signed-off-by: David S. Miller -
use the wrong API when free dma. So when map dma use a flag to
demostrate whether it is 'pci_map_single' or 'pci_map_page'. When free
the dma, check the flags to select the right APIs('pci_unmap_single'
or 'pci_unmap_page').set the flags type to u16 instead of unsigned long on David's comments.
Signed-off-by: Jie Yang
Signed-off-by: David S. Miller -
Some classful qdiscs miss qstats.qlen updating with q.qlen of their
child qdiscs in dump_stats methods.Signed-off-by: Jarek Poplawski
Signed-off-by: David S. Miller -
If an interface has multiple addresses, the current message for DAD
failure isn't really helpful, so this patch adds the address itself to
the printk.Signed-off-by: Jens Rosenboom
Signed-off-by: David S. Miller -
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
Signed-off-by: David S. Miller
17 Sep, 2009
11 commits
-
iucv_sock_recvmsg() and iucv_process_message()/iucv_fragment_skb race
for dequeuing an skb from the backlog queue.If iucv_sock_recvmsg() dequeues first, iucv_process_message() calls
sock_queue_rcv_skb() with an skb that is NULL.This results in the following kernel panic:
Unable to handle kernel pointer dereference at virtual kernel address (null)
Oops: 0004 [#1] PREEMPT SMP DEBUG_PAGEALLOC
Modules linked in: af_iucv sunrpc qeth_l3 dm_multipath dm_mod vmur qeth ccwgroup
CPU: 0 Not tainted 2.6.30 #4
Process client-iucv (pid: 4787, task: 0000000034e75940, ksp: 00000000353e3710)
Krnl PSW : 0704000180000000 000000000043ebca (sock_queue_rcv_skb+0x7a/0x138)
R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0 EA:3
Krnl GPRS: 0052900000000000 000003e0016e0fe8 0000000000000000 0000000000000000
000000000043eba8 0000000000000002 0000000000000001 00000000341aa7f0
0000000000000000 0000000000007800 0000000000000000 0000000000000000
00000000341aa7f0 0000000000594650 000000000043eba8 000000003fc2fb28
Krnl Code: 000000000043ebbe: a7840006 brc 8,43ebca
000000000043ebc2: 5930c23c c %r3,572(%r12)
000000000043ebc6: a724004c brc 2,43ec5e
>000000000043ebca: e3c0b0100024 stg %r12,16(%r11)
000000000043ebd0: a7190000 lghi %r1,0
000000000043ebd4: e310b0200024 stg %r1,32(%r11)
000000000043ebda: c010ffffdce9 larl %r1,43a5ac
000000000043ebe0: e310b0800024 stg %r1,128(%r11)
Call Trace:
([] sock_queue_rcv_skb+0x58/0x138)
[] iucv_process_message+0x112/0x3cc [af_iucv]
[] iucv_callback_rx+0x1f0/0x274 [af_iucv]
[] iucv_message_pending+0xa2/0x120
[] iucv_tasklet_fn+0x176/0x1b8
[] tasklet_action+0xfe/0x1f4
[] __do_softirq+0x116/0x284
[] do_softirq+0xe4/0xe8
[] irq_exit+0xba/0xd8
[] do_extint+0x146/0x190
[] ext_no_vtime+0x1e/0x22
[] kfree+0x202/0x28c
([] kfree+0x1f8/0x28c)
[] __kfree_skb+0x32/0x124
[] iucv_sock_recvmsg+0x236/0x41c [af_iucv]
[] sock_aio_read+0x136/0x160
[] do_sync_read+0xe4/0x13c
[] vfs_read+0x152/0x15c
[] SyS_read+0x54/0xac
[] sysc_noemu+0x10/0x16
[] 0x42ff8def3cSigned-off-by: Hendrik Brueckner
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
For non-accepted sockets on the accept queue, iucv_sock_kill()
is called twice (in iucv_sock_close() and iucv_sock_cleanup_listen()).
This typically results in a kernel oops as shown below.Remove the duplicate call to iucv_sock_kill() and set the SOCK_ZAPPED
flag in iucv_sock_close() only.The iucv_sock_kill() function frees a socket only if the socket is zapped
and orphaned (sk->sk_socket == NULL):
- Non-accepted sockets are always orphaned and, thus, iucv_sock_kill()
frees the socket twice.
- For accepted sockets or sockets created with iucv_sock_create(),
sk->sk_socket is initialized. This caused the first call to
iucv_sock_kill() to return immediately. To free these sockets,
iucv_sock_release() uses sock_orphan() before calling iucv_sock_kill().Unable to handle kernel pointer dereference at virtual kernel address 000000003edd3000
Oops: 0011 [#1] PREEMPT SMP DEBUG_PAGEALLOC
Modules linked in: af_iucv sunrpc qeth_l3 dm_multipath dm_mod qeth vmur ccwgroup
CPU: 0 Not tainted 2.6.30 #4
Process iucv_sock_close (pid: 2486, task: 000000003aea4340, ksp: 000000003b75bc68)
Krnl PSW : 0704200180000000 000003e00168e23a (iucv_sock_kill+0x2e/0xcc [af_iucv])
R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0 EA:3
Krnl GPRS: 0000000000000000 000000003b75c000 000000003edd37f0 0000000000000001
000003e00168ec62 000000003988d960 0000000000000000 000003e0016b0608
000000003fe81b20 000000003839bb58 00000000399977f0 000000003edd37f0
000003e00168b000 000003e00168f138 000000003b75bcd0 000000003b75bc98
Krnl Code: 000003e00168e22a: c0c0ffffe6eb larl %r12,3e00168b000
000003e00168e230: b90400b2 lgr %r11,%r2
000003e00168e234: e3e0f0980024 stg %r14,152(%r15)
>000003e00168e23a: e310225e0090 llgc %r1,606(%r2)
000003e00168e240: a7110001 tmll %r1,1
000003e00168e244: a7840007 brc 8,3e00168e252
000003e00168e248: d507d00023c8 clc 0(8,%r13),968(%r2)
000003e00168e24e: a7840009 brc 8,3e00168e260
Call Trace:
([] afiucv_dbf+0x0/0xfffffffffffdea20 [af_iucv])
[] iucv_sock_close+0x130/0x368 [af_iucv]
[] iucv_sock_release+0x5e/0xe4 [af_iucv]
[] sock_release+0x44/0x104
[] sock_close+0x32/0x50
[] __fput+0xf4/0x250
[] filp_close+0x7a/0xa8
[] SyS_close+0xe2/0x148
[] sysc_noemu+0x10/0x16
[] 0x42ff8deeacSigned-off-by: Hendrik Brueckner
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
After resuming from suspend, all af_iucv sockets are disconnected.
Ensure that iucv_accept_dequeue() can handle disconnected sockets
which are not yet accepted.Signed-off-by: Hendrik Brueckner
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
Moving prepare_to_wait before the condition to avoid a race between
schedule_timeout and wake up.
The race can appear during iucv_sock_connect() and iucv_callback_connack().Signed-off-by: Hendrik Brueckner
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
The iucv_query_maxconn() function uses the wrong output register and
stores the size of the interrupt buffer instead of the maximum number
of connections.According to the QUERY IUCV function, general register 1 contains the
maximum number of connections.If the maximum number of connections is not set properly, the following
warning is displayed:Badness at /usr/src/kernel-source/2.6.30-39.x.20090806/net/iucv/iucv.c:1808
Modules linked in: netiucv fsm af_iucv sunrpc qeth_l3 dm_multipath dm_mod vmur qeth ccwgroup
CPU: 0 Tainted: G W 2.6.30 #4
Process seq (pid: 16925, task: 0000000030e24a40, ksp: 000000003033bd98)
Krnl PSW : 0404200180000000 000000000053b270 (iucv_external_interrupt+0x64/0x224)
R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:2 PM:0 EA:3
Krnl GPRS: 00000000011279c2 00000000014bdb70 0029000000000000 0000000000000029
000000000053b236 000000000001dba4 0000000000000000 0000000000859210
0000000000a67f68 00000000008a6100 000000003f83fb90 0000000000004000
000000003f8c7bc8 00000000005a2250 000000000053b236 000000003fc2fe08
Krnl Code: 000000000053b262: e33010000021 clg %r3,0(%r1)
000000000053b268: a7440010 brc 4,53b288
000000000053b26c: a7f40001 brc 15,53b26e
>000000000053b270: c03000184134 larl %r3,8434d8
000000000053b276: eb220030000c srlg %r2,%r2,48
000000000053b27c: eb6ff0a00004 lmg %r6,%r15,160(%r15)
000000000053b282: c0f4fffff6a7 brcl 15,539fd0
000000000053b288: 4310a003 ic %r1,3(%r10)
Call Trace:
([] iucv_external_interrupt+0x2a/0x224)
[] do_extint+0x132/0x190
[] ext_no_vtime+0x1e/0x22
[] _spin_unlock_irqrestore+0x96/0xa4
([] _spin_unlock_irqrestore+0x8c/0xa4)
[] pipe_write+0x3da/0x5bc
[] do_sync_write+0xe4/0x13c
[] vfs_write+0xae/0x15c
[] SyS_write+0x54/0xac
[] sysc_noemu+0x10/0x16
[] 0x42ff8defccSigned-off-by: Hendrik Brueckner
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
Prior to calling IUCV functions, the DECLARE BUFFER function must have been
called for at least one CPU to receive IUCV interrupts.With commit "iucv: establish reboot notifier" (6c005961), a check has been
introduced to avoid calling IUCV functions if the current CPU does not have
an interrupt buffer declared.
Because one interrupt buffer is sufficient, change the condition to ensure
that one interrupt buffer is available.In addition, checking the buffer on the current CPU creates a race with
CPU up/down notifications: before checking the buffer, the IUCV function
might be interrupted by an smp_call_function() that retrieves the interrupt
buffer for the current CPU.
When the IUCV function continues, the check fails and -EIO is returned. If a
buffer is available on any other CPU, the IUCV function call must be invoked
(instead of failing with -EIO).Signed-off-by: Hendrik Brueckner
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
During suspend IUCV exploiters have to close their IUCV connections.
When restoring an image, it can be checked if all IUCV pathes had
been closed before the Linux instance was suspended. If not, an
error message is issued to indicate a problem in one of the
used programs exploiting IUCV communication.Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
Acked-by: John W. Linville
Signed-off-by: David S. Miller -
net/core/netpoll.c::netpoll_send_skb() calls the poll handler when
it is available. As netconsole can be used from almost any context,
IRQ must not be enabled blindly in the NAPI handler of the driver
which supports netpoll.Call trace:
netpoll_send_skb()
{
local_irq_save(flags)
-> netpoll_poll()
-> poll_napi()
-> poll_one_napi()
-> napi->poll()
-> b44_poll()
local_irq_restore(flags)
}Signed-off-by: Dongdong Deng
Signed-off-by: David S. Miller -
RFC4191 says that "If the Reserved (10) value is received, the Route
Information Option MUST be ignored.", so this patch makes us conform
to the RFC. This is different to the usage of the Default Router
Preference, where an invalid value must indeed be treated as
PREF_MEDIUM.Signed-off-by: Jens Rosenboom
Signed-off-by: David S. Miller