linux-2.6
17 years ago[TCP]: Fix two off-by-one errors in fackets_out adjusting logic
Ilpo Järvinen [Mon, 8 Oct 2007 06:36:41 +0000 (23:36 -0700)] 
[TCP]: Fix two off-by-one errors in fackets_out adjusting logic

1) Passing wrong skb to tcp_adjust_fackets_out could corrupt
fastpath_cnt_hint as tcp_skb_pcount(next_skb) is not included
to it if hint points exactly to the next_skb (it's lagging
behind, see sacktag).

2) When fastpath_skb_hint is put backwards to avoid dangling
skb reference, the skb's pcount must also be removed from count
(not included like above).

Reported by Cedric Le Goater <legoater@free.fr>

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TG3]: Update version to 3.82.
Michael Chan [Mon, 8 Oct 2007 06:29:06 +0000 (23:29 -0700)] 
[TG3]: Update version to 3.82.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TG3]: Add 5784 and 5764 support.
Matt Carlson [Mon, 8 Oct 2007 06:28:35 +0000 (23:28 -0700)] 
[TG3]: Add 5784 and 5764 support.

This patch adds the support for 5784 and 5764 devices.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TG3]: ASIC decoding and basic CPMU support.
Matt Carlson [Mon, 8 Oct 2007 06:28:17 +0000 (23:28 -0700)] 
[TG3]: ASIC decoding and basic CPMU support.

Newer products change the way the ASIC revision is obtained.  This patch
implements how the driver will extract the revision number.

This patch also adds preliminary CPMU support.  CPMU stands for Central
Power Management Unit.  The CPMU's role is to put the chip into lower
power states when the operating conditions allow it.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TG3]: Walk PCI capability lists.
Matt Carlson [Mon, 8 Oct 2007 06:27:28 +0000 (23:27 -0700)] 
[TG3]: Walk PCI capability lists.

Newer tg3 devices shuffle around the registers in PCI configuration
space.  This patch changes the way the driver accesses the PCI
capabilities registers.  Hardcoded register locations are replaced with
offsets from pci_find_capability() return values.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoe1000e: Fix ethtool register test code
Auke Kok [Thu, 4 Oct 2007 22:00:08 +0000 (15:00 -0700)] 
e1000e: Fix ethtool register test code

A merge/cleanup code accidentally dropped 8254x code in and removed
8257x code here. Undo this mistake and use the pci-e relevant register
test similar as to what is in e1000.

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoe1000e: fix debugging printout code
Auke Kok [Thu, 4 Oct 2007 18:38:43 +0000 (11:38 -0700)] 
e1000e: fix debugging printout code

A small bug crawled in the -DDEBUG enabled code. Fix this to
properly call the backreference device name.

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoqeth: discard inbound packets with unknown header id
Ursula Braun [Fri, 5 Oct 2007 14:45:48 +0000 (16:45 +0200)] 
qeth: discard inbound packets with unknown header id

Debugging statements are added for inbound packets with unknown
header id. Those packets are discarded and no longer processed as
osn-packets.

Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agolcs: Channel errors drive lcs_recovery which leads to kernel panic.
Klaus D. Wacker [Fri, 5 Oct 2007 14:45:47 +0000 (16:45 +0200)] 
lcs: Channel errors drive lcs_recovery which leads to kernel panic.

When the lcs irq routine detects channel failures it drives device recovery.
After this event the device is no longer usable for shutdown requests,
because the lcs_irq routine may get wrong channel status information.
In such a case the lcs_irq routine marks the channel in 'error' state.
The channel state comes back to 'running' after restarting the channels.

Signed-off-by: Klaus D. Wacker <kdwacker@de.ibm.com>
Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoqeth: avoid duplicate deletion of multicast addresses
Ursula Braun [Fri, 5 Oct 2007 14:45:46 +0000 (16:45 +0200)] 
qeth: avoid duplicate deletion of multicast addresses

if qeth_set_multicast_list() is performed on 2 CPUs in parallel,
card->ip_list may end corrupted.
Solution: In function __qeth_delete_all_mc()
          remove card->ip_list entry before invoking
          qeth_deregister_addr_entry(). Thus a 2nd invocation of
          qeth_set_multicast_list() cannot try to remove the
          same entry twice.

Signed-off-by Ursula Braun <braunu@de.ibm.com>

Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoqeth: EDDP does not work on large MTUs
Frank Blaschka [Fri, 5 Oct 2007 14:45:45 +0000 (16:45 +0200)] 
qeth: EDDP does not work on large MTUs

Fix filling the qdio buffers in EDDP mode.

Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoqeth: HiperSockets layer-3 interface drop non IPv4 or non IPv6 packets
Klaus D. Wacker [Fri, 5 Oct 2007 14:45:44 +0000 (16:45 +0200)] 
qeth: HiperSockets layer-3 interface drop non IPv4 or non IPv6 packets

HiperSockets infrastructure (layer-3 mode) supports only IPv4 or
IPv6 packets. Sending other packet types disturbs TCP/IP on z/VM,
which issues messages about invalid packets.
Qeth send routine will detect packet type on sending over a
HiperSockets interface (in layer-3 mode) and drop non IP packets.
The error and drop count of the interface is incremented.

Signed-off-by: Klaus D. Wacker <kdwacker@de.ibm.com>
Signed-off-by: Ursula Braun <braunu@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years ago[NIU]: Add Sun Neptune ethernet driver.
David S. Miller [Tue, 9 Oct 2007 08:54:01 +0000 (01:54 -0700)] 
[NIU]: Add Sun Neptune ethernet driver.

With cleanup suggestions and bugs spotted by Stephen Hemminger,
Ingo Oeser, Matheos Worku, and Oliver Hartkopp.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[DCCP]: Twice the wrong reset code in receiving connection-Requests
Gerrit Renker [Thu, 4 Oct 2007 21:52:28 +0000 (14:52 -0700)] 
[DCCP]: Twice the wrong reset code in receiving connection-Requests

This fixes two bugs in processing of connection-Requests in
v{4,6}_conn_request:

 1. Due to using the variable `reset_code', the Reset code generated
    internally by dccp_parse_options() is overwritten with the
    initialised value ("Too Busy") of reset_code, which is not what is
    intended.

 2. When receiving a connection-Request on a multicast or broadcast
    address, no Reset should be generated, to avoid storms of such
    packets. Instead of jumping to the `drop' label, the
    v{4,6}_conn_request functions now return 0. Below is why in my
    understanding this is correct:

    When the conn_request function returns < 0, then the caller,
    dccp_rcv_state_process(), returns 1. In all instances where
    dccp_rcv_state_process is called (dccp_v4_do_rcv, dccp_v6_do_rcv,
    and dccp_child_process), a return value of != 0 from
    dccp_rcv_state_process() means that a Reset is generated.

    If on the other hand the conn_request function returns 0, the
    packet is discarded and no Reset is generated.

Note: There may be a related problem when sending the Response, due to
the following.

if (dccp_v6_send_response(sk, req, NULL))
goto drop_and_free;
/* ... */
drop_and_free:
return -1;

In this case, if send_response fails due to transmission errors, the
next thing that is generated is a Reset with a code "Too Busy". I
haven't been able to conjure up such a condition, but it might be good
to change the behaviour here also (not done by this patch).

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[DCCP]: Correct documentation
Gerrit Renker [Thu, 4 Oct 2007 21:50:57 +0000 (14:50 -0700)] 
[DCCP]: Correct documentation

This corrects erroneous documentation of the socket API.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[DCCP]: Wrong format in printk
Gerrit Renker [Thu, 4 Oct 2007 21:44:01 +0000 (14:44 -0700)] 
[DCCP]: Wrong format in printk

The elapsed time uses u32, but printk was using %d, not %u.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
17 years ago[DCCP]: Tidy-up -- minisock initialisation
Gerrit Renker [Thu, 4 Oct 2007 21:43:42 +0000 (14:43 -0700)] 
[DCCP]: Tidy-up -- minisock initialisation

This

 * removes a declaration of a non-existent function
   __dccp_minisock_init;

 * shifts the initialisation function dccp_minisock_init() from
   options.c to minisocks.c, where it is more naturally expected to
   be.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[CCID2]: Sequence number wraparound issues
Gerrit Renker [Thu, 4 Oct 2007 21:43:09 +0000 (14:43 -0700)] 
[CCID2]: Sequence number wraparound issues

This replaces several uses of standard arithmetic with the DCCP
sequence number arithmetic functions. The problem here is that the
sequence number wrap-around was not taken into consideration.

 * Condition "seqp->ccid2s_seq <= prev->ccid2s_seq" has been replaced
   by

    dccp_delta_seqno(seqp->ccid2s_seq, prev->ccid2s_seq) >= 0

   since if seqp is `before' prev, then the delta_seqno() is positive.

 * The test whether sequence numbers `a' and `b' are consecutive has
   the form

    dccp_delta_seqno(a, b) == 1

 * Increment of ccid2hctx_rpseq could be done using dccp_inc_seqno(),
   but since here the incremented ccid2hctx_rpseq == seqno, used
   assignment instead.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[CCID2]: Remove redundant case block
Gerrit Renker [Thu, 4 Oct 2007 21:42:19 +0000 (14:42 -0700)] 
[CCID2]: Remove redundant case block

skb's passed to ccid2_hc_tx_send_packet() are headerless, the packet
type is decided later, in dccp_write_xmit(). Therefore the first test
of the switch/case block is always true, the others are never reached.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[CCID2]: Remove redundant BUG_ON
Gerrit Renker [Thu, 4 Oct 2007 21:41:55 +0000 (14:41 -0700)] 
[CCID2]: Remove redundant BUG_ON

This removes a test for `val < 1' which would only have been triggered
when val < 0, due to a preceding test for 0.  Fixed by using an
unsigned type for cwnd (as in TCP) instead.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[CCID2]: Remove ugly BUG_ON
Gerrit Renker [Thu, 4 Oct 2007 21:41:26 +0000 (14:41 -0700)] 
[CCID2]: Remove ugly BUG_ON

This removes an ugly BUG_ON which has been pointed out by Arnaldo.

Instead of freezing up the machine, a `critical' message is now issued
to the system log.

There is potential of doing this more gracefully (eg. there are a few
internal variables which could be updated despite the lack of memory),
but that requires more complicated changes to the algorithm; thus a
`FIXME' has been added.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[CCID2]: Simplify interface
Gerrit Renker [Thu, 4 Oct 2007 21:41:00 +0000 (14:41 -0700)] 
[CCID2]: Simplify interface

This patch simplifies the interface of ccid2_hc_tx_alloc_seq():

   * ccid2_hc_tx_alloc_seq() is always called with an argument of
     CCID2_SEQBUF_LEN;

   * other code - ccid2_hc_tx_check_sanity() - even depends on the
     assumption that ccid2_hc_tx_alloc_seq() has been called with this
     particular size;

   * passing the `gfp_t' argument to ccid2_hc_tx_alloc_seq() is
     redundant with gfp_any().

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[DCCP]: Update API documentation
Gerrit Renker [Thu, 4 Oct 2007 21:40:22 +0000 (14:40 -0700)] 
[DCCP]: Update API documentation

This adds documentation on the use of service codes on client and
server.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[DCCP]: Make all `debug' parameters bool
Gerrit Renker [Thu, 4 Oct 2007 21:39:53 +0000 (14:39 -0700)] 
[DCCP]: Make all `debug' parameters bool

This just sets the parameter to bool, since debugging messages are
either on or off.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[DCCP]: Add socket option to query the current MPS
Gerrit Renker [Thu, 4 Oct 2007 21:39:22 +0000 (14:39 -0700)] 
[DCCP]: Add socket option to query the current MPS

This enables applications to query the current value of the Maximum
Packet Size via a socket option, suggested as a SHOULD in (RFC 4340,
p. 102).

This socket option is useful to avoid the annoying bail-out via
`-EMSGSIZE'.  In particular, as fragmentation is not currently
supported (and its use is partly discouraged in RFC 4340).

With this option, it is possible to size buffers accordingly, e.g.

int buflen = dccp_get_cur_mps(sockfd);

/* or */
if (msgsize > dccp_get_cur_mps(sockfd))
die("message is too large for this path");

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[DCCP]: Wait for CCID
Gerrit Renker [Thu, 4 Oct 2007 21:38:49 +0000 (14:38 -0700)] 
[DCCP]: Wait for CCID

This performs a minor optimisation: when ccid_hc_tx_send_packet
returns a value greater zero, then the same call previously was done
again at the begin of the while loop in dccp_wait_for_ccid.

This patch exploits the available information and schedule-timeouts
directly instead.

Documentation also added.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agopasemi_mac: enable iommu support
Olof Johansson [Wed, 3 Oct 2007 18:03:54 +0000 (13:03 -0500)] 
pasemi_mac: enable iommu support

pasemi_mac: enable iommu support

Enable IOMMU support for pasemi_mac, but avoid using it on non-partitioned
systems for performance reasons.

The user can override this by selecting the PPC_PASEMI_IOMMU_DMA_FORCE
configuration option.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agodrivers/net/qla3xxx: trim trailing whitespace
Jeff Garzik [Wed, 3 Oct 2007 17:52:23 +0000 (13:52 -0400)] 
drivers/net/qla3xxx: trim trailing whitespace

Also, hopefully, change the file permissions to 0644.

Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
17 years agoFix typo in new EMAC driver.
vbarshak@ru.mvista.com [Tue, 2 Oct 2007 12:01:07 +0000 (16:01 +0400)] 
Fix typo in new EMAC driver.

Fix an obvious typo in emac_xmit_finish.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoipg.c doesn't compile with with CONFIG_HIGHMEM64G
trem [Tue, 2 Oct 2007 21:04:38 +0000 (14:04 -0700)] 
ipg.c doesn't compile with with CONFIG_HIGHMEM64G

I've tried to compile 2.6.23-rc8-mm2, but it fails on ipg.c with the
error : ERROR: "__udivdi3" [drivers/net/ipg.ko] undefined!

I've instigated a bit, and I've found this code in ipg.c :

static void ipg_nic_txfree(struct net_device *dev)
{
       struct ipg_nic_private *sp = netdev_priv(dev);
       void __iomem *ioaddr = sp->ioaddr;
       const unsigned int curr = ipg_r32(TFD_LIST_PTR_0) -
               (sp->txd_map / sizeof(struct ipg_tx)) - 1;
       unsigned int released, pending;

sp->txd_map is an u64
because :
dma_addr_t txd_map;

And in asm-i386/types.h, I see :
#ifdef CONFIG_HIGHMEM64G
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;
#endif
I my config, I use CONFIG_HIGHMEM64G

sizeof(struct ipg_tx) is an u32
So the div failed on i386 because of u64 / u32.

[akpm@linux-foundation.org: cleanups]
Cc: Sorbica Shieh <sorbica@icplus.com.tw>
Cc: Jesse Huang <jesse@icplus.com.tw>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: use buffer index pointer in clean_rx()
Olof Johansson [Tue, 2 Oct 2007 21:27:57 +0000 (16:27 -0500)] 
pasemi_mac: use buffer index pointer in clean_rx()

pasemi_mac: use buffer index pointer in clean_rx()

Use the new features in B0 for buffer ring index on the receive side. This
means we no longer have to search in the ring for where the buffer
came from.

Also cleanup the RX cleaning side a little, while I was at it.

Note: Pre-B0 hardware is no longer supported, and needs a pile of other
workarounds that are not being submitted for mainline inclusion. So the
fact that this breaks old hardware is not a problem at this time.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: clear out old errors on interface open
Olof Johansson [Tue, 2 Oct 2007 21:27:39 +0000 (16:27 -0500)] 
pasemi_mac: clear out old errors on interface open

pasemi_mac: clear out old errors on interface open

Clear out any pending errors when an interface is brought up. Since the bits
are sticky, they might be from interface shutdown time after firmware has
used it, etc.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: update todo list
Olof Johansson [Tue, 2 Oct 2007 21:27:28 +0000 (16:27 -0500)] 
pasemi_mac: update todo list

pasemi_mac: update todo list

Remove some stale todo items that have been taken care of. Add a couple
of upcoming ones.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: further performance tweaks
Olof Johansson [Tue, 2 Oct 2007 21:27:15 +0000 (16:27 -0500)] 
pasemi_mac: further performance tweaks

pasemi_mac: further performance tweaks

Misc driver tweaks for pasemi_mac:
* Increase ring size (really needed mostly on 10G)
* Take out an unneeded barrier
* Move around a few prefetches and reorder a few calls
* Don't try to clean on full tx buffer, just let things
  take their course and stop the queue directly
* Avoid filling on the same line as the interface is
  working on to reduce cache line bouncing
* Avoid unneeded clearing of software state (and make the
  interface shutdown code handle it)
* Fix up some of the tx ring wrap logic.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: add local skb alignment
Olof Johansson [Tue, 2 Oct 2007 21:26:53 +0000 (16:26 -0500)] 
pasemi_mac: add local skb alignment

pasemi_mac: add local skb alignment

Add local SKB alignment to pasemi_mac, since ppc64 in general has it at 0
because of design flaws in some of the IBM server bridge chips. However,
for PWRficient doing the unaligned copies is more expensive than doing
unaligned DMA so make sure the data is aligned instead.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: workaround for erratum 5971
Olof Johansson [Tue, 2 Oct 2007 21:26:30 +0000 (16:26 -0500)] 
pasemi_mac: workaround for erratum 5971

pasemi_mac: workaround for erratum 5971

Implement workarounds for erratum 5971, where L2 hints aren't considered
properly unless the way hint is enabled on the interface. Since L2 isn't
setup to dedicate a way to headers, we need to reset the packet count
by hand so it won't run out of credits.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: implement sg support
Olof Johansson [Tue, 2 Oct 2007 21:26:13 +0000 (16:26 -0500)] 
pasemi_mac: implement sg support

pasemi_mac: implement sg support

Implement SG support for pasemi_mac

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: rework ring management
Olof Johansson [Tue, 2 Oct 2007 21:25:53 +0000 (16:25 -0500)] 
pasemi_mac: rework ring management

pasemi_mac: rework ring management

Rework ring management, switching to an opaque ring format instead of
the struct-based descriptor+pointer setup, since it will be needed for
SG support.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: fix bug in receive buffer dma mapping
Olof Johansson [Tue, 2 Oct 2007 21:25:14 +0000 (16:25 -0500)] 
pasemi_mac: fix bug in receive buffer dma mapping

pasemi_mac: fix bug in receive buffer dma mapping

skb->len isn't actually set to the size of the allocated skb, so don't
try to use it when figuring out how much to map.

(This hasn't surfaced as a real bug because we effectively disable
translation for the interface, but it still needs fixing for the future)

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agopasemi_mac: basic error checking
Olof Johansson [Tue, 2 Oct 2007 21:24:51 +0000 (16:24 -0500)] 
pasemi_mac: basic error checking

pasemi_mac: basic error checking

Add some rudimentary error checking to pasemi_mac.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years ago[MAC80211]: Update beacon_update callback documentation
Michael Buesch [Tue, 2 Oct 2007 10:17:56 +0000 (12:17 +0200)] 
[MAC80211]: Update beacon_update callback documentation

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[MAC80211]: add sta_notify callback
Tomas Winkler [Sun, 30 Sep 2007 11:52:37 +0000 (13:52 +0200)] 
[MAC80211]: add sta_notify callback

This patch adds sta_notify callback and removes sta_table_notification
which was not used by any driver.
sta_notify() is essential for drivers that keeps notion of station
internally and need to be notified about removal or addition of a station
to the (I)BSS or assocation to an AP.

This version adds interface id to the parameter list
as suggested by Johannes Berg

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[MAC80211]: implement cfg80211's change_interface hook
Johannes Berg [Fri, 28 Sep 2007 19:52:27 +0000 (21:52 +0200)] 
[MAC80211]: implement cfg80211's change_interface hook

This implements the cfg80211 change_interface hook that changes the
type of an interface and cleans up the code a bit.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[MAC80211]: Add association LED trigger
Michael Buesch [Thu, 27 Sep 2007 13:10:44 +0000 (15:10 +0200)] 
[MAC80211]: Add association LED trigger

Many devices have LEDs to indicate the link status.
Export this functionality to drivers.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[MAC80211]: make userspace-mlme a per-interface setting
Johannes Berg [Wed, 26 Sep 2007 15:53:20 +0000 (17:53 +0200)] 
[MAC80211]: make userspace-mlme a per-interface setting

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[MAC80211]: improve radiotap injection
Johannes Berg [Wed, 26 Sep 2007 15:53:18 +0000 (17:53 +0200)] 
[MAC80211]: improve radiotap injection

This improves radiotap injection by removing the shortcut over TX handlers
that led to BUGS when injecting frames without setting a rate and also
resulted in various other quirks. Now, TX handlers are run but some
information that was present in the radiotap header is used instead of
automatic settings.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Andy Green <andy@warmcat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years ago[MAC80211]: remove ALG_NONE
Johannes Berg [Wed, 26 Sep 2007 15:53:17 +0000 (17:53 +0200)] 
[MAC80211]: remove ALG_NONE

This "algorithm" is used only internally and is not useful.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Michael Buesch <mb@bu3sch.de>
Acked-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[MAC80211]: use RX_FLAG_DECRYPTED for sw decrypted as well
Johannes Berg [Wed, 26 Sep 2007 15:53:16 +0000 (17:53 +0200)] 
[MAC80211]: use RX_FLAG_DECRYPTED for sw decrypted as well

This makes mac80211 set the RX_FLAG_DECRYPTED flag for frames
decrypted in software allowing us to handle some things more
uniformly.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[MAC80211]: consolidate decryption more
Johannes Berg [Wed, 26 Sep 2007 15:53:15 +0000 (17:53 +0200)] 
[MAC80211]: consolidate decryption more

Currently, we have three RX handlers doing the decryption.
This patch changes it to have only one handler doing
everything, thereby getting rid of many duplicate checks.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
--
 net/mac80211/rx.c |   46 ++++++++++++----------------------------------
 1 files changed, 12 insertions(+), 34 deletions(-)

17 years ago[MAC80211]: move sta_process rx handler later
Johannes Berg [Wed, 26 Sep 2007 15:53:14 +0000 (17:53 +0200)] 
[MAC80211]: move sta_process rx handler later

This moves the sta_process RX handler to after decryption
so that frames that cannot be decrypted don't influence
statistics, it is likely that they were injected or something
else is totally wrong.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[MAC80211]: remove management interface
Johannes Berg [Fri, 28 Sep 2007 12:02:09 +0000 (14:02 +0200)] 
[MAC80211]: remove management interface

Removes the management interface since it is only required
for hostapd/userspace MLME, will not be in the final tree
at least in this form and hostapd/userspace MLME currently
do not work against this tree anyway.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[MAC80211]: add "invalid" interface type
Johannes Berg [Fri, 28 Sep 2007 12:01:25 +0000 (14:01 +0200)] 
[MAC80211]: add "invalid" interface type

Since I cannot convince the lazy driver authors (hello Michael)
to stop (ab)using the MGMT interface type internally in their
drivers, this patch introduces a new _INVALID type especially
for their use and changes all affected drivers to use it.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[MAC80211]: Check open_count before calling config callback.
Michael Buesch [Mon, 24 Sep 2007 16:41:49 +0000 (18:41 +0200)] 
[MAC80211]: Check open_count before calling config callback.

Also remove the check for ops->config!=NULL, as it can never be NULL.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[B43]: Rewrite pwork locking policy.
Michael Buesch [Fri, 28 Sep 2007 14:19:03 +0000 (16:19 +0200)] 
[B43]: Rewrite pwork locking policy.

Implement much easier and more lightweight locking for
the periodic work.
This also removes the last big busywait loop and replaces it
by a sleeping loop.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[B43]: Use input-polldev for the rfkill switch
Michael Buesch [Fri, 28 Sep 2007 12:22:33 +0000 (14:22 +0200)] 
[B43]: Use input-polldev for the rfkill switch

This removes the direct call to rfkill on an rfkill event
and replaces it with an input device. This way userspace is also
notified about the event.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[B43]: RF-kill support
Michael Buesch [Thu, 27 Sep 2007 19:35:34 +0000 (21:35 +0200)] 
[B43]: RF-kill support

This adds full support for the RFKILL button and
the RFKILL LED trigger.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[B43]: LED triggers support
Michael Buesch [Thu, 27 Sep 2007 13:31:40 +0000 (15:31 +0200)] 
[B43]: LED triggers support

Drive the LEDs through the generic LED triggers.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Cc: Larry Finger <larry.finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[RFKILL]: Add support for hardware-only rfkill buttons
Michael Buesch [Thu, 27 Sep 2007 19:34:23 +0000 (21:34 +0200)] 
[RFKILL]: Add support for hardware-only rfkill buttons

Buttons that work directly on hardware cannot support
the "user_claim" functionality. Add a flag to signal
this and return -EOPNOTSUPP in this case.
b43 is such a device.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[RFKILL]: Add support for an rfkill LED.
Michael Buesch [Thu, 27 Sep 2007 19:33:12 +0000 (21:33 +0200)] 
[RFKILL]: Add support for an rfkill LED.

This adds a LED trigger.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[ZD1211RW]: Removed zd_util.c and zd_util.h
Ulrich Kunitz [Tue, 2 Oct 2007 17:36:53 +0000 (18:36 +0100)] 
[ZD1211RW]: Removed zd_util.c and zd_util.h

The kernel now provides a generic hexdump implementation should we need
it again, so we can remove it from zd1211rw. After removing that, only
one single-user function is left in zd_util. Move that to zd_mac and
remove zd_util.

Signed-off-by: Ulrich Kunitz <kune@deine-taler.de>
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[HOSTAP]: set netdev type before registering AP interface
Daniel Drake [Wed, 26 Sep 2007 20:45:24 +0000 (21:45 +0100)] 
[HOSTAP]: set netdev type before registering AP interface

As detailed at https://bugs.gentoo.org/159646 hostap with hostapd confuses
udev by presenting 2 interfaces with the same MAC address. Also, at the time
of detection, the 'type' attribute is 1, identical to other hostap interfaces.

The AP interface is supposed to have type ARPHRD_IEEE80211 (801), but this is
not set until after registration.

Setting it before register_netdev() is called allows us to avoid this
confusion. We can do this by propogating the HOSTAP_INTERFACE type through
to hostap_setup_dev().

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[BNX2]: Update version to 1.6.6.
Michael Chan [Tue, 2 Oct 2007 23:28:09 +0000 (16:28 -0700)] 
[BNX2]: Update version to 1.6.6.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[BNX2]: Optimize firmware loading.
Michael Chan [Tue, 2 Oct 2007 23:27:35 +0000 (16:27 -0700)] 
[BNX2]: Optimize firmware loading.

This is a follow up to the patches from Denys Vlasenkos
<vda.linux@googlemail.com> to further optimize firmware loading.

1. In bnx2_init_cpus(), we allocate memory for decompression once
and use it repeatedly instead of doing this for every firmware image.

2. We eliminate the BSS and SBSS firmware sections in bnx2_fw*.h since
these are always zeros.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoPCMCIA-NETDEV : add new id (axnet_cs, pcnet_cs)
Komuro [Sun, 30 Sep 2007 01:28:14 +0000 (10:28 +0900)] 
PCMCIA-NETDEV : add new id (axnet_cs, pcnet_cs)

axnet_cs: Laneed LD-CDK/TX
pcnet_cs: LEMEL LM-N89TX PRO

Signed-off-by: Komuro <komurojun-mbn@nifty.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosmc91x Hitachi Solution Engine (SuperH) Support
Nobuhiro Iwamatsu [Wed, 19 Sep 2007 12:07:52 +0000 (21:07 +0900)] 
smc91x Hitachi Solution Engine (SuperH) Support

Hi, all.

This patch supports Hitachi Solution Engine (SuperH) of smc91x.
Please apply this patch .

regards,
 Nobuhiro

--
Nobuhiro Iwamatsu
E-Mail : iwamatsu@nigauri.org
GPG ID : 3170EBE9

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>

Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosmc911x irq sense request and MPR2 board support
Markus Brunner [Mon, 20 Aug 2007 06:36:50 +0000 (08:36 +0200)] 
smc911x irq sense request and MPR2 board support

Hi,

this are the changes to the smc911x driver, which were necessary
to get it running on the Magic Panel R2 (smsc9115).
It is a SH3-DSP based board. The other patches are available on
the linuxsh-dev mailinglist.
http://marc.info/?l=linuxsh-dev&r=1&b=200708&w=2

It was necessary to set the irq sense to low level.
Therefor the SMC_IRQ_SENSE define was added.
How are the chances for inclusion in 2.6.24?

Signed-off by: Markus Brunner <super.firetwister@gmail.com>
Signed-off by: Mark Jonas <toertel@gmail.com>

Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoehea: DLPAR memory add fix
Jan-Bernd Themann [Mon, 1 Oct 2007 14:33:18 +0000 (16:33 +0200)] 
ehea: DLPAR memory add fix

Due to stability issues in high load situations the HW queue handling
has to be changed. The HW queues are now stopped and restarted again instead
of destroying and allocating new HW queues.

Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agofs_enet: sparse fixes
Scott Wood [Mon, 1 Oct 2007 19:20:58 +0000 (14:20 -0500)] 
fs_enet: sparse fixes

Mostly a bunch of __iomem annotations.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agofs_enet: Convert mii-bitbang to use the generic bitbang MDIO code.
Scott Wood [Mon, 1 Oct 2007 19:20:57 +0000 (14:20 -0500)] 
fs_enet: Convert mii-bitbang to use the generic bitbang MDIO code.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoGeneric bitbanged MDIO library
Scott Wood [Mon, 1 Oct 2007 19:20:56 +0000 (14:20 -0500)] 
Generic bitbanged MDIO library

Previously, bitbanged MDIO was only supported in individual
hardware-specific drivers.  This code factors out the higher level
protocol implementation, reducing the hardware-specific portion to
functions setting direction, data, and clock.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agofs_enet: Be an of_platform device when CONFIG_PPC_CPM_NEW_BINDING is set.
Scott Wood [Tue, 2 Oct 2007 15:55:58 +0000 (10:55 -0500)] 
fs_enet: Be an of_platform device when CONFIG_PPC_CPM_NEW_BINDING is set.

The existing OF glue code was crufty and broken.  Rather than fix it, it
will be removed, and the ethernet driver now talks to the device tree
directly.

The old, non-CONFIG_PPC_CPM_NEW_BINDING code can go away once CPM
platforms are dropped from arch/ppc (which will hopefully be soon), and
existing arch/powerpc boards that I wasn't able to test on for this
patchset get converted (which should be even sooner).

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agofs_enet: Align receive buffers.
Scott Wood [Mon, 1 Oct 2007 19:20:52 +0000 (14:20 -0500)] 
fs_enet: Align receive buffers.

At least some hardware driven by this driver needs receive buffers
to be aligned on a 16-byte boundary.  This usually happens by chance,
but it breaks if slab debugging is enabled.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agofs_enet: mac-fcc: Eliminate __fcc-* macros.
Scott Wood [Mon, 1 Oct 2007 19:20:50 +0000 (14:20 -0500)] 
fs_enet: mac-fcc: Eliminate __fcc-* macros.

These macros accomplish nothing other than defeating type checking.

This patch also fixes one instance of the wrong register size being
used that was revealed by enabling type checking.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agofs_enet: Include linux/string.h from linux/fs_enet_pd.h
Scott Wood [Mon, 1 Oct 2007 19:20:49 +0000 (14:20 -0500)] 
fs_enet: Include linux/string.h from linux/fs_enet_pd.h

It is needed for strstr().

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agofs_enet: Whitespace cleanup.
Scott Wood [Mon, 1 Oct 2007 19:20:17 +0000 (14:20 -0500)] 
fs_enet: Whitespace cleanup.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years ago[TCP]: Wrap-safed reordering detection FRTO check
Ilpo Järvinen [Mon, 1 Oct 2007 22:28:48 +0000 (15:28 -0700)] 
[TCP]: Wrap-safed reordering detection FRTO check

In case somebody has a suggestion about a better place for this
check, which must guarantee execution "early enough" (i.e,
before the wrap can occur), I'm very open to them.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP]: Update comment of SACK block validator
Ilpo Järvinen [Mon, 1 Oct 2007 22:28:17 +0000 (15:28 -0700)] 
[TCP]: Update comment of SACK block validator

Just came across what RFC2018 states about generation of valid
SACK blocks in case of reneging. Alter comment a bit to point
out clearly.

IMHO, there isn't any reason to change code because the
validation is there for a purpose (counters will inform user
about decision TCP made if this case ever surfaces).

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP]: fix comments that got messed up during code move
Ilpo Järvinen [Mon, 1 Oct 2007 22:27:42 +0000 (15:27 -0700)] 
[TCP]: fix comments that got messed up during code move

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP]: No fackets_out/highest_sack tuning when SACK isn't enabled
Ilpo Järvinen [Mon, 1 Oct 2007 22:27:19 +0000 (15:27 -0700)] 
[TCP]: No fackets_out/highest_sack tuning when SACK isn't enabled

This was found due to bug report from Cedric Le Goater though
it turned this turned out to be unrelated bug.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[ZLIB]: Move bnx2 driver gzip unpacker into zlib.
Denys Vlasenko [Mon, 1 Oct 2007 00:56:49 +0000 (17:56 -0700)] 
[ZLIB]: Move bnx2 driver gzip unpacker into zlib.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[BNX2]: factor out gzip unpacker
Denys Vlasenko [Mon, 1 Oct 2007 00:55:51 +0000 (17:55 -0700)] 
[BNX2]: factor out gzip unpacker

This patch modifies gzip unpacking code in bnx2 driver so that
it does not depend on bnx2 internals. I will move this code
out of the driver and into zlib in follow-on patch.

It can be useful in other drivers which need to store firmwares
or any other relatively big binary blobs - fonts, cursor bitmaps,
whatever.

Patch is run tested by Michael Chan (driver author).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoax88796: add 93cx6 eeprom support
Magnus Damm [Sat, 29 Sep 2007 05:42:16 +0000 (22:42 -0700)] 
ax88796: add 93cx6 eeprom support

Hook up the 93cx6 eeprom code to the ax88796 driver and modify the ax88796
driver to read out the mac address from the eeprom.  We need this for the
ax88796 on certain SuperH boards.  The pin configuration used to connect
the eeprom to the ax88796 on these boards is the same as pointed out by the
ax88796 datasheet, so we can probably reuse this code for multiple
platforms in the future.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoPHYLIB: fix an interrupt loop potential when halting
Maciej W. Rozycki [Sat, 29 Sep 2007 05:42:15 +0000 (22:42 -0700)] 
PHYLIB: fix an interrupt loop potential when halting

Ensure the PHY_HALTED state is not entered with the IRQ asserted as it
could lead to an interrupt loop.

There is a small window in phy_stop(), where the state of the PHY machine
indicates it has been halted, but its interrupt output might still be
unmasked.  If an interrupt goes active right at this moment it will loop as
the phy_interrupt() handler exits immediately with IRQ_NONE if the halted
state is seen.  It is unsafe to extend the phydev spinlock to cover
phy_interrupt().  It is safe to swap the order of the actions though as all
the competing places to unmask the interrupt output of the PHY, which are
phy_change() and phy_timer() are already covered with the lock as is the
sequence in question.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: Andy Fleming <afleming@freescale.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoPHYLIB: IRQ event workqueue handling fixes
Maciej W. Rozycki [Sat, 29 Sep 2007 05:42:14 +0000 (22:42 -0700)] 
PHYLIB: IRQ event workqueue handling fixes

Keep track of disable_irq_nosync() invocations and call enable_irq() the
right number of times if work has been cancelled that would include them.

Now that the call to flush_work_keventd() (problematic because of
rtnl_mutex being held) has been replaced by cancel_work_sync() another
issue has arisen and been left unresolved.  As the MDIO bus cannot be
accessed from the interrupt context the PHY interrupt handler uses
disable_irq_nosync() to prevent from looping and schedules some work to be
done as a softirq, which, apart from handling the state change of the
originating PHY, is responsible for reenabling the interrupt.  Now if the
interrupt line is shared by another device and a call to the softirq
handler has been cancelled, that call to enable_irq() never happens and the
other device cannot use its interrupt anymore as its stuck disabled.

I decided to use a counter rather than a flag because there may be more
than one call to phy_change() cancelled in the queue -- a real one and a
fake one triggered by free_irq() if DEBUG_SHIRQ is used, if nothing else.
Therefore because of its nesting property enable_irq() has to be called the
right number of times to match the number disable_irq_nosync() was called
and restore the original state.  This DEBUG_SHIRQ feature is also the
reason why free_irq() has to be called before cancel_work_sync().

While at it I updated the comment about phy_stop_interrupts() being called
from `keventd' -- this is no longer relevant as the use of
cancel_work_sync() makes such an approach unnecessary.  OTOH a similar
comment referring to flush_scheduled_work() in phy_stop() still applies as
using cancel_work_sync() there would be dangerous.

Checked with checkpatch.pl and at the run time (with and without
DEBUG_SHIRQ).

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: Andy Fleming <afleming@freescale.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoforcedeth: "no link" is informational
Ed Swierk [Sat, 29 Sep 2007 05:42:13 +0000 (22:42 -0700)] 
forcedeth: "no link" is informational

Log "no link during initialization" at KERN_INFO as it's not an error, and
occurs every time the interface comes up (when the forcedeth-phy-power-down
patch is applied).

Signed-off-by: Ed Swierk <eswierk@arastra.com>
Cc: Ayaz Abdulla <aabdulla@nvidia.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoPHYLIB: Spinlock fixes for softirqs
Maciej W. Rozycki [Sat, 29 Sep 2007 05:42:12 +0000 (22:42 -0700)] 
PHYLIB: Spinlock fixes for softirqs

Use spin_lock_bh()/spin_unlock_bh() for the phydev lock throughout as it
is used in phy_timer() that is called as a softirq and all the other
operations may happen in the user context.

There has been a change recently that did such a conversion for some of the
operations on the lock, but some have been left intact.  Many of them,
perhaps all, may be called in the user context and I was able to trigger
recursive spinlock acquisition indeed, so I think for the sake of long-term
maintenance it is best to convert them all, even if unnecessarily for one
or two -- better safe than sorry.

Perhaps one in phy_timer() could actually be skipped as only called as a
softirq -- I can send an update if that sounds like a good idea.

Checked with checkpatch.pl and at the runtime.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoFix a potential NULL pointer dereference in uli526x_interrupt() in drivers/net/tulip...
Micah Gruber [Sat, 29 Sep 2007 05:42:11 +0000 (22:42 -0700)] 
Fix a potential NULL pointer dereference in uli526x_interrupt() in drivers/net/tulip/uli526x.c

This patch fixes an apparent potential null dereference bug where we
dereference dev before a null check.  This patch simply remvoes the
can't-happen test for a null pointer.

Signed-off-by: Micah Gruber <micah.gruber@gmail.com>
Cc: Grant Grundler <grundler@parisc-linux.org>
Acked-by: Jeff Garzik <jeff@garzik.org>
Acked-by: Kyle McMartin <kyle@mcmartin.ca>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoskge: remove broken and unused PHY_M_PC_MDI_XMODE macro
Mariusz Kozlowski [Sat, 29 Sep 2007 05:42:10 +0000 (22:42 -0700)] 
skge: remove broken and unused PHY_M_PC_MDI_XMODE macro

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Cc: Stephen Hemminger <shemminger@linux-foundation.org>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoAvoid possible NULL pointer deref in 3c359 driver
Jesper Juhl [Sat, 29 Sep 2007 05:42:09 +0000 (22:42 -0700)] 
Avoid possible NULL pointer deref in 3c359 driver

In xl_freemem(), if dev_if is NULL, the line

  struct xl_private *xl_priv =(struct xl_private *)dev->priv;

will cause a NULL pointer dereference.

(akpm: don't try to fix it: just delete the pointless test-for-null)

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agodrivers/net/cxgb3/xgmac.c: remove dead code
Adrian Bunk [Sat, 29 Sep 2007 05:42:06 +0000 (22:42 -0700)] 
drivers/net/cxgb3/xgmac.c: remove dead code

This patch removes dead code ("tx_xcnt" can never be != 0 at this place)
spotted by the Coverity checker.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoPCI-X/PCI-Express read control interfaces: use them in e1000
Peter Oruba [Sat, 29 Sep 2007 05:42:06 +0000 (22:42 -0700)] 
PCI-X/PCI-Express read control interfaces: use them in e1000

These driver changes incorporate the proposed PCI-X / PCI-Express read byte
count interface.  Reading and setting those valuse doesn't take place
"manually", instead wrapping functions are called to allow quirks for some
PCI bridges.

Signed-off by: Peter Oruba <peter.oruba@amd.com>
Based on work by Stephen Hemminger <shemminger@linux-foundation.org>
Acked-by: Auke Kok <auke-jan.h.kok@intel.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoPHY fixed driver: rework release path and update phy_id notation
Vitaly Bordug [Fri, 10 Aug 2007 21:05:16 +0000 (14:05 -0700)] 
PHY fixed driver: rework release path and update phy_id notation

device_bind_driver() error code returning has been fixed.  release()
function has been written, so that to free resources in correct way; the
release path is now clean.

Before the rework, it used to cause
 Device 'fixed@100:1' does not have a release() function, it is broken
 and must be fixed.
 BUG: at drivers/base/core.c:104 device_release()

 Call Trace:
  [<ffffffff802ec380>] kobject_cleanup+0x53/0x7e
  [<ffffffff802ec3ab>] kobject_release+0x0/0x9
  [<ffffffff802ecf3f>] kref_put+0x74/0x81
  [<ffffffff8035493b>] fixed_mdio_register_device+0x230/0x265
  [<ffffffff80564d31>] fixed_init+0x1f/0x35
  [<ffffffff802071a4>] init+0x147/0x2fb
  [<ffffffff80223b6e>] schedule_tail+0x36/0x92
  [<ffffffff8020a678>] child_rip+0xa/0x12
  [<ffffffff80311714>] acpi_ds_init_one_object+0x0/0x83
  [<ffffffff8020705d>] init+0x0/0x2fb
  [<ffffffff8020a66e>] child_rip+0x0/0x12

Also changed the notation of the fixed phy definition on
mdio bus to the form of <speed>+<duplex> to make it able to be used by
gianfar and ucc_geth that define phy_id strictly as "%d:%d" and cleaned up
the whitespace issues.

Signed-off-by: Vitaly Bordug <vitb@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoatl1: explain 32-bit DMA restriction
Chris Snook [Thu, 20 Sep 2007 19:57:15 +0000 (15:57 -0400)] 
atl1: explain 32-bit DMA restriction

Document the fact that atl1 uses a single shared register for the high 32
bits of 64-bit DMA addresses, making 64-bit DMA more trouble than it's worth.

Signed-off-by: Chris Snook <csnook@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agovia-velocity: more cleanup
Stephen Hemminger [Fri, 24 Aug 2007 21:40:45 +0000 (14:40 -0700)] 
via-velocity: more cleanup

Per Al's suggestion, get rid of the stupid stuff:
Remove cam_type switch,
And deinline things that aren't important for speed.
And make big macro and inline.
And remove some dead/unused code.
And use const char * for chip name.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agovia-velocity: use standard VLAN interface (resend)
Stephen Hemminger [Fri, 24 Aug 2007 20:56:49 +0000 (13:56 -0700)] 
via-velocity: use standard VLAN interface (resend)

The via-velocity is using a non-standard VLAN interface configured
via module parameters (yuck).

Replace with the standard acceleration interface.
It solves a number of problems with being able to handle multiple
vlans, and dynamically reconfigure.

This is compile tested only, don't have this board.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosb1250-mac: Driver model & phylib update
Maciej W. Rozycki [Fri, 21 Sep 2007 11:52:10 +0000 (12:52 +0100)] 
sb1250-mac: Driver model & phylib update

 A driver model and phylib update.  It includes the following changes:

1. Removal of unused module options.

2. Phylib support and the resulting removal of generic bits for handling
   the PHY.

3. Proper reserving of device resources and using ioremap()ped handles
   to access MAC registers rather than platform-specific macros.

4. Handling of the device using the driver model.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agosb1250-mac.c: De-typedef, de-volatile, de-etc...
Maciej W. Rozycki [Thu, 20 Sep 2007 18:14:01 +0000 (19:14 +0100)] 
sb1250-mac.c: De-typedef, de-volatile, de-etc...

 Remove typedefs, volatiles and convert kmalloc()/memset() pairs to
kcalloc().  Also reformat the surrounding clutter.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years ago[netdrvr] sundance: fix phy scanning on IP100A
Jeff Garzik [Sat, 29 Sep 2007 05:10:14 +0000 (01:10 -0400)] 
[netdrvr] sundance: fix phy scanning on IP100A

Based on a based from Jesse Huang <jesse@icplus.com.tw>.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoe1000e: Do not allow requeue of freed skb
Krishna Kumar [Fri, 21 Sep 2007 16:41:15 +0000 (09:41 -0700)] 
e1000e: Do not allow requeue of freed skb

Returning BUSY will make qdisc_restart enqueue the skb which was already
freed. The bad skb was correctly freed and we should return NETDEV_TX_OK.

First spotted by Jeff Garzik on 08/13/07.

Signed-off-by: Krishna Kumar <krkumar2@in.ibm.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
17 years agoClean up redundant PHY write line for ULi526x Ethernet driver
Roy Zang [Mon, 24 Sep 2007 08:57:42 +0000 (16:57 +0800)] 
Clean up redundant PHY write line for ULi526x Ethernet driver

Clean up redundant PHY write line for ULi526x Ethernet
Driver.

Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>