deliverable/linux.git
19 years agoAutomatic merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/sparc...
Linus Torvalds [Thu, 19 May 2005 22:31:18 +0000 (15:31 -0700)] 
Merge ... /linux/kernel/git/davem/sparc-2.6.git/

19 years agoMerge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git/
Linus Torvalds [Thu, 19 May 2005 22:29:23 +0000 (15:29 -0700)] 
Merge ... /linux/kernel/git/davem/net-2.6.git/

19 years ago[NETLINK]: Defer socket destruction a bit
Tommy S. Christensen [Thu, 19 May 2005 20:07:32 +0000 (13:07 -0700)] 
[NETLINK]: Defer socket destruction a bit

In netlink_broadcast() we're sending shared skb's to netlink listeners
when possible (saves some copying). This is OK, since we hold the only
other reference to the skb.

However, this implies that we must drop our reference on the skb, before
allowing a receiving socket to disappear. Otherwise, the socket buffer
accounting is disrupted.

Signed-off-by: Tommy S. Christensen <tommy.christensen@tpack.net>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETLINK]: Move broadcast skb_orphan to the skb_get path.
Tommy S. Christensen [Thu, 19 May 2005 20:06:35 +0000 (13:06 -0700)] 
[NETLINK]: Move broadcast skb_orphan to the skb_get path.

Cloned packets don't need the orphan call.

Signed-off-by: Tommy S. Christensen <tommy.christensen@tpack.net>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETLINK]: Fix race with recvmsg().
Tommy S. Christensen [Thu, 19 May 2005 19:46:59 +0000 (12:46 -0700)] 
[NETLINK]: Fix race with recvmsg().

This bug causes:

assertion (!atomic_read(&sk->sk_rmem_alloc)) failed at net/netlink/af_netlink.c (122)

What's happening is that:

1) The skb is sent to socket 1.
2) Someone does a recvmsg on socket 1 and drops the ref on the skb.
   Note that the rmalloc is not returned at this point since the
   skb is still referenced.
3) The same skb is now sent to socket 2.

This version of the fix resurrects the skb_orphan call that was moved
out, last time we had 'shared-skb troubles'. It is practically a no-op
in the common case, but still prevents the possible race with recvmsg.

Signed-off-by: Tommy S. Christensen <tommy.christensen@tpack.net>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PKT_SCHED]: Fixup simple action define.
Jamal Hadi Salim [Thu, 19 May 2005 19:42:39 +0000 (12:42 -0700)] 
[PKT_SCHED]: Fixup simple action define.

Make it consistent with other net/sched files

Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPSEC]: Verify key payload in verify_one_algo
Herbert Xu [Thu, 19 May 2005 19:39:49 +0000 (12:39 -0700)] 
[IPSEC]: Verify key payload in verify_one_algo

We need to verify that the payload contains enough data so that
attach_one_algo can copy alg_key_len bits from the payload.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPSEC]: Fixed alg_key_len usage in attach_one_algo
Herbert Xu [Thu, 19 May 2005 19:39:04 +0000 (12:39 -0700)] 
[IPSEC]: Fixed alg_key_len usage in attach_one_algo

The variable alg_key_len is in bits and not bytes.  The function
attach_one_algo is currently using it as if it were in bytes.
This causes it to read memory which may not be there.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER]: Do not be clever about SKB ownership in ip_ct_gather_frags().
David S. Miller [Thu, 19 May 2005 19:36:33 +0000 (12:36 -0700)] 
[NETFILTER]: Do not be clever about SKB ownership in ip_ct_gather_frags().

Just do an skb_orphan() and be done with it.
Based upon discussions with Herbert Xu on netdev.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IP_VS]: Remove extra __ip_vs_conn_put() for incoming ICMP.
Julian Anastasov [Thu, 19 May 2005 19:29:59 +0000 (12:29 -0700)] 
[IP_VS]: Remove extra __ip_vs_conn_put() for incoming ICMP.

Remove extra __ip_vs_conn_put for incoming ICMP in direct routing
mode. Mark de Vries reports that IPVS connections are not leaked anymore.

Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[AF_UNIX]: Use lookup_create().
Christoph Hellwig [Thu, 19 May 2005 19:26:43 +0000 (12:26 -0700)] 
[AF_UNIX]: Use lookup_create().

currently it opencodes it, but that's in the way of chaning the
lookup_hash interface.

I'd prefer to disallow modular af_unix over exporting lookup_create,
but I'll leave that to you.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PATCH] prevent NULL mmap in topdown model
Linus Torvalds [Wed, 18 May 2005 22:39:33 +0000 (15:39 -0700)] 
[PATCH] prevent NULL mmap in topdown model

Prevent the topdown allocator from allocating mmap areas all the way
down to address zero.

We still allow a MAP_FIXED mapping of page 0 (needed for various things,
ranging from Wine and DOSEMU to people who want to allow speculative
loads off a NULL pointer).

Tested by Chris Wright.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[IPV4/IPV6] Ensure all frag_list members have NULL sk
Herbert Xu [Thu, 19 May 2005 05:52:33 +0000 (22:52 -0700)] 
[IPV4/IPV6] Ensure all frag_list members have NULL sk

Having frag_list members which holds wmem of an sk leads to nightmares
with partially cloned frag skb's.  The reason is that once you unleash
a skb with a frag_list that has individual sk ownerships into the stack
you can never undo those ownerships safely as they may have been cloned
by things like netfilter.  Since we have to undo them in order to make
skb_linearize happy this approach leads to a dead-end.

So let's go the other way and make this an invariant:

For any skb on a frag_list, skb->sk must be NULL.

That is, the socket ownership always belongs to the head skb.
It turns out that the implementation is actually pretty simple.

The above invariant is actually violated in the following patch
for a short duration inside ip_fragment.  This is OK because the
offending frag_list member is either destroyed at the end of the
slow path without being sent anywhere, or it is detached from
the frag_list before being sent.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[XFRM]: skb_cow_data() does not set proper owner for new skbs.
Evgeniy Polyakov [Thu, 19 May 2005 05:51:45 +0000 (22:51 -0700)] 
[XFRM]: skb_cow_data() does not set proper owner for new skbs.

It looks like skb_cow_data() does not set
proper owner for newly created skb.

If we have several fragments for skb and some of them
are shared(?) or cloned (like in async IPsec) there
might be a situation when we require recreating skb and
thus using skb_copy() for it.
Newly created skb has neither a destructor nor a socket
assotiated with it, which must be copied from the old skb.
As far as I can see, current code sets destructor and socket
for the first one skb only and uses truesize of the first skb
only to increment sk_wmem_alloc value.

If above "analysis" is correct then attached patch fixes that.

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TG3]: In tg3_poll(), resample status_tag after doing work.
David S. Miller [Thu, 19 May 2005 05:50:53 +0000 (22:50 -0700)] 
[TG3]: In tg3_poll(), resample status_tag after doing work.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TG3]: Refine DMA boundary setting.
David S. Miller [Thu, 19 May 2005 05:50:10 +0000 (22:50 -0700)] 
[TG3]: Refine DMA boundary setting.

Extract DMA boundary bit selection into a seperate
function, tg3_calc_dma_bndry().  Call this from
tg3_test_dma().

Make DMA test more reliable by using no DMA boundry
setting during the test.  If the test passes, then
use the setting we selected before the test.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Michael Chan <mchan@broadcom.com>
19 years ago[TG3]: Set minimal hw interrupt mitigation.
David S. Miller [Thu, 19 May 2005 05:49:26 +0000 (22:49 -0700)] 
[TG3]: Set minimal hw interrupt mitigation.

Even though we do software interrupt mitigation
via NAPI, it still helps to have some minimal
hw assisted mitigation.

This helps, particularly, on systems where register
I/O overhead is much greater than the CPU horsepower.

For example, it helps on NUMA systems.  In such cases
the PIO overhead to disable interrupts for NAPI accounts
for the majority of the packet processing cost.  The
CPU is fast enough such that only a single packet is
processed by each NAPI poll call.

Thanks to Michael Chan for reviewing this patch.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TG3]: Add tagged status support.
David S. Miller [Thu, 19 May 2005 05:46:34 +0000 (22:46 -0700)] 
[TG3]: Add tagged status support.

When supported, use the TAGGED interrupt processing support
the chip provides.  In this mode, instead of a "on/off" binary
semaphore, an incrementing tag scheme is used to ACK interrupts.

All MSI supporting chips support TAGGED mode, so the tg3_msi()
interrupt handler uses it unconditionally.  This invariant is
verified when MSI support is tested.

Since we can invoke tg3_poll() multiple times per interrupt under
high packet load, we fetch a new copy of the tag value in the
status block right before we actually do the work.

Also, because the tagged status tells the chip exactly which
work we have processed, we can make two optimizations:

1) tg3_restart_ints() need not check tg3_has_work()
2) the tg3_timer() need not poke the chip 10 times per
   second to keep from losing interrupt events

Based upon valuable feedback from Michael Chan <mchan@broadcom.com>

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years agoAutomatic merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/driver...
Linus Torvalds [Wed, 18 May 2005 23:37:46 +0000 (16:37 -0700)] 
Merge ... /linux/kernel/git/gregkh/driver-2.6.git/

19 years ago[PATCH] Avoid console spam with ext3 aborted journal.
Stephen Tweedie [Wed, 18 May 2005 15:47:17 +0000 (11:47 -0400)] 
[PATCH] Avoid console spam with ext3 aborted journal.

Avoid console spam with ext3 aborted journal.

ext3 usually reports error conditions that it detects in its environment.
But when its journal gets aborted due to such errors, it can sometimes
continue to report that condition forever, spamming the console to such
an extent that the initial first cause of the journal abort can be lost.

When the journal aborts, we put the filesystem into readonly mode.  Most
subsequent filesystem operations will get rejected immediately by checks
for MS_RDONLY either in the filesystem or in the VFS.  But some paths do
not have such checks --- for example, if we continue to write to a file
handle that was opened before the fs went readonly.  (We only check for
the ROFS condition when the file is first opened.)  In these cases, we
can continue to generate log errors similar to

EXT3-fs error (device $DEV) in start_transaction: Journal has aborted

for each subsequent write.

There is really no point in generating these errors after the initial
error has been fully reported.  Specifically, if we're starting a
completely new filesystem operation, and the filesystem is *already*
readonly (ie. the ext3 layer has already detected and handled the
underlying jbd abort), and we see an EROFS error, then there is simply
no point in reporting it again.

Signed-off-by: Stephen Tweedie <sct@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix filp being passed through raw ioctl handler
Stephen Tweedie [Wed, 18 May 2005 15:22:31 +0000 (11:22 -0400)] 
[PATCH] Fix filp being passed through raw ioctl handler

Don't pass meaningless file handles to block device ioctls.

The recent raw IO ioctl-passthrough fix started passing the raw file
handle into the block device ioctl handler.  That's unlikely to be
useful, as the file handle is actually open on a character-mode raw
device, not a block device, so dereferencing it is not going to yield
useful results to a block device ioctl handler.

Previously we just passed NULL; also not a value that can usefully
be dereferenced, but at least if it does happen, we'll oops instead of
silently pretending that the file is a block device, so NULL is the more
defensive option here.  This patch reverts to that behaviour.

Noticed by Al Viro.

Signed-off-by: Stephen Tweedie <sct@redhat.com>
Acked-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Driver Core: remove driver model detach_state
David Brownell [Thu, 12 May 2005 19:06:27 +0000 (12:06 -0700)] 
[PATCH] Driver Core: remove driver model detach_state

The driver model has a "detach_state" mechanism that:

 - Has never been used by any in-kernel drive;
 - Is superfluous, since driver remove() methods can do the same thing;
 - Became buggy when the suspend() parameter changed semantics and type;
 - Could self-deadlock when called from certain suspend contexts;
 - Is effectively wasted documentation, object code, and headspace.

This removes that "detach_state" mechanism; net code shrink, as well
as a per-device saving in the driver model and sysfs.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] Driver Core: pm diagnostics update, check for errors
David Brownell [Mon, 9 May 2005 15:07:00 +0000 (08:07 -0700)] 
[PATCH] Driver Core: pm diagnostics update, check for errors

This patch includes various tweaks in the messaging that appears during
system pm state transitions:

  * Warn about certain illegal calls in the device tree, like resuming
    child before parent or suspending parent before child.  This could
    happen easily enough through sysfs, or in some cases when drivers
    use device_pm_set_parent().

  * Be more consistent about dev_dbg() tracing ... do it for resume() and
    shutdown() too, and never if the driver doesn't have that method.

  * Say which type of system sleep state is being entered.

Except for the warnings, these only affect debug messaging.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] PCI: add MODALIAS to hotplug event for pci devices
Greg KH [Thu, 5 May 2005 18:57:25 +0000 (11:57 -0700)] 
[PATCH] PCI: add MODALIAS to hotplug event for pci devices

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] PCI: add modalias sysfs file for pci devices
Greg KH [Thu, 5 May 2005 18:57:25 +0000 (11:57 -0700)] 
[PATCH] PCI: add modalias sysfs file for pci devices

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] PCI Hotplug: remove pci_visit_dev
Scott Murray [Mon, 9 May 2005 21:36:27 +0000 (17:36 -0400)] 
[PATCH] PCI Hotplug: remove pci_visit_dev

If my CPCI hotplug update patch is applied, then there are no longer any
in tree users of the pci_visit_dev API, and it and its related code can be
removed.

Signed-off-by: Scott Murray <scottm@somanetworks.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] PCI Hotplug: CPCI update
Scott Murray [Mon, 9 May 2005 21:31:50 +0000 (17:31 -0400)] 
[PATCH] PCI Hotplug: CPCI update

[PATCH] CPCI: update

I have finally done some work to update the CompactPCI hotplug driver to
fix some of the outstanding issues in 2.6:
- Added adapter and latch status ops so that those files will get created
  by the current PCI hotplug core.  This used to not be required, but
  seems to be now after some of the sysfs rework in the core.
- Replaced slot list spinlock with a r/w semaphore to avoid any potential
  issues with sleeping.  This quiets all of the runtime warnings.
- Reworked interrupt driven hot extraction handling to remove need for a
  polling operator for ENUM# status.  There are a lot of boards that only
  have an interrupt driven by ENUM#, so this lowers the bar to entry.
- Replaced pci_visit_dev usage with better use of the PCI core functions.
  The new code is functionally equivalent to the previous code, but the
  use of pci_enable_device on insert needs to be investigated further, as
  I need to do some more testing to see if it is still necessary.

Signed-off-by: Scott Murray <scottm@somanetworks.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] PCI Hotplug: get pciehp to work on the downstream port of a switch
Dely Sy [Sat, 7 May 2005 00:19:09 +0000 (17:19 -0700)] 
[PATCH] PCI Hotplug: get pciehp to work on the downstream port of a switch

Here is the updated patch to get pciehp driver to work for downstream
port of a switch and handle the difference in the offset value of PCI
Express capability list item of different ports.

Signed-off-by: Dely Sy <dely.l.sy@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] PCI Hotplug: Fix echoing 1 to power file of enabled slot problem with SHPC...
Dely Sy [Thu, 5 May 2005 18:57:25 +0000 (11:57 -0700)] 
[PATCH] PCI Hotplug: Fix echoing 1 to power file of enabled slot problem with SHPC driver

Here is a patch to fix the problem of echoing 1 to "power" file
to enabled slot causing the slot to power down, and echoing 0
to disabled slot causing shpchp_disabled_slot() to be called
twice. This problem was reported by kenji Kaneshige.

Thanks,
Dely

Signed-off-by: Dely Sy <dely.l.sy@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago[PATCH] fix memory scribble in arch/i386/pci/fixup.c
Christoph Lameter [Tue, 17 May 2005 15:48:16 +0000 (08:48 -0700)] 
[PATCH] fix memory scribble in arch/i386/pci/fixup.c

The GET_INDEX() macro should use just the low three bits of the devfn,
otherwise we have a memory scribble in pcie_rootport_aspm_quirk that
overwrites ptype_all

Fix it to be more careful about its arguments while at it.

Acked by Dely Sy <dely.l.sy@intel.com>

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] update CREDITS
randy_dunlap [Tue, 17 May 2005 14:12:56 +0000 (07:12 -0700)] 
[PATCH] update CREDITS

free agent

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc32: enable use of early_param
Paul Mackerras [Tue, 17 May 2005 06:48:39 +0000 (16:48 +1000)] 
[PATCH] ppc32: enable use of early_param

We need to call parse_early_param() early on to allow usage of
early_param() for command line parsing.

Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoAutomatic merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata...
Linus Torvalds [Tue, 17 May 2005 15:55:00 +0000 (08:55 -0700)] 
Merge ... /linux/kernel/git/jgarzik/libata-2.6.git

19 years agoMerge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git