From patchwork Wed Aug 5 07:28:15 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 30777 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id B39DEB6F20 for ; Wed, 5 Aug 2009 17:29:03 +1000 (EST) Received: by ozlabs.org (Postfix) id A8EB4DDD0C; Wed, 5 Aug 2009 17:29:03 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 28E5ADDD0B for ; Wed, 5 Aug 2009 17:29:03 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933703AbZHEH2x (ORCPT ); Wed, 5 Aug 2009 03:28:53 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S933685AbZHEH2w (ORCPT ); Wed, 5 Aug 2009 03:28:52 -0400 Received: from mail-fx0-f217.google.com ([209.85.220.217]:42303 "EHLO mail-fx0-f217.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933597AbZHEH2u (ORCPT ); Wed, 5 Aug 2009 03:28:50 -0400 Received: by fxm17 with SMTP id 17so3713984fxm.37 for ; Wed, 05 Aug 2009 00:28:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references; bh=NCiLLPbyOTSQ6J1/YgtVNIc7r3OvLDGzxajJqc8G1bY=; b=Cn/hij+RhqQGiUsrQfEkxYheyOaPBDqIGlDHSGO5OaCVpEaWNPeriKKtiuyqjojHoJ IXOufsiP+x2I7c2Kxrvuz4MftQeDg84KOCHdZTa9D4dSKS3dKj/PcnWCRj+/BAjgARnx +hc6GOONtVkiAY6bm+bI4Pj86Z2Q+qiKo32n4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; b=xFCcqcVtRvCrCjNTDPGkYrPmQrm6Jtz7HoQhJvcSjyJXZ+1Y3Di2Qm01ezTAJ/8xtx f9CpCg99qcikFy8Z2oKnnxs/yU6qbYBqw4xQuuZOUnlaWL8RyDnby2m/CZF3BvPvP2++ K88osJV/7O5nUhXCLoSZjvdgWVXhEYgB4Ph0o= Received: by 10.86.30.9 with SMTP id d9mr1698587fgd.28.1249457329978; Wed, 05 Aug 2009 00:28:49 -0700 (PDT) Received: from localhost.localdomain (ppp91-122-1-214.pppoe.avangarddsl.ru [91.122.1.214]) by mx.google.com with ESMTPS id e11sm7292805fga.11.2009.08.05.00.28.48 (version=SSLv3 cipher=RC4-MD5); Wed, 05 Aug 2009 00:28:49 -0700 (PDT) From: Dmitry Eremin-Solenikov To: netdev@vger.kernel.org Cc: "David S. Miller" , Sergey Lapin , linux-zigbee-devel@lists.sourceforge.net Subject: [PATCH 1/3] af_ieee802154: fix ioctl processing Date: Wed, 5 Aug 2009 11:28:15 +0400 Message-Id: <1249457297-8355-2-git-send-email-dbaryshkov@gmail.com> X-Mailer: git-send-email 1.6.3.3 In-Reply-To: <1249457297-8355-1-git-send-email-dbaryshkov@gmail.com> References: <1249457297-8355-1-git-send-email-dbaryshkov@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org fix two errors in ioctl processing: 1) if the ioctl isn't supported one should return -ENOIOCTLCMD 2) don't call ndo_do_ioctl if the device doesn't provide it Signed-off-by: Dmitry Eremin-Solenikov --- net/ieee802154/af_ieee802154.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/net/ieee802154/af_ieee802154.c b/net/ieee802154/af_ieee802154.c index 69c8d92..d504c34 100644 --- a/net/ieee802154/af_ieee802154.c +++ b/net/ieee802154/af_ieee802154.c @@ -136,7 +136,7 @@ static int ieee802154_dev_ioctl(struct sock *sk, struct ifreq __user *arg, unsigned int cmd) { struct ifreq ifr; - int ret = -EINVAL; + int ret = -ENOIOCTLCMD; struct net_device *dev; if (copy_from_user(&ifr, arg, sizeof(struct ifreq))) @@ -146,8 +146,10 @@ static int ieee802154_dev_ioctl(struct sock *sk, struct ifreq __user *arg, dev_load(sock_net(sk), ifr.ifr_name); dev = dev_get_by_name(sock_net(sk), ifr.ifr_name); - if (dev->type == ARPHRD_IEEE802154 || - dev->type == ARPHRD_IEEE802154_PHY) + + if ((dev->type == ARPHRD_IEEE802154 || + dev->type == ARPHRD_IEEE802154_PHY) && + dev->netdev_ops->ndo_do_ioctl) ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, cmd); if (!ret && copy_to_user(arg, &ifr, sizeof(struct ifreq)))