From patchwork Sat Apr 19 12:42:59 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Hartmann X-Patchwork-Id: 4019961 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 18C5D9F319 for ; Sat, 19 Apr 2014 12:57:45 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1F9BD2021B for ; Sat, 19 Apr 2014 12:57:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C7BBC201DE for ; Sat, 19 Apr 2014 12:57:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751405AbaDSM5E (ORCPT ); Sat, 19 Apr 2014 08:57:04 -0400 Received: from mout3.freenet.de ([195.4.92.93]:33345 "EHLO mout3.freenet.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751191AbaDSM5D (ORCPT ); Sat, 19 Apr 2014 08:57:03 -0400 X-Greylist: delayed 685 seconds by postgrey-1.27 at vger.kernel.org; Sat, 19 Apr 2014 08:57:03 EDT Received: from [195.4.92.142] (helo=mjail2.freenet.de) by mout3.freenet.de with esmtpa (ID andihartmann@freenet.de) (port 25) (Exim 4.80.1 #4) id 1WbUeG-00010P-0v; Sat, 19 Apr 2014 14:45:36 +0200 Received: from localhost ([::1]:54409 helo=mjail2.freenet.de) by mjail2.freenet.de with esmtpa (ID andihartmann@freenet.de) (Exim 4.80.1 #4) id 1WbUeF-0002GP-T0; Sat, 19 Apr 2014 14:45:35 +0200 Received: from mx1.freenet.de ([195.4.92.11]:49402) by mjail2.freenet.de with esmtpa (ID andihartmann@freenet.de) (Exim 4.80.1 #4) id 1WbUbn-0008SP-6j; Sat, 19 Apr 2014 14:43:03 +0200 Received: from p4fde041d.dip0.t-ipconnect.de ([79.222.4.29]:48279 helo=mail.maya.org) by mx1.freenet.de with esmtpsa (ID andihartmann@freenet.de) (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) (port 587) (Exim 4.80.1 #4) id 1WbUbm-0003Bs-SD; Sat, 19 Apr 2014 14:43:03 +0200 Received: from [192.168.1.6] (dualc.maya.org [192.168.1.6]) by mail.maya.org (8.14.7/8.13.8) with ESMTP id s3JCfuqq003052; Sat, 19 Apr 2014 14:41:56 +0200 Message-ID: <53526F53.3090009@maya.org> Date: Sat, 19 Apr 2014 14:42:59 +0200 From: Andreas Hartmann User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0 SeaMonkey/2.24 MIME-Version: 1.0 To: Michael Hirsch , linux-wireless@vger.kernel.org Subject: Re: Connection drop while running iperf on ARM based platform References: <534CFC45.90101@teufel.de> In-Reply-To: <534CFC45.90101@teufel.de> X-Enigmail-Version: 1.6 X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_TVD_MIME_EPI,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Originated-At: 79.222.4.29!48279 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Michael Hirsch wrote: > Hi all, > > I have an issue using a with RT5572 chipset (TP-Link N600) on a Armada > based embedded system. The actual rt2800usb module unfortunately is broken (and nobody seems to be working on them any more.) They are considered to be ready :-) [1]. Xose Vazquez Perez wrote in [1]: "because the goal already was reached". Well, if the goal was to kick out the far better working vendor drivers - it is really reached. But it was obviously never the goal to achieve the same (or even better) quality. Besides that, rt2800usb isn't considered for chips other than rt2x00 [2]. Therefore: Don't use it. Try rt5572sta (DPO_RT5572_LinuxSTA_2.6.1.3_20121022) from mediatek.com. You may add these patches: For 64bit (most probably not needed for arm): http://thread.gmane.org/gmane.linux.network/313147 for EAP-TLS: http://thread.gmane.org/gmane.linux.drivers.rt2x00.user/1249/focus=1474 Apply it with patch -R -p1 --dry-run <1474-001.bin If your kernel uses CONFIG_UIDGID_STRICT_TYPE_CHECKS: http://article.gmane.org/gmane.linux.drivers.rt2x00.user/2450 (With kernel 3.14, you have to modify the patch, because 3.14 removed CONFIG_UIDGID_STRICT_TYPE_CHECKS). Maybe you have to add the usb device id to DPO_RT5572_LinuxSTA_2.6.1.3_20121022/common/rtusb_dev_id.c > Running the same wifi module on a x86 Laptop with 3.14 kernel works better. Anyway, most probably not good at all. That's at least my finding for rt3572 and rt3573, which both work _much_ better and completely stable with high throughput even w/ bad radio conditions as sta with the vendor driver. > There is also drops to 0 at running iperf, but it seems to be able to > recover. Also on a x86 laptops is see the TX Status timeout messages (if > it's enabled in the kernel config). I followed the discussion a bit > about those messages and can't say whether these messages have anything > todo with shown issue (no packets received) > > Any suggestion where I could start searching? For me it looks like a > rate-control issue, but that's speculation. Additionally, USB handling compared to vendor driver is suboptimal. rt2800usb needs far to much system resources to "work". Regards, Andreas [1] http://news.gmane.org/find-root.php?group=gmane.linux.drivers.rt2x00.user&article=2441 [2] http://permalink.gmane.org/gmane.linux.drivers.rt2x00.user/2468 --- os/linux/rt_linux.c.orig 2012-10-22 05:52:59.000000000 +0200 +++ os/linux/rt_linux.c 2013-12-28 19:13:28.677118438 +0100 @@ -34,6 +34,10 @@ #include "rt_os_util.h" #include +#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS +#include +#endif + #if defined(CONFIG_RA_HW_NAT) || defined(CONFIG_RA_HW_NAT_MODULE) #include "../../../../../../net/nat/hw_nat/ra_nat.h" #include "../../../../../../net/nat/hw_nat/frame_engine.h" @@ -1138,9 +1142,15 @@ pOSFSInfo->fsgid = current->fsgid; current->fsuid = current->fsgid = 0; #else +#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS + struct user_namespace *to = current_user_ns(); + pOSFSInfo->fsuid = from_kuid_munged(to, current_fsuid()); + pOSFSInfo->fsgid = from_kgid_munged(to, current_fsgid()); +#else pOSFSInfo->fsuid = current_fsuid(); pOSFSInfo->fsgid = current_fsgid(); #endif +#endif pOSFSInfo->fs = get_fs(); set_fs(KERNEL_DS); } else {