From patchwork Mon Jul 2 05:58:46 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: alex.bluesman.smirnov@gmail.com X-Patchwork-Id: 168498 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 7032F2C01E0 for ; Mon, 2 Jul 2012 16:03:00 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932216Ab2GBGCc (ORCPT ); Mon, 2 Jul 2012 02:02:32 -0400 Received: from mail-wg0-f44.google.com ([74.125.82.44]:42143 "EHLO mail-wg0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932066Ab2GBGCb (ORCPT ); Mon, 2 Jul 2012 02:02:31 -0400 Received: by wgbdr13 with SMTP id dr13so4886871wgb.1 for ; Sun, 01 Jul 2012 23:02:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer; bh=ooJfTFHIfo28k6xSZCAfnAT3dp/KPovjcuuJNCG1tZc=; b=A836bagIFeRA/fH70HftI5gd+eNs2ogdIfuh5gCtjWgbJ82tLhplSnaX/IlIqvfwSI 5vX8iA/K1K1xfQDws3FuUtXg8udKhQXGh2c4VUNNc56Y3qFeHKWsEbBgMvavpZunrd1j 4noEhgJWJXHND8lKn+9tJdgwNapfoHjktdGoTGw+sP6tGhdOCew0ruzsL7Rg0M0uWB+J rUUNu15iukX8Fdq/J7hSImsDADsjog6Rn0Aam1dXIFQ5kv770TTwO7M7PWAQMiqT0zYI yMAmUXeo5VXwNPQsGLyRF6rr7EYsGYzilPbm+QR5xc05kxkVXNCRXIHy2Jz7JxyTin2V re/g== Received: by 10.180.107.70 with SMTP id ha6mr14062110wib.10.1341208949922; Sun, 01 Jul 2012 23:02:29 -0700 (PDT) Received: from localhost.localdomain ([91.213.169.4]) by mx.google.com with ESMTPS id e9sm1340252wiw.10.2012.07.01.23.02.27 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 01 Jul 2012 23:02:29 -0700 (PDT) From: Alexander Smirnov To: davem@davemloft.net Cc: netdev@vger.kernel.org, danny.kukawka@bisect.de, dbaryshkov@gmail.com, Alexander Smirnov Subject: [PATCH net-next] 6lowpan: revert 'reuse eth_mac_addr()' Date: Mon, 2 Jul 2012 09:58:46 +0400 Message-Id: <1341208726-2793-1-git-send-email-alex.bluesman.smirnov@gmail.com> X-Mailer: git-send-email 1.7.2.3 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This reverts the commit cdf49c283e2e105da86ca575ad35b453f5ff24ea which replaces lowpan '.ndo_set_mac_address' method by ethernet's one. Accorind to the IEEE 802.15.4 standard, device has 8-byte length address, so this hook loses the last 2 bytes which may rise a compatibility problems with other IEEE 802.15.4 standard implementations. Signed-off-by: Alexander Smirnov --- net/ieee802154/6lowpan.c | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c index ad0c226..049d8cd 100644 --- a/net/ieee802154/6lowpan.c +++ b/net/ieee802154/6lowpan.c @@ -55,7 +55,6 @@ #include #include #include -#include #include #include #include @@ -936,6 +935,19 @@ drop: return -EINVAL; } +static int lowpan_set_address(struct net_device *dev, void *p) +{ + struct sockaddr *sa = p; + + if (netif_running(dev)) + return -EBUSY; + + /* TODO: validate addr */ + memcpy(dev->dev_addr, sa->sa_data, dev->addr_len); + + return 0; +} + static int lowpan_get_mac_header_length(struct sk_buff *skb) { /* @@ -1078,7 +1090,7 @@ static struct header_ops lowpan_header_ops = { static const struct net_device_ops lowpan_netdev_ops = { .ndo_start_xmit = lowpan_xmit, - .ndo_set_mac_address = eth_mac_addr, + .ndo_set_mac_address = lowpan_set_address, }; static struct ieee802154_mlme_ops lowpan_mlme = {