From patchwork Thu Aug 6 12:26:25 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 30841 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 64829B7088 for ; Thu, 6 Aug 2009 22:27:26 +1000 (EST) Received: by ozlabs.org (Postfix) id 55467DDD0C; Thu, 6 Aug 2009 22:27:26 +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 9DB79DDD04 for ; Thu, 6 Aug 2009 22:27:24 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755358AbZHFM1K (ORCPT ); Thu, 6 Aug 2009 08:27:10 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755172AbZHFM1I (ORCPT ); Thu, 6 Aug 2009 08:27:08 -0400 Received: from mail-ew0-f214.google.com ([209.85.219.214]:40389 "EHLO mail-ew0-f214.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753342AbZHFM1E (ORCPT ); Thu, 6 Aug 2009 08:27:04 -0400 Received: by ewy10 with SMTP id 10so728460ewy.37 for ; Thu, 06 Aug 2009 05:27:02 -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=qm4l+J8TxOs5NVQfJYbKEM2rQSbgNZPP3cbituuH26c=; b=lYVOkl07TTw5bov1mATvGNi3+obbH3xD9BYZJf2uFEDZZpux5nCuanDUPVSvntQJXc Jr3IE84AQeGCa6vnUnIMghuZw/r2bYB8yyV0NZG9fGLLT0Y7o1A+N5YCc51m/8Xhs01c 1WNvyTFmk4Pc+h1cCXSiL/WrsGiMX6DIn+6I8= 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=SjDpyPsqdkdhs9B7zCVw8XP5cdIproOz4OZ6Rlw5/Ud3zLFF1LG/Op3Venl0O971b2 38sEmY4rmmj4vyUXHBDcZLmRcRtWQbKxb95eQGcsXPdDFRWc7oK4CtXc3n1Y+bqi0aqQ kUTBf6JfWQBHUIx/grRh1Ysje+OCb4WP8PNAQ= Received: by 10.210.89.7 with SMTP id m7mr11812369ebb.92.1249561622928; Thu, 06 Aug 2009 05:27:02 -0700 (PDT) Received: from localhost.localdomain (iap-pxy-mow1.siemens.ru [212.248.25.26]) by mx.google.com with ESMTPS id 10sm144476eyz.31.2009.08.06.05.27.00 (version=SSLv3 cipher=RC4-MD5); Thu, 06 Aug 2009 05:27:01 -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/2] af_ieee802154: fix ioctl processing Date: Thu, 6 Aug 2009 16:26:25 +0400 Message-Id: <1249561586-26927-2-git-send-email-dbaryshkov@gmail.com> X-Mailer: git-send-email 1.6.3.3 In-Reply-To: <1249561586-26927-1-git-send-email-dbaryshkov@gmail.com> References: <1249561586-26927-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 3bb6bdb..af66180 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)))