]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
17 years agonetns: ipmr: dynamically allocate mfc_cache_array
Benjamin Thery [Thu, 22 Jan 2009 04:56:18 +0000 (04:56 +0000)]
netns: ipmr: dynamically allocate mfc_cache_array

Preliminary work to make IPv4 multicast routing netns-aware.

Dynamically allocate IPv4 multicast forwarding cache, mfc_cache_array,
and move it to struct netns_ipv4.

At the moment, mfc_cache_array is only referenced in init_net.

Signed-off-by: Benjamin Thery <benjamin.thery@bull.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonetns: ipmr: store netns in struct mfc_cache
Benjamin Thery [Thu, 22 Jan 2009 04:56:17 +0000 (04:56 +0000)]
netns: ipmr: store netns in struct mfc_cache

This patch stores into struct mfc_cache the network namespace each
mfc_cache belongs to. The new member is mfc_net.

mfc_net is assigned at cache allocation and doesn't change during
the rest of the cache entry life.
A new net parameter is added to ipmr_cache_alloc/ipmr_cache_alloc_unres.

This will help to retrieve the current netns around the IPv4 multicast
routing code.

At the moment, all mfc_cache are allocated in init_net.

Signed-off-by: Benjamin Thery <benjamin.thery@bull.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonetns: ipmr: dynamically allocate vif_table
Benjamin Thery [Thu, 22 Jan 2009 04:56:16 +0000 (04:56 +0000)]
netns: ipmr: dynamically allocate vif_table

Preliminary work to make IPv6 multicast routing netns-aware.

Dynamically allocate interface table vif_table and move it to
struct netns_ipv4, and update MIF_EXISTS() macro.

At the moment, vif_table is only referenced in init_net.

Signed-off-by: Benjamin Thery <benjamin.thery@bull.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonetns: ipmr: allocate mroute_socket per-namespace.
Benjamin Thery [Thu, 22 Jan 2009 04:56:15 +0000 (04:56 +0000)]
netns: ipmr: allocate mroute_socket per-namespace.

Preliminary work to make IPv4 multicast routing netns-aware.

Make IPv4 multicast routing mroute_socket per-namespace,
moves it into struct netns_ipv4.

At the moment, mroute_socket is only referenced in init_net.

Signed-off-by: Benjamin Thery <benjamin.thery@bull.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agonet: pppoe - get rid of DECLARE_MAC_BUF
Cyrill Gorcunov [Thu, 22 Jan 2009 21:52:26 +0000 (13:52 -0800)]
net: pppoe - get rid of DECLARE_MAC_BUF

While was playing with PPP namespaces I occasionally brought
back DECLARE_MAC_BUF which is not needed (we have %pM here).
Fix it.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agophylib: Fix oops in suspend/resume paths
Anton Vorontsov [Thu, 22 Jan 2009 21:51:24 +0000 (13:51 -0800)]
phylib: Fix oops in suspend/resume paths

Suspend/resume routines check for phydrv != NULL, but that is
wrong because "phydrv" comes from container_of(drv). If drv is NULL,
then container_of(drv) will return non-NULL result, and the checks
won't work.

The Freescale TBI PHYs are driver-less, so "drv" is NULL, and that
leads to the following oops:

Unable to handle kernel paging request for data at address 0xffffffe4
Faulting instruction address: 0xc0215554
Oops: Kernel access of bad area, sig: 11 [#1]
[...]
NIP [c0215554] mdio_bus_suspend+0x34/0x70
LR [c01cc508] suspend_device+0x258/0x2bc
Call Trace:
[cfad3da0] [cfad3db8] 0xcfad3db8 (unreliable)
[cfad3db0] [c01cc508] suspend_device+0x258/0x2bc
[cfad3dd0] [c01cc62c] dpm_suspend+0xc0/0x140
[cfad3e20] [c01cc6f4] device_suspend+0x48/0x5c
[cfad3e40] [c0068dd8] suspend_devices_and_enter+0x8c/0x148
[cfad3e60] [c00690f8] enter_state+0x100/0x118
[cfad3e80] [c00691c0] state_store+0xb0/0xe4
[cfad3ea0] [c018c938] kobj_attr_store+0x24/0x3c
[cfad3eb0] [c00ea9a8] flush_write_buffer+0x58/0x7c
[cfad3ed0] [c00eadf0] sysfs_write_file+0x58/0xa0
[cfad3ef0] [c009e810] vfs_write+0xb4/0x16c
[cfad3f10] [c009ed40] sys_write+0x4c/0x90
[cfad3f40] [c0014954] ret_from_syscall+0x0/0x38
[...]

This patch fixes the issue, plus removes unneeded parentheses
and fixes indentation level in mdio_bus_suspend().

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agosctp/ipv6.c: use ipv6_addr_copy
Joe Perches [Thu, 22 Jan 2009 21:49:44 +0000 (13:49 -0800)]
sctp/ipv6.c: use ipv6_addr_copy

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agobnx2x: Version
Eilon Greenstein [Thu, 22 Jan 2009 06:01:37 +0000 (06:01 +0000)]
bnx2x: Version

Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agobnx2x: loopback test failure
Eilon Greenstein [Thu, 22 Jan 2009 06:01:32 +0000 (06:01 +0000)]
bnx2x: loopback test failure

A link change interrupt might be queued and activated after the loopback was set
and it will cause the loopback to fail. The PHY lock should be kept until the
loopback test is over.

That implies that the bnx2x_test_link should used within the loopback function
and not bnx2x_wait_for_link since that function also takes the PHY link

Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agobnx2x: Missing rmb when waiting for FW response
Eilon Greenstein [Thu, 22 Jan 2009 06:01:29 +0000 (06:01 +0000)]
bnx2x: Missing rmb when waiting for FW response

Waiting for the FW to response requires a memory barrier

Signed-off-by: Michal Kalderon <michals@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agobnx2x: Calling napi_del
Eilon Greenstein [Thu, 22 Jan 2009 06:01:25 +0000 (06:01 +0000)]
bnx2x: Calling napi_del

rmmod might hang without this patch since the reference counter is not going
down

Signed-off-by: Yitchak Gertner <gertner@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agobnx2x: Carrier off first call
Eilon Greenstein [Thu, 22 Jan 2009 03:37:48 +0000 (03:37 +0000)]
bnx2x: Carrier off first call

Call carrier off should not be called after register_netdev since after
register netdev open can be called at any time followed by an interrupt that
will set it to carrier_on and the probe will resume control and set it to off

Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agobnx2x: Handling load failures
Eilon Greenstein [Thu, 22 Jan 2009 03:37:44 +0000 (03:37 +0000)]
bnx2x: Handling load failures

Failures on load were not handled correctly - separate the flow to handle

different failures

Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agobnx2x: Disable napi
Eilon Greenstein [Thu, 22 Jan 2009 03:37:36 +0000 (03:37 +0000)]
bnx2x: Disable napi

Calling napi disabled unconditionally at netif stop

Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agobnx2x: Reset HW before use
Eilon Greenstein [Thu, 22 Jan 2009 03:37:31 +0000 (03:37 +0000)]
bnx2x: Reset HW before use

To avoid complications, make sure that the HW is in reset (as it should be)
before trying to take it out of reset. In normal flows, the HW is indeed in rest
so this should have no effect

Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux...
David Vrabel [Thu, 22 Jan 2009 19:12:32 +0000 (19:12 +0000)]
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-upstream

17 years agoiwlwifi: return NETDEV_TX_OK from _tx ops
Reinette Chatre [Mon, 19 Jan 2009 23:30:32 +0000 (15:30 -0800)]
iwlwifi: return NETDEV_TX_OK from _tx ops

be consistent with mac80211 drivers and return correct return code.
NETDEV_TX_OK is 0, but we need to be consistent wrt formatting amongst
implementations

re: http://marc.info/?l=linux-wireless&m=123119327419865&w=2

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Reviewed-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agozd1211rw: adding Sitecom WL-603 (0df6:0036) to the USB id list
Hin-Tak Leung [Mon, 19 Jan 2009 23:39:09 +0000 (23:39 +0000)]
zd1211rw: adding Sitecom WL-603 (0df6:0036) to the USB id list

Giuseppe Cala <jiveaxe@gmail.com> (The second "a" in "Cala" should be
a grave, U+00E0) reported success on zd1211-devs@lists.sourceforge.net.
The chip info is:
zd1211b chip 0df6:0036 v4810 high 00-0c-f6 AL2230_RF pa0 g--N-

The Sitecom WL-603 is detected as a zd1211b with a AL2230 RF transceiver chip.

Signed-off-by: Giuseppe Cala <jiveaxe@gmail.com>
Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agop54usb: fix nasty use after free
Christian Lamparter [Mon, 19 Jan 2009 23:27:57 +0000 (00:27 +0100)]
p54usb: fix nasty use after free

In theory, the firmware acks the received a data frame, before signaling the driver to free it again.
However Artur Skawina <art.08.09@gmail.com> has shown that it can happen in reverse order as well.
This is very bad and could lead to memory corruptions, oopses and panics.

Thanks to Artur Skawina <art.08.09@gmail.com> for reporting and debugging this issue.

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Tested-by: Artur Skawina <art.08.09@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agop54: more cryptographic accelerator fixes
Christian Lamparter [Mon, 19 Jan 2009 15:08:48 +0000 (16:08 +0100)]
p54: more cryptographic accelerator fixes

If we let the firmware do the data encryption, we have to remove the ICV and
(M)MIC at the end of the frame before we can give it back to mac80211.
Or, these data frames have a few trailing bytes on cooked monitor interfaces.

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agop54: add missing break in eeprom parser
Chr [Mon, 19 Jan 2009 13:30:26 +0000 (14:30 +0100)]
p54: add missing break in eeprom parser

This patch fixes a obvious memory leak in the eeprom parser.

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoorinoco: use KERN_DEBUG for link status messages
Pavel Roskin [Mon, 19 Jan 2009 04:20:58 +0000 (23:20 -0500)]
orinoco: use KERN_DEBUG for link status messages

KERN_INFO is too "loud" for messages that are generated by the ordinary
events, such as accociation.  Use of KERN_DEBUG is consistent with
mac80211.

Suggested by Michael Gilbert <michael.s.gilbert@gmail.com>

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agort2x00: Fix TX rate short preamble detection
Ivo van Doorn [Sun, 18 Jan 2009 19:15:24 +0000 (20:15 +0100)]
rt2x00: Fix TX rate short preamble detection

Mac80211 provides 2 structures to handle bitrates, namely
ieee80211_rate and ieee80211_tx_rate. To determine the short preamble
mode for an outgoing frame, the flag IEEE80211_TX_RC_USE_SHORT_PREAMBLE
must be checked on ieee80211_tx_rate and not ieee80211_rate (which rt2x00 did).

This fixes a regression which was triggered in 2.6.29-rcX as reported by Chris Clayton.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Tested-By: Chris Clayton <chris2553@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: fix slot time debug message
Christian Lamparter [Sun, 18 Jan 2009 01:24:15 +0000 (02:24 +0100)]
mac80211: fix slot time debug message

wlan0: switched to short barker preamble (BSSID=00:01:aa:bb:cc:dd)
wlan0: switched to short slot (BSSID=) <something is missing here>

should be:

wlan0: switched to short barker preamble (BSSID=00:01:aa:bb:cc:dd)
wlan0: switched to short slot (BSSID=00:01:aa:bb:cc:dd)

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoorinoco: move kmalloc(..., GFP_KERNEL) outside spinlock in orinoco_ioctl_set_genie
Andrey Borzenkov [Tue, 20 Jan 2009 17:26:46 +0000 (20:26 +0300)]
orinoco: move kmalloc(..., GFP_KERNEL) outside spinlock in orinoco_ioctl_set_genie

[   56.923623] BUG: sleeping function called from invalid context at /home/bor/src/linux-git/mm/slub.c:1599
[   56.923644] in_atomic(): 0, irqs_disabled(): 1, pid: 3031, name: wpa_supplicant
[   56.923656] 2 locks held by wpa_supplicant/3031:
[   56.923662]  #0:  (rtnl_mutex){--..}, at: [<c02abd1f>] rtnl_lock+0xf/0x20
[   56.923703]  #1:  (&priv->lock){++..}, at: [<dfc840c2>] orinoco_ioctl_set_genie+0x52/0x130 [orinoco]
[   56.923782] irq event stamp: 910
[   56.923788] hardirqs last  enabled at (909): [<c01957db>] __kmalloc+0x7b/0x140
[   56.923820] hardirqs last disabled at (910): [<c0309419>] _spin_lock_irqsave+0x19/0x80
[   56.923847] softirqs last  enabled at (880): [<c0124f54>] __do_softirq+0xc4/0x110
[   56.923865] softirqs last disabled at (871): [<c01049ae>] do_softirq+0x8e/0xe0
[   56.923895] Pid: 3031, comm: wpa_supplicant Not tainted 2.6.29-rc2-1avb #1
[   56.923905] Call Trace:
[   56.923919]  [<c01049ae>] ? do_softirq+0x8e/0xe0
[   56.923941]  [<c011ad12>] __might_sleep+0xd2/0x100
[   56.923952]  [<c0195837>] __kmalloc+0xd7/0x140
[   56.923963]  [<c030946a>] ? _spin_lock_irqsave+0x6a/0x80
[   56.923981]  [<dfc840e9>] ? orinoco_ioctl_set_genie+0x79/0x130 [orinoco]
[   56.923999]  [<dfc840c2>] ? orinoco_ioctl_set_genie+0x52/0x130 [orinoco]
[   56.924017]  [<dfc840e9>] orinoco_ioctl_set_genie+0x79/0x130 [orinoco]
[   56.924036]  [<c0209325>] ? copy_from_user+0x35/0x130
[   56.924061]  [<c02ffd96>] ioctl_standard_call+0x196/0x380
[   56.924085]  [<c029f945>] ? __dev_get_by_name+0x85/0xb0
[   56.924096]  [<c02ff88f>] wext_handle_ioctl+0x14f/0x230
[   56.924113]  [<dfc84070>] ? orinoco_ioctl_set_genie+0x0/0x130 [orinoco]
[   56.924132]  [<c02a3da5>] dev_ioctl+0x495/0x570
[   56.924155]  [<c0293e05>] ? sys_sendto+0xa5/0xd0
[   56.924171]  [<c0142fe8>] ? mark_held_locks+0x48/0x90
[   56.924183]  [<c0292880>] ? sock_ioctl+0x0/0x280
[   56.924193]  [<c029297d>] sock_ioctl+0xfd/0x280
[   56.924203]  [<c0292880>] ? sock_ioctl+0x0/0x280
[   56.924235]  [<c01a51d0>] vfs_ioctl+0x20/0x80
[   56.924246]  [<c01a53e2>] do_vfs_ioctl+0x72/0x570
[   56.924257]  [<c0293e62>] ? sys_send+0x32/0x40
[   56.924268]  [<c02947c0>] ? sys_socketcall+0x1d0/0x2a0
[   56.924280]  [<c010339f>] ? sysenter_exit+0xf/0x16
[   56.924292]  [<c01a5919>] sys_ioctl+0x39/0x70
[   56.924302]  [<c0103371>] sysenter_do_call+0x12/0x31

Signed-off-by: Andrey Borzenkov <arvidjaar@mail.ru>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: decrement ref count to netdev after launching mesh discovery
Brian Cavagnolo [Sat, 17 Jan 2009 03:04:49 +0000 (19:04 -0800)]
mac80211: decrement ref count to netdev after launching mesh discovery

After launching mesh discovery in tx path, reference count was not being
decremented.  This was preventing module unload.

Signed-off-by: Brian Cavagnolo <brian@cozybit.com>
Signed-off-by: Andrey Yurovsky <andrey@cozybit.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoALSA: hda - Add quirk for Gateway %1616 laptop
Takashi Iwai [Thu, 22 Jan 2009 16:40:18 +0000 (17:40 +0100)]
ALSA: hda - Add quirk for Gateway %1616 laptop

Gateway T1616 laptop needs EAPD always on while the current STAC9205
code turns off per HP plug.  Added a new model "eapd" to keep it on.

Reference: Novell bnc#467597
https://bugzilla.novell.com/show_bug.cgi?id=467597

Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agoMerge branch 'fix/hda' into topic/hda
Takashi Iwai [Thu, 22 Jan 2009 16:10:22 +0000 (17:10 +0100)]
Merge branch 'fix/hda' into topic/hda

17 years agoALSA: hda - Avoid to set the pin control again if already set
Takashi Iwai [Thu, 22 Jan 2009 15:59:20 +0000 (16:59 +0100)]
ALSA: hda - Avoid to set the pin control again if already set

Check the present pin control bit and avoid the write if it's already
set in patch_sigmatel.c.  This will reduce the number of verb execs at
jack plugging.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agoBtrfs: do less aggressive btree readahead
Chris Mason [Thu, 22 Jan 2009 14:23:10 +0000 (09:23 -0500)]
Btrfs: do less aggressive btree readahead

Just before reading a leaf, btrfs scans the node for blocks that are
close by and reads them too.  It tries to build up a large window
of IO looking for blocks that are within a max distance from the top
and bottom of the IO window.

This patch changes things to just look for blocks within 64k of the
target block.  It will trigger less IO and make for lower latencies on
the read size.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
17 years agocpumask: modifiy oprofile initialization
Robert Richter [Thu, 22 Jan 2009 13:14:14 +0000 (14:14 +0100)]
cpumask: modifiy oprofile initialization

Delta patch to f7df8ed164996cd2c6aca9674388be6ef78d8b37 for
tip/cpus4096.

Moved initialization to sync_start()/sync_stop(). No changes needed in
buffer_sync.h and oprof.c anymore.

Signed-off-by: Robert Richter <robert.richter@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86, ds, bts: cleanup/fix DS configuration
Markus Metzger [Mon, 19 Jan 2009 09:38:35 +0000 (10:38 +0100)]
x86, ds, bts: cleanup/fix DS configuration

Cleanup the cpuid check for DS configuration.

This also fixes a Corei7 CPUID enumeration bug.

Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agodrm/i915: Fix cursor physical address choice to match the 2D driver.
Jesse Barnes [Wed, 21 Jan 2009 03:10:54 +0000 (19:10 -0800)]
drm/i915: Fix cursor physical address choice to match the 2D driver.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
17 years agodrm: stash AGP include under the do-we-have-AGP ifdef
Eric Anholt [Thu, 15 Jan 2009 09:16:25 +0000 (01:16 -0800)]
drm: stash AGP include under the do-we-have-AGP ifdef

This fixes the MIPS with DRM build.

Signed-off-by: Eric Anholt <eric@anholt.net>
Tested-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
17 years agodrm: don't whine about not reading EDID data
Jesse Barnes [Thu, 22 Jan 2009 12:23:53 +0000 (22:23 +1000)]
drm: don't whine about not reading EDID data

Make this message a little quieter, since it's common and not necessarily
indicative of a problem.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
17 years agodrm/i915: hook up LVDS DPMS property
Jesse Barnes [Thu, 22 Jan 2009 12:22:06 +0000 (22:22 +1000)]
drm/i915: hook up LVDS DPMS property

The LVDS output supports DPMS calls, but we never hooked up the property code,
so set property calls didn't actually do anything.  Implement a set_property
callback for the LVDS output so that the right thing happens.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
17 years agodrm/i915: remove unnecessary debug output in KMS init
Jesse Barnes [Thu, 22 Jan 2009 12:21:16 +0000 (22:21 +1000)]
drm/i915: remove unnecessary debug output in KMS init

We don't really need to print out the FB BAR...

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
17 years agoALSA: hda - Add model entry for HP dv4
Takashi Iwai [Thu, 22 Jan 2009 11:58:11 +0000 (12:58 +0100)]
ALSA: hda - Add model entry for HP dv4

Added model=hp-dv5 for HP dv4 (103c:30f7).

Reference: kernel bug #12440
http://bugzilla.kernel.org/show_bug.cgi?id=12440

Signed-off-by: Takashi Iwai <tiwai@suse.de>
17 years agox86 PAT: ioremap_wc should take resource_size_t parameter
venkatesh.pallipadi@intel.com [Sat, 10 Jan 2009 00:13:13 +0000 (16:13 -0800)]
x86 PAT: ioremap_wc should take resource_size_t parameter

Impact: fix/extend ioremap_wc() beyond 4GB aperture on 32-bit

ioremap_wc() was taking in unsigned long parameter, where as it should take
64-bit resource_size_t parameter like other ioremap variants.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agofs/Kconfig: move 9p out
Alexey Dobriyan [Thu, 22 Jan 2009 08:16:42 +0000 (11:16 +0300)]
fs/Kconfig: move 9p out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move afs out
Alexey Dobriyan [Thu, 22 Jan 2009 08:16:02 +0000 (11:16 +0300)]
fs/Kconfig: move afs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move coda out
Alexey Dobriyan [Thu, 22 Jan 2009 08:15:06 +0000 (11:15 +0300)]
fs/Kconfig: move coda out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move the rest of ncpfs out
Alexey Dobriyan [Thu, 22 Jan 2009 08:14:15 +0000 (11:14 +0300)]
fs/Kconfig: move the rest of ncpfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move smbfs out
Alexey Dobriyan [Thu, 22 Jan 2009 08:13:16 +0000 (11:13 +0300)]
fs/Kconfig: move smbfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move sunrpc out
Alexey Dobriyan [Thu, 22 Jan 2009 08:11:56 +0000 (11:11 +0300)]
fs/Kconfig: move sunrpc out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move nfsd out
Alexey Dobriyan [Thu, 22 Jan 2009 08:08:58 +0000 (11:08 +0300)]
fs/Kconfig: move nfsd out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move nfs out
Alexey Dobriyan [Thu, 22 Jan 2009 08:07:41 +0000 (11:07 +0300)]
fs/Kconfig: move nfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move ufs out
Alexey Dobriyan [Thu, 22 Jan 2009 08:05:02 +0000 (11:05 +0300)]
fs/Kconfig: move ufs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move sysv out
Alexey Dobriyan [Thu, 22 Jan 2009 08:04:23 +0000 (11:04 +0300)]
fs/Kconfig: move sysv out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move romfs out
Alexey Dobriyan [Thu, 22 Jan 2009 08:03:34 +0000 (11:03 +0300)]
fs/Kconfig: move romfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move qnx4 out
Alexey Dobriyan [Thu, 22 Jan 2009 08:02:21 +0000 (11:02 +0300)]
fs/Kconfig: move qnx4 out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move hpfs out
Alexey Dobriyan [Thu, 22 Jan 2009 08:01:26 +0000 (11:01 +0300)]
fs/Kconfig: move hpfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move omfs out
Alexey Dobriyan [Thu, 22 Jan 2009 08:00:41 +0000 (11:00 +0300)]
fs/Kconfig: move omfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move minix out
Alexey Dobriyan [Thu, 22 Jan 2009 07:59:49 +0000 (10:59 +0300)]
fs/Kconfig: move minix out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move vxfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:58:51 +0000 (10:58 +0300)]
fs/Kconfig: move vxfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move squashfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:57:46 +0000 (10:57 +0300)]
fs/Kconfig: move squashfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move cramfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:56:54 +0000 (10:56 +0300)]
fs/Kconfig: move cramfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move efs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:56:07 +0000 (10:56 +0300)]
fs/Kconfig: move efs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move bfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:55:13 +0000 (10:55 +0300)]
fs/Kconfig: move bfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move befs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:54:16 +0000 (10:54 +0300)]
fs/Kconfig: move befs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move hfs, hfsplus out
Alexey Dobriyan [Thu, 22 Jan 2009 07:53:24 +0000 (10:53 +0300)]
fs/Kconfig: move hfs, hfsplus out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move ecryptfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:50:50 +0000 (10:50 +0300)]
fs/Kconfig: move ecryptfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move affs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:49:44 +0000 (10:49 +0300)]
fs/Kconfig: move affs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move adfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:48:46 +0000 (10:48 +0300)]
fs/Kconfig: move adfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move configfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:42:52 +0000 (10:42 +0300)]
fs/Kconfig: move configfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move sysfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:40:58 +0000 (10:40 +0300)]
fs/Kconfig: move sysfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move ntfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:39:20 +0000 (10:39 +0300)]
fs/Kconfig: move ntfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move fat out
Alexey Dobriyan [Thu, 22 Jan 2009 07:37:59 +0000 (10:37 +0300)]
fs/Kconfig: move fat out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move iso9660, udf out
Alexey Dobriyan [Thu, 22 Jan 2009 07:35:21 +0000 (10:35 +0300)]
fs/Kconfig: move iso9660, udf out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move fuse out
Alexey Dobriyan [Thu, 22 Jan 2009 07:33:25 +0000 (10:33 +0300)]
fs/Kconfig: move fuse out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move autofs, autofs4 out
Alexey Dobriyan [Thu, 22 Jan 2009 07:31:56 +0000 (10:31 +0300)]
fs/Kconfig: move autofs, autofs4 out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move btrfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:27:30 +0000 (10:27 +0300)]
fs/Kconfig: move btrfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move ocfs2 out
Alexey Dobriyan [Thu, 22 Jan 2009 07:26:11 +0000 (10:26 +0300)]
fs/Kconfig: move ocfs2 out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move jfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:24:27 +0000 (10:24 +0300)]
fs/Kconfig: move jfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agofs/Kconfig: move reiserfs out
Alexey Dobriyan [Thu, 22 Jan 2009 07:22:31 +0000 (10:22 +0300)]
fs/Kconfig: move reiserfs out

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
17 years agoring-buffer: reset timestamps when ring buffer is reset
Steven Rostedt [Wed, 21 Jan 2009 23:45:57 +0000 (18:45 -0500)]
ring-buffer: reset timestamps when ring buffer is reset

Impact: fix bad times of recent resets

The ring buffer needs to reset its timestamps when reseting of the
buffer, otherwise the timestamps are stale and might be used to
calculate times in the buffer causing funny timestamps to appear.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoring-buffer: reset timestamps when ring buffer is reset
Steven Rostedt [Wed, 21 Jan 2009 23:45:57 +0000 (18:45 -0500)]
ring-buffer: reset timestamps when ring buffer is reset

Impact: fix bad times of recent resets

The ring buffer needs to reset its timestamps when reseting of the
buffer, otherwise the timestamps are stale and might be used to
calculate times in the buffer causing funny timestamps to appear.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agowakeup-tracer: show scheduling data in output
Steven Rostedt [Wed, 21 Jan 2009 22:17:04 +0000 (17:17 -0500)]
wakeup-tracer: show scheduling data in output

Impact: better data for wakeup tracer

This patch adds the wakeup and schedule calls that are used by
the scheduler tracer to make the wakeup tracer more readable.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agotrace: separate out rt tasks from wakeup tracer
Steven Rostedt [Wed, 21 Jan 2009 21:24:46 +0000 (16:24 -0500)]
trace: separate out rt tasks from wakeup tracer

Impact: add option to trace all tasks or just RT tasks

The current wakeup tracer only traces RT task wakeups. This is
fine for those interested in wake up timings of RT tasks, but
it is useless for those that are interested in the causes
of long wakeups for non RT tasks.

This patch creates a "wakeup_rt" to implement the tracing of just
RT tasks (as the current "wakeup" does). And makes "wakeup" now
trace all tasks as an average developer would expect.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoring-buffer: do not swap if recording is disabled
Steven Rostedt [Wed, 21 Jan 2009 20:24:56 +0000 (15:24 -0500)]
ring-buffer: do not swap if recording is disabled

If the ring buffer recording has been disabled. Do not let
swapping of ring buffers occur. Simply return -EAGAIN.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agotrace: do not disable wake up tracer on output of trace
Steven Rostedt [Wed, 21 Jan 2009 19:36:52 +0000 (14:36 -0500)]
trace: do not disable wake up tracer on output of trace

Impact: fix to erased trace output

To try not to have the outputing of a trace interfere with the wakeup
tracer, it would disable tracing while the output was printing. But
if a trace had started when it was disabled, it can show a partial
trace. To try to solve this, on closing of the tracer, it would
clear the trace buffer.

The latency tracers (wakeup and irqsoff) have two buffers. One for
recording and one for holding the max trace that is printed. The
clearing of the trace above should only affect the recording buffer.
But for some reason it would move the erased trace to the print
buffer. Probably due to a race with the closing of the trace and
the saving ofhe max race.

The above is all pretty useless, and if the user does not want the
printing of the trace to be traced itself, then the user can manual
disable tracing. This patch removes all the code that tries to keep
the output of the tracer from modifying the trace.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoMerge branch 'tracing/ftrace' into tracing/core
Ingo Molnar [Thu, 22 Jan 2009 09:26:30 +0000 (10:26 +0100)]
Merge branch 'tracing/ftrace' into tracing/core

17 years agoirq: clean up irq stat methods
Yinghai Lu [Thu, 22 Jan 2009 08:38:56 +0000 (00:38 -0800)]
irq: clean up irq stat methods

David Miller suggested, related to a kstat_irqs related build breakage:

> Either linux/kernel_stat.h provides the kstat_incr_irqs_this_cpu
> interface or linux/irq.h does, not both.

So move them to kernel_stat.h.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoMerge branch 'core/debugobjects' into core/urgent
Thomas Gleixner [Thu, 22 Jan 2009 09:03:02 +0000 (10:03 +0100)]
Merge branch 'core/debugobjects' into core/urgent

17 years agodebugobjects: add and use INIT_WORK_ON_STACK
Thomas Gleixner [Thu, 22 Jan 2009 08:50:44 +0000 (09:50 +0100)]
debugobjects: add and use INIT_WORK_ON_STACK

Impact: Fix debugobjects warning

debugobject enabled kernels spit out a warning in hpet code due to a
workqueue which is initialized on stack.

Add INIT_WORK_ON_STACK() which calls init_timer_on_stack() and use it
in hpet.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agorcu: remove duplicate CONFIG_RCU_CPU_STALL_DETECTOR
Lai Jiangshan [Thu, 22 Jan 2009 01:46:38 +0000 (09:46 +0800)]
rcu: remove duplicate CONFIG_RCU_CPU_STALL_DETECTOR

Impact: remove the old CONFIG_RCU_CPU_STALL_DETECTOR

tree_rcu introduce CONFIG_RCU_CPU_STALL_DETECTOR again.

These two are the same exactly except:

 the old one "depends on CLASSIC_RCU"
 the new one "depends on CLASSIC_RCU || TREE_RCU"

This patch remove the old one.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86: unmask CPUID levels on Intel CPUs
H. Peter Anvin [Wed, 21 Jan 2009 23:04:32 +0000 (15:04 -0800)]
x86: unmask CPUID levels on Intel CPUs

Impact: Fixes crashes with misconfigured BIOSes on XSAVE hardware

Avuton Olrich reported early boot crashes with v2.6.28 and
bisected it down to dc1e35c6e95e8923cf1d3510438b63c600fee1e2
("x86, xsave: enable xsave/xrstor on cpus with xsave support").

If the CPUID limit bit in MSR_IA32_MISC_ENABLE is set, clear it to
make all CPUID information available.  This is required for some
features to work, in particular XSAVE.

Reported-and-bisected-by: Avuton Olrich <avuton@gmail.com>
Tested-by: Avuton Olrich <avuton@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
17 years agosparc64: Fix build by using kstat_irqs_cpu()
David Miller [Thu, 22 Jan 2009 01:15:53 +0000 (17:15 -0800)]
sparc64: Fix build by using kstat_irqs_cpu()

Changeset d7e51e66899f95dabc89b4d4c6674a6e50fa37fc ("sparseirq: make
some func to be used with genirq") broke the build on sparc64:

arch/sparc/kernel/irq_64.c: In function ‘show_interrupts’:
arch/sparc/kernel/irq_64.c:188: error: ‘struct kernel_stat’ has no member named ‘irqs’
make[1]: *** [arch/sparc/kernel/irq_64.o] Error 1

Fix by using the kstat_irqs_cpu() interface.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agosparc64: Fix build by including linux/irq.h into time_64.c
David Miller [Thu, 22 Jan 2009 01:24:51 +0000 (17:24 -0800)]
sparc64: Fix build by including linux/irq.h into time_64.c

Changeset d7e51e66899f95dabc89b4d4c6674a6e50fa37fc ("sparseirq: make
some func to be used with genirq") broke the build on sparc64:

arch/sparc/kernel/time_64.c: In function ‘timer_interrupt’:
arch/sparc/kernel/time_64.c:732: error: implicit declaration of function ‘kstat_incr_irqs_this_cpu’
make[1]: *** [arch/sparc/kernel/time_64.o] Error 1

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoi915: fix freeing path for gem phys objects.
Dave Airlie [Thu, 22 Jan 2009 07:58:49 +0000 (17:58 +1000)]
i915: fix freeing path for gem phys objects.

This off-by-one was pointed out by Jesse Barnes.

Signed-off-by: Dave Airlie <airlied@redhat.com>
17 years agodrm: create mode_config idr lock
Jesse Barnes [Mon, 19 Jan 2009 07:21:45 +0000 (17:21 +1000)]
drm: create mode_config idr lock

Create a separate mode_config IDR lock for simplicity.  The core DRM
config structures (connector, mode, etc. lists) are still protected by
the mode_config mutex, but the CRTC IDR (used for the various identifier
IDs) is now protected by the mode_config idr_mutex.  Simplifies the
locking a bit and removes a warning.

All objects are protected by the config mutex, we may in the future,
split the object further to have reference counts.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
17 years agoMerge branch 'test/hda-vol-ofs' into next/hda
Takashi Iwai [Thu, 22 Jan 2009 07:33:04 +0000 (08:33 +0100)]
Merge branch 'test/hda-vol-ofs' into next/hda

17 years agoLong btree pointers are still 64 bit on disk
Dave Chinner [Wed, 21 Jan 2009 04:22:17 +0000 (15:22 +1100)]
Long btree pointers are still 64 bit on disk

[XFS] Long btree pointers are still 64 bit on disk

On 32 bit machines with CONFIG_LBD=n, XFS reduces the
in memory size of xfs_fsblock_t to 32 bits so that it
will fit within 32 bit addressing. However, the disk format
for long btree pointers are still 64 bits in size.

The recent btree rewrite failed to take this into account
when initialising new btree blocks, setting sibling pointers
to NULL and checking if they are NULL. Hence checking whether
a 64 bit NULL was the same as a 32 bit NULL was failingi
resulting in NULL sibling pointers failing to be detected
correctly. This showed up as WANT_CORRUPTED_GOTO shutdowns
in xfs_btree_delrec.

Fix this by making all the comparisons and setting of long
pointer btree NULL blocks to the disk format, not the
in memory format. i.e. use NULLDFSBNO.

Reported-by: Alexander Beregalov <a.beregalov@gmail.com>
Reported-by: Jacek Luczak <difrost.kernel@gmail.com>
Reported-by: Danny ter Haar <dth@dth.net>
Tested-by: Jacek Luczak <difrost.kernel@gmail.com>
Reviewed-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Felix Blyakher <felixb@sgi.com>
17 years agoMerge branch 'master' of git+ssh://oss.sgi.com/oss/git/xfs/xfs
Felix Blyakher [Thu, 22 Jan 2009 04:39:29 +0000 (22:39 -0600)]
Merge branch 'master' of git+ssh://oss.sgi.com/oss/git/xfs/xfs

17 years ago[XFS] remove always-true #ifndef HAVE_FORMAT32 tests
Eric Sandeen [Thu, 1 Jan 2009 22:50:27 +0000 (16:50 -0600)]
[XFS] remove always-true #ifndef HAVE_FORMAT32 tests

There are several tests for #ifndef HAVE_FORMAT32, but
this is never defined anywhere so it is always the default
behavior; just remove the ifndef goop.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
17 years agoLong btree pointers are still 64 bit on disk
Dave Chinner [Wed, 21 Jan 2009 04:22:17 +0000 (15:22 +1100)]
Long btree pointers are still 64 bit on disk

[XFS] Long btree pointers are still 64 bit on disk

On 32 bit machines with CONFIG_LBD=n, XFS reduces the
in memory size of xfs_fsblock_t to 32 bits so that it
will fit within 32 bit addressing. However, the disk format
for long btree pointers are still 64 bits in size.

The recent btree rewrite failed to take this into account
when initialising new btree blocks, setting sibling pointers
to NULL and checking if they are NULL. Hence checking whether
a 64 bit NULL was the same as a 32 bit NULL was failingi
resulting in NULL sibling pointers failing to be detected
correctly. This showed up as WANT_CORRUPTED_GOTO shutdowns
in xfs_btree_delrec.

Fix this by making all the comparisons and setting of long
pointer btree NULL blocks to the disk format, not the
in memory format. i.e. use NULLDFSBNO.

Reported-by: Alexander Beregalov <a.beregalov@gmail.com>
Reported-by: Jacek Luczak <difrost.kernel@gmail.com>
Reported-by: Danny ter Haar <dth@dth.net>
Tested-by: Jacek Luczak <difrost.kernel@gmail.com>
Reviewed-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Felix Blyakher <felixb@sgi.com>
17 years agotun: Implement ip link del tunXXX
Eric W. Biederman [Thu, 22 Jan 2009 00:02:16 +0000 (16:02 -0800)]
tun: Implement ip link del tunXXX

This greatly simplifies testing to verify I have fixed the problems
with a tun device disappearing when the tun file descriptor is still
held open.

Further it allows removal network namespace operations for the tun
driver.  Reducing the network namespace handling in the driver to the
minimum.  i.e. When we are creating a tun device.

Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agotun: There is no longer any need to deny changing network namespaces
Eric W. Biederman [Tue, 20 Jan 2009 11:08:46 +0000 (11:08 +0000)]
tun: There is no longer any need to deny changing network namespaces

With the awkward case between free_netdev and dev_chr_close fixed
there is no longer any need to limit tun and tap devices to the
network namespace they were created in.  So remove the
NETIF_F_NETNS_LOCAL flag on the network device.

Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agotun: Fix races between tun_net_close and free_netdev.
Eric W. Biederman [Tue, 20 Jan 2009 11:07:17 +0000 (11:07 +0000)]
tun: Fix races between tun_net_close and free_netdev.

The tun code does not cope gracefully if the network device goes away before
the tun file descriptor is closed.  It looks like we can trigger this with
rmmod, and moving tun devices between network namespaces will allow this
to be triggered when network namespaces exit.

To fix this I introduce an intermediate data structure tun_file which
holds a count of users and a pointer to the struct tun_struct.  tun_get
increments that reference count if it is greater than 0.  tun_put decrements
that reference count and detaches from the network device if the count is 0.

While we have a file attached to the network device I hold a reference
to the network device keeping it from going away completely.

When a network device is unregistered I decrement the count of the
attached tun_file and if that was the last user I detach the tun_file,
and all processes on read_wait are woken up to ensure they do not
sleep indefinitely. As some of those sleeps happen with the count on
the tun device elevated waking up the read waiters ensures that
tun_file will be detached in a timely manner.

Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agotun: Move read_wait into tun_file
Eric W. Biederman [Tue, 20 Jan 2009 11:03:21 +0000 (11:03 +0000)]
tun: Move read_wait into tun_file

The poll interface requires that the waitqueue exist while the struct
file is open.  In the rare case when a tun device disappears before
the tun file closes we fail to provide this property, so move
read_wait.

This is safe now that tun_net_xmit is atomic with tun_detach.

Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>