Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp776064pxk; Wed, 9 Sep 2020 20:08:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxqZ2OOS5DRT/BYV3LMKuNDj6+H9kcad2CeifwjCg+4XgSbM8iJE9i+CC/Fvt0TpqNgLH8x X-Received: by 2002:a17:906:364b:: with SMTP id r11mr6541569ejb.48.1599707282198; Wed, 09 Sep 2020 20:08:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599707282; cv=none; d=google.com; s=arc-20160816; b=LjBkSI4s6uifKRLxK/UgczTgy84V26G25wn5sUdFLSLzpXIShFDN9V554IBDZnahc4 lCILvimW1loIUW8e3C6TXrGJfOso6JHJZekc1YwX6kgjSJIMJiGZ2YT7kKH1+dqd6YAL DOcRfbpeQB50H7bzfCO+8BD14dMLzQBqEAWHpEuUuNKZkWwmBZw0hdPHU0f9XEgG2DL1 FTKA7LVGQIXgHnvAOz+a0NQZxpinc/qVKSkNs1RMqa/zYXW3mJpnfwLiGaScC9hdpksA mXIXK7QkY2Fc1VnClet2zoWTUDfwOdpJ/Lr0GnEGb4U0fXwyrqarJ5ZJLtlsFlYu75W+ Nnpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id; bh=fMVErpryxTZlo/rsRRQ7jS2Nvx8hrCcpEPrfxeRDJog=; b=xucTHXcfnSoAjHrikISidHF3IGJnmdhpCxLfifoG3D7HtsZZwqFlXOHJkAsdUKOd5E ea8XGC4o1Be1X4nB4d7jUSu4R8LZS6KNm+7Zsr8wMznvwqLrRQE4BzSBURb9LyDwSOaa VCc6BHdloM1o+JOFp00v+2kOY2sotIEisz3kvbUJoM/SW2Dwvb5wf0v7k0NrrpCnN86e MIg2Fd5+/ToYfZCK5ur08h2lub1KZ3pcw8oFUhQK0nPsvGIEYfeU3biSdqsmLZu9QA7l uJyPyTnppNejqTOSQkl7EcO2hzyP2UI+Ric4jPyc0O3+yByhOYvSCMPfikmo1h0YdD/t lj8g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y5si2730888ejr.754.2020.09.09.20.07.39; Wed, 09 Sep 2020 20:08:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728970AbgIJDDk (ORCPT + 99 others); Wed, 9 Sep 2020 23:03:40 -0400 Received: from mx2.suse.de ([195.135.220.15]:43210 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726440AbgIJDCi (ORCPT ); Wed, 9 Sep 2020 23:02:38 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id B4FCEB277; Thu, 10 Sep 2020 03:02:52 +0000 (UTC) Message-ID: <1599706954.10822.3.camel@suse.de> Subject: Re: [PATCH v2] usb: serial: Repair FTDI FT232R bricked eeprom From: Oliver Neukum To: James Hilliard , linux-usb@vger.kernel.org Cc: Johan Hovold , Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Russ Dill , Hector Martin Date: Thu, 10 Sep 2020 05:02:34 +0200 In-Reply-To: <20200909193419.2006744-1-james.hilliard1@gmail.com> References: <20200909193419.2006744-1-james.hilliard1@gmail.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.26.6 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am Mittwoch, den 09.09.2020, 13:34 -0600 schrieb James Hilliard: > This patch detects and reverses the effects of the malicious FTDI > Windows driver version 2.12.00(FTDIgate). Hi, this raises questions. Should we do this unconditionally without asking? Does this belong into kernel space? > +static int ftdi_repair_brick(struct usb_serial_port *port) > +{ > + struct ftdi_private *priv = usb_get_serial_port_data(port); > + int orig_latency; > + int rv; > + u16 *eeprom_data; > + u16 checksum; > + int eeprom_size; > + int result; > + > + switch (priv->chip_type) { > + case FT232RL: > + eeprom_size = 0x40; > + break; > + default: > + /* Unsupported for brick repair */ > + return 0; > + } > + > + /* Latency timer needs to be 0x77 to unlock EEPROM programming */ > + if (priv->latency != 0x77) { > + orig_latency = priv->latency; > + priv->latency = 0x77; > + rv = write_latency_timer(port); > + priv->latency = orig_latency; > + if (rv < 0) > + return -EIO; > + } Do you really want to change this without returning to the original? Regards Oliver