From patchwork Mon Aug 3 23:11:38 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 30688 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 A6ED0B6F31 for ; Tue, 4 Aug 2009 09:12:23 +1000 (EST) Received: by ozlabs.org (Postfix) id 9036ADDDA2; Tue, 4 Aug 2009 09:12:23 +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 178E9DDDA0 for ; Tue, 4 Aug 2009 09:12:23 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754002AbZHCXMI (ORCPT ); Mon, 3 Aug 2009 19:12:08 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753799AbZHCXMH (ORCPT ); Mon, 3 Aug 2009 19:12:07 -0400 Received: from mail-fx0-f217.google.com ([209.85.220.217]:58098 "EHLO mail-fx0-f217.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753745AbZHCXMG (ORCPT ); Mon, 3 Aug 2009 19:12:06 -0400 Received: by fxm17 with SMTP id 17so2946973fxm.37 for ; Mon, 03 Aug 2009 16:12:06 -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=eF+CVZpe8x7fQcXlFe63lq7BeJqm9XI0Zhbvh4SQocjb4rVX0tXmglkRTM1NO+hBB6 4U3+oDbV6QWwr4lia6MNvZYE+es3nzw+RlZTMiCdsda+2E10uqHVTqgnPnQ33F6HIKFj 1vD6aZ7Wpjf2KyJQKS8pttkx5vRR8q/Sk4hz8= 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=wTADkwOSgU7C0dDEvalnKhsx28h7dO2CM5TE3mXJOtv+XR2FFL3ADwlm9PCp64lIDh GzN9EDYZ7B4dazx7ZdbGZgOTvE5p8930FUyw6QssbCUGUH9ACaUXrcMnskYg1wqGug1C tFE+Ao28jdK+p1vfC6xw7BRz1SBuRe4o3uJBw= Received: by 10.204.113.208 with SMTP id b16mr5109681bkq.179.1249341126171; Mon, 03 Aug 2009 16:12:06 -0700 (PDT) Received: from localhost.localdomain (ppp89-110-28-241.pppoe.avangarddsl.ru [89.110.28.241]) by mx.google.com with ESMTPS id y15sm6152574fkd.47.2009.08.03.16.12.04 (version=SSLv3 cipher=RC4-MD5); Mon, 03 Aug 2009 16:12:05 -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 2/5] af_ieee802154: fix ioctl processing Date: Tue, 4 Aug 2009 03:11:38 +0400 Message-Id: <1249341101-11593-1-git-send-email-dbaryshkov@gmail.com> X-Mailer: git-send-email 1.6.3.3 In-Reply-To: <1249339902-10613-2-git-send-email-dbaryshkov@gmail.com> References: <1249339902-10613-2-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)))