Netdev List
 help / color / mirror / Atom feed
* [PATCH] vhost: correctly set bits of dirty pages
From: Jason Wang @ 2010-11-29  5:48 UTC (permalink / raw)
  To: virtualization, netdev, linux-kernel, kvm, mst

When counting pages we should increase it by 1 instead of VHOST_PAGE_SIZE,
and also make log_write() can correctly process the request across
pages with write_address not start at page boundary.

Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/vhost/vhost.c |   20 +++++++++-----------
 1 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index a29d91c..576300b 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -884,23 +884,21 @@ static int set_bit_to_user(int nr, void __user *addr)
 static int log_write(void __user *log_base,
 		     u64 write_address, u64 write_length)
 {
-	int r;
-	if (!write_length)
-		return 0;
-	write_address /= VHOST_PAGE_SIZE;
-	for (;;) {
+	int r = 0;
+	while (write_length > 0) {
+		u64 l = VHOST_PAGE_SIZE - write_address % VHOST_PAGE_SIZE;
+		u64 write_page = write_address / VHOST_PAGE_SIZE;
 		u64 base = (u64)(unsigned long)log_base;
-		u64 log = base + write_address / 8;
-		int bit = write_address % 8;
+		u64 log = base + write_page / 8;
+		int bit = write_page % 8;
 		if ((u64)(unsigned long)log != log)
 			return -EFAULT;
 		r = set_bit_to_user(bit, (void __user *)(unsigned long)log);
 		if (r < 0)
 			return r;
-		if (write_length <= VHOST_PAGE_SIZE)
-			break;
-		write_length -= VHOST_PAGE_SIZE;
-		write_address += VHOST_PAGE_SIZE;
+		l = min(l, write_length);
+		write_length -= l;
+		write_address += l;
 	}
 	return r;
 }

^ permalink raw reply related

* Re: [PATCH 2/2] pch_gbe driver: The wrong of initializer entry
From: Toshiharu Okada @ 2010-11-29  5:06 UTC (permalink / raw)
  To: David Miller
  Cc: linux, randy.dunlap, john.linn, ralf, kristoffer, mbizon,
	gregory.v.rose, netdev, linux-kernel, masa-korg, qi.wang,
	yong.y.wang, andrew.chih.howe.khor, joel.clark, margie.foster,
	kok.howg.ewe
In-Reply-To: <20101127.174103.104047424.davem@davemloft.net>

Hi David Miller


Date: Sat, 27 Nov 2010 17:41:03 -0800 (PST)
From: "David Miller" <davem@davemloft.net>
>
> > The wrong of initializer entry was modified.
> >
> > Signed-off-by: Toshiharu Okada <toshiharu-linux@dsn.okisemi.com>
>
> How about you give some credit to David Alan Gilbert who made
> you aware of this issue?

Credit?
Does this mean that I add "Singed of by: Dr. David Alan Gilbert
<linux@trebig.org>" ?
Is my understanding correct?

Best regards
Toshiharu Okada (OKI SEMICONDUCTOR)




^ permalink raw reply

* biosdevname v0.3.1
From: Matt Domsch @ 2010-11-29  4:48 UTC (permalink / raw)
  To: linux-hotplug, netdev, K, Narendra, Hargrave, Jordan,
	Rose, Charles, Co

I've published biosdevname v0.3.1.  This has quite a few changes since
the 0.2.4 version published over 3 years ago.  Grab it here:

http://linux.dell.com/files/biosdevname/permalink/biosdevname-0.3.1.tar.gz
http://linux.dell.com/files/biosdevname/permalink/biosdevname-0.3.1.tar.gz.sign
GIT: http://linux.dell.com/cgi-bin/gitweb/gitweb.cgi?p=biosdevname.git;a=summary

Highlights:
- uses sysfs index and SMBIOS information if available.
- The only policies that remain are the new default 'physical' policy
  that uses sysfs index (SMBIOS), and the historic all_ethN policy
  that is only usable in non-hotplug environments.
- works on SR-IOV devices as well as traditional NICs

The naming policy it suggests are as follows:

Embedded devices: em<port>
Add-in PCI cards: pci<slot>#<port>_<virtual function instance>

My goal is to get this into Fedora 15, RHEL 6.x (x TBD), Debian, Ubuntu Natty,
openSUSE, and any other distribution that will have it.



git shortlog:

Gabriel C (1):
      add make uninstall target

Jordan Hargrave (2):
      fix mmap() return check
      bump version

Matt Domsch (72):
      Fix 'make deb' so it works.
      add 'make sdeb' for source debian packages for review
      include pkg/debian/ in tarball
      rpm specs: manpages are sometimes automatically compressed
      rpm spec: fix manpage in %files, add udev version requirement for Fedora
      update Makefile.in
      add chassis_label field
      add smbios_names naming policy
      ensure display buffer is long enough and zeroed before use
      bug fix: s/sprintf/snprintf/ leading to SEGV
      dmidecode: get proper chassis label string
      naming_policy: fix smbios_names reporting
      exit with error code if --policy=smbios_names but BIOS doesn't have the info
      make dev->bios_name[] a pointer
      udev rules: don't rename, create symlinks in net/by-slot-name and net/by-chassis-label instead
      strip trailing whitespace from SMBIOS strings
      remove extra spaces in udev rules, to work around udev bug
      add intermediary program /lib/udev/netdevice to cycle through biosdevname policies
      finish fixing up configure/Makefiles
      start netdevnames at 71; make netdevice exectuable
      s/chassis_label/smbios_label/
      move sysfs reading function from pcmcia to its own file
      read sysfs label and index files for PCI devices
      minor cleanups; dead code removal
      remove generated files from source control
      configure: note requires pciutils-devel
      read label and index from sysfs if present
      add policy=loms, make it default
      add .gitignore
      silently handle running in virtualization, bug fix storing sysfs label
      better configure messages on missing zlib-devel and pciutils-devel
      fix buglet in add_interface, with thanks to gcc 4.4.5 -Wall
      don't use perror() to print meaningless warnings to users
      don't print error opening /dev/mem, as fails on KVM guests
      bugfixes in reading sysfs files
      invoke biosdevname directly from udev rule, --policy=loms
      remove the netdevice script from install
      add policy=loms to manpage
      fix Makefile uninstall-local failure
      fix udev rules typo
      finish removing netdevice script
      update changelogs, bump version
      rename policy=loms to =embedded, use enX instead of lomX
      make embedded NIC name configurable, default ='en'
      add --prefix to manpage
      Use sysfs to find parent devices and slot
      add --policy=pony (to be renamed later) naming of PCI devices
      attach VFs to PFs, unparse the lists when debugging
      assign names to PCI VFs as pci1#0_2 for slot 1, port 0, VF 2
      change default embedded prefix to "em"
      allow all combinations of embedded/add-in, PF or VF, in naming
      don't use #port nomenclature for embedded devices
      mark HP embedded NICs as being embedded
      remove unused function
      s/pony/physical/
      fix udev rule policy name
      change udev rule to set NAME=, so stateful names persistent names aren't written to 70-persistent-net.rules
      add additional checks and define _GNU_SOURCE in configure.ac
      get VF index from sysfs
      fix getting VF indices from sysfs
      more fixes for SRIOV detection
      move setting slot_index into pci.c, fixes failures with SR-IOV devices; other cleanups.
      don't print to stderr on SIOCGIFHWADDR failure
      note that index_in_slot is only valid for physical slot PF devices
      POLICY DELETIONS: delete all policies but all_ethN and physical (default)
      only print Index in slot where it's valid
      fix manpage for policy deletions
      clean up manpage and help text
      fix use of uses_smbios
      update manpage with the naming policies in use now
      document return codes in manpage
      bump version string to 0.3.1


Thanks,
Matt

-- 
Matt Domsch
Technology Strategist
Dell | Office of the CTO

^ permalink raw reply

* B43 on Inspiron 1545 w/Ubuntu
From: David Brownell @ 2010-11-29  4:27 UTC (permalink / raw)
  To: netdev


Briefly, it's never worked well and I'm hoping someone can help.

The OS is currently Ubuntu 10.04.1 ... recent updates included B43
from wireless-backports, I think; I saw  One positive change,
but it still doesn't work.  (Yeah, 2.6.32 isn't recent, but I'm not
much trusting the non-existent account backup here. so an upgrade
to 10.10.x isn't yet in the cards.  And this is supposed to work
already, in any case...

History:  Didn't work at first, the driver had a DMA bug.  Based
on a forum post I installed the backports using Ethernet.  After
more setup and a few days, WLAN began working relatively well ...
for a period of maybe five days, then completely stopped working
in the middle of a webpage access (last summer).
NetworkManager kept saying wireless was disabled (and rejected all
attempts to re-enable.  10+ months passed (Ethernet works fine).

	NOTE to "NetworkManager" folk ... please fix it so that
when you select "enable wireless" it either does so, or says why it
didn't.  This "Ignore user commands" crap is garbage.  and for
that matter -- instead of  saying "disabled", try saying why/how;
I certainly never disabled WLAN. or "Networking" as a whole either,
so in that sense it's just a bug.  In particular, there was never
any explicit user "disable" action (to parallel the "enable" menu
option provided) by NM).

To my surprise and pleasure, the WLAN worked for about two
hours of  web browsing in a hotel lobby, after disconnecting from
a wired connection; no odd behaviors at all, beyond trying at first
to connect as wired, when there was no wire available.

Hasn't worked from various coffee shops either.  As if maybe something
in NetworkManager transferred state from wired to WLAN, sufficient to
make it work ... but coffee shops wouldn't support such state transfer
between my home LAN and the coffee WLAN.  (That hotel had one network
provider for both wired and WLAN/lobby).


The only other time this came close to working was on an airplane,
where it saw "gogoinflight" but crapped out after a few minutes.
(Sorry no details on how/why; maybe it would have been happier if
I'd finished signing up before it crapped out

A recent Ubuntu update changed behavior in a positive way:  when
I looked at "dmesg" (as few normal users would try to do), it
changed behavior and complained about a hardware RFKILL button.

Let it be noted that there is no such button ... but BIOS F2 is
probably what it means.  Unfortunately I can't figure out how to
make that button work ... the manual is not at best weak.  (Suggests
just press F2, not FN-F2, forums say the latter, but neither one has
worked for me .  (Plus there is no visual rfkill indication (LED
 or otherwise) as I'm used to on other hardware.  I guess on this
hardware Dell cheaped out past the point usability was affected.

 The undocumented "rfkill" command says WLAN is "hard blocked".
Puzzling, considering I've never tried to block WLAN access, and
it appears to have decided to spontaneously off itself.

I'm moderately hopeful that if I could make F2 work, then I'd
have WLAN.  Hope does spring eternal, as they say... Can someone
please offer some hints for me?

While I'm writing here, I'll just comment that NetworkManager has
seemed to make this whole thing maximally painful/mysterious.


Recent dmesg output below.


[  680.493965] b43-phy0: Broadcom 4312 WLAN found (core revision 15)
[  680.660736] phy0: Selected rate control algorithm 'minstrel'
[  680.661406] Registered led device: b43-phy0::tx
[  680.661423] Registered led device: b43-phy0::rx
[  680.661437] Registered led device: b43-phy0::radio
[  680.661519] Broadcom 43xx driver loaded [ Features: PMNLS,
Firmware-ID: FW13 ]
[  680.960280] b43-phy0: Loading firmware version 410.2160 (2007-05-26
15:32:10)
[  681.700410] b43-phy0: Radio hardware status changed to DISABLED
[  681.730361] b43-phy0: Radio turned on by software
[  681.730368] b43-phy0: The hardware RF-kill button still turns the
radio physically off. Press the button to turn it on.
[  681.731490] ADDRCONF(NETDEV_UP): wlan0: link is not ready



^ permalink raw reply

* RE: [PATCH] net/r8169: Correct the ram code for RTL8111D(L)
From: hayeswang @ 2010-11-29  3:47 UTC (permalink / raw)
  To: 'Ben Hutchings', 'Francois Romieu'
  Cc: netdev, linux-kernel, 'David Miller', 564628
In-Reply-To: <1290813146.3051.58.camel@localhost>

Excuse me, I have some questions about the firmware patch.

1. I should convert the data into the binary files (.bin). Is it right?

2. Where should I update the firmware files? Is the path the
linux-2.6/firmeware?
    However, according to linux-2.6/firmeware/README.AddingFirmware, I
should
    update they to another repository:

	
git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git

    Then, how the firmware merge with kernel-2.6? Or, where could I find the
firmware
    in the kernel-2.6 repository?
 
Best Regards,
Hayes


> -----Original Message-----
> From: Ben Hutchings [mailto:benh@debian.org] 
> Sent: Saturday, November 27, 2010 7:12 AM
> To: Francois Romieu; Hayeswang
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; 
> David Miller; 564628@bugs.debian.org
> Subject: Re: [PATCH] net/r8169: Correct the ram code for RTL8111D(L)
> 
> On Fri, 2010-11-26 at 23:49 +0100, Francois Romieu wrote:
> > Ben Hutchings <benh@debian.org> :
> > > On Fri, 2010-11-26 at 19:54 +0800, Hayes Wang wrote:
> > > > Correct the binary code (Low pass filter & DLY_CAP fine 
> tune from uC).
> > > > The incorrect ram code would make the nic working abnormally.
> > > [...]
> > > 
> > > I'm glad you finally acknowledge that this is code rather than 
> > > simple register initialisation.
> > 
> > I am not sure that Hayes is a native english speaker.
> > 
> > I am glad to see him posting here.
> 
> Right.
> 
> Hayes, by 'you' I meant Realtek, not you personally.  If my 
> reply seemed aggressive, I apologise.
> 
> > [...]
> > > Below are the changes Debian currently applies in preparation for 
> > > proper licencing of the firmware.
> > 
> > Do you have some scripts to convert the data at hand ?
> [...]
> 
> No, it's easy enough to convert a single array by copying it 
> into a C file that dumps it to stdout (assuming the file's 
> byte order is defined to match your own machine).
> 
> It might be worth adding some sort of header with a version 
> and checksum.  Your choice, really.
> 
> Ben.
> 
> --
> Ben Hutchings, Debian Developer and kernel team member
> 
> 

^ permalink raw reply

* Re: atl1e error messages in syslog
From: Jack Byer @ 2010-11-29  3:15 UTC (permalink / raw)
  To: Cloud Ren
  Cc: Xiong Huang, jcliburn@gmail.com, chris.snook@gmail.com,
	netdev@vger.kernel.org
In-Reply-To: <CDAFEDABF718A54BABD0DA54766953070141EF3233@SHEXMB-01.global.atheros.com>

On Sun, Nov 28, 2010 at 9:05 PM, Cloud Ren <Cloud.Ren@atheros.com> wrote:
> Hi,
>
> Can you give us driver version information?
>
> You can use " ethtool -i eth0" get it. thanks
>
This is the driver from kernel 2.6.38.1

driver: ATL1E
version: 1.0.0.7-NAPI
firmware-version: L1e
bus-info: 0000:02:00.0

^ permalink raw reply

* Re: [PATCH] vmxnet3: fix compilation when RSS is disabled
From: Randy Dunlap @ 2010-11-29  3:07 UTC (permalink / raw)
  To: Scott J. Goldman; +Cc: netdev, linux-kernel, linux-next, pv-drivers
In-Reply-To: <1290890035-32285-2-git-send-email-scottjg@vmware.com>

On 11/27/10 12:33, Scott J. Goldman wrote:
> If RSS is disabled, we can ifdef out some RSS specific code. This fixes
> the compile error found by Randy Dunlap.
> 
> Signed-off-by: Scott J. Goldman <scottjg@vmware.com>

Acked-by: Randy Dunlap <randy.dunlap@oracle.com>

Thanks.

> ---
>  drivers/net/vmxnet3/vmxnet3_ethtool.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/vmxnet3/vmxnet3_ethtool.c b/drivers/net/vmxnet3/vmxnet3_ethtool.c
> index 9ddaea6..8e17fc8 100644
> --- a/drivers/net/vmxnet3/vmxnet3_ethtool.c
> +++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c
> @@ -553,7 +553,7 @@ vmxnet3_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *info,
>  	return -EOPNOTSUPP;
>  }
>  
> -
> +#ifdef VMXNET3_RSS
>  static int
>  vmxnet3_get_rss_indir(struct net_device *netdev,
>  		      struct ethtool_rxfh_indir *p)
> @@ -598,6 +598,7 @@ vmxnet3_set_rss_indir(struct net_device *netdev,
>  	return 0;
>  
>  }
> +#endif
>  
>  static struct ethtool_ops vmxnet3_ethtool_ops = {
>  	.get_settings      = vmxnet3_get_settings,
> @@ -623,8 +624,10 @@ static struct ethtool_ops vmxnet3_ethtool_ops = {
>  	.get_ringparam     = vmxnet3_get_ringparam,
>  	.set_ringparam     = vmxnet3_set_ringparam,
>  	.get_rxnfc         = vmxnet3_get_rxnfc,
> +#ifdef VMXNET3_RSS
>  	.get_rxfh_indir    = vmxnet3_get_rss_indir,
>  	.set_rxfh_indir    = vmxnet3_set_rss_indir,
> +#endif
>  };
>  
>  void vmxnet3_set_ethtool_ops(struct net_device *netdev)


-- 
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

^ permalink raw reply

* RE: atl1e error messages in syslog
From: Cloud Ren @ 2010-11-29  3:05 UTC (permalink / raw)
  To: Jack Byer, Xiong Huang
  Cc: jcliburn@gmail.com, chris.snook@gmail.com, netdev@vger.kernel.org
In-Reply-To: <AANLkTik8gh8=wBCoTELchFAQih-+_b7sUJ4p2z1ojSeh@mail.gmail.com>

Hi,

Can you give us driver version information?

You can use " ethtool -i eth0" get it. thanks

Best Regards
Cloud Ren


-----Original Message-----
From: Jack Byer [mailto:ftn768@gmail.com] 
Sent: 2010年11月29日 8:44
To: Xiong Huang
Cc: jcliburn@gmail.com; chris.snook@gmail.com; Cloud Ren; netdev@vger.kernel.org
Subject: Re: atl1e error messages in syslog

On Sun, Nov 28, 2010 at 6:32 PM, Xiong Huang <Xiong.Huang@atheros.com> wrote:
> Sorry, I can't recognize it unless you give me the PCI device ID.

I forgot to use -n

The ID is 1969:1026

^ permalink raw reply

* Re: [PATCH] ucc_geth: fix ucc halt problem in half duplex mode
From: David Miller @ 2010-11-29  2:37 UTC (permalink / raw)
  To: leoli; +Cc: linuxppc-dev, netdev, jdboyer, Andreas.Schmitz, avorontsov
In-Reply-To: <1290763798-22844-1-git-send-email-leoli@freescale.com>

From: Li Yang <leoli@freescale.com>
Date: Fri, 26 Nov 2010 17:29:58 +0800

> In commit 58933c64(ucc_geth: Fix the wrong the Rx/Tx FIFO size),
> the UCC_GETH_UTFTT_INIT is set to 512 based on the recommendation
> of the QE Reference Manual.  But that will sometimes cause tx halt
> while working in half duplex mode.
> 
> According to errata draft QE_GENERAL-A003(High Tx Virtual FIFO
> threshold size can cause UCC to halt), setting UTFTT less than
> [(UTFS x (M - 8)/M) - 128] will prevent this from happening
> (M is the minimum buffer size).
> 
> The patch changes UTFTT back to 256.
> 
> Signed-off-by: Li Yang <leoli@freescale.com>
> Cc: Jean-Denis Boyer <jdboyer@media5corp.com>
> Cc: Andreas Schmitz <Andreas.Schmitz@riedel.net>
> Cc: Anton Vorontsov <avorontsov@ru.mvista.com>

Applied, thank you.

^ permalink raw reply

* Re: [PATCH] vmxnet3: fix compilation when RSS is disabled
From: David Miller @ 2010-11-29  2:26 UTC (permalink / raw)
  To: scottjg; +Cc: netdev, linux-kernel, linux-next, pv-drivers, randy.dunlap
In-Reply-To: <1290890035-32285-2-git-send-email-scottjg@vmware.com>

From: "Scott J. Goldman" <scottjg@vmware.com>
Date: Sat, 27 Nov 2010 12:33:55 -0800

> If RSS is disabled, we can ifdef out some RSS specific code. This fixes
> the compile error found by Randy Dunlap.
> 
> Signed-off-by: Scott J. Goldman <scottjg@vmware.com>

Applied.

^ permalink raw reply

* Re: [PATCH] xps: Add CONFIG_XPS
From: David Miller @ 2010-11-29  2:24 UTC (permalink / raw)
  To: therbert; +Cc: netdev, eric.dumazet
In-Reply-To: <alpine.DEB.2.00.1011261033070.20580@pokey.mtv.corp.google.com>

From: Tom Herbert <therbert@google.com>
Date: Fri, 26 Nov 2010 10:36:09 -0800 (PST)

> This patch adds XPS_CONFIG option to enable and disable XPS.  This is
> done in the same manner as RPS_CONFIG.  This is also fixes build
> failure in XPS code when SMP is not enabled.
> 
> Signed-off-by: Tom Herbert <therbert@google.com>

Applied, thanks Tom.

^ permalink raw reply

* Re: [PATCH] net-next: Fix __inet_inherit_port() to correctly increment bsockets and num_owners
From: David Miller @ 2010-11-29  2:20 UTC (permalink / raw)
  To: zbr; +Cc: tomer_iisc, netdev, eric.dumazet
In-Reply-To: <20101128230041.GA16269@ioremap.net>

From: Evgeniy Polyakov <zbr@ioremap.net>
Date: Mon, 29 Nov 2010 02:00:41 +0300

> Hi.
> 
> On Fri, Nov 26, 2010 at 04:26:27PM -0800, Nagendra Tomar (tomer_iisc@yahoo.com) wrote:
>> inet sockets corresponding to passive connections are added to the bind hash
>> using ___inet_inherit_port(). These sockets are later removed from the bind 
>> hash using __inet_put_port(). These two functions are not exactly symmetrical. 
>> __inet_put_port() decrements hashinfo->bsockets and tb->num_owners, whereas 
>> ___inet_inherit_port() does not increment them. This results in both of these 
>> going to -ve values.
>> 
>> This patch fixes this by calling inet_bind_hash() from ___inet_inherit_port(),
>> which does the right thing.
>> 
>> 'bsockets' and 'num_owners' were introduced by commit a9d8f9110d7e953c 
>> (inet: Allowing more than 64k connections and heavily optimize bind(0))
> 
> Yup, things changed from that simple patch a lot.
> Thanks for fixing it up.
> Ack.

I've decided to apply this to net-2.6, thanks everyone.

^ permalink raw reply

* Re: [PATCH wireless-next] ath: Rename ath_print to ath_debug
From: Luis R. Rodriguez @ 2010-11-29  2:17 UTC (permalink / raw)
  To: Joe Perches
  Cc: Jouni Malinen, Vasanthakumar Thiagarajan, Senthil Balasubramanian,
	John W. Linville, linux-wireless, ath9k-devel, netdev,
	linux-kernel
In-Reply-To: <5febb0e1fba0ec2bb77f6ade8b251ba0edf4614c.1290988277.git.joe@perches.com>

On Sun, Nov 28, 2010 at 3:53 PM, Joe Perches <joe@perches.com> wrote:
> Make the function name match the function purpose.
> ath_debug is a debug only facility.
> ath_print seems too generic a name for a debug only use.
>
> Removed an unnecessary trailing space in htc_drv_main.c
>
> Signed-off-by: Joe Perches <joe@perches.com>

Nack, I don't see the point.

  Luis

^ permalink raw reply

* Re: [PATCH] ehea: Add some info messages and fix an issue
From: David Miller @ 2010-11-29  2:15 UTC (permalink / raw)
  To: leitao; +Cc: joe, netdev
In-Reply-To: <1290792387-12331-1-git-send-email-leitao@linux.vnet.ibm.com>

From: leitao@linux.vnet.ibm.com
Date: Fri, 26 Nov 2010 15:26:27 -0200

> From: Breno Leitao <breno@cafe.(none)>
> 
> This patch adds some debug information about ehea not being able to
> allocate enough spaces. Also it correctly updates the amount of available
> skb.
> 
> Signed-off-by: Breno Leitao <leitao@linux.vnet.ibm.com>

Applied to net-2.6

^ permalink raw reply

* Re: [patch 0/4] s390: qeth patches for net-next
From: David Miller @ 2010-11-29  2:13 UTC (permalink / raw)
  To: frank.blaschka; +Cc: netdev, linux-s390
In-Reply-To: <20101126124116.123736494@de.ibm.com>

From: frank.blaschka@de.ibm.com
Date: Fri, 26 Nov 2010 13:41:16 +0100

> here are some patches for net-next.
> The set contains also the patch from Sachin Sant to fix the s390 build.

All applied, thank you.

^ permalink raw reply

* Re: linux-next: build failure after merge of the net tree
From: David Miller @ 2010-11-29  2:11 UTC (permalink / raw)
  To: sfr; +Cc: netdev, linux-next, linux-kernel, peppe.cavallaro
In-Reply-To: <20101129110824.639b2659.sfr@canb.auug.org.au>

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Mon, 29 Nov 2010 11:08:24 +1100

> Hi all,
> 
> After merging the net tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
> 
> drivers/net/stmmac/stmmac_main.c: In function 'stmmac_resume':
> drivers/net/stmmac/stmmac_main.c:1849: error: 'struct stmmac_priv' has no member named 'shutdown'
> 
> Caused by commit 874bd42d24c2a74f5dbd65e81e175982240fecd8 ("stmmac:
> convert to dev_pm_ops").
> 
> I have used the net tree from next-20101126 for today.

I have pushed the following fix which should cure this:

--------------------
stmmac: fix stmmac_resume removing not yet used shutdown flag

The commit to convert to use the dev_pm_ops struct
introduces a bug. The shutdown flag is not yet used
because the hibernation on memory is done by using
the freeze callback.
Thanks to Vlad for having reported it.

Reported-by: Vlad Lungu <vlad.lungu@windriver.com>
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
 drivers/net/stmmac/stmmac_main.c |    7 -------
 1 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/drivers/net/stmmac/stmmac_main.c b/drivers/net/stmmac/stmmac_main.c
index f1dbc18..730a6fd 100644
--- a/drivers/net/stmmac/stmmac_main.c
+++ b/drivers/net/stmmac/stmmac_main.c
@@ -1846,13 +1846,6 @@ static int stmmac_resume(struct device *dev)
 	if (!netif_running(ndev))
 		return 0;
 
-	if (priv->shutdown) {
-		/* Re-open the interface and re-init the MAC/DMA
-		   and the rings (i.e. on hibernation stage) */
-		stmmac_open(dev);
-		return 0;
-	}
-
 	spin_lock(&priv->lock);
 
 	/* Power Down bit, into the PM register, is cleared
-- 
1.7.3.2

^ permalink raw reply related

* [PATCH 5/5] firewire: net: ratelimit error messages
From: Maxim Levitsky @ 2010-11-29  2:09 UTC (permalink / raw)
  To: linux1394-devel; +Cc: Stefan Richter, netdev, Maxim Levitsky
In-Reply-To: <1290996593-32416-1-git-send-email-maximlevitsky@gmail.com>

Unfortunelly its easy to trigger such error messages
by removing the cable while sending streams of data
over the link.

Such errors are normal, and therefore this patch
stops firewire-net from flooding the kernel log
with these errors,
by combining series of same errors together.


Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
---
 drivers/firewire/net.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c
index d422519..ac563d6 100644
--- a/drivers/firewire/net.c
+++ b/drivers/firewire/net.c
@@ -999,15 +999,23 @@ static void fwnet_transmit_packet_failed(struct fwnet_packet_task *ptask)
 static void fwnet_write_complete(struct fw_card *card, int rcode,
 				 void *payload, size_t length, void *data)
 {
-	struct fwnet_packet_task *ptask;
-
-	ptask = data;
+	struct fwnet_packet_task *ptask = data;
+	static unsigned long j;
+	static int last_rcode, errors_skipped;
 
 	if (rcode == RCODE_COMPLETE) {
 		fwnet_transmit_packet_done(ptask);
 	} else {
-		fw_error("fwnet_write_complete: failed: %x\n", rcode);
 		fwnet_transmit_packet_failed(ptask);
+
+		if (printk_timed_ratelimit(&j,  1000) || rcode != last_rcode) {
+			fw_error("fwnet_write_complete: "
+				"failed: %x (skipped %d)\n", rcode, errors_skipped);
+
+			errors_skipped = 0;
+			last_rcode = rcode;
+		} else
+			errors_skipped++;
 	}
 }
 
-- 
1.7.1


^ permalink raw reply related

* Re: [PATCH] stmmac: fix stmmac_resume removing not yet used shutdown flag
From: David Miller @ 2010-11-29  2:11 UTC (permalink / raw)
  To: peppe.cavallaro; +Cc: netdev, vlad.lungu
In-Reply-To: <1290740072-1341-1-git-send-email-peppe.cavallaro@st.com>

From: Peppe CAVALLARO <peppe.cavallaro@st.com>
Date: Fri, 26 Nov 2010 15:11:45 +0100

> The commit to convert to use the dev_pm_ops struct
> introduces a bug. The shutdown flag is not yet used
> because the hibernation on memory is done by using
> the freeze callback.
> Thanks to Vlad for having reported it.
> 
> Reported-by: Vlad Lungu <vlad.lungu@windriver.com>
> Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>

Applied.

^ permalink raw reply

* [PATCH 4/5] firewire: net: invalidate ARP entries of removed nodes.
From: Maxim Levitsky @ 2010-11-29  2:09 UTC (permalink / raw)
  To: linux1394-devel; +Cc: Stefan Richter, netdev, Maxim Levitsky
In-Reply-To: <1290996593-32416-1-git-send-email-maximlevitsky@gmail.com>

This makes it possible to resume communication with
a node that dropped off the bus for a brief period.
Otherwice communication will only be possible after
ARP cache entry timeouts

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
---
 drivers/firewire/net.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c
index 1a467a9..d422519 100644
--- a/drivers/firewire/net.c
+++ b/drivers/firewire/net.c
@@ -189,6 +189,7 @@ struct fwnet_peer {
 	struct fwnet_device *dev;
 	u64 guid;
 	u64 fifo;
+	__be32 ip;
 
 	/* guarded by dev->lock */
 	struct list_head pd_list; /* received partial datagrams */
@@ -568,6 +569,8 @@ static int fwnet_finish_incoming_packet(struct net_device *net,
 				peer->speed = sspd;
 			if (peer->max_payload > max_payload)
 				peer->max_payload = max_payload;
+
+			peer->ip = arp1394->sip;
 		}
 		spin_unlock_irqrestore(&dev->lock, flags);
 
@@ -1443,6 +1446,7 @@ static int fwnet_add_peer(struct fwnet_device *dev,
 	peer->dev = dev;
 	peer->guid = (u64)device->config_rom[3] << 32 | device->config_rom[4];
 	peer->fifo = FWNET_NO_FIFO_ADDR;
+	peer->ip = 0;
 	INIT_LIST_HEAD(&peer->pd_list);
 	peer->pdg_size = 0;
 	peer->datagram_label = 0;
@@ -1558,6 +1562,9 @@ static int fwnet_remove(struct device *_dev)
 
 	mutex_lock(&fwnet_device_mutex);
 
+	if (dev->netdev && peer->ip)
+		arp_invalidate(dev->netdev, peer->ip);
+
 	fwnet_remove_peer(peer);
 
 	if (list_empty(&dev->peer_list)) {
-- 
1.7.1


^ permalink raw reply related

* [PATCH 3/5] NET: IPV4: ARP: allow to invalidate specific ARP entries
From: Maxim Levitsky @ 2010-11-29  2:09 UTC (permalink / raw)
  To: linux1394-devel
  Cc: Stefan Richter, netdev, Maxim Levitsky, David S. Miller,
	Alexey Kuznetsov, James Morris, Patrick McHardy
In-Reply-To: <1290996593-32416-1-git-send-email-maximlevitsky@gmail.com>

IPv4 over firewire needs to be able to remove ARP entries
from the ARP cache that belong to nodes that are removed, because
IPv4 over firewire uses ARP packets for private information
about nodes.

This information becomes invalid as soon as node drops
off the bus and when it reconnects, its only possible
to start takling to is after it responded to an ARP packet.
But ARP cache prevents such packets from being sent.

CC: netdev@vger.kernel.org
CC: "David S. Miller" <davem@davemloft.net>
CC: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
CC: James Morris <jmorris@namei.org>
CC: Patrick McHardy <kaber@trash.net>


Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
---
 include/net/arp.h |    1 +
 net/ipv4/arp.c    |   29 ++++++++++++++++++-----------
 2 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/include/net/arp.h b/include/net/arp.h
index f4cf6ce..91f0568 100644
--- a/include/net/arp.h
+++ b/include/net/arp.h
@@ -25,5 +25,6 @@ extern struct sk_buff *arp_create(int type, int ptype, __be32 dest_ip,
 				  const unsigned char *src_hw,
 				  const unsigned char *target_hw);
 extern void arp_xmit(struct sk_buff *skb);
+int arp_invalidate(struct net_device *dev, __be32 ip);
 
 #endif	/* _ARP_H */
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
index d8e540c..35b1272 100644
--- a/net/ipv4/arp.c
+++ b/net/ipv4/arp.c
@@ -1142,6 +1142,23 @@ static int arp_req_get(struct arpreq *r, struct net_device *dev)
 	return err;
 }
 
+int arp_invalidate(struct net_device *dev, __be32 ip)
+{
+	int err = -ENXIO;
+	struct neighbour *neigh = neigh_lookup(&arp_tbl, &ip, dev);
+
+	if (neigh) {
+		if (neigh->nud_state & ~NUD_NOARP)
+			err = neigh_update(neigh, NULL, NUD_FAILED,
+					   NEIGH_UPDATE_F_OVERRIDE|
+					   NEIGH_UPDATE_F_ADMIN);
+		neigh_release(neigh);
+	}
+
+	return err;
+}
+EXPORT_SYMBOL(arp_invalidate);
+
 static int arp_req_delete_public(struct net *net, struct arpreq *r,
 		struct net_device *dev)
 {
@@ -1162,7 +1179,6 @@ static int arp_req_delete(struct net *net, struct arpreq *r,
 {
 	int err;
 	__be32 ip;
-	struct neighbour *neigh;
 
 	if (r->arp_flags & ATF_PUBL)
 		return arp_req_delete_public(net, r, dev);
@@ -1180,16 +1196,7 @@ static int arp_req_delete(struct net *net, struct arpreq *r,
 		if (!dev)
 			return -EINVAL;
 	}
-	err = -ENXIO;
-	neigh = neigh_lookup(&arp_tbl, &ip, dev);
-	if (neigh) {
-		if (neigh->nud_state & ~NUD_NOARP)
-			err = neigh_update(neigh, NULL, NUD_FAILED,
-					   NEIGH_UPDATE_F_OVERRIDE|
-					   NEIGH_UPDATE_F_ADMIN);
-		neigh_release(neigh);
-	}
-	return err;
+	return arp_invalidate(dev, ip);
 }
 
 /*
-- 
1.7.1


^ permalink raw reply related

* [PATCH 2/5] firewire: ohci: restart ISO DMA contexts on resume from low power mode
From: Maxim Levitsky @ 2010-11-29  2:09 UTC (permalink / raw)
  To: linux1394-devel; +Cc: Stefan Richter, netdev, Maxim Levitsky
In-Reply-To: <1290996593-32416-1-git-send-email-maximlevitsky@gmail.com>

Restore ISO channels DMA so that ISO channels could continue
to work after resume from ram/disk.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
---
 drivers/firewire/ohci.c |   54 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 46 insertions(+), 8 deletions(-)

diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
index 0fbadb7..f5889d5 100644
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -40,6 +40,7 @@
 #include <linux/spinlock.h>
 #include <linux/string.h>
 #include <linux/time.h>
+#include <linux/bitops.h>
 
 #include <asm/byteorder.h>
 #include <asm/page.h>
@@ -152,6 +153,7 @@ struct context {
 	descriptor_callback_t callback;
 
 	struct tasklet_struct tasklet;
+	bool active;
 };
 
 #define IT_HEADER_SY(v)          ((v) <<  0)
@@ -167,6 +169,9 @@ struct iso_context {
 	int excess_bytes;
 	void *header;
 	size_t header_length;
+
+	u8 sync;
+	u8 tags;
 };
 
 #define CONFIG_ROM_SIZE 1024
@@ -183,7 +188,8 @@ struct fw_ohci {
 	u32 bus_time;
 	bool is_root;
 	bool csr_state_setclear_abdicate;
-
+	int n_ir;
+	int n_it;
 	/*
 	 * Spinlock for accessing fw_ohci data.  Never call out of
 	 * this driver with this lock held.
@@ -1156,6 +1162,7 @@ static struct descriptor *context_get_descriptors(struct context *ctx,
 static void context_run(struct context *ctx, u32 extra)
 {
 	struct fw_ohci *ohci = ctx->ohci;
+	ctx->active = true;
 
 	reg_write(ohci, COMMAND_PTR(ctx->regs),
 		  le32_to_cpu(ctx->last->branch_address));
@@ -1187,6 +1194,7 @@ static void context_stop(struct context *ctx)
 	u32 reg;
 	int i;
 
+	ctx->active = false;
 	reg_write(ctx->ohci, CONTROL_CLEAR(ctx->regs), CONTEXT_RUN);
 	flush_writes(ctx->ohci);
 
@@ -2614,6 +2622,10 @@ static int ohci_start_iso(struct fw_iso_context *base,
 		reg_write(ohci, OHCI1394_IsoRecvIntMaskSet, 1 << index);
 		reg_write(ohci, CONTEXT_MATCH(ctx->context.regs), match);
 		context_run(&ctx->context, control);
+
+		ctx->sync = sync;
+		ctx->tags = tags;
+
 		break;
 	}
 
@@ -2711,6 +2723,26 @@ static int ohci_set_iso_channels(struct fw_iso_context *base, u64 *channels)
 	return ret;
 }
 
+#ifdef CONFIG_PM
+static void ohci_resume_iso_dma(struct fw_ohci *ohci)
+{
+	int i;
+	struct iso_context *ctx;
+
+	for (i = 0 ; i < ohci->n_ir ; i++) {
+		ctx = &ohci->ir_context_list[i];
+		if (ctx->context.active)
+			ohci_start_iso(&ctx->base, 0, ctx->sync, ctx->tags);
+	}
+
+	for (i = 0 ; i < ohci->n_it ; i++) {
+		ctx = &ohci->it_context_list[i];
+		if (ctx->context.active)
+			ohci_start_iso(&ctx->base, 0, ctx->sync, ctx->tags);
+	}
+}
+#endif
+
 static int queue_iso_transmit(struct iso_context *ctx,
 			      struct fw_iso_packet *packet,
 			      struct fw_iso_buffer *buffer,
@@ -3020,7 +3052,7 @@ static int __devinit pci_probe(struct pci_dev *dev,
 	struct fw_ohci *ohci;
 	u32 bus_options, max_receive, link_speed, version;
 	u64 guid;
-	int i, err, n_ir, n_it;
+	int i, err;
 	size_t size;
 
 	ohci = kzalloc(sizeof(*ohci), GFP_KERNEL);
@@ -3092,15 +3124,15 @@ static int __devinit pci_probe(struct pci_dev *dev,
 	ohci->ir_context_channels = ~0ULL;
 	ohci->ir_context_mask = reg_read(ohci, OHCI1394_IsoRecvIntMaskSet);
 	reg_write(ohci, OHCI1394_IsoRecvIntMaskClear, ~0);
-	n_ir = hweight32(ohci->ir_context_mask);
-	size = sizeof(struct iso_context) * n_ir;
+	ohci->n_ir = hweight32(ohci->ir_context_mask);
+	size = sizeof(struct iso_context) * ohci->n_ir;
 	ohci->ir_context_list = kzalloc(size, GFP_KERNEL);
 
 	reg_write(ohci, OHCI1394_IsoXmitIntMaskSet, ~0);
 	ohci->it_context_mask = reg_read(ohci, OHCI1394_IsoXmitIntMaskSet);
 	reg_write(ohci, OHCI1394_IsoXmitIntMaskClear, ~0);
-	n_it = hweight32(ohci->it_context_mask);
-	size = sizeof(struct iso_context) * n_it;
+	ohci->n_it = hweight32(ohci->it_context_mask);
+	size = sizeof(struct iso_context) * ohci->n_it;
 	ohci->it_context_list = kzalloc(size, GFP_KERNEL);
 
 	if (ohci->it_context_list == NULL || ohci->ir_context_list == NULL) {
@@ -3132,7 +3164,7 @@ static int __devinit pci_probe(struct pci_dev *dev,
 	fw_notify("Added fw-ohci device %s, OHCI v%x.%x, "
 		  "%d IR + %d IT contexts, quirks 0x%x\n",
 		  dev_name(&dev->dev), version >> 16, version & 0xff,
-		  n_ir, n_it, ohci->quirks);
+		  ohci->n_ir, ohci->n_it, ohci->quirks);
 
 	return 0;
 
@@ -3247,7 +3279,13 @@ static int pci_resume(struct pci_dev *dev)
 		reg_write(ohci, OHCI1394_GUIDHi, (u32)(ohci->card.guid >> 32));
 	}
 
-	return ohci_enable(&ohci->card, NULL, 0);
+	err = ohci_enable(&ohci->card, NULL, 0);
+
+	if (err)
+		return err;
+
+	ohci_resume_iso_dma(ohci);
+	return 0;
 }
 #endif
 
-- 
1.7.1


^ permalink raw reply related

* [PATCH 1/5] firewire: ohci: restore GUID on resume.
From: Maxim Levitsky @ 2010-11-29  2:09 UTC (permalink / raw)
  To: linux1394-devel; +Cc: Stefan Richter, netdev, Maxim Levitsky
In-Reply-To: <1290996593-32416-1-git-send-email-maximlevitsky@gmail.com>

Some lousy BIOSes, e.g. my Aspire 5720 BIOS forget to restore
the GUID register on resume from ram.

Fix that by setting it to the last value that
was read from it.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
---
 drivers/firewire/ohci.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
index 6dd56cd..0fbadb7 100644
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -3240,6 +3240,13 @@ static int pci_resume(struct pci_dev *dev)
 		return err;
 	}
 
+	/* Some systems don't setup GUID register on resume from ram  */
+	if (!reg_read(ohci, OHCI1394_GUIDLo) &&
+					!reg_read(ohci, OHCI1394_GUIDHi)) {
+		reg_write(ohci, OHCI1394_GUIDLo, (u32)ohci->card.guid);
+		reg_write(ohci, OHCI1394_GUIDHi, (u32)(ohci->card.guid >> 32));
+	}
+
 	return ohci_enable(&ohci->card, NULL, 0);
 }
 #endif
-- 
1.7.1


^ permalink raw reply related

* [PATCH 0/5 V2] Firewire networking assorted fixes
From: Maxim Levitsky @ 2010-11-29  2:09 UTC (permalink / raw)
  To: linux1394-devel; +Cc: Stefan Richter, netdev

Hi,

This is updated version of the patches.
I updated the changelogs, addressed comments on patch #2

Best regards,
	Maxim Levitsky


^ permalink raw reply

* Re: [PATCH 0/6] Forcedeth code style cleanup
From: David Miller @ 2010-11-29  2:07 UTC (permalink / raw)
  To: szymon; +Cc: netdev
In-Reply-To: <1290883188-2078-1-git-send-email-szymon@janc.net.pl>

From: Szymon Janc <szymon@janc.net.pl>
Date: Sat, 27 Nov 2010 19:39:42 +0100

> Hi,
> 
> Following patches make checkpatch less unhappy about forcedeth.c.
> 
> total: 107 errors, 511 warnings, 6222 lines checked
> vs
> total: 12 errors, 467 warnings, 6190 lines checked
> 
> Remaining errors are false positives, remaining warnings are all lines over 80
> characters.

I applied all the patches except patch #5 to net-next-2.6, thanks.

^ permalink raw reply

* Re: [PATCH net-next-2.6 01/19 v5] can: EG20T PCH: Separate Interface Register(IF1/IF2)
From: Tomoya MORINAGA @ 2010-11-29  1:59 UTC (permalink / raw)
  To: Marc Kleine-Budde
  Cc: andrew.chih.howe.khor-ral2JQCrhuEAvxtiuMwx3w, Samuel Ortiz,
	margie.foster-ral2JQCrhuEAvxtiuMwx3w,
	netdev-u79uwXL29TY76Z2rM5mHXA, Christian Pellegrin,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	yong.y.wang-ral2JQCrhuEAvxtiuMwx3w,
	socketcan-core-0fE9KPoRgkgATYTw5x5z8w,
	kok.howg.ewe-ral2JQCrhuEAvxtiuMwx3w,
	joel.clark-ral2JQCrhuEAvxtiuMwx3w, David S. Miller,
	Wolfgang Grandegger, qi.wang-ral2JQCrhuEAvxtiuMwx3w
In-Reply-To: <4CEF864B.6080207@pengutronix.de>

On Friday, November 26, 2010 7:04 PM, Marc Kleine-Budde wrote:

>> nitpick: it's unusual to have leading whitespace in the patch description.

> maybe it's a problem of your mailer.
I can see the whitespace created patch by "git format-patch"
I show the head of patch below.

>From e53c63a8ff00c76f165e371511604f374451627b Mon Sep 17 00:00:00 2001
From: Tomoya MORINAGA <tomoya-linux-ECg8zkTtlr0C6LszWs/t0g@public.gmane.org>
Date: Thu, 18 Nov 2010 09:18:15 +0900
Subject: [PATCH] CAN : Separate interface register from whole of register structure.
 CAN register of Intel PCH EG20T has 2 sets of interface register.
 To reduce whole of code size, separate interface register.
 As a result, the number of function also can be reduced.

Signed-off-by: Tomoya MORINAGA <tomoya-linux-ECg8zkTtlr0C6LszWs/t0g@public.gmane.org>
---
 drivers/net/can/pch_can.c |  445 ++++++++++++++++++++-------------------------
 1 files changed, 201 insertions(+), 244 deletions(-)

.........

Since I have copied from the patch file directly, whitespace is inserted.
When next resubmitting, I will delete the whiletespace by hand.

---
Thanks,

Tomoya MORINAGA
OKI SEMICONDUCTOR CO., LTD.

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox