From patchwork Fri Aug 7 12:58:37 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 30925 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 B0452B7080 for ; Fri, 7 Aug 2009 22:59:39 +1000 (EST) Received: by ozlabs.org (Postfix) id A3D52DDD0B; Fri, 7 Aug 2009 22:59:39 +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 15770DDD01 for ; Fri, 7 Aug 2009 22:59:39 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757861AbZHGM7Y (ORCPT ); Fri, 7 Aug 2009 08:59:24 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755981AbZHGM7Y (ORCPT ); Fri, 7 Aug 2009 08:59:24 -0400 Received: from ey-out-2122.google.com ([74.125.78.27]:64689 "EHLO ey-out-2122.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757820AbZHGM7W (ORCPT ); Fri, 7 Aug 2009 08:59:22 -0400 Received: by ey-out-2122.google.com with SMTP id 9so514095eyd.37 for ; Fri, 07 Aug 2009 05:59:22 -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=pMqUMZare513giIFlvfyYEa4r1g2Qnp2MNSv1locj+9uxiR4q8x2F4n5GGUm3IlFg9 210EmECMm2NyCcns1gkq14CbLgKPospskSnHxQOmkanZvpASocxe22d7zonrpoQU16Hl 8Jma2p6EW+VTXqChtbGp4XWJ527rArVMFdHHU= 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=FIZFse7Uzp5oZoX9jrG6KCn0vqn8OGsTH7+zVhRh706sFxyeQB+jvz9mJNfPKe0BXp MHEqQ+dePTkDSpWoqoNaM/mmwJrl+mrZfaRS14WX/VVdqzkvic3pGp/BCAkwLQwm7iL3 E73wPxm3VXC8VZegcdGfOe90EMbogFhJAfhTA= Received: by 10.210.137.18 with SMTP id k18mr1370198ebd.43.1249649962084; Fri, 07 Aug 2009 05:59:22 -0700 (PDT) Received: from localhost.localdomain (iap-pxy-mow1.siemens.ru [212.248.25.26]) by mx.google.com with ESMTPS id 7sm2797082eyg.45.2009.08.07.05.59.20 (version=SSLv3 cipher=RC4-MD5); Fri, 07 Aug 2009 05:59:21 -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 02/10] af_ieee802154: fix ioctl processing Date: Fri, 7 Aug 2009 16:58:37 +0400 Message-Id: <1249649925-11996-3-git-send-email-dbaryshkov@gmail.com> X-Mailer: git-send-email 1.6.3.3 In-Reply-To: <1249649925-11996-2-git-send-email-dbaryshkov@gmail.com> References: <1249649925-11996-1-git-send-email-dbaryshkov@gmail.com> <1249649925-11996-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)))