Patchwork [Open-FCoE] fcoe pull request for 3.9-rc

login
register
mail settings
Submitter Robert Love
Date June 25, 2013, 8:55 p.m.
Message ID <51CA03C1.1040901@intel.com>
Download mbox | patch
Permalink /patch/69/
State Accepted
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/rwlove/fcoe.git

Comments

Robert Love - June 25, 2013, 8:55 p.m.
The following changes since commit 1e876e3b1a9df25bb04682b0d48aaa7e8ae1fc82:

   Merge branch 'for-linus' of 
git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux (2013-06-25 
09:08:07 -1000)

are available in the git repository at:

   git://git.kernel.org/pub/scm/linux/kernel/git/rwlove/fcoe.git 
tags/critical_fix_for_3.9

for you to fetch changes up to 2884d4230867c8a46cf701214051e923301e7429:

   fcoe: Use correct API to set vlan tag for FCoE Ethertype skbs 
(2013-06-25 12:23:19 -0700)

----------------------------------------------------------------
This patch fixes a critical bug that was introduced in 3.9
related to VLAN tagging FCoE frames.

----------------------------------------------------------------
Robert Love (1):
       fcoe: Use correct API to set vlan tag for FCoE Ethertype skbs

  drivers/scsi/fcoe/fcoe.c |    7 +++++--
  1 file changed, 5 insertions(+), 2 deletions(-)
Robert Love - June 27, 2013, 3:39 p.m.
On Wed 26 Jun 2013 11:14:02 PM PDT, James Bottomley wrote:
> On Tue, 2013-06-25 at 20:55 +0000, Love, Robert W wrote:
>> The following changes since commit 1e876e3b1a9df25bb04682b0d48aaa7e8ae1fc82:
>>
>>     Merge branch 'for-linus' of
>> git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux (2013-06-25
>> 09:08:07 -1000)
>>
>> are available in the git repository at:
>>
>>     git://git.kernel.org/pub/scm/linux/kernel/git/rwlove/fcoe.git
>> tags/critical_fix_for_3.9
>
> This is simple and I can review from the attached patch, so I'll take it
> this time. But, please, next time follow proper process.  That means the
> individual patches should go over the SCSI mailing list for review
> *before* they're sent in a pull request.
>

The reason I sent this pull request directly to Linus was that the 
patches I mailed at (2013-05-21) RC2 had not yet seen any attention 
since they were posted to linux-scsi. It is now RC7 and with 5 weeks of 
inactivity on my initial 3.10 patch series I had no faith that this 
critical fix would make it through the SCSI tree before the 3.10 kernel 
was released. FYI, Linus has taken this change already.

I would have preferred to send the patch to linux-scsi for review 
first, but it had been thoroughly reviewed on the FCoE list, it's a 
fairly trivial change and I was a hurry to get it into Linus' inbox 
given his statement about "finding new ways to insult your pets." The 
patch is also part of the pull request, so it was review-able by anyone 
on linux-scsi or linux-kernel.

Thanks, //Rob

PS: I totally botched the title of this pull request, obviously it 
should say "fcoe pull request for 3.10-rc".

Patch

diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
index 292b24f..32ae6c6 100644
--- a/drivers/scsi/fcoe/fcoe.c
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -1656,9 +1656,12 @@  static int fcoe_xmit(struct fc_lport *lport, 
struct fc_frame *fp)

      if (fcoe->netdev->priv_flags & IFF_802_1Q_VLAN &&
          fcoe->realdev->features & NETIF_F_HW_VLAN_CTAG_TX) {
-        skb->vlan_tci = VLAN_TAG_PRESENT |
-                vlan_dev_vlan_id(fcoe->netdev);
+        /* must set skb->dev before calling vlan_put_tag */
          skb->dev = fcoe->realdev;
+        skb = __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
+                         vlan_dev_vlan_id(fcoe->netdev));
+        if (!skb)
+            return -ENOMEM;
      } else
          skb->dev = fcoe->netdev;