From patchwork Mon Mar 6 15:58:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64821 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922615wrd; Mon, 6 Mar 2023 08:03:23 -0800 (PST) X-Google-Smtp-Source: AK7set9cY3T/VNUI4pUnckrrOt8WWFvPN6uL+WHgzkCSeQFxSwof1/FLMra6on9BkRby9qFG7mqO X-Received: by 2002:a17:902:f7c7:b0:19c:da68:337b with SMTP id h7-20020a170902f7c700b0019cda68337bmr9546217plw.16.1678118603087; Mon, 06 Mar 2023 08:03:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118603; cv=none; d=google.com; s=arc-20160816; b=ho2EuEr7PyJkWMii9/c2WZuNShZzaLHdtsATD4gXQlRAJhTJ48NoY+MUcHgMGUgnfC tde/CVU3aJbVPKDliVdhs7GpEGSzB9vQJ1eoJtV24CtcxC82D964r6aeAwDn+eYrN0Wp rCj+48wXPt9yEJxr+70wdu+zLfSED6POo/Tb0s5IijmCOW8kruTOFnWy16DILmbUUZVS azqMmabyiCdYCsqd+C36MJVgHMuCnNcVx4iFC8/iqtMm62nRPlhQu8L8T3OuYiKz50Pe xSILo8aGitWOHZVg8I1Ei31bHDR//xdRyZaMJiiyH3N3Em3X9tUKD6RIg8IEE9TJRkSP Q1xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=RzHUCgyDVd1/vFJIVF/yHXdWWow6tO5+rSrZEBgBa/c=; b=oGkrdfIRFu13Y07TrVfDEyFSi6/EF0INNRA6d546q8A6It9ev8WzguEHsa7Cu0KV6Y Di5LobGVBrH8z5a7L2kk0KjgME0UwLvXyrPBD1fTJ8rZUk1i7COvoiuUBA2ZcGS9lbs8 x4KN/SpRJKxLtSZEYfDPmF/28Bdmc2dUwj6bBGV/7pdEJpakDn5SpxQzFoN//3koZoAr ZKH862dEH2wjL0b3Pfaj86ks1Tls+QlkOziwsf1DfFNQfM19NRx8Np3sUhRDTjR3e+po zxyJf62d2VZxtRu1XA5FGDek3jW4R+QHBQgxtcL16no73MM7NFqHjIhLeSirBYXGwG29 tMCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=VyetxvZ3; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=GVWq0zHJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kj5-20020a17090306c500b001968c61066esi8875792plb.493.2023.03.06.08.03.03; Mon, 06 Mar 2023 08:03:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=VyetxvZ3; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=GVWq0zHJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230434AbjCFQAo (ORCPT + 99 others); Mon, 6 Mar 2023 11:00:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41164 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230215AbjCFQA1 (ORCPT ); Mon, 6 Mar 2023 11:00:27 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4661F25E09; Mon, 6 Mar 2023 08:00:26 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id D8AA72236F; Mon, 6 Mar 2023 16:00:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118424; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RzHUCgyDVd1/vFJIVF/yHXdWWow6tO5+rSrZEBgBa/c=; b=VyetxvZ3ORexkxsuy9ptjw4e5iKIRS6AtzM3owyFLAQtiKrEKVQ9OG/cR6tK3PRgu1sNRe 2i3fZa2NJQBfLehZT3TKF3vcS32wpe219jE6y7l2fYNtJL+CviITlg2rD8ml+KodbdSuUd J1rNF4avXuY8yMuQ5WLGlmqgrbGFNjg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118424; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RzHUCgyDVd1/vFJIVF/yHXdWWow6tO5+rSrZEBgBa/c=; b=GVWq0zHJQbDPUNtYod/JQRKJmUcCoDbJRr7rn6i6IULWpMZKZlGML5Vr/quQhC851qTigA zZ/vYCslR9zsLOCQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8332F13A6A; Mon, 6 Mar 2023 16:00:24 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id EA9EHxgOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:24 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 01/99] lib: Add option iterator Date: Mon, 6 Mar 2023 16:58:38 +0100 Message-Id: <20230306160016.4459-2-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634892442311230?= X-GMAIL-MSGID: =?utf-8?q?1759634892442311230?= Add struct option_iter and helpers that walk over individual options of an option string. Add documentation. Kernel parameters often have the format of param=opt1,opt2:val,opt3 where the option string contains a number of comma-separated options. Drivers usually use strsep() in a loop to extract individual options from the string. Each call to strsep() modifies the given string, so callers have to duplicate kernel parameters that are to be parsed multiple times. The new struct option_iter and its helpers wrap this code behind a clean interface. Drivers can iterate over the options without having to know the details of the option-string format. The iterator handles string memory internally without modifying the original options. Signed-off-by: Thomas Zimmermann --- Documentation/core-api/kernel-api.rst | 9 +++ include/linux/cmdline.h | 29 ++++++++ lib/Makefile | 2 +- lib/cmdline_iter.c | 97 +++++++++++++++++++++++++++ 4 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 include/linux/cmdline.h create mode 100644 lib/cmdline_iter.c diff --git a/Documentation/core-api/kernel-api.rst b/Documentation/core-api/kernel-api.rst index 62f961610773..cdc7ba8decf9 100644 --- a/Documentation/core-api/kernel-api.rst +++ b/Documentation/core-api/kernel-api.rst @@ -93,9 +93,18 @@ Bitmap Operations Command-line Parsing -------------------- +.. kernel-doc:: lib/cmdline_iter.c + :doc: overview + .. kernel-doc:: lib/cmdline.c :export: +.. kernel-doc:: lib/cmdline_iter.c + :export: + +.. kernel-doc:: include/linux/cmdline.h + :internal: + Sorting ------- diff --git a/include/linux/cmdline.h b/include/linux/cmdline.h new file mode 100644 index 000000000000..5d7e648e98a5 --- /dev/null +++ b/include/linux/cmdline.h @@ -0,0 +1,29 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef LINUX_CMDLINE_H +#define LINUX_CMDLINE_H + +/** + * struct option_iter - Iterates over string of kernel or module options + */ +struct option_iter { + char *optbuf; + char *next_opt; +}; + +void option_iter_init(struct option_iter *iter, const char *options); +void option_iter_release(struct option_iter *iter); +const char *option_iter_incr(struct option_iter *iter); + +/** + * option_iter_next - Loop condition to move over options + * @iter_: the iterator + * @opt_: the name of the option variable + * + * Iterates over option strings as part of a while loop and + * stores the current option in opt_. + */ +#define option_iter_next(iter_, opt_) \ + (((opt_) = option_iter_incr(iter_)) != NULL) + +#endif diff --git a/lib/Makefile b/lib/Makefile index 4d9461bfea42..829ea6647d7a 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -27,7 +27,7 @@ KASAN_SANITIZE_string.o := n CFLAGS_string.o += -fno-stack-protector endif -lib-y := ctype.o string.o vsprintf.o cmdline.o \ +lib-y := ctype.o string.o vsprintf.o cmdline.o cmdline_iter.o \ rbtree.o radix-tree.o timerqueue.o xarray.o \ maple_tree.o idr.o extable.o irq_regs.o argv_split.o \ flex_proportions.o ratelimit.o show_mem.o \ diff --git a/lib/cmdline_iter.c b/lib/cmdline_iter.c new file mode 100644 index 000000000000..d9371dfea08b --- /dev/null +++ b/lib/cmdline_iter.c @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#include +#include +#include + +/** + * DOC: overview + * + * A kernel parameter's option string can contain multiple comma-separated + * options. Modules can parse an option string with struct &option_iter and + * its helpers. After obtaining the string, initialize and instance of the + * option iterator and loop iver its content as show below. + * + * .. code-block:: c + * + * const char *options = ...; // provided option string + * + * struct option_iter iter; + * const char *opt; + * + * option_iter_init(&iter, options); + * + * while (option_iter_next(&iter, &opt)) { + * if (!strcmp(opt, "foo")) + * ... + * else (strcmp(opt, "bar")) + * ... + * else + * pr_warn("unknown option %s\n", opt); + * } + * + * option_iter_release(&iter); + * + * The call to option_iter_init() initializes the iterator instance + * from the option string. The while loop walks over the individual + * options in the sting and returns each in the second argument. The + * returned memory is owned by the iterator instance and callers may + * not modify or free it. The call to option_iter_release() frees all + * resources of the iterator. This process does not modify the original + * option string. If the option string contains an empty option (i.e., + * two commas next to each other), option_iter_next() skips the empty + * option automatically. + */ + +/** + * option_iter_init - Initializes an option iterator + * @iter: the iterator to initialize + * @options: the options string + */ +void option_iter_init(struct option_iter *iter, const char *options) +{ + if (options && *options) + iter->optbuf = kstrdup(options, GFP_KERNEL); // can be NULL + else + iter->optbuf = NULL; + iter->next_opt = iter->optbuf; +} +EXPORT_SYMBOL(option_iter_init); + +/** + * option_iter_release - Releases an option iterator's resources + * @iter: the iterator + */ +void option_iter_release(struct option_iter *iter) +{ + kfree(iter->optbuf); + iter->next_opt = NULL; +} +EXPORT_SYMBOL(option_iter_release); + +/** + * option_iter_incr - Return current option and advance to the next + * @iter: the iterator + * + * Returns: + * The current option string, or NULL if there are no more options. + */ +const char *option_iter_incr(struct option_iter *iter) +{ + char *opt; + + if (!iter->next_opt) { // can be OK if kstrdup failed + if (iter->optbuf) // iter has already been released; logic error + pr_err("Incrementing option iterator without string\n"); + return NULL; + } + + do { + opt = strsep(&iter->next_opt, ","); + if (!opt) + return NULL; + } while (!*opt); // found empty option string, try next + + return opt; +} +EXPORT_SYMBOL(option_iter_incr); From patchwork Mon Mar 6 15:58:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64813 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922372wrd; Mon, 6 Mar 2023 08:03:05 -0800 (PST) X-Google-Smtp-Source: AK7set8OA01uZsTTtzQEqecnqOzBHJol5fPEXo2A5uZMTC1Ye0Z+STGIKEb0DxrvnOOcEKQBVmIP X-Received: by 2002:a05:6a20:431b:b0:cc:c557:9ce with SMTP id h27-20020a056a20431b00b000ccc55709cemr11639232pzk.61.1678118584791; Mon, 06 Mar 2023 08:03:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118584; cv=none; d=google.com; s=arc-20160816; b=F8JPpLGGcMWDPsH0XeGDRvirzVWNf+S+rQsNRt6fcB/IxPa+HReB3UDxwUKEUY0tnr 0EAegs1fRWcL7joykpj7DIBMDPfDgtgG1wC4lRNSe1g1MjTvnBKORNN3SCxeRusYviDZ sG+kP58xWGbv37IVVtFWHxWUl53ngFFXI7itsPLkO1AyVDEDoKx0E6Rz3XpeiRjmj/pG ZZK+Z3GCfpE6zd4u8FcYO0OooesxDCZ6rC8aZDwn1m+FgKrJZbOIzCO7rHwFkb39P7zq ErPZ2ILE8qp9ArUxc4j9H7LX1qFabuuS8WgNB2VmVnG5rRw5OEj6F9LBkBtdqr8QkqoB 8ttw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=b6D8FQBTb2yaZRkjP/3Zmj8yOkLU5mYNE2Q1swliLUA=; b=KrlvRalmgzptDhuEQK6vrfi2kkOOvvCdnSlLhiKysG7qsaC8KHCmaXHPfjcWjY8Egz eo1uEdLfF9qc2QKbxpThFR6M8+MTmhmgSS5yJGYG54QXNQQKAEj5V/pTqzC2jrqLOSNK OJnq87ViPO9wbNMYwCviGNmCSe3CwCfoqPYHqcMhLyxnoHOOE7U8hHChmUaCR0kTJcVw E8C3ErFvfPhmbcgxAyftyjxzHEcv/XczvCqrd+ke4N7l3UaH2HbiwBCy/o8EUJWwL+uW ELL1RNFG415VnHjDWEg+DH9MxnPHzk2fXIz7x+MffPT0ayYCFrSR5+IV6Ck7bo2Q9ELq d8gQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=q8ROvjUc; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x5-20020a654145000000b00502ece99eb3si9103558pgp.41.2023.03.06.08.02.50; Mon, 06 Mar 2023 08:03:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=q8ROvjUc; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231128AbjCFQAq (ORCPT + 99 others); Mon, 6 Mar 2023 11:00:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41182 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230227AbjCFQA2 (ORCPT ); Mon, 6 Mar 2023 11:00:28 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B241C2E0D3; Mon, 6 Mar 2023 08:00:26 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 38BFA22373; Mon, 6 Mar 2023 16:00:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118425; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=b6D8FQBTb2yaZRkjP/3Zmj8yOkLU5mYNE2Q1swliLUA=; b=q8ROvjUcrSXURP4NQC4Zg3u4Gw4+An+KGI1Kz4tT1+pf8x6qL8wrC00mYNJwkdWcszbg5g tX72pAJlWDzpAc3ZuKEDcoSMaLFrSB4WMxkUhjCTS+K/hDHXwL/pU/Y0dOgZhUUlsZLJPi COMOQEwJ1WdVegCTBs0GtRQXm5JvkPg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118425; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=b6D8FQBTb2yaZRkjP/3Zmj8yOkLU5mYNE2Q1swliLUA=; b=qnWYoxjTuASWAY95x+RCGYYuVtszvqtS7n4BHovqz0pZaA2P3xj7tUmgp0+ovDNZcGaSto nst+SnyK6AarT9AA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id DC4DB13513; Mon, 6 Mar 2023 16:00:24 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id UBMDNRgOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:24 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 02/99] fbdev/68328fb: Remove trailing whitespaces Date: Mon, 6 Mar 2023 16:58:39 +0100 Message-Id: <20230306160016.4459-3-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634873027259651?= X-GMAIL-MSGID: =?utf-8?q?1759634873027259651?= Fix coding style. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/68328fb.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/68328fb.c b/drivers/video/fbdev/68328fb.c index 7db03ed77c76..7fe56ecbe4e6 100644 --- a/drivers/video/fbdev/68328fb.c +++ b/drivers/video/fbdev/68328fb.c @@ -123,7 +123,7 @@ static u_long get_line_length(int xres_virtual, int bpp) * First part, xxxfb_check_var, must not write anything * to hardware, it should only verify and adjust var. * This means it doesn't alter par but it does use hardware - * data from it to check this var. + * data from it to check this var. */ static int mc68x328fb_check_var(struct fb_var_screeninfo *var, @@ -181,7 +181,7 @@ static int mc68x328fb_check_var(struct fb_var_screeninfo *var, /* * Now that we checked it we alter var. The reason being is that the video - * mode passed in might not work but slight changes to it might make it + * mode passed in might not work but slight changes to it might make it * work. This way we let the user know what is acceptable. */ switch (var->bits_per_pixel) { @@ -256,8 +256,8 @@ static int mc68x328fb_check_var(struct fb_var_screeninfo *var, } /* This routine actually sets the video mode. It's in here where we - * the hardware state info->par and fix which can be affected by the - * change in par. For this driver it doesn't do much. + * the hardware state info->par and fix which can be affected by the + * change in par. For this driver it doesn't do much. */ static int mc68x328fb_set_par(struct fb_info *info) { @@ -294,7 +294,7 @@ static int mc68x328fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, * {hardwarespecific} contains width of RAMDAC * cmap[X] is programmed to (X << red.offset) | (X << green.offset) | (X << blue.offset) * RAMDAC[X] is programmed to (red, green, blue) - * + * * Pseudocolor: * uses offset = 0 && length = RAMDAC register width. * var->{color}.offset is 0 @@ -383,7 +383,7 @@ static int mc68x328fb_pan_display(struct fb_var_screeninfo *var, } /* - * Most drivers don't need their own mmap function + * Most drivers don't need their own mmap function */ static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma) From patchwork Mon Mar 6 15:58:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64815 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922451wrd; Mon, 6 Mar 2023 08:03:10 -0800 (PST) X-Google-Smtp-Source: AK7set8TjcFHrgEFcomHT1+jrN7BvmvHaluBMehSFsdL9K2nb+TRzAnFPi9nfTbek56x4L1+on2Z X-Received: by 2002:a05:6a20:7b30:b0:cc:109b:6c85 with SMTP id s48-20020a056a207b3000b000cc109b6c85mr10335473pzh.7.1678118589909; Mon, 06 Mar 2023 08:03:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118589; cv=none; d=google.com; s=arc-20160816; b=SCFOhC/gE6vO8sPBbPlWlgmmIL+Z4FVrU/yc4SxZ0vAgsQs0dP0y7xaUxrl6R5tdIZ HBNzsq5U6nkF7dteDuPAOa1US4TPiCzv7kJeO3yQXFF0lpLz29M7H5E5zhAvfaL9cRzr qnLJxMjG5xt8UJDyIweScbcdCLgO3d7vDaZ3/e7Y5Cau54/QfHbdl+8FajIjDC1wPgOC vZwYBZxAnB5Dr5OJjUPMtqDWB7wXY3wVH8DUVjnfBBK8JsGvvrEK8sz9XTo1WR1osJ9R p3mQOAYCA7YtcZgUXAIZzLQhWoR33i6rnj95QQTOkBumDbH/KJQyz7KTc37F0DSub0Mn 0V6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=orZgFs2QhwCWX9f0KA+V1/nLVg0I8YGwHRr+Xo7enX4=; b=QF0hrT0RyQxTvoq4xxmLLiQtgdOVMNsTvME1pgeOGJT0XpSQCENglsqq3Rh/gh2fDf 1JN76lTP1G7FBLmHKVIghn28q+8zOaqRw4fcJRwsHJpoqnxgTBnqFnZS84S9n64IEOIu x5KOfMkUmL5/84RSN1ltZJ4gb+aORe11hlUIg5vW955s+ql99uMPsorIXMUtuZmAwHMe nMTfx0bW7hdUizcwf+PVrS1oFFND3E4EXEyfPw0INqNwAy7URJCpToxZKF8qhMRAWWAo ydZfKoCKsQTZ0+vfhpMVdQHbodCDLG9roMB2V2SPAY/u+bLZJLdnuhdC0ZFPDjPtu8/S qsBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=PjMJpakJ; dkim=neutral (no key) header.i=@suse.de header.b=OmtTWYs0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p12-20020a631e4c000000b004fc2396c157si9730639pgm.61.2023.03.06.08.02.55; Mon, 06 Mar 2023 08:03:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=PjMJpakJ; dkim=neutral (no key) header.i=@suse.de header.b=OmtTWYs0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231289AbjCFQAv (ORCPT + 99 others); Mon, 6 Mar 2023 11:00:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41210 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230244AbjCFQA3 (ORCPT ); Mon, 6 Mar 2023 11:00:29 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 167B42E807; Mon, 6 Mar 2023 08:00:27 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 8DEB21FDEC; Mon, 6 Mar 2023 16:00:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118425; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=orZgFs2QhwCWX9f0KA+V1/nLVg0I8YGwHRr+Xo7enX4=; b=PjMJpakJyWjNdOrVTyPj2whm1Q33z1V9wUnZWqwkUtjHSLFErYtTgTH2SHx5DFdTpOL8xh 6U9/pIC8C4gADDBCoL+OsiNYP2whZbl/yPCwxtP12ni0FEa5VlS+mDYeO1SguNBXEe9un4 RUVVb3a1EKcTEJz4P+MuOTPRCOXbNYU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118425; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=orZgFs2QhwCWX9f0KA+V1/nLVg0I8YGwHRr+Xo7enX4=; b=OmtTWYs01MYMpYFXZYpM+67wyYIDNpyh+TL9PhTnDhkL7aGA62VtvQqKMH7Uj5yneuLI6Q OusXg2kuAvcWbfCA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3C91913A6A; Mon, 6 Mar 2023 16:00:25 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 0FAIDhkOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:25 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 03/99] fbdev/68328fb: Remove unused option string Date: Mon, 6 Mar 2023 16:58:40 +0100 Message-Id: <20230306160016.4459-4-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634878420207221?= X-GMAIL-MSGID: =?utf-8?q?1759634878420207221?= The option string is unused. Remove the variable and a related helper function. No functional change. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/68328fb.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/video/fbdev/68328fb.c b/drivers/video/fbdev/68328fb.c index 7fe56ecbe4e6..f2d70df4104b 100644 --- a/drivers/video/fbdev/68328fb.c +++ b/drivers/video/fbdev/68328fb.c @@ -400,13 +400,6 @@ static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma) #endif } -static int __init mc68x328fb_setup(char *options) -{ - if (!options || !*options) - return 1; - return 1; -} - /* * Initialisation */ @@ -414,11 +407,8 @@ static int __init mc68x328fb_setup(char *options) static int __init mc68x328fb_init(void) { #ifndef MODULE - char *option = NULL; - - if (fb_get_options("68328fb", &option)) + if (fb_get_options("68328fb", NULL)) return -ENODEV; - mc68x328fb_setup(option); #endif /* * initialize the default mode from the LCD controller registers From patchwork Mon Mar 6 15:58:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64814 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922431wrd; Mon, 6 Mar 2023 08:03:08 -0800 (PST) X-Google-Smtp-Source: AK7set8b5qyVP5JHPNpHhQyfl0Qr1VAo5MWgrKJQU4PFQu4W6/hXYC0PliSvdtj05xvEdJMPG/nK X-Received: by 2002:a62:3142:0:b0:5dc:ecea:f650 with SMTP id x63-20020a623142000000b005dceceaf650mr8639330pfx.19.1678118588280; Mon, 06 Mar 2023 08:03:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118588; cv=none; d=google.com; s=arc-20160816; b=eWciCGmvy5eP1UtGlTMl/hT1c93Tc6UuQjTFS3gS/MQglF4IiFoLroQ1MMshHxAeRA RKC3n7OCw2kl6AAlw2ydq7t1u6eFZJhLJjD+YK3yGZ0vL3e32Pj0R6BuEGfnS4tSM8E+ 43tlVII7/RAGdHOMLQaO0FoBKwertgu83QX0lp6NGb2bysH3BGJPe0SVwREx5sbMFI7+ 2SEReEorP/O6rtJzYaJ2DTOkNPvqBz0BpQ3j/e8d9uYGCayxDVo/k0Y/Iq9UbdWbYAx6 lSSk9JgCmuTYXU5kQtQ06SpDINAj6JrATgy3PJFEyyqZQHxehRe+PJ0H0u9UxXfHnNvg 7hXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=zjVYDbqjwwkw2fXJsfJw/E5OA0vR4qLTqrFh9CEDVls=; b=SieDciDqZNOuucaix+BZWsX41cN9L4DLfy7Z+vWJ+ubzBbS1/p8zhioX+nDuGDR2rJ kIkP3cX13euXrtLZJn7wQlgO3bWEjBAnMJxOryx4n3qDX4D9PhohgN4EqP4eEToO8erU TkbBArU0OUXgsh9/V1WLa09WShpUl1+BSgbDe9WWRlZKLaPKv1RDhr+qYPH1OaUua8Fa eZtYiAVUZZXQlMXjpiNHuID2KBa43pHKHFa/XeehNkbMwT0L5BCNs94OD6RJsUynwmsU uT7eNiSuLnFgY5kBjC4Tomh9C7PzUmi8kBFzeiiQUpdqKNsT47P5J7DqwLnWmsVdFfBh 186w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ZLVSod84; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=1qLnPhqD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y13-20020aa793cd000000b005924db893c3si9909179pff.195.2023.03.06.08.02.53; Mon, 06 Mar 2023 08:03:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ZLVSod84; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=1qLnPhqD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231234AbjCFQAs (ORCPT + 99 others); Mon, 6 Mar 2023 11:00:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41230 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230248AbjCFQAa (ORCPT ); Mon, 6 Mar 2023 11:00:30 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9055E2E820; Mon, 6 Mar 2023 08:00:27 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id E49BA22374; Mon, 6 Mar 2023 16:00:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118425; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zjVYDbqjwwkw2fXJsfJw/E5OA0vR4qLTqrFh9CEDVls=; b=ZLVSod84jRFbPAgwcB/rSvYcuZWfcsxYuav+FTZqNFxsvnSfLRLU5huBmNGYVcvI8yno3A LA6pDjPT9aLuYAnnxhNodGwZ0RQ01ADMXbwahNoCcOCLwr3EeuDzjnOQEDy0IJnIyWT0tF 87OwqsKqf6RZr2exDvFhk8cgBNc17fg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118425; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zjVYDbqjwwkw2fXJsfJw/E5OA0vR4qLTqrFh9CEDVls=; b=1qLnPhqDZxTWyF1Se8kIFwwbvl09iQB96aeANdlPfciPamDkNnuZwA/St9n7mOre6S3RgJ L7j9zubiyqevDiAw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9116313513; Mon, 6 Mar 2023 16:00:25 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id uF6yIhkOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:25 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 04/99] fbdev/acornfb: Only init fb_info once Date: Mon, 6 Mar 2023 16:58:41 +0100 Message-Id: <20230306160016.4459-5-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634876650189551?= X-GMAIL-MSGID: =?utf-8?q?1759634876650189551?= Init the fb_info instance once before parsing options. The current code initializes the instance once again after parsing options, which clears any resolution settings that have been given in the options string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/acornfb.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c index 1b72edc01cfb..8642136a6bdc 100644 --- a/drivers/video/fbdev/acornfb.c +++ b/drivers/video/fbdev/acornfb.c @@ -887,8 +887,6 @@ static int acornfb_setup(char *options) if (!options || !*options) return 0; - acornfb_init_fbinfo(); - while ((opt = strsep(&options, ",")) != NULL) { if (!*opt) continue; @@ -930,9 +928,8 @@ static int acornfb_probe(struct platform_device *dev) if (fb_get_options("acornfb", &option)) return -ENODEV; - acornfb_setup(option); - acornfb_init_fbinfo(); + acornfb_setup(option); current_par.dev = &dev->dev; From patchwork Mon Mar 6 15:58:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64819 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922579wrd; Mon, 6 Mar 2023 08:03:21 -0800 (PST) X-Google-Smtp-Source: AK7set+0UcdVEqZgzcKNBvsP143khkbyYn4q8iSXQin+Z7QwLEgvM1ga4eRG1wCfVNN9RsQwJjwb X-Received: by 2002:a17:90b:33c7:b0:237:7ed5:bbe2 with SMTP id lk7-20020a17090b33c700b002377ed5bbe2mr11191471pjb.3.1678118601168; Mon, 06 Mar 2023 08:03:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118601; cv=none; d=google.com; s=arc-20160816; b=n18VkJOu5+7HlCVJSRugzki2vIm3oxviOlfxHofOjj1/g4WcDzZIrdk67Mm20Llt1o uldst2o/DKkuWJgX72Q4A42xMqwuDTRrZ+uLawOyJjdqkOx9bP1d6NzmwY559duc1Jpe Zyt45DDbWRUSAKbQVWI+RXUfQ7dF0k1zFtsmfDjEonAxsUtFkvEURTAq/EQCIr3Vdpc7 c8HaXnlOvSW4VMWg23lM1dB7eAdAMKV6FvvP+pkzk/1wmeYHkVD9XuIP0HBEjsJCgBJu 4UdR7/2ZrKhSYyQROicd3i+yHO6sfC/lZ4y8JrY2R0ha8LC9CT1UPp53ezU7wpM4bjx9 h8bA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=gKnsmkdajV5dwt0y63rKnWXciLaSNmTMATxql+kzlXQ=; b=BSDulldRsa5kDZVOsD4RoYsTxqyg9+jn6DadPzJXLKTktPLTmHm/2w/er3xsgjz12A U6QK8WXt+L+nFcI4I5wDd49LfZptEGY5DYo7hlDdbMozfrBuYXhKeSoisKdD4NVnXMhb 0/xKJaxtLJSCqQwb1VoLERUg//DGSKW6E5QXDLR/36whr2tHnM9YozqAZCXQNY9ouVkZ 8yKs8mgmu72WyDdEuv0gpfI9NlL1FdCYDpub4jEuybPzymVNCf2SIQabXeXaPVCAD5Tq u6yHFSkQddoljyj/RHIKCjNitXIzHEOr6acY2hsmIxiQ0wIyocVJ3wkjZPmZZcFNbCqj WBhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="m/l2WRz8"; dkim=neutral (no key) header.i=@suse.de header.b=RofdsvmI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h6-20020a17090aa88600b00230a8355ff1si12106819pjq.181.2023.03.06.08.03.01; Mon, 06 Mar 2023 08:03:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="m/l2WRz8"; dkim=neutral (no key) header.i=@suse.de header.b=RofdsvmI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231509AbjCFQBF (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41276 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230269AbjCFQAb (ORCPT ); Mon, 6 Mar 2023 11:00:31 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 378492ED70; Mon, 6 Mar 2023 08:00:28 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 423AB1FDEE; Mon, 6 Mar 2023 16:00:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118426; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gKnsmkdajV5dwt0y63rKnWXciLaSNmTMATxql+kzlXQ=; b=m/l2WRz8+uGG7iRStMefAjKhRxVuhaUygsjz3Yr8sqUk+llkmsgNcoUOr66mqRK+5Ffkrt X0yxS7twf85QTr3a/ZmX8cKQ+6QS1/xdTM3DNOtaXz8u16xa4X1ssc5vx8I9QlzPbsMHfY OsnBJJWZsL+XR+YFy85KHEXB5nOE5uI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118426; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gKnsmkdajV5dwt0y63rKnWXciLaSNmTMATxql+kzlXQ=; b=RofdsvmIu4jmtpHMXRhMHrAiFIEazlA7oJ28EW/eNK35pX+FTLAl33+toZbUJ1oprN/cFn LaxWe+nxW4VMXOAg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id E7E0313A6A; Mon, 6 Mar 2023 16:00:25 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id EAHaNxkOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:25 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 05/99] fbdev/acornfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:42 +0100 Message-Id: <20230306160016.4459-6-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634889862056726?= X-GMAIL-MSGID: =?utf-8?q?1759634889862056726?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/acornfb.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c index 8642136a6bdc..1d6dec45615c 100644 --- a/drivers/video/fbdev/acornfb.c +++ b/drivers/video/fbdev/acornfb.c @@ -14,6 +14,7 @@ * - Blanking 8bpp displays with VIDC */ +#include #include #include #include @@ -879,17 +880,15 @@ static struct options { { NULL, NULL } }; -static int acornfb_setup(char *options) +static int acornfb_setup(const char *options) { - struct options *optp; - char *opt; + struct option_iter iter; + const char *opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((opt = strsep(&options, ",")) != NULL) { - if (!*opt) - continue; + while (option_iter_next(&iter, opt)) { + struct options *optp; for (optp = opt_table; optp->name; optp++) { int optlen; @@ -907,6 +906,9 @@ static int acornfb_setup(char *options) printk(KERN_ERR "acornfb: unknown parameter: %s\n", opt); } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:58:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64826 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922843wrd; Mon, 6 Mar 2023 08:03:41 -0800 (PST) X-Google-Smtp-Source: AK7set8JlrAqQKo+DHF1+Ob7B6tn0GvMLHVWqQofypu3WF8eI3AFFk/2RaYxij8fKmRqfYI/TOg8 X-Received: by 2002:a17:903:32c7:b0:19c:be49:48e1 with SMTP id i7-20020a17090332c700b0019cbe4948e1mr14077734plr.7.1678118621194; Mon, 06 Mar 2023 08:03:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118621; cv=none; d=google.com; s=arc-20160816; b=rBzC+Y1NAw4FMrAokk80qMEd70TfUheSjI8j+86+oi0a9LDXQ5V91nSgkbH99AF0Vo bfRa+sd2H1y7M/2CNGFdqWXTBULo+Gy6nxBivjCDfNHZJrXhwfs8GjknvWdWj9PneXki doZ5ZTKPoI4yl7oDPKxCCbMqugUFFM2jzB+iJsincydxzud2m6TvhpWZXdBdLY6gHdvk q0fIHXoyQg5WvJyhui/dQJJUGdvv5+fsUAiBeeRvewkIRocz3NrrjVtqisV+Ll9H600I 1UjYVsaOW9NqjReXWtO7XvzjPKKiuRES3fCUuOodOixGU4wCIAz5/zb8oOsG6o9m4Zv8 yY9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=g0LyrWAXBcaqIUsj+JpnvVhponNuq5N/GHJf5/1Zskc=; b=GsMhyR6WcG0kveIoX8daJ00BgXYhdMWJeR9t8uvE4fWnkZ8ymkSN8cnhyZdNk3QJJk 6AegnhzZsvuefZX85pUcwMdPJu6E+0ipE7mET+8NOMW1/NRUUXHXi6d9VleTXGH6mCa3 17O2vAEgYLumDFVvJ78EnoIc+bMJyV/NhT4Z8mnrrLdEDpfv/0IxS9jW/amgcoqcZfR0 UpvUxY++jBtSvdmkdkVH80D0KOu8HgdPWM+boWhXPzDFREekuvjlGyPjP0ZWdAgwj34z A+1E+uqpic7fxLpdsBqTR/zq+ahWbP41c9Sp2hzj4CBAH93f5HSLuZmascXfmvGZ/PXq oGjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=sRubLDkO; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=nRE3HFpu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 198-20020a6305cf000000b00502ef1baf83si9876549pgf.217.2023.03.06.08.03.24; Mon, 06 Mar 2023 08:03:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=sRubLDkO; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=nRE3HFpu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231327AbjCFQAw (ORCPT + 99 others); Mon, 6 Mar 2023 11:00:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41244 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230261AbjCFQAa (ORCPT ); Mon, 6 Mar 2023 11:00:30 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 377E12ED62; Mon, 6 Mar 2023 08:00:28 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 9959F1FDEF; Mon, 6 Mar 2023 16:00:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118426; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=g0LyrWAXBcaqIUsj+JpnvVhponNuq5N/GHJf5/1Zskc=; b=sRubLDkOMsxNVGYssaZlwo/BYs6XzZaphNc5/c7DfdygOCJjhsGN44Zj4byY8BuhI9nQF2 XGWgPmzab1L01Z4s1qEJZ2rhDrJqwJB6tdzfRc4DgFJY4Vv+tpmGQWchuL+NdAJhBChR58 JUYjg8WsmBAsyFf4IPa7CmZlaPOxjn8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118426; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=g0LyrWAXBcaqIUsj+JpnvVhponNuq5N/GHJf5/1Zskc=; b=nRE3HFpumOqB5NZ7Zrgf0wJnUJDtOCZoOG+o4LZEDlHVYiIW+7wOSM+yq7uMHCOs+np/8+ Vvy/8MKRmeQIWJBw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 4641913513; Mon, 6 Mar 2023 16:00:26 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id oNBlEBoOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:26 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 06/99] fbdev/amifb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:58:43 +0100 Message-Id: <20230306160016.4459-7-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634911288712555?= X-GMAIL-MSGID: =?utf-8?q?1759634911288712555?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically free the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/amifb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c index d88265dbebf4..6edfd0bfdd57 100644 --- a/drivers/video/fbdev/amifb.c +++ b/drivers/video/fbdev/amifb.c @@ -2363,8 +2363,17 @@ static int __init amifb_setup(char *options) amifb_setup_mcap(this_opt + 11); else if (!strncmp(this_opt, "fstart:", 7)) min_fstrt = simple_strtoul(this_opt + 7, NULL, 0); - else - mode_option = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "amifb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "amifb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } if (min_fstrt < 48) From patchwork Mon Mar 6 15:58:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64818 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922574wrd; Mon, 6 Mar 2023 08:03:21 -0800 (PST) X-Google-Smtp-Source: AK7set+A+0sGl3OdjE8se9MEb1G5tgtHGoqH58KbIX1Moh4y4AEmpORm/gnfWu4FifXU69hMiEQK X-Received: by 2002:a17:90a:804a:b0:237:8f8a:6e4c with SMTP id e10-20020a17090a804a00b002378f8a6e4cmr11635079pjw.30.1678118600898; Mon, 06 Mar 2023 08:03:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118600; cv=none; d=google.com; s=arc-20160816; b=YTPyOTaXmMH45LmDnfPTV48kD0kLy33qtRRa6kYDsr7GkJqedy45ELBtM42Z1frBsF 7D9mrJ6mT6XKxDT7c9QxCi0gxN4twhSpQznkarvWy/5S5Ex1L+RLg9dGqa7thICOiOmb Cafb4KJ8s1PqVCq4NUDCC0kviPVxq5MqHZHqqaLZipFiavZNPUJwS759G47itFCeLH1s sEeesor9tC0ovwZpP7JuFsfc0mpoYLTaeFq/i38IsmUxi5BoI+YkBmvt1p4/8CmnvZaN /HT3mFrEvzZelQ9nyyqrFD35hw3pSJa6vuCAeiiXzs5tvQ1TAbgE5wD2nPs+ljoJyzhe CAsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=IujpHsvYb7Uda7mxy1jpF8KsxacycfakNIzbr9SKPvg=; b=rJKVu8UquNfGHPuAqnVcy5zgNTOizZ42bbxm3QA2+CaJOik81Bh6iP4GYELzCs/NnI +Mnh+5Clv4uJ2+4Th2FQKKHsbk9e41XB44PefhFMXGSTuXe0D+5R9BhGGl1SY4VM1wIL YwFYDZTvYNoaWTRg7jZS6mrZCCpi5ONBKhLXjBwTDSQz9Ghlblkyxbk0vI0tRBijkfFM M8cd0Zz7jMHqC7Fa9tzwohICJ8czm+zdzxHo+ouJKTh5hp5NJ7F6KslG8IlK6OJMPx9J j70EkCT8UBsgRaFuHhdQQ7yR1XkTEjdyO07FwPPLKci52bsfqHmGuPET53gmEwN6cExM KCAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=bOgy5TV2; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mm12-20020a17090b358c00b0022c17104488si9684902pjb.25.2023.03.06.08.03.02; Mon, 06 Mar 2023 08:03:20 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=bOgy5TV2; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231520AbjCFQBI (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41278 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230265AbjCFQAb (ORCPT ); Mon, 6 Mar 2023 11:00:31 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7E9A92410D; Mon, 6 Mar 2023 08:00:28 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id F113D1FDF0; Mon, 6 Mar 2023 16:00:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118426; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IujpHsvYb7Uda7mxy1jpF8KsxacycfakNIzbr9SKPvg=; b=bOgy5TV20uAfVbzo/qdl86u2VuyvpkhF1LmcWEzydBkKPBn3chTE5bL/iFWKfvX/tMG7P7 feWqVZ7MK26L8LyFlI/MNCCo8/X9XV3DkWbEj3qf/4n8smtFfIZfs1dHYtorICMivGSuzL 69XNQE0xdEZtcFDluSp78pFLLvvFk0Q= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118426; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IujpHsvYb7Uda7mxy1jpF8KsxacycfakNIzbr9SKPvg=; b=sA5YID+zbQGa1Bz+s+ar3uRMccrx/oDUs12FLgVmEaCALDW1qDi/sIHPCMuz5qsYhS0Wmd jAxO/V1+mGe+gPCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9DE5013A6A; Mon, 6 Mar 2023 16:00:26 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id MKqlJRoOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:26 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 07/99] fbdev/amifb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:44 +0100 Message-Id: <20230306160016.4459-8-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634890099548403?= X-GMAIL-MSGID: =?utf-8?q?1759634890099548403?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/amifb.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c index 6edfd0bfdd57..b968cf2c5f06 100644 --- a/drivers/video/fbdev/amifb.c +++ b/drivers/video/fbdev/amifb.c @@ -40,6 +40,7 @@ * for more details. */ +#include #include #include #include @@ -2345,16 +2346,14 @@ static void __init amifb_setup_mcap(char *spec) amifb_vfmax = vmax; } -static int __init amifb_setup(char *options) +static int __init amifb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; + while (option_iter_next(&iter, this_opt)) { if (!strcmp(this_opt, "inverse")) { fb_invert_cmaps(); } else if (!strcmp(this_opt, "ilbm")) @@ -2376,6 +2375,8 @@ static int __init amifb_setup(char *options) } } + option_iter_release(&iter); + if (min_fstrt < 48) min_fstrt = 48; From patchwork Mon Mar 6 15:58:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64830 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923020wrd; Mon, 6 Mar 2023 08:03:55 -0800 (PST) X-Google-Smtp-Source: AK7set+MTbDmO+qvV0e4UYgZQEM5iSS8xOe8XtBYDVcJOrh4VYWsSPcY24AMDsuWpa/R325yJLjU X-Received: by 2002:a17:903:188:b0:19a:73fb:6175 with SMTP id z8-20020a170903018800b0019a73fb6175mr11232978plg.27.1678118635111; Mon, 06 Mar 2023 08:03:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118635; cv=none; d=google.com; s=arc-20160816; b=M2UG/ISDJ8+yWzE88FyhSmP8z3/DPJcqODnSJ56L6VuRTnS4ddZVqZTcNfE9KYhQLz KFYzfOWHOfVrvphG7M4dJyf7dhOjgiM9Xc1+UE4Hdv3eLeGyqjGJiG6fnd80AG5NE0Yz iyf8/sjNm8JHZmuWSm0FqoOTQ4ZgysOfAgSzFiQpabf/scKV206INt9ICAfy0GtzWof8 RgpYbGFNacV41ujPq6oZn4x1o9OZXOojDS7kK+/TsqrwDhrElmfoKBl6NGgMfxHRYlGH TQCezIyfXYZBJmw3coJaoD4Fz3KQ3CWTE0fq5Yt6tIAqSiFxHGXt/Wr7n/mqLH1yBDkw azkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=eakX9A1d2cL4JJsysk9bsXBTplb66PKOYwFwVUy7Prk=; b=ThuFMM0HSsXGdv9WuFxUQh5BpUQFXo8A0zK5xVKifsEZsNl1F32XjyMMbo2YigwEPi uc/Porkb6GMSE9qiXKOYw89DzWfk2qnf4BrtmD2bC9H4FlQpTjZIYDi0bPOo8TxYYZC9 Wz+lS+TEingEYg2SGEwcPTrntIW1tZrkrSII3xYj1wHShBWMB40CWBGhF9et5KCoXEMv ujPwjr1l0XMvlZetMtTRaBj0QwdlBYHI3mv3gLF+VbIpxf0/PdjrtKFVztOlY+ek8qXB 3FRVNurSZUWtu8s/A45j9H5uFKI8YknkSlluvybooFdAnBIfFUG6fyFLsJDmcJpMWhMH rRLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=NSZ3kfba; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id la5-20020a170902fa0500b0019cc3cdcfe5si9079009plb.7.2023.03.06.08.03.33; Mon, 06 Mar 2023 08:03:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=NSZ3kfba; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231362AbjCFQAy (ORCPT + 99 others); Mon, 6 Mar 2023 11:00:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230293AbjCFQAb (ORCPT ); Mon, 6 Mar 2023 11:00:31 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5E66D28879; Mon, 6 Mar 2023 08:00:29 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 582BD1FDF2; Mon, 6 Mar 2023 16:00:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118427; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eakX9A1d2cL4JJsysk9bsXBTplb66PKOYwFwVUy7Prk=; b=NSZ3kfbaNFcSXTo+rqXNolhBFGsO47x8A18lNRu8ko1zfE4Ha2wzTO5rJV9vZFt+gOhjPJ QZU5NfSvsHLeHmAAvOnJhSKcsJzBQ2WzTOSBVH2x3cjJCtlP8w3ba7HTxRgLzeUmPAeT2O +Z18bN8KdGZ4NwY3xZhLWoZ14qRgQeY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118427; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eakX9A1d2cL4JJsysk9bsXBTplb66PKOYwFwVUy7Prk=; b=s+jFgKokFJJBBjICEuIXOMPa2srozkEi7v2eNk1Dm986GXURegWRkr5Di6ht2i1aeJ8UTf jNuNyfE6VhcOFVAQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 011F413513; Mon, 6 Mar 2023 16:00:26 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id eD8cOxoOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:26 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 08/99] fbdev/arkfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:58:45 +0100 Message-Id: <20230306160016.4459-9-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634926330976141?= X-GMAIL-MSGID: =?utf-8?q?1759634926330976141?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/arkfb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c index 60a96fdb5dd8..f83fcdaec7a0 100644 --- a/drivers/video/fbdev/arkfb.c +++ b/drivers/video/fbdev/arkfb.c @@ -1196,8 +1196,17 @@ static int __init arkfb_init(void) if (fb_get_options("arkfb", &option)) return -ENODEV; - if (option && *option) - mode_option = option; + if (option && *option) { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", option); + if (WARN(ret < 0, "arkfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "arkfb: option too long\n")) + continue; + mode_option = mode_option_buf; + } #endif pr_debug("arkfb: initializing\n"); From patchwork Mon Mar 6 15:58:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64831 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923073wrd; Mon, 6 Mar 2023 08:03:58 -0800 (PST) X-Google-Smtp-Source: AK7set9hZxDJlWGA4VaQvRr4ad3Fs0zEfuWEXyjEJ4pWtvTilqyGw6z6TG4EgxFcSc0UjQZdeY0y X-Received: by 2002:aa7:8f24:0:b0:5db:4373:c3c0 with SMTP id y4-20020aa78f24000000b005db4373c3c0mr11339754pfr.26.1678118638395; Mon, 06 Mar 2023 08:03:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118638; cv=none; d=google.com; s=arc-20160816; b=nwuO6JQOarCjJib7jGPp0+P0C0opF0csvzDoIq6BKwHJAupZdw7WmzZYLBG7UiPenz ItU+M36EfHv2ATYGXW92V2qyjxshVb6TlUFP+PJzlQMxE0E1NG/tlLf11CmsINhBfE6w 8Ji6qMt+iUTEtT3GUFWo4KG7w8RDwaiKE+jpXuRF+pmQl/sMQuPcBSHWjd/IvzBvdbAc qXoDkEPJruu4QH/VCVxav0fG3TfkoeWpz7q4+b4YRd5aa1rd3REBCnd4c7nLbpxn5jJG Gr0qx0EwNGoXDexFmqT7gGohCAOgHRfzwDQKuGsCT1y+jHkkE3wv6vuuczfE4qpQnjlK m/yQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=vdfHPhTBCGbkD8dn/FGrM9tZFQ/JKKvg+W2ZUY5fZ2k=; b=YVa0/GXnvoHWRRz9DCAXJBc4GahxYIzxwvVnyWuabEodsmwUIgeGBtLXRyMpaj/+W9 2ZHdfhk/2aZ4moHMTfsTGrwtkXWVuq09fl2dZqNT7iBsrdOu8ONYEzr780Lkh88PQQui KqE4sDrz5f/SUjWmPjEDVfKD+dujuewhmVk77BLC2N2176Jn91kl/n36K+W8SpFmfWrp ZyJ2ncRHxv6YjUvTEjpas4B6VRz5egTtdAtwb7Wpr6nRtJ+VfTcG9syXWf86mIptNtvL ml6ZSYtBOaMTdt97gUFCwQCMkKD5q40FZd9ciPgrCpHIHe64+xT+zL+c2jJPOi0vaZD2 rVYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Y8eRGE5q; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u69-20020a638548000000b00478368ceee9si9768869pgd.235.2023.03.06.08.03.35; Mon, 06 Mar 2023 08:03:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Y8eRGE5q; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231484AbjCFQBD (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41280 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230283AbjCFQAb (ORCPT ); Mon, 6 Mar 2023 11:00:31 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5C65D25E09; Mon, 6 Mar 2023 08:00:29 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id B7D4B1FDF4; Mon, 6 Mar 2023 16:00:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118427; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vdfHPhTBCGbkD8dn/FGrM9tZFQ/JKKvg+W2ZUY5fZ2k=; b=Y8eRGE5qfFP9QU7xFr7LAvCJIrNz6/6y759KGnQNVZgmDZNHY9/CDhS4NJLxexvfvxzZSY lonRvO8DMU0qj4y9gqVh8tHqTHa2d7Gaqp+Jvn0bSDS609BNahN0scaARk8dAbF9di0GWv g7FhWsd6nytTlo5pq1TpuR5O+e7sYQc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118427; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vdfHPhTBCGbkD8dn/FGrM9tZFQ/JKKvg+W2ZUY5fZ2k=; b=MUijP6g30XGyMBYKa57zr7ttsIjAdWwhQhtNrUpaG/lICac5ZXQVViKi7T60QzZhnLIEAc klT8c3AfpwLBU9Dw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 5E07613513; Mon, 6 Mar 2023 16:00:27 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id MAggFhsOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:27 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 09/99] fbdev/atafb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:58:46 +0100 Message-Id: <20230306160016.4459-10-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634929206149165?= X-GMAIL-MSGID: =?utf-8?q?1759634929206149165?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/atafb.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/atafb.c b/drivers/video/fbdev/atafb.c index 2bc4089865e6..331e72096ebb 100644 --- a/drivers/video/fbdev/atafb.c +++ b/drivers/video/fbdev/atafb.c @@ -2946,8 +2946,16 @@ static int __init atafb_setup(char *options) if (!*this_opt) continue; if ((temp = get_video_mode(this_opt))) { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "atafb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "atafb: option too long\n")) + continue; + mode_option = mode_option_buf; default_par = temp; - mode_option = this_opt; } else if (!strcmp(this_opt, "inverse")) fb_invert_cmaps(); else if (!strncmp(this_opt, "hwscroll_", 9)) { From patchwork Mon Mar 6 15:58:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64817 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922524wrd; Mon, 6 Mar 2023 08:03:15 -0800 (PST) X-Google-Smtp-Source: AK7set9S73FXUWmIt8BxSmnJYvtBfU3amQCN466EbN31yNFjaLUgatMkUX0YvjsTlbKoVclWG95T X-Received: by 2002:aa7:9496:0:b0:5a8:ae97:2273 with SMTP id z22-20020aa79496000000b005a8ae972273mr9911235pfk.25.1678118595434; Mon, 06 Mar 2023 08:03:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118595; cv=none; d=google.com; s=arc-20160816; b=mzQn2/wHc6YhWITqabiCYfi7z27yT27IaawMT11oLSyKI4wl3oBvJjVLeKIPDJ3GWB 8CGVFQVRPQmjuhwKklITZraLV+J23s2eMNPcd6/R5dbDfiLQL+rR66WXzRpoZ7DFTKmL FC49KskMuoSd4+nGVAw/mnkH8hltRRLCa+v+ejcHtOde/OA3J5W8dZZyOK0+Mq12ogQh XR0r8tU4NUMTJbZTq4077N9T5YN4O9kZAo8eu+fjzNuAX2CjJz4V3hupxDESwmyiXOs+ vzO2YQcN2aI6lFBsdAVV9cRBrrOqPTYFTuaWLL032clodQFGtaLQyNIsdHVzxZQID0Fv Wf5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=vW0Ol4SV/VF9Oy6zvE1dkGppBSF1ye6q+ZpyZhscWGg=; b=DWk/qBuX0V13cOHCDNs52e55wIbCpaFPaEa5UJi45N2/m4eJ7dgqWYrHHbEgKFZ7rj Al5sIkBILJ4W61Xdn336tzwj8N5E740AjTA6Pe5+s97Rg3FD1ZJR7OFmMi7j59sPpg3b QpP9VJMz2zOOImYo1DClxGFTI6U3JD8yxUJUZK3ZFBK06XBQP+GkXuixjIwRrkBfFlWq Oy+7zKB0pDpVkqNrRUjGZuFvRmKODCRXE1gu5BmGJbBDMb0UeI2y1/8SxFL8F/qPTyKD 1A49rxmdkOSVaMr1MiP/jQT6pLk+Fs3akmXPYbytqNIeYrcunDgRTL9bcYEbnENscXx8 R09w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=s2t6HZxN; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u69-20020a638548000000b00478368ceee9si9767949pgd.235.2023.03.06.08.02.58; Mon, 06 Mar 2023 08:03:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=s2t6HZxN; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231455AbjCFQA7 (ORCPT + 99 others); Mon, 6 Mar 2023 11:00:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230306AbjCFQAb (ORCPT ); Mon, 6 Mar 2023 11:00:31 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7ECE12E0D3; Mon, 6 Mar 2023 08:00:29 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 2149C22384; Mon, 6 Mar 2023 16:00:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118428; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vW0Ol4SV/VF9Oy6zvE1dkGppBSF1ye6q+ZpyZhscWGg=; b=s2t6HZxNp2vyhC92hpPPuy5KnMNHVjZUkvHxsdoE9ro2sw1Jt+S4kGZPAZDGYA2+P8ZG/3 We+YjqMKQydkpiwakk7or+c9HgB6BfqI3jiAGBh7DXSL0/apIIw1mN/0YUQaRqnPg0y7Mb yQrB5SUrakfUCCHEZCDLufdlaD2eKYE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118428; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vW0Ol4SV/VF9Oy6zvE1dkGppBSF1ye6q+ZpyZhscWGg=; b=IJz+A+PqwW/VxnAl/Xw9sr3jtwXAyRnqxXipfpVfJp1kPa3tUf0/XrKlu3ZctUZe0jOvfH YpWKCZ6hV7jeO0BA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id BC84613A6A; Mon, 6 Mar 2023 16:00:27 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id iAsXLRsOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:27 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 10/99] fbdev/atafb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:47 +0100 Message-Id: <20230306160016.4459-11-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634884296249103?= X-GMAIL-MSGID: =?utf-8?q?1759634884296249103?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/atafb.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/atafb.c b/drivers/video/fbdev/atafb.c index 331e72096ebb..82d5567f2ffb 100644 --- a/drivers/video/fbdev/atafb.c +++ b/drivers/video/fbdev/atafb.c @@ -47,6 +47,7 @@ #define ATAFB_EXT #define ATAFB_FALCON +#include #include #include #include @@ -2934,17 +2935,16 @@ static void __init atafb_setup_user(char *spec) } } -static int __init atafb_setup(char *options) +static int __init atafb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; int temp; if (!options || !*options) return 0; - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; + while (option_iter_next(&iter, this_opt)) { if ((temp = get_video_mode(this_opt))) { static char mode_option_buf[256]; int ret; @@ -2988,6 +2988,9 @@ static int __init atafb_setup(char *options) else if (!strncmp(this_opt, "R", 1)) atafb_setup_user(this_opt + 1); } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:58:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64822 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922659wrd; Mon, 6 Mar 2023 08:03:26 -0800 (PST) X-Google-Smtp-Source: AK7set8se+MzEFPO6R6JmSx2nLEX37jY8UtZ9cQOrlY5ZCfc4Cm2FbY/NEMoBYBlh3DUYkzKJ60z X-Received: by 2002:a17:902:b786:b0:19d:ab83:ec70 with SMTP id e6-20020a170902b78600b0019dab83ec70mr9949421pls.45.1678118605850; Mon, 06 Mar 2023 08:03:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118605; cv=none; d=google.com; s=arc-20160816; b=TsLa4brAmROdvm7Dvz1gVnsPM3jCf9Eur8EIMBeVGksMcZsC3m1bK2wIr25YMIdfVf R6YwYAtod6zp3NM3lsMi8qUH2ljLvT3tkbCO4bZlNghWiFsl+IjvjQdlLTPClQw2v/rc 6Ya0StrTMrpqWtUY3gBd5kEp4UIfG7RDVNRZSM06SC9Tk7B+69kUR/q2KAXhHx96iFFM 9jOL50LR2HgKwy+ik+hR/674VGuRIZlKCA3OSrbIzarWCskQDzn3f038BC639/ubbrI+ CNrziASI+IwngiwH9HcD9ci57hmnH/Ao+UikiHtvzx5D5aP+wN0Bt17FX8PrOcJxuzFr qAvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=R1ax0gZCP5GAWPA9U/Rv1SWExQ5i1ifVmYzOBqHKJsU=; b=JA5JrgITR3KJBDe2wJtuh9v8k74ngv8WAAbok+4oRar8yiHYGKofu0MxW4k1RQFDNj CCQ+2lNkfDQkXfCHnl45MSr0y0SL1pzQyykk6NbDOEH5F4Kcs+z5Tj3ImVQPTJDXE184 tC7ePBlMsl7dn0fzd8XpUdmt8Q7nwMYhqg7VrjsM3NuakocDEcrMgeGfVPL7URU7/s06 tnCD8RYGSkIltJf9aPhoBWzh1HUqcVRkl1EvbCJ8owd+X8kVRb8s0ps2S5A5VjHt2goG fbJMGL38lfVIq1F4Y0So55lte7FdLqJcvkzsBfx7RpUiGrBtQB7/XjS1IRVDvhgVj9K9 r25w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=w8UTEzg3; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c6-20020a170902c1c600b0019a5aa4d768si9467428plc.611.2023.03.06.08.03.06; Mon, 06 Mar 2023 08:03:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=w8UTEzg3; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230500AbjCFQBS (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41310 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229737AbjCFQAd (ORCPT ); Mon, 6 Mar 2023 11:00:33 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1751A2E820; Mon, 6 Mar 2023 08:00:31 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 824C71FDF5; Mon, 6 Mar 2023 16:00:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118428; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=R1ax0gZCP5GAWPA9U/Rv1SWExQ5i1ifVmYzOBqHKJsU=; b=w8UTEzg3lOOZmlhZteJlDzIx7UNBzvedcr9T95EDZ7Y/lam6gJgF+xkLAFS6aEwT09PXoC oRRaOpEUVqV5KL8hv9Deu3rbo1zZAkQ2oyCvAvX/KkOrS4FVFhwJCIIUDOsK/O0Akdso33 qvalyQ4JuHK2W2kcMiNhTwBGe9r9EUs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118428; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=R1ax0gZCP5GAWPA9U/Rv1SWExQ5i1ifVmYzOBqHKJsU=; b=8UHpl8Y7J9eEYZewQAqwQZ3O9M9Unph16qWNEYZOXqwsOgaOLscIn7V5hsjaMrd1ahtkco 4tbN42mNTR6bURAg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 26CD513513; Mon, 6 Mar 2023 16:00:28 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id YI6GCBwOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:28 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 11/99] fbdev/aty: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:58:48 +0100 Message-Id: <20230306160016.4459-12-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634895663182115?= X-GMAIL-MSGID: =?utf-8?q?1759634895663182115?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/aty/aty128fb.c | 12 +++++++++++- drivers/video/fbdev/aty/atyfb_base.c | 13 +++++++++++-- drivers/video/fbdev/aty/radeon_base.c | 13 +++++++++++-- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c index 36a9ac05a340..3c08904a107f 100644 --- a/drivers/video/fbdev/aty/aty128fb.c +++ b/drivers/video/fbdev/aty/aty128fb.c @@ -1723,7 +1723,17 @@ static int aty128fb_setup(char *options) continue; } #endif /* CONFIG_PPC_PMAC */ - mode_option = this_opt; + { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "aty128: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "aty128fb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; } diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c index b02e4e645035..5e6e83472c30 100644 --- a/drivers/video/fbdev/aty/atyfb_base.c +++ b/drivers/video/fbdev/aty/atyfb_base.c @@ -3896,8 +3896,17 @@ static int __init atyfb_setup(char *options) } } #endif - else - mode = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "atyfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "atyfb: option too long\n")) + continue; + mode = mode_option_buf; + } } return 0; } diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c index 657064227de8..b885a7cc2424 100644 --- a/drivers/video/fbdev/aty/radeon_base.c +++ b/drivers/video/fbdev/aty/radeon_base.c @@ -2596,8 +2596,17 @@ static int __init radeonfb_setup (char *options) } else if (!strncmp(this_opt, "ignore_devlist", 14)) { ignore_devlist = 1; #endif - } else - mode_option = this_opt; + } else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "radeonfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "radeonfb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; } From patchwork Mon Mar 6 15:58:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64816 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922476wrd; Mon, 6 Mar 2023 08:03:12 -0800 (PST) X-Google-Smtp-Source: AK7set//q7hoYt9tK3wP/3LdHGLhi2Wun/Mj4Xg9BHPlYMVMJ7Fq21jQHKq05KHbmaGqTxsG/O+W X-Received: by 2002:a05:6a21:3292:b0:cc:9b29:f604 with SMTP id yt18-20020a056a21329200b000cc9b29f604mr15368731pzb.55.1678118592428; Mon, 06 Mar 2023 08:03:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118592; cv=none; d=google.com; s=arc-20160816; b=UCyM6B/Zc2pIsRmaWEb4ULwUtpMNDdjuuMV8iHtjV+oDVzjNxZ6l3A07yaHzC04KFU ekgwrMBuVfRtVdipt+7h/2FNzGJdt2kkrCTn8KufHz2tBs0D8Jn6s1sMsxyAuxZiQybh goh+wnL97aP8KODNQGSZf9t8dd5NJ59v81HpBIxYk9sxHjvgxdSYmW00CBo21oca7XNb NXpZoPnePGC+AIPQu8avjzTtFHoeeO8r2ldvhZB83viXcpvC7VIoGELN6nKKb5EmSWwo 8TQoPeOqERPQcC1soK6tzFCL/1ieYb+TGJgGYgmAigzxGVBK9Gvjyb2fdul/ypIRG2gI 1jdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=bnhNpr1q6ynVgPdSq73n4KSY0p/YpyM8o7Xonnxl/Dg=; b=dfAkQ0ZKAGqeZTeTXdhxRleOxH4kSAYfsNnh/yXr8Jx3usgu3Xh4r0QBX+Q6TEUWHa NLZLXDX2D/cG9fUg0NWbPq29qmP+xpAxs9XhezI7Obx13aVE7BwfNzkwRb4NcZ4a75Pd S1lottmoi2B3a6+lOYlhpZ5b/ruSDpZHb3hdZcG5SDhsRWxiXlka4q8eUHJjjoautdWB RcKA0HK63OpDxSkp924BJa7AI1Fmsklk0SpE5MImAuSveLYq0K3+SwK7E6GD5XZ5xxfQ 3EvFSmexL2hwbUHxUzY5DhqHZgHcrjon6soeC8lNT0BSJeTIj2L1ZhXlakEHiM6cUrkr UZkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jUtNUaJ8; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u134-20020a63798c000000b004fbd4eb35d9si8909917pgc.156.2023.03.06.08.02.57; Mon, 06 Mar 2023 08:03:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jUtNUaJ8; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231405AbjCFQA4 (ORCPT + 99 others); Mon, 6 Mar 2023 11:00:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230309AbjCFQAc (ORCPT ); Mon, 6 Mar 2023 11:00:32 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 434622E0FB; Mon, 6 Mar 2023 08:00:30 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id E6AC12238C; Mon, 6 Mar 2023 16:00:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118428; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bnhNpr1q6ynVgPdSq73n4KSY0p/YpyM8o7Xonnxl/Dg=; b=jUtNUaJ8dnpR1xVBjfP0lm3GvmxAswBIAVdLmqDMWNENAQjSa5c4+/7w9uc4zu0b8HPusq i0wmWN9WqontNr9E+IvlGlDEsLhtogd7cc/AsPODgQuyElyt4dOxcnFLiMyHiJD8ewNUpd znO1EbINjG2n8+qhZfuKPz8sQbCR8KU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118428; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bnhNpr1q6ynVgPdSq73n4KSY0p/YpyM8o7Xonnxl/Dg=; b=XSjb+z2ygn50wCcA1il3EK/j/icQ8Q6qbc45L1LzAgBEzRZnpSRLooMacpIFj+TNPalcm+ peVzwBPFe5NI60BA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8817C13A6A; Mon, 6 Mar 2023 16:00:28 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 8NFPIBwOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:28 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 12/99] fbdev/aty: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:49 +0100 Message-Id: <20230306160016.4459-13-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634880775535923?= X-GMAIL-MSGID: =?utf-8?q?1759634880775535923?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/aty/aty128fb.c | 14 +++++++++----- drivers/video/fbdev/aty/atyfb_base.c | 14 +++++++++----- drivers/video/fbdev/aty/radeon_base.c | 17 +++++++++-------- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c index 3c08904a107f..4a200eabe80b 100644 --- a/drivers/video/fbdev/aty/aty128fb.c +++ b/drivers/video/fbdev/aty/aty128fb.c @@ -48,6 +48,7 @@ #include +#include #include #include #include @@ -1673,14 +1674,14 @@ static int aty128fb_sync(struct fb_info *info) } #ifndef MODULE -static int aty128fb_setup(char *options) +static int aty128fb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "lcd:", 4)) { default_lcd_on = simple_strtoul(this_opt+4, NULL, 0); continue; @@ -1735,6 +1736,9 @@ static int aty128fb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif /* MODULE */ diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c index 5e6e83472c30..1920ee5c9a2a 100644 --- a/drivers/video/fbdev/aty/atyfb_base.c +++ b/drivers/video/fbdev/aty/atyfb_base.c @@ -49,6 +49,7 @@ ******************************************************************************/ #include +#include #include #include #include @@ -3831,14 +3832,14 @@ static struct pci_driver atyfb_driver = { #endif /* CONFIG_PCI */ #ifndef MODULE -static int __init atyfb_setup(char *options) +static int __init atyfb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "noaccel", 7)) { noaccel = true; } else if (!strncmp(this_opt, "nomtrr", 6)) { @@ -3908,6 +3909,9 @@ static int __init atyfb_setup(char *options) mode = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif /* MODULE */ diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c index b885a7cc2424..185cd98ad59d 100644 --- a/drivers/video/fbdev/aty/radeon_base.c +++ b/drivers/video/fbdev/aty/radeon_base.c @@ -55,6 +55,7 @@ #include "radeonfb.h" #include +#include #include #include #include @@ -2561,17 +2562,14 @@ static struct pci_driver radeonfb_driver = { }; #ifndef MODULE -static int __init radeonfb_setup (char *options) +static int __init radeonfb_setup (const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; - - while ((this_opt = strsep (&options, ",")) != NULL) { - if (!*this_opt) - continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "noaccel", 7)) { noaccel = 1; } else if (!strncmp(this_opt, "mirror", 6)) { @@ -2608,6 +2606,9 @@ static int __init radeonfb_setup (char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif /* MODULE */ From patchwork Mon Mar 6 15:58:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64887 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934366wrd; Mon, 6 Mar 2023 08:22:17 -0800 (PST) X-Google-Smtp-Source: AK7set+J6QdquITKMJjEAdoA/yXYzJ8f7PYgVbjvOLh7y7PDHDE/NQ7T/JfPZ5cjY8MDbDIy2UxB X-Received: by 2002:a05:6a20:d49b:b0:bc:b9d2:f0f8 with SMTP id im27-20020a056a20d49b00b000bcb9d2f0f8mr11136637pzb.24.1678119736979; Mon, 06 Mar 2023 08:22:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119736; cv=none; d=google.com; s=arc-20160816; b=GPmf1jrnGgmJXYcha4M0Ok2ZUmxm+EToZZHe1jgljEYobrJEmu2JpDkmuOIOlSTLNv DE2YvE1msNNUncUAZTrtiLsws86rVdSykIwsXHEFJXOdNxIhic3lMfbFk/Qh/mdPeVZ0 mclAKoZ+epBPXJ6XGpPXcZG9UXbruYG8EsZds3upzDZ7wS2Kkbc4CZre0qE4jT1pUL9w SFdZWc1hnCNMMMsZEug2rBU11MVcQDg/lQLe4we4LMPQzTTSt64ADSZwEHHWuQk2pBJn 6AjzkxM9B13ltvS4mkdLR8KT5+vjHwCraGcGBysCDphJe1AQ9vqy97OhITTP7zK0ShOQ Mjrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=Uk7crcnOtaYz5lnPu5nHcEno5CdLWKHT+UBXQhxUl8A=; b=XEEoeOQvVzTTHcG/oKvy3juiI/RfJKP6cWB2tjETBL4eoLSl9rFuDej/Xl2JgZwxib dUwq5P5I/bpWwz/EteJZX+fcKKSB84KFNPLwHKAZe01mJtT5PqxEtagKu5oJ30+XDxwv 0i3UkRpQjP0G1+zSwZzc8+JSHfDo/strQ9OwolnAQZ6/3O1WFJ5g73zIPt9j8fn8znSf hjmEDyVt66e3rbN8sQfMXtzEYTeGQ9v6PBtvLH2a53U3bVbJIW1w5ZP0kNjpPYuEiy40 eHvBPVmerPatIHYoeRtfoYNMa5s9xMHPRnzTvNDclfjyqLQ+wri+LltiIUF3a4KxEOsz KxwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=GZXdKU6a; dkim=neutral (no key) header.i=@suse.de header.b=Mc7IPHSQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n26-20020aa7985a000000b005e8a3dd45c3si9918751pfq.312.2023.03.06.08.22.04; Mon, 06 Mar 2023 08:22:16 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=GZXdKU6a; dkim=neutral (no key) header.i=@suse.de header.b=Mc7IPHSQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230409AbjCFQBP (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230361AbjCFQAc (ORCPT ); Mon, 6 Mar 2023 11:00:32 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 173D72E813; Mon, 6 Mar 2023 08:00:31 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 4E8131FDF6; Mon, 6 Mar 2023 16:00:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118429; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Uk7crcnOtaYz5lnPu5nHcEno5CdLWKHT+UBXQhxUl8A=; b=GZXdKU6aEL7CBeCsklgVkmVkIEMmxg5dvY4rPpZZXFYp5mNWFe6RiZvl5BDYpi9UN0DtI5 qIpUhIkwDwylSmmVcPaCadPGfdUOkn6ll8RQNrWmsRbDF7PD9OcGXq9lrwoh5b9/9ROyIa rtiCyUhaVcaIId6N1XHJOnubTk2Uzfs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118429; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Uk7crcnOtaYz5lnPu5nHcEno5CdLWKHT+UBXQhxUl8A=; b=Mc7IPHSQBqfzl2cZHYrUjQsreYZzMHsizsnW9xXH+s5PvhaOf8ELhUtJec5g5JKlJ0vnXg 7t9+6B2a9vT14HBg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id EB6DA13513; Mon, 6 Mar 2023 16:00:28 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id uB6MOBwOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:28 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 13/99] fbdev/au1100fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:50 +0100 Message-Id: <20230306160016.4459-14-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636081169636889?= X-GMAIL-MSGID: =?utf-8?q?1759636081169636889?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/au1100fb.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c index 519313b8bb00..17dae92ac53f 100644 --- a/drivers/video/fbdev/au1100fb.c +++ b/drivers/video/fbdev/au1100fb.c @@ -42,6 +42,7 @@ * 675 Mass Ave, Cambridge, MA 02139, USA. */ #include +#include #include #include #include @@ -365,7 +366,9 @@ static const struct fb_ops au1100fb_ops = static int au1100fb_setup(struct au1100fb_device *fbdev) { - char *this_opt, *options; + char *options; + struct option_iter iter; + const char *this_opt; int num_panels = ARRAY_SIZE(known_lcd_panels); if (num_panels <= 0) { @@ -375,10 +378,10 @@ static int au1100fb_setup(struct au1100fb_device *fbdev) if (fb_get_options(DRIVER_NAME, &options)) return -ENODEV; - if (!options) - return -ENODEV; - while ((this_opt = strsep(&options, ",")) != NULL) { + option_iter_init(&iter, options); + + while (option_iter_next(&iter, this_opt)) { /* Panel option */ if (!strncmp(this_opt, "panel:", 6)) { int i; @@ -401,6 +404,8 @@ static int au1100fb_setup(struct au1100fb_device *fbdev) print_warn("Unsupported option \"%s\"", this_opt); } + option_iter_release(&iter); + print_info("Panel=%s", fbdev->panel->name); return 0; From patchwork Mon Mar 6 15:58:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64824 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922675wrd; Mon, 6 Mar 2023 08:03:27 -0800 (PST) X-Google-Smtp-Source: AK7set8Fr3Aj84k+VXGThLGKXSNsakCukNrMxurSXCej68p0R2vNGLLWBoJcq75H1ypSiQwf/hDf X-Received: by 2002:a17:90a:8:b0:234:91a2:e07c with SMTP id 8-20020a17090a000800b0023491a2e07cmr11915915pja.31.1678118607005; Mon, 06 Mar 2023 08:03:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118606; cv=none; d=google.com; s=arc-20160816; b=AxLHeho7iv1+piw/iTnisxK4cBEZ7HXU58or60hC/OuDLPOinEW6VRxqCV1rAzdKTg 3GHKITzt9+neDl96M6EYc9eU82aDojzSIYAA5WKDPGDF9iE67+m98oexJf4OL4emEO5R vVt2JCn0n0pI553eoR5ktAL/8iiCwSiyCEAbR7X2DrHx9i/MbxTAAQ2GYIBl1VPMXhHa rdNrSaI3nIq1bfJUABjFIvlgQvsbLI/If/Wz+zrmJoW9aVoYzC7MWzAgtkU92Q/M4IGL h5FfyKrLVG6rhhDLDVGHkQCZrgDN/5FeXrJ/TDLznBX6Ha6gDQPGE0Nf80A0Zw45qJAq VJiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=RWjL74/OQnkYsQeBKz+W/Sdt0NW8X9eOoOaYmGq20ZE=; b=fyDzBFBt0xyc273yIBcP6k2w+kRVxXrpe6jFabpl2cgb8RYjlYoU4Mqt9pTit4N+dt s0LIuJP2dj7Im5wz4/hVXZFd7wZmnNrx2eqcaUQ1TG9sQkeTMP7YS7GevbXHzfNZeg5M v+YSfWfBeFhKa92aHvpkeYAsd38/DHErYkG+DI6QgZ5bD0xEceoQUzSFABGp1+LWVnlI ZtGGNlLBxqaCee+sg1STYt9Nt5xJsLJ+TzzZNrv3E/F5vCT8J+Kt/oOHaaZc7Tlv5OW1 0tmWbyWewUqEvUuYXjfa1XMXBM0fQh4EqDLAfQ6NzECv3/uf0fP23imSzVlTDNuRg/I7 cmdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=vHmpKEBQ; dkim=neutral (no key) header.i=@suse.de header.b=5xdvoayh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f16-20020a63f110000000b005030a000860si9442757pgi.602.2023.03.06.08.03.08; Mon, 06 Mar 2023 08:03:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=vHmpKEBQ; dkim=neutral (no key) header.i=@suse.de header.b=5xdvoayh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231133AbjCFQBW (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230344AbjCFQAc (ORCPT ); Mon, 6 Mar 2023 11:00:32 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0275C2E807; Mon, 6 Mar 2023 08:00:31 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id A2985223A0; Mon, 6 Mar 2023 16:00:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118429; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RWjL74/OQnkYsQeBKz+W/Sdt0NW8X9eOoOaYmGq20ZE=; b=vHmpKEBQ90w+/BT1zxBEOj2D77zpxSMvpvdq+0mohTN7y8DSDx1vPqH/FA5O5IELosojyc Pbsgf6BoBUtWK8CtryNMO8YbmaJ0kjXKwQ5NJtqufnKhjViihsh5+jRyPpIjSgmkGwnfkU kOUBJ2jwseUqN8N2vshQgaytk+I3Q0w= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118429; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RWjL74/OQnkYsQeBKz+W/Sdt0NW8X9eOoOaYmGq20ZE=; b=5xdvoayhMf1/lx6ek8bk0QKqS1TSIdVuKhQIbFTzLgx+/0efMZXjXRnKC35b5kA4O0I6NT H4zWj9KQFA7creBQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 5234D13A6A; Mon, 6 Mar 2023 16:00:29 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id INpHEx0OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:29 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 14/99] fbdev/au1200fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:51 +0100 Message-Id: <20230306160016.4459-15-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634896440151118?= X-GMAIL-MSGID: =?utf-8?q?1759634896440151118?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/au1200fb.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c index 81c315454428..31a3f6afd8aa 100644 --- a/drivers/video/fbdev/au1200fb.c +++ b/drivers/video/fbdev/au1200fb.c @@ -31,6 +31,7 @@ */ #include +#include #include #include #include @@ -1578,16 +1579,17 @@ static int au1200fb_init_fbinfo(struct au1200fb_device *fbdev) static int au1200fb_setup(struct au1200fb_platdata *pd) { char *options = NULL; - char *this_opt, *endptr; + struct option_iter iter; + const char *this_opt; + char *endptr; int num_panels = ARRAY_SIZE(known_lcd_panels); int panel_idx = -1; fb_get_options(DRIVER_NAME, &options); - if (!options) - goto out; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { /* Panel option - can be panel name, * "bs" for board-switch, or number/index */ if (!strncmp(this_opt, "panel:", 6)) { @@ -1636,7 +1638,8 @@ static int au1200fb_setup(struct au1200fb_platdata *pd) print_warn("Unsupported option \"%s\"", this_opt); } -out: + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:58:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64820 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922613wrd; Mon, 6 Mar 2023 08:03:23 -0800 (PST) X-Google-Smtp-Source: AK7set8EEpthOtmR/e4dA4SKCf04sJPmRlfclMegKzavIL50G5jjpQF5d2HQp7Xl4V6MViDOaRsM X-Received: by 2002:a62:38c3:0:b0:5a9:b7e3:2ed1 with SMTP id f186-20020a6238c3000000b005a9b7e32ed1mr9533642pfa.18.1678118603045; Mon, 06 Mar 2023 08:03:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118603; cv=none; d=google.com; s=arc-20160816; b=NR2qeZzoG/qJIvcGiH9QK9Y0ovd/EVYXogxti6ymVg2AYoCWOoDPdJVSQkRIZSr3Sp xNlrSaIU9C9kC0Q+s04f8NC1TaxhF6q+AdPNEPJqJb121/qBOlRFUlz8dBcfpg+GugfH yeRqE4n8G2PRcNjixXFn90yqXX5OPS+mtOrTypp5wn4N1wW1DLRvAPfLTAN/lJI7JLkS 1I5o9ayv7cX8+yW10jqM73SLEkicGmeocWiaO3zuH7r4NW5xTmkkA8zBJ6V7DV5NmpVC CpZurJzl3Kw2hixVfY+G9yjmIkfGyFVMAs0kYGV/rk/hMjw8xu/bj1FSJnZjQSocl2lb tnAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=7NWpiNTTADv8jaNfklTWFL4Y9dqUHmm40DnGgzqtQYo=; b=TBsLMEyalN0RQxCYQn2cL8kO5lIpf9uF7vFz00kAGELxmfEiL3V0FY1EW/9rBym/Zm D5OI6VuMZcTo0AZbBmIBsasoi0mJCwDu4XM1jyFX03CVDWyyZYA/xPA4b3uNJBtnty7f G4nlIMok/KvHpWx6iwmzwr4l4g3abnXvc8zZFr3YMZWlFRDRB8M7vrNchn6utl1RxIac fX74j6OXqhGFKrQLXT1GBQCkq0FMrzybzCuyo0bcGVwBbSvoUd6MpIAG4j8NLYdVogyS bZnPIyEqB3i2nETSGI/eh6tGKzpPkccqrT5/h9sAImvFTQCyENtT85xeQrVeL7F6KWWA lQJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=CxbOhQdM; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g14-20020aa79f0e000000b005e06c0a9852si9134667pfr.179.2023.03.06.08.03.03; Mon, 06 Mar 2023 08:03:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=CxbOhQdM; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230248AbjCFQBM (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41330 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230111AbjCFQAd (ORCPT ); Mon, 6 Mar 2023 11:00:33 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12A8C2410D; Mon, 6 Mar 2023 08:00:32 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 05B181FDF9; Mon, 6 Mar 2023 16:00:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118430; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7NWpiNTTADv8jaNfklTWFL4Y9dqUHmm40DnGgzqtQYo=; b=CxbOhQdM0DmSSvSs4ws3YFEGRCq95427JdDIkqGjr3JXPgm8LNMlSjJzWXVjv7RdiUXlDg 3xK0HI3EBMbwz8QuyLjlRQ85o4TAIKmKFAm2V/3eU6fgvqyTKI34739C/DlpLYlhzJiCk6 fBRiMqqfb+mKNtoN4pn4MOJppqx0ZJU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118430; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7NWpiNTTADv8jaNfklTWFL4Y9dqUHmm40DnGgzqtQYo=; b=7ML7Gw2ReccPA0qqrfpdz0dm1kcgFqlbmBv2/WjBRkT6jfoGv9mWpQ59x49OFr1eCw3raH jSq1pImIDYAqu8Dg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id A6A4413513; Mon, 6 Mar 2023 16:00:29 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id oPnjJx0OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:29 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 15/99] fbdev/cirrusfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:58:52 +0100 Message-Id: <20230306160016.4459-16-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634892198424429?= X-GMAIL-MSGID: =?utf-8?q?1759634892198424429?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/cirrusfb.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c index ba45e2147c52..fbf9281a7004 100644 --- a/drivers/video/fbdev/cirrusfb.c +++ b/drivers/video/fbdev/cirrusfb.c @@ -2336,10 +2336,20 @@ static int __init cirrusfb_setup(char *options) if (!strcmp(this_opt, "noaccel")) noaccel = 1; - else if (!strncmp(this_opt, "mode:", 5)) - mode_option = this_opt + 5; - else - mode_option = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + if (!strncmp(this_opt, "mode:", 5)) + this_opt += 5; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "cirrusfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "cirrusfb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; } From patchwork Mon Mar 6 15:58:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64827 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922922wrd; Mon, 6 Mar 2023 08:03:48 -0800 (PST) X-Google-Smtp-Source: AK7set9Gj4tCZ4JcKcoJxwdbf1qJfhmGZ5CAHnvtlmFrs6hdmkKBTfCtdZ4x+ioUbhlbtGFk72AK X-Received: by 2002:a17:90a:188:b0:237:9a37:d86f with SMTP id 8-20020a17090a018800b002379a37d86fmr12501573pjc.36.1678118628045; Mon, 06 Mar 2023 08:03:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118628; cv=none; d=google.com; s=arc-20160816; b=P+LBVF5Od2seGqPkqxr7b83Z5vBY2xp94HMSqOXeCFasuRmZyrux9NnbXyN6brnVPs cBGDUCSed0wDroIC8PrL//uvT9tWOJTT+tGT6qKgYudnHIBhnR+QDJalJilvRwMzyr1h SHcC4N4jM1y1qe6bPNYlh8UlGgIROc39vesFc6K8upPU6pYcvuk5Wf8LSV0phZdqMEaC 7qPqmTnN63ZTrgFztiufNWGxONGr95rvDbLhKhaEZIspqhPVdx6+xo4p+fhSu5h2pZWQ o5cGD2emdCkb1uiqb9TyOIwmkg29VPgB41WCYAQn7TdUFDLCX6SyktLjxweE4CH9TIQI KzaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=A8MiP+VX4JXynIvzGoNsVlxZWAdkD76B2oWa0k5ktfw=; b=yvWq7USrGQmYUBOMYU0wTLngujpr4KsXzDTa1WBZS5m4SqwjZ/PGb3jFkoSpGs5pJL 1ls38ezZCDVAGD++neddeczwYrh5zpAFibv9yyiiHMK3Sbknb1dhvMBRO1zG85+jAQ4Q oWoshiUhSL1r5jXSUVmXyeox75hL3aUpt8zjlbFEROZTnL2FoyhfvxqtZeEQA0D/nX+U 4RBjGSzW1alDvGXJT5AmalKxyhLQcxlmnP1beoQ0JBlimQlhPZWODnB+A2nIphvMAcPG GI4usoPFRzIRq7ucWYEFE2Ueji4Gcmt0keb91je5byulvxB2Hgicvj5Q6o8PPomeS8ZJ 5hqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=OxNyYdqN; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=ejH6bE6q; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i20-20020a17090acf9400b0022645e2a88csi9958642pju.56.2023.03.06.08.03.27; Mon, 06 Mar 2023 08:03:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=OxNyYdqN; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=ejH6bE6q; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231476AbjCFQBg (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41332 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230368AbjCFQAd (ORCPT ); Mon, 6 Mar 2023 11:00:33 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1CD5E25E09; Mon, 6 Mar 2023 08:00:32 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 61EDA1FDFA; Mon, 6 Mar 2023 16:00:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118430; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A8MiP+VX4JXynIvzGoNsVlxZWAdkD76B2oWa0k5ktfw=; b=OxNyYdqNzGt/BVK1X2/BktdC9q8eovUASC6X7w7whA3TeiSQ1Eg67THvnHT6z3TpjtKSdK 39eYnVhldukJR1QK46DlFH0wkgeMKSTaFOsQas69ZsH+NSrBnO9kKWMqAnR9ay3jjSCRTv O8oxHWZ90sVmZi5m/9c8N9QbqhpEehY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118430; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A8MiP+VX4JXynIvzGoNsVlxZWAdkD76B2oWa0k5ktfw=; b=ejH6bE6q/ijYlEpllX4MbYOZUgI01BzIBJJpB1eRZecRHFOKTTUsb92a3CP5cNJHfyao9R /uVKyDuRc0jba+DA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0948713A6A; Mon, 6 Mar 2023 16:00:30 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id MGN6AR4OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:30 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 16/99] fbdev/cirrusfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:53 +0100 Message-Id: <20230306160016.4459-17-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634918786708119?= X-GMAIL-MSGID: =?utf-8?q?1759634918786708119?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/cirrusfb.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c index fbf9281a7004..c6882bff3862 100644 --- a/drivers/video/fbdev/cirrusfb.c +++ b/drivers/video/fbdev/cirrusfb.c @@ -35,6 +35,7 @@ */ #include +#include #include #include #include @@ -2323,17 +2324,14 @@ static struct zorro_driver cirrusfb_zorro_driver = { #endif /* CONFIG_ZORRO */ #ifndef MODULE -static int __init cirrusfb_setup(char *options) +static int __init cirrusfb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; - - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { if (!strcmp(this_opt, "noaccel")) noaccel = 1; else { @@ -2351,6 +2349,9 @@ static int __init cirrusfb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 15:58:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64825 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922697wrd; Mon, 6 Mar 2023 08:03:28 -0800 (PST) X-Google-Smtp-Source: AK7set/EamZYDudL1Ly0o1wwyFyYvileDdMmpPN2s+jOgFjZ8PUb/uSqkQxjTxZ0fRg8C8s/puPb X-Received: by 2002:a05:6a20:3116:b0:c6:c85f:da5b with SMTP id 22-20020a056a20311600b000c6c85fda5bmr10678261pzf.55.1678118608381; Mon, 06 Mar 2023 08:03:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118608; cv=none; d=google.com; s=arc-20160816; b=zylg7HZ1YLDmzcmlttrn/VES6yTuWJaVgQ5CfYm/misp9jknJKEUUzvCMToZBqMs5B VfEQTt8dut3gLNp1yvh1OClnTLWqrtmvVBpllaq23dLN5MUyoG3A4bnvnGr97joRkU/D cFUv+t3cCWeGjw55p8Du9cdFmfWCzSRbvF++wFk8eRY086KWlYSz4fxzYwbqgh+e8Whv UH4JR4cyZhOr2vCwGbJs+dge4GMlelMyPRCS9Z4FPy6rRK/t3raTPF1qAIuz9hCe+kZn pKJT9YADWeNl4krIPW9AypTH3dADyOOByGaMudwz+8bl+yhREpOPioGDqrdYXWQggYUJ toFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=JQIsIu55QrbMD+roUSu/pu2hXLgdTGeDRwRmg1SZaxQ=; b=uAw1hPFQ8RFPLuACaeQgeRLBtz+T8qzDcQy1XbnsYI13Xn4HHUsnVOkiZnQ0Sl/Jk9 zEvuWH9o6yELIyN/NJAikOprycBXu46UQvaV3RpOejQ8ToJcRrPMBffGANoOShPu28sb OZFwJwLpNVdfqovsfdthFFtRHYc03ahgMcLmEUgfWyej+aTTYdd5BKTLJFQzQ/Cdd6I5 jI9iP03XQ/eOl42M57oPfi/SwVYkSgzYUYTDlCvKoAxChIsgdJdDYLmZemo0H0zJsb1p 3khLktoO8oxRWH7liAZE2z/zumTX/CWLOllADGAZRFWIX5c5opOVMw9TiSvyNmITEk41 AGZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=uN9so4BI; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w1-20020a634741000000b00502f49f43easi9649161pgk.338.2023.03.06.08.03.09; Mon, 06 Mar 2023 08:03:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=uN9so4BI; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231251AbjCFQBY (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41352 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230370AbjCFQAe (ORCPT ); Mon, 6 Mar 2023 11:00:34 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96D302ED62; Mon, 6 Mar 2023 08:00:32 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id BA1491FDFB; Mon, 6 Mar 2023 16:00:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118430; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JQIsIu55QrbMD+roUSu/pu2hXLgdTGeDRwRmg1SZaxQ=; b=uN9so4BIslIye3gBaH19j80T8CD1IdD9LG3gCXj0ID52cAM0cYf7tj77QLgToEH0tkobLG xM5Vv3cMGY6vRUfSqgeT8UByO3EAfREoVKqGTnrvJxOLhDL1f//JyD45uBvYhL2FxwHSlA pB+ySH0mjQbf6fRENPbicqBe/pARPtk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118430; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JQIsIu55QrbMD+roUSu/pu2hXLgdTGeDRwRmg1SZaxQ=; b=gioW6i5JjpU/EEtlKhgasZGROXwm8elWxVS7AWSnms3A9mxBeNoeZImnD6FtNLU93II74L 2PWN55iPhYPPoDCA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 65C2B13513; Mon, 6 Mar 2023 16:00:30 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id GDf4Fx4OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:30 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 17/99] fbdev/controlfb: Remove trailing whitespaces Date: Mon, 6 Mar 2023 16:58:54 +0100 Message-Id: <20230306160016.4459-18-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634897801055494?= X-GMAIL-MSGID: =?utf-8?q?1759634897801055494?= Fix coding style. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/controlfb.c | 34 ++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c index 77dbf94aae5f..82eeb139c4eb 100644 --- a/drivers/video/fbdev/controlfb.c +++ b/drivers/video/fbdev/controlfb.c @@ -113,14 +113,14 @@ struct fb_info_control { struct fb_info info; struct fb_par_control par; u32 pseudo_palette[16]; - + struct cmap_regs __iomem *cmap_regs; unsigned long cmap_regs_phys; - + struct control_regs __iomem *control_regs; unsigned long control_regs_phys; unsigned long control_regs_size; - + __u8 __iomem *frame_buffer; unsigned long frame_buffer_phys; unsigned long fb_orig_base; @@ -196,7 +196,7 @@ static void set_control_clock(unsigned char *params) while (!req.complete) cuda_poll(); } -#endif +#endif } /* @@ -233,19 +233,19 @@ static void control_set_hardware(struct fb_info_control *p, struct fb_par_contro if (p->par.xoffset != par->xoffset || p->par.yoffset != par->yoffset) set_screen_start(par->xoffset, par->yoffset, p); - + return; } - + p->par = *par; cmode = p->par.cmode; r = &par->regvals; - + /* Turn off display */ out_le32(CNTRL_REG(p,ctrl), 0x400 | par->ctrl); - + set_control_clock(r->clock_params); - + RADACAL_WRITE(0x20, r->radacal_ctrl); RADACAL_WRITE(0x21, p->control_use_bank2 ? 0 : 1); RADACAL_WRITE(0x10, 0); @@ -254,7 +254,7 @@ static void control_set_hardware(struct fb_info_control *p, struct fb_par_contro rp = &p->control_regs->vswin; for (i = 0; i < 16; ++i, ++rp) out_le32(&rp->r, r->regs[i]); - + out_le32(CNTRL_REG(p,pitch), par->pitch); out_le32(CNTRL_REG(p,mode), r->mode); out_le32(CNTRL_REG(p,vram_attr), p->vram_attr); @@ -366,7 +366,7 @@ static int read_control_sense(struct fb_info_control *p) sense |= (in_le32(CNTRL_REG(p,mon_sense)) & 0x180) >> 7; out_le32(CNTRL_REG(p,mon_sense), 077); /* turn off drivers */ - + return sense; } @@ -558,9 +558,9 @@ static int control_var_to_par(struct fb_var_screeninfo *var, static void control_par_to_var(struct fb_par_control *par, struct fb_var_screeninfo *var) { struct control_regints *rv; - + rv = (struct control_regints *) par->regvals.regs; - + memset(var, 0, sizeof(*var)); var->xres = par->xres; var->yres = par->yres; @@ -568,7 +568,7 @@ static void control_par_to_var(struct fb_par_control *par, struct fb_var_screeni var->yres_virtual = par->vyres; var->xoffset = par->xoffset; var->yoffset = par->yoffset; - + switch(par->cmode) { default: case CMODE_8: @@ -634,7 +634,7 @@ static int controlfb_check_var (struct fb_var_screeninfo *var, struct fb_info *i err = control_var_to_par(var, &par, info); if (err) - return err; + return err; control_par_to_var(&par, var); return 0; @@ -655,7 +655,7 @@ static int controlfb_set_par (struct fb_info *info) " control_var_to_par: %d.\n", err); return err; } - + control_set_hardware(p, &par); info->fix.visual = (p->par.cmode == CMODE_8) ? @@ -840,7 +840,7 @@ static int __init init_control(struct fb_info_control *p) int full, sense, vmode, cmode, vyres; struct fb_var_screeninfo var; int rc; - + printk(KERN_INFO "controlfb: "); full = p->total_vram == 0x400000; From patchwork Mon Mar 6 15:58:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64823 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922665wrd; Mon, 6 Mar 2023 08:03:26 -0800 (PST) X-Google-Smtp-Source: AK7set9cph8fnsZCv665Oaz0oY3DEejqjqQKdFO4ca8P7evxe+hnmckyldWCK9FsBZqaQd9hHpko X-Received: by 2002:a17:90a:fe8c:b0:237:64dc:4b65 with SMTP id co12-20020a17090afe8c00b0023764dc4b65mr12118708pjb.21.1678118606189; Mon, 06 Mar 2023 08:03:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118606; cv=none; d=google.com; s=arc-20160816; b=qyVxKqjsfzyOTgURYl2Gnj3afwxACI27h9vhpBwgnuwzc+chE7vfa9m4nt9WfcN8h7 jDQnIg5+6NaSojiDFuT/aGBEeXSy6SaCxLBCvJYql/QD+yVTSpTU0pTdHqiaYBKISuwD CQu1VqrdA5e1O3bclnwjNQhJs8VLjtJgoJs38FiXeOV+uOyrU4yqvJtl1zCegqYIFWUr LxHjFNfePdeiQZMRhGDtkkfmQDptJkYUr7FtS864L69vJrFYCZ1QWAHW8SEA579n16vT dh/OfAZPK6NmECTjNk4v46vXd0ZkuVQ/pEwslk/SEaiKbYXlVjF2mkcOrqOuhC8Qhkwd WKoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=AjH3WVe5o94jDkM7yEZsxRS+3f7/RHj2F55b95q4x1E=; b=ulHjN1GKie3s/pqSO8E+G067zrcU3ZyZSyi+br571Z0dCAb8GQTtHSL8G5CGY7OGOx BFM7EfAJNhC426C9ckqMtLmKKfNGkF/8v9rNfoEN+HZ1Tt5bC/b1Rfq5KFBMDUh26+fD RxI7F/E+A90lNDIPbCWgujb9juUlPjVoG8b6+QsYKPhIPRjP+n7guCFFFVZTU0NAQb6r u/SPeY6R3l7jp5fhfFEVClMaepO5qVydz0+R5EhMgBprccwE8KJRD/PAxytxBknuymTs u15oSXWxW+mBqMa/b8fSA/cq5Zt+suJYIp87TGag3vm53iVXR4aVeKohydiTG8O2DD6N pKOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=foyarjqh; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p16-20020a17090adf9000b00230ba341251si12192091pjv.82.2023.03.06.08.03.08; Mon, 06 Mar 2023 08:03:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=foyarjqh; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231341AbjCFQB1 (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41350 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230377AbjCFQAe (ORCPT ); Mon, 6 Mar 2023 11:00:34 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96C712ED45; Mon, 6 Mar 2023 08:00:32 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1D9CB1FDFC; Mon, 6 Mar 2023 16:00:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118431; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AjH3WVe5o94jDkM7yEZsxRS+3f7/RHj2F55b95q4x1E=; b=foyarjqhUwYfzJLI9Rk+vgkn/vSwG+NV6ux+FotAEWdmUhdlM9tupYI+o4kueRMO3oqT8A 5bU3P4WHTc50auhSKvHrMWopUXzDOfphYwllkUF7ofaItyqkuOG/ZqZUxtJbMbna6sZc00 8GvJDcv0kOdiV4VcfCwdQjm+Iw5Azyg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118431; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AjH3WVe5o94jDkM7yEZsxRS+3f7/RHj2F55b95q4x1E=; b=KCcIWV4lZmGZdaGSl/yhE03Jn3uBMbf7nPposO/l7vqj9PzWGM8fMKHJJcsoa4NmRKA4R5 +5PZOMCODOdQaLAg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id BE9BA13A6A; Mon, 6 Mar 2023 16:00:30 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id mCTALR4OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:30 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 18/99] fbdev/controlfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:55 +0100 Message-Id: <20230306160016.4459-19-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634895717452980?= X-GMAIL-MSGID: =?utf-8?q?1759634895717452980?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/controlfb.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c index 82eeb139c4eb..3633e874ab2e 100644 --- a/drivers/video/fbdev/controlfb.c +++ b/drivers/video/fbdev/controlfb.c @@ -31,6 +31,7 @@ * more details. */ +#include #include #include #include @@ -795,14 +796,14 @@ static void __init control_init_info(struct fb_info *info, struct fb_info_contro /* * Parse user specified options (`video=controlfb:') */ -static void __init control_setup(char *options) +static void __init control_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "vmode:", 6)) { int vmode = simple_strtoul(this_opt+6, NULL, 0); if (vmode > 0 && vmode <= VMODE_MAX && @@ -830,6 +831,8 @@ static void __init control_setup(char *options) } } } + + option_iter_release(&iter); } /* From patchwork Mon Mar 6 15:58:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64832 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923112wrd; Mon, 6 Mar 2023 08:04:01 -0800 (PST) X-Google-Smtp-Source: AK7set/68NAYESMqZXH+blOplZe0E8IplaKyNM5EOuiAtP6eCghanbT/kdkmVJlqM8xLSZocL2jw X-Received: by 2002:a17:907:2075:b0:878:714b:5e16 with SMTP id qp21-20020a170907207500b00878714b5e16mr10983829ejb.28.1678118641453; Mon, 06 Mar 2023 08:04:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118641; cv=none; d=google.com; s=arc-20160816; b=Vff5xA0rCUDLlrt0Wauz84O2oAshEhRNbpnAlUYorp55wS+SD0q1uOxJHh8G9/7s1Y CPUniXTCbDCoP5UWyGu1VQZVpm8xSUAdh7hoeQ8z12ql7Z254rfU1e10bB4L98+Q9i57 kNqzjnN/TQAvaLOESqqwruZ1XVfyetvObz7LLoKfGSZSOCjQb6me0N31viDSNmkp01U1 IUA4A6eg0qszz+Pr8C1zKCGNvstJLQjugGdOyyyanEKKXz9qGFNwqQjzVeuuDp4f7Vk8 XSw6aAq5exwpoXeJpadG6bzBpj/i0YILWbHFIDPLfaykCct1f7qcaewWYoFSKlQ5dT84 oJWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=Maka02GpjBPu0U5NCBjoSssgaATU0MBLIYe2pP3DK5E=; b=d+UiQyiYswGnchrJ/MO0gmL6e3LFWJaKuMYvqBJJ5ttlpOneodhQBVzVOKHboLJ0k4 i7SqOjVMmDdyUq5HkMfYnt+l7vh9ALBCKN+kbs/hOdHZg8JulouHOqpSy30csGTleZBr XhH4fUKpKRfmTnaWSWcJAuQauE0kaZzlYX1gZ8eWauz5YiTbSsU8yTPxuYDcZmO+DVRq f1Xm7usQroE+LF2Rx4YQu5vRcn6cNg8KrE0k70cnmFbM4BNvvOaUh4bHpA4O19pk8Gyh eY6Ca3or77lob3xZLvRGOGUVODeyYndPq24pe+NiRPbnHgE8NM2B7hdAlaIYbMEyCpS7 HHYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Q61VwCzN; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id zo18-20020a170906ff5200b008d127b89dc1si10229205ejb.769.2023.03.06.08.03.26; Mon, 06 Mar 2023 08:04:01 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Q61VwCzN; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231313AbjCFQBb (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230371AbjCFQAe (ORCPT ); Mon, 6 Mar 2023 11:00:34 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B560728879; Mon, 6 Mar 2023 08:00:32 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 7515C223B5; Mon, 6 Mar 2023 16:00:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118431; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Maka02GpjBPu0U5NCBjoSssgaATU0MBLIYe2pP3DK5E=; b=Q61VwCzNyrn+qGYMP0+l+bsNoqXWXFAjijkCeqXJH+UtFBh5a2z2vFY3Bbw0558Qrorcev GWAF/0Kl5vmydFmQzb3ohGQX16qUH/UXXWsHLZ8zS8FDLbE5+Cy6lZiUOTd3rfpL92cifD 4ggP7sccGpFAk9OFQmdQ260I4MWMjzk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118431; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Maka02GpjBPu0U5NCBjoSssgaATU0MBLIYe2pP3DK5E=; b=CnNrnz6CzTUIsFppWTdn4lA6p5yBImUwgrHMKjHqNWv8/0nXDqPQH6l/fTtC+bzkuwD1BC JXcnfnYoS2EPMkAg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 223B813513; Mon, 6 Mar 2023 16:00:31 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 0EdyBx8OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:31 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 19/99] fbdev/cyber2000fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:56 +0100 Message-Id: <20230306160016.4459-20-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634932285159690?= X-GMAIL-MSGID: =?utf-8?q?1759634932285159690?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/cyber2000fb.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c index 38c0a6866d76..939dde664b53 100644 --- a/drivers/video/fbdev/cyber2000fb.c +++ b/drivers/video/fbdev/cyber2000fb.c @@ -34,6 +34,7 @@ * entering standby mode.) */ #include +#include #include #include #include @@ -1486,17 +1487,14 @@ static void cyberpro_free_fb_info(struct cfb_info *cfb) * video=cyber2000:font:fontname */ #ifndef MODULE -static int cyber2000fb_setup(char *options) +static int cyber2000fb_setup(const char *options) { - char *opt; + struct option_iter iter; + const char *opt; - if (!options || !*options) - return 0; - - while ((opt = strsep(&options, ",")) != NULL) { - if (!*opt) - continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, opt)) { if (strncmp(opt, "font:", 5) == 0) { static char default_font_storage[40]; @@ -1508,6 +1506,9 @@ static int cyber2000fb_setup(char *options) printk(KERN_ERR "CyberPro20x0: unknown parameter: %s\n", opt); } + + option_iter_release(&iter); + return 0; } #endif /* MODULE */ From patchwork Mon Mar 6 15:58:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64828 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922992wrd; Mon, 6 Mar 2023 08:03:54 -0800 (PST) X-Google-Smtp-Source: AK7set/y0JirB+6MkU5uLrAIg+dtwngyJLEg60VjO3kYnZDu7UWQI6xqmcnU4tXX5OjrIfe5BqEg X-Received: by 2002:a17:902:720b:b0:19e:6cd8:84de with SMTP id ba11-20020a170902720b00b0019e6cd884demr9495347plb.24.1678118634299; Mon, 06 Mar 2023 08:03:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118634; cv=none; d=google.com; s=arc-20160816; b=LFSD4pj9lPlIgVsFwUgXJ0Xp6e8fXXKHTvOWuJXMVBWlXsIm5+9Z4tP6L3Mp6OuCBz kY8Bd5xsjaElOuB5AVb3yBS1qT92LJAd+e7Eqyar6YKViFQnYcQcuRp4BgjdCNCaih05 2+6T5ZVzKUNmoVGxMotX1GsWlWJFYMO7pf95AjNbjkw2z2+1elU03M1VqU3dxvLQF5vd PtL7JQC1EN84DIlDe6pwYLfyROewmVYupjRZ2Vov8dU/1pMOtgIkpGAb0lLZd+xoJwk9 IiG079MmpwpOP0+8tFXE8gWD2l5N51o/pES8ZgbLyZrYmhLdFX5rKMVbViJ9suqn2V2S h9MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=pEiS628a+gvdqwiq6tmn4mXS8MTIkCO8G82VtcnGElY=; b=CDkwJkU7DRMyNxJihJXE2wv7geuO9nBnC0qdWtmCuhyxbHQitpLYlTCWUDC7+SaxiI l00iltMHdqQhH0X3+K0/+o5pK+mpghct6Z2vWJbajEnIC1fpCGEbgHV5zinlv+Yq1oRM 0CrsLRSFASNcXyY3ze4hmclUGFCkOclnKlWwpS5XHFqmwIeKll8N/7ghFvKrOOlqeIfa 8ZgrZfiZEtAtswus7YEjewRyWq6Ul2OR/XCDqoDvgV4acOEnTxlyrhAo9QytkgPYBtP8 ohU3hZDekyZgK8rm90gTcgSU/mzjRXF1+CFq64TSV9hNCjfuiRDltcn5apt3i55AlOkz U3VA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=dX8GA3Zm; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=E5EiM8xH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q3-20020a6557c3000000b005021d910dc7si9423783pgr.877.2023.03.06.08.03.27; Mon, 06 Mar 2023 08:03:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=dX8GA3Zm; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=E5EiM8xH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229748AbjCFQCH (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41360 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230382AbjCFQAe (ORCPT ); Mon, 6 Mar 2023 11:00:34 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 456C12E0FB; Mon, 6 Mar 2023 08:00:33 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id C9BCE223B8; Mon, 6 Mar 2023 16:00:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118431; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pEiS628a+gvdqwiq6tmn4mXS8MTIkCO8G82VtcnGElY=; b=dX8GA3Zmo6YD1+zNtueih3J4rETzzjRTqyuUkOb20PDnlUGLN4RJ/+tZwKpMK95QRQE4j+ NXO6UypxHvk7HsFEzmEOSbs5j24wY63bfvLbAt9GcjpqN5Qgf/aQhDDe+v2o6SQ68xQib8 shvm9dSkb3Hr8vyE9WpCjeKjFRZRZ+U= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118431; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pEiS628a+gvdqwiq6tmn4mXS8MTIkCO8G82VtcnGElY=; b=E5EiM8xHnCfGfy0KnDuv0lmlhGhpYGyaq8BYXqQSyMOwo1p3meL38IVFDFCSGpg934Mac0 kUw28k6uge0wrmCg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 797E313A6A; Mon, 6 Mar 2023 16:00:31 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id IHHeHB8OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:31 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 20/99] fbdev/efifb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:57 +0100 Message-Id: <20230306160016.4459-21-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634925216735068?= X-GMAIL-MSGID: =?utf-8?q?1759634925216735068?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/efifb.c | 46 +++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c index a5779fb453a2..1ae7574aaa82 100644 --- a/drivers/video/fbdev/efifb.c +++ b/drivers/video/fbdev/efifb.c @@ -8,6 +8,7 @@ */ #include +#include #include #include #include @@ -284,31 +285,32 @@ static const struct fb_ops efifb_ops = { .fb_imageblit = cfb_imageblit, }; -static int efifb_setup(char *options) +static int efifb_setup(const char *options) { - char *this_opt; - - if (options && *options) { - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) continue; - - efifb_setup_from_dmi(&screen_info, this_opt); - - if (!strncmp(this_opt, "base:", 5)) - screen_info.lfb_base = simple_strtoul(this_opt+5, NULL, 0); - else if (!strncmp(this_opt, "stride:", 7)) - screen_info.lfb_linelength = simple_strtoul(this_opt+7, NULL, 0) * 4; - else if (!strncmp(this_opt, "height:", 7)) - screen_info.lfb_height = simple_strtoul(this_opt+7, NULL, 0); - else if (!strncmp(this_opt, "width:", 6)) - screen_info.lfb_width = simple_strtoul(this_opt+6, NULL, 0); - else if (!strcmp(this_opt, "nowc")) - mem_flags &= ~EFI_MEMORY_WC; - else if (!strcmp(this_opt, "nobgrt")) - use_bgrt = false; - } + struct option_iter iter; + const char *this_opt; + + option_iter_init(&iter, options); + + while (option_iter_next(&iter, this_opt)) { + efifb_setup_from_dmi(&screen_info, this_opt); + + if (!strncmp(this_opt, "base:", 5)) + screen_info.lfb_base = simple_strtoul(this_opt+5, NULL, 0); + else if (!strncmp(this_opt, "stride:", 7)) + screen_info.lfb_linelength = simple_strtoul(this_opt+7, NULL, 0) * 4; + else if (!strncmp(this_opt, "height:", 7)) + screen_info.lfb_height = simple_strtoul(this_opt+7, NULL, 0); + else if (!strncmp(this_opt, "width:", 6)) + screen_info.lfb_width = simple_strtoul(this_opt+6, NULL, 0); + else if (!strcmp(this_opt, "nowc")) + mem_flags &= ~EFI_MEMORY_WC; + else if (!strcmp(this_opt, "nobgrt")) + use_bgrt = false; } + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:58:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64841 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923262wrd; Mon, 6 Mar 2023 08:04:12 -0800 (PST) X-Google-Smtp-Source: AK7set8vydbOpisrMMro4egz1CywGDOpnMr1zYL5R07MzAKVcSXe8gZZfImEDwPY28v1DQBfSpWI X-Received: by 2002:a05:6a20:8b85:b0:cc:50a9:89c0 with SMTP id m5-20020a056a208b8500b000cc50a989c0mr9516403pzh.60.1678118651885; Mon, 06 Mar 2023 08:04:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118651; cv=none; d=google.com; s=arc-20160816; b=llrCjS01LYGlD3IP1CP1Q/HDPv8RfmHYRt1WUziREKRuLhTC70eLM4cqYmcED7H0TY LD05blNomz0sZUy6AHNNyh4kX73QXKV6sqrlM67d0dX04ILMVq33Ft01Wl4kwbLeYnfE 7Sf+NUIjzBgFAeiq9gXlUwiNttZ6m3/zYGG/QB3lFRqFwmm4vlgS0JiOJkP7EWHSpqOr xxzyKJrhuKG2pOs+QhbFiVl4dY+5PSxT/hHRQkJ/rxbyetnHKDlOmT4gMWaCiwRPvXhm vbQJs6gmILLGh9DqzFA9kAECV9jAyrAdwRjdMYMA1LhZ//WEcS7mjTekMNaTnzD6YrJ/ pSIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=hsuNbEK5cNmZjtgh1jaEOO+2lStJSQ63BaMSP5TbTBI=; b=en55uBAmaSO8RoHkis3mLUhTN+jiSR5USiR7L78xzxiUaIwQvlh2HJLxW8yuaik/Wk 7Pqc4NipdGCAHSjYWnN7vcVM+K9W9DAmSI7ZqaVzDwEP/FNQTbw2rsR+GT++QnfJvW+k lJ4Wdtlxi4/HuvjdyrqFUvDHUZu52Sj+gC4EP7Aqyha86ykzeeLmoXG86ZUf5N0RxMDJ EioLMBzszQIwqmdQiGIiWl7Px5oAeQt1gh7ZreSaS0QyqRTuujqzoufNUuMZbUqIDECx XehkOp/14tVpIuTMYtWhX4M+4HMjzUuO3gtkh5GBzkNR3tkCZ0KOxajDxXt9mQ2LBKGF fTXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=W2PtrhU1; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o5-20020a634105000000b004fc29eda893si9233613pga.310.2023.03.06.08.03.58; Mon, 06 Mar 2023 08:04:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=W2PtrhU1; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229756AbjCFQCD (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230383AbjCFQAe (ORCPT ); Mon, 6 Mar 2023 11:00:34 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 81CEC2E807; Mon, 6 Mar 2023 08:00:33 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 2E2E71FDFD; Mon, 6 Mar 2023 16:00:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118432; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hsuNbEK5cNmZjtgh1jaEOO+2lStJSQ63BaMSP5TbTBI=; b=W2PtrhU1XtZoY5lNfGpPaFoDKzYTgeSj0tRyxawWRZFmHKBgaDg+/0Z4pK5mGYuQFunVtu Htxk23bxQqOpWmNW00yB0ANDJ/uweL0hrNzNO/j4epDPNU6DVv6GZsW/VoiWK/d6XBr/94 xTdRdjBYU3hl9eOsa6GCceO0d5YyDlo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118432; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hsuNbEK5cNmZjtgh1jaEOO+2lStJSQ63BaMSP5TbTBI=; b=9upyelIWdwPa7ZTceN9DS1Kjn3gRjR5M82D42y4WtXTc67HpEhqQD0/PceNo9sVLe9Di5t okM2DzMj5QT4nkCA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id CDC0F13513; Mon, 6 Mar 2023 16:00:31 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id mOtyMR8OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:31 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 21/99] fbdev/fm2fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:58:58 +0100 Message-Id: <20230306160016.4459-22-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634943425264491?= X-GMAIL-MSGID: =?utf-8?q?1759634943425264491?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/fm2fb.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/fm2fb.c b/drivers/video/fbdev/fm2fb.c index 942e382cf1cf..4f17bc8e6c1d 100644 --- a/drivers/video/fbdev/fm2fb.c +++ b/drivers/video/fbdev/fm2fb.c @@ -14,6 +14,7 @@ * more details. */ +#include #include #include #include @@ -293,19 +294,22 @@ static int fm2fb_probe(struct zorro_dev *z, const struct zorro_device_id *id) return 0; } -static int __init fm2fb_setup(char *options) +static int __init fm2fb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "pal", 3)) fm2fb_mode = FM2FB_MODE_PAL; else if (!strncmp(this_opt, "ntsc", 4)) fm2fb_mode = FM2FB_MODE_NTSC; } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:58:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64853 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923827wrd; Mon, 6 Mar 2023 08:04:54 -0800 (PST) X-Google-Smtp-Source: AK7set/7EA0gcXcOZ2uu9Sd7q42cABJYYLMwge2lI8AomuownEkkMSmaV5AwtDkXOVwNFOcaM+n3 X-Received: by 2002:a17:90b:4b41:b0:234:f4a:8985 with SMTP id mi1-20020a17090b4b4100b002340f4a8985mr12258269pjb.15.1678118694077; Mon, 06 Mar 2023 08:04:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118694; cv=none; d=google.com; s=arc-20160816; b=HkCp5HtTu4NVeyVot5br1kfF2ZiNq7h0+/x9WGhQgkEh3ebYap6ovUet9MeRYlmtWo 6/YpWzo3ZdVBVuqHgp7NpjQm8rBIV4gcgPiLI+Cc1Wntb08riVuxEvLNfMOf0CpeyP5G IHiIWErf3OD5jJIyuG+t2JxYelY4HazQEWtrAlN2Pn1LxkH9By6Cvm4DZlpzg1s9aszR XuTxNHbLXIrnUHb4y8znJSDnv5iCJ/6SX5K9wQ2hgTQ+ChuVagW7jWLbiPz75YbFw+y9 lfcaekS1KhMyyli13ACQSdP8plTIzGuuzR0Ysk8Y/OQxCcFfZmwwW3J1rs3qgVmNkIkQ n7UA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=ePH+vsZYxu4JG+mfGZow29tKllWJJQzJ3bWyonsD+Gs=; b=dX+Q4nRCmfsrXbfXMZCA06b9whq8dEHsnlScXXGnW50GYN0+8Ek3MlmLuV8/evUFvI /Oj3cQl9RLeJYS927zLlvExfc/NGS6bGzjlwsTs5Ac+Q1R8lsvs/9HidmRoU2T5KLoaB yHO7gQ5sQU2R1TRIcPaPxZnhSogNVFGEEIPsdwNwhl3lqpOJof72nAqb/K0UlmGlIQkK zGlYfgwqHXFoDLfM8YLb0ifBdiLxQHerwso7GCFn6qVNVBkwthfuJQTHTcZ3whHzbFVm pySMYs7gXg/JWZCp2htHrDjoqguML3eaubuOr3G/ypd5pSm8u6vN3J16mgq4fal4F+sW Sllw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="L/dTGMFt"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r207-20020a632bd8000000b004db77bd5bb8si9084261pgr.700.2023.03.06.08.04.40; Mon, 06 Mar 2023 08:04:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="L/dTGMFt"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229558AbjCFQBm (ORCPT + 99 others); Mon, 6 Mar 2023 11:01:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230389AbjCFQAe (ORCPT ); Mon, 6 Mar 2023 11:00:34 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DCB992410D; Mon, 6 Mar 2023 08:00:33 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 885E41FE00; Mon, 6 Mar 2023 16:00:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118432; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ePH+vsZYxu4JG+mfGZow29tKllWJJQzJ3bWyonsD+Gs=; b=L/dTGMFtUOLj0kNeAJwfnmKNsHsRs6k76a4WAHVkbosYY/HwD13HOMmCZYC0boybuM+PWS IocjSC69fha5rCaQB7Fvfh0AKtrmtoRsZfCy3NJJnMW78f08QXssu2yqtTmVdOsO7yK49l QjbLXsfJj4qAqhoGJWenec7c/ggIpKM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118432; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ePH+vsZYxu4JG+mfGZow29tKllWJJQzJ3bWyonsD+Gs=; b=Hla2Rb1vfU+0FJJXUzcnNBAPpJeQUqG4Lit3v0jNDQG/gcO2vlN1BTesMdyY6GQw9mB6Iy amza4IBQ+Zear9CA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 35DE513513; Mon, 6 Mar 2023 16:00:32 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 0GP8CyAOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:32 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 22/99] fbdev/fsl-diu-fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:58:59 +0100 Message-Id: <20230306160016.4459-23-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634987616414560?= X-GMAIL-MSGID: =?utf-8?q?1759634987616414560?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/fsl-diu-fb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c index e332017c6af6..e01281959062 100644 --- a/drivers/video/fbdev/fsl-diu-fb.c +++ b/drivers/video/fbdev/fsl-diu-fb.c @@ -1858,8 +1858,17 @@ static int __init fsl_diu_setup(char *options) } else if (!strncmp(opt, "bpp=", 4)) { if (!kstrtoul(opt + 4, 10, &val)) default_bpp = val; - } else - fb_mode = opt; + } else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", opt); + if (WARN(ret < 0, "fsl-diu-fb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "fsl-diu-fb: option too long\n")) + continue; + fb_mode = mode_option_buf; + } } return 0; From patchwork Mon Mar 6 15:59:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64829 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1922996wrd; Mon, 6 Mar 2023 08:03:54 -0800 (PST) X-Google-Smtp-Source: AK7set/fCpZ5ScXiJEDtlY8NuYN+JSuD4iDW6vebn+PPhSeNkGG1UrrXFHbfXXmAjTYAlCDgNqzS X-Received: by 2002:a05:6a21:6da7:b0:cc:c69b:f7f1 with SMTP id wl39-20020a056a216da700b000ccc69bf7f1mr15731778pzb.15.1678118634640; Mon, 06 Mar 2023 08:03:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118634; cv=none; d=google.com; s=arc-20160816; b=tajx97nOC+mfX5gJWuuS/GWwmGupuD9ZgCuVOw3k6WJn6378oXhhCFYy+koiPu+xd8 j6MzwqZtiC1CDr0Gvb6qZSVgPpm0Z+J72uVx+axN3imAbeFEmTh7F/hkn4L85E4vsqm2 CuYTrrisObZT/B6VI/NS/a6EivNwtMDOXflOnWc2YRgyap8A1ZB/h8S0EyKTbbeA+YQx HSAlwiwX3Y92UsSx1HEy5H2q485s0nZXjpTnCv+E+m7b5OXmOL0aP9hyc8n7OMUXcQD8 3irfv7DcFw7ZNLiF6KvkN0pwVy549hf7yhFjUum/yzu+HHSXxZGPDBjlm5XMgsEFGt/c y7Ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=r8sbSKETRLyIrPUgNrj8HYfSUccLKJ5NVTrzj8qYXps=; b=Sba547JFOHFuINmCzJqxbO1j5JGjhqjJN5Ie2lQGKNWEuPldYUPemkgqAFJrGogz/D oQnoGrFgxbS0Y9Lc/tSGsuWVFCMq88eSYyzMozeR+xADhGfZuKicBJDohFHethUUM1a7 5q8UDOgEpy7Gn6t1CYfOvrngYbUfCWO2+pYbcQ6seGOSdNMWXbl682a3SH3rPKZQt3e4 J7oNSiAVlWpMypeWDTJJMg3xjXm0Jzo202sC4X/0xoilmYX0D4sUxJ11tEGJTtia6h7t NildTaZhNiZ7l/6Rdu6NwLtOvHGj+Kfej1VsqVYY9Jy3gYYj7wIG/rTz8fMasxeVfgPV 2n7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=1V3izje4; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a21-20020a631a55000000b004fb1be8cd41si9120860pgm.152.2023.03.06.08.03.33; Mon, 06 Mar 2023 08:03:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=1V3izje4; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229884AbjCFQCQ (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41380 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230153AbjCFQAf (ORCPT ); Mon, 6 Mar 2023 11:00:35 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4DFF525E09; Mon, 6 Mar 2023 08:00:34 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id DF6D91FE01; Mon, 6 Mar 2023 16:00:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118432; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=r8sbSKETRLyIrPUgNrj8HYfSUccLKJ5NVTrzj8qYXps=; b=1V3izje4UBdT6eEdvZTPXwzHuwokTbT+U0fr0VrjrdSwWbxaKVWHDYk+o8xsJbl0wulD55 EgkJKztSllacJmvcww+t+uH8wu/Hu0y9CIs9Hau7lg7xOSBHqEC21BEaa0ZhU3DUCq/PGJ +xSevhZ8p/IxUWgHYZUEHc1ERvRHS+Y= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118432; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=r8sbSKETRLyIrPUgNrj8HYfSUccLKJ5NVTrzj8qYXps=; b=+zCRk8lSuN7WS5wkErelCbWaXjLRHj17SEHNV7V/M/Vvv4IeD5Q1Dgnbm7mNzYFDgmfAVS h/5CUkpuGXCvwiBw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8C52D13A6A; Mon, 6 Mar 2023 16:00:32 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id wJt9ISAOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:32 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 23/99] fbdev/fsl-diu-fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:00 +0100 Message-Id: <20230306160016.4459-24-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634925536241779?= X-GMAIL-MSGID: =?utf-8?q?1759634925536241779?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/fsl-diu-fb.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c index e01281959062..c97a9c04e8e8 100644 --- a/drivers/video/fbdev/fsl-diu-fb.c +++ b/drivers/video/fbdev/fsl-diu-fb.c @@ -12,6 +12,7 @@ * Based on imxfb.c Copyright (C) 2004 S.Hauer, Pengutronix */ +#include #include #include #include @@ -1842,17 +1843,15 @@ static int fsl_diu_remove(struct platform_device *pdev) } #ifndef MODULE -static int __init fsl_diu_setup(char *options) +static int __init fsl_diu_setup(const char *options) { - char *opt; + struct option_iter iter; + const char *opt; unsigned long val; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((opt = strsep(&options, ",")) != NULL) { - if (!*opt) - continue; + while (option_iter_next(&iter, opt)) { if (!strncmp(opt, "monitor=", 8)) { monitor_port = fsl_diu_name_to_port(opt + 8); } else if (!strncmp(opt, "bpp=", 4)) { @@ -1871,6 +1870,8 @@ static int __init fsl_diu_setup(char *options) } } + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 15:59:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64837 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923226wrd; Mon, 6 Mar 2023 08:04:08 -0800 (PST) X-Google-Smtp-Source: AK7set+Yih6w1KbUpAgl6e190VVBMy1RKa8kFZUYelISM83LOjCv6b82S19D8iAPLwnFPnYTAd2z X-Received: by 2002:a17:90a:1a41:b0:237:40a5:7cb9 with SMTP id 1-20020a17090a1a4100b0023740a57cb9mr11791961pjl.5.1678118648431; Mon, 06 Mar 2023 08:04:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118648; cv=none; d=google.com; s=arc-20160816; b=A8GtiE5NudD6Kkpdz/UWrrf3QOWOeO5OwPmzl3U1bBEhm1uV8KAj3xQUpxthU8S6FQ DE75drRFwfX7LyVuA0niXM1EZ6pk3pOr0PPF7qD/Q/+9Y1pMdNcAK96urqEBOPcvplLR PxFI1U6ghqgHSwpYvy19MzqHLxoZ739xYQU0hczEWHUmYgB2GsrpKNLaV8NRrB3o9dQ1 m3hTszWcPnbesdAupRNY7zgvzLa/WUKZP2KoBEnSJdgu6Bzdd5/3Ria4lod/PUF9kuna oAUTgBEbuOWPFAt0HorO+7hRQ+nLH2eTAAPFX9q31k6dJPAuaX7bRMCzyIMEkzoA9UJV tjrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=Rlw6Y9HytpkB3h8X3sYp9Q/5dj2jl9fyg6laIqBFHmA=; b=PdwxCqO2mDbiHu/35an9wPPcHiFv0Vj+vy8LQFA0vMm4KmslosZ6RBKwr+TMqa5tlI Hr9Tl8SmjYKHpO7m4TBb2A1bVb8cLX1wlLgmCU7FRihNVnlIvEIks7rbct1V8rKzEgp0 z82rnkLyCq+Cc3hQhOmxGjp8z+0cxrVSpQdfR8zBtdZgPh4Usgo0qRwn71CIu8TPTA7/ igsWNdherJAS6VXLsVGtQ7CkhnFBMgw50SVXE3sKxFSDlhR+tAZITgndl6OBjvsjCSGM kK+htl/U5UfqkC8CYiLu/LlZdz7U+KInIxATOrRaldfBFyFn43OoPlouElrvYFJVEWgl EfYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=UA0AU+8J; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d11-20020a17090a498b00b00229f5cf70f9si9309862pjh.107.2023.03.06.08.03.54; Mon, 06 Mar 2023 08:04:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=UA0AU+8J; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230280AbjCFQCS (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41394 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230396AbjCFQAf (ORCPT ); Mon, 6 Mar 2023 11:00:35 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A5D7A28879; Mon, 6 Mar 2023 08:00:34 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 3E68A1FDEB; Mon, 6 Mar 2023 16:00:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118433; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Rlw6Y9HytpkB3h8X3sYp9Q/5dj2jl9fyg6laIqBFHmA=; b=UA0AU+8JNLwhTqGrlpZIn9kcDz7Pgg2tC5sBRfYuOum/1ZRLNPGUgOobCxgPjF/b49X92m X6VesbrhU3/K1VgbkEemX3jDIq9pyokGPfsW+8+AmMpIowBtz9z2WUGydPYIgwFjEXX6hx QryOCn3keLR0ITMjl5mQKPsguZo2B4I= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118433; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Rlw6Y9HytpkB3h8X3sYp9Q/5dj2jl9fyg6laIqBFHmA=; b=b8tJbPSYaNtJ/8Uk5mCRRx6gPRMZLLKvfcW2ZfPdtD11XP/hPD5110toEAPpfNQjnjhchb JJZWioCGPKdTbxDQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id E36AC13513; Mon, 6 Mar 2023 16:00:32 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id EKPFNiAOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:32 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 24/99] fbdev/gbefb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:01 +0100 Message-Id: <20230306160016.4459-25-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634939819490543?= X-GMAIL-MSGID: =?utf-8?q?1759634939819490543?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. Allocate the copy's memory with devm_kstrdup(), as the driver parses the option string once per probed device. Linux will automatically free the memory upon releasing the device. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/gbefb.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c index 000b4aa44241..5330aa6029ca 100644 --- a/drivers/video/fbdev/gbefb.c +++ b/drivers/video/fbdev/gbefb.c @@ -1083,7 +1083,7 @@ ATTRIBUTE_GROUPS(gbefb); * Initialization */ -static int gbefb_setup(char *options) +static int gbefb_setup(char *options, struct device *dev) { char *this_opt; @@ -1108,8 +1108,9 @@ static int gbefb_setup(char *options) gbe_mem_size = CONFIG_FB_GBE_MEM * 1024 * 1024; if (gbe_mem_size < TILE_SIZE) gbe_mem_size = TILE_SIZE; - } else - mode_option = this_opt; + } else { + mode_option = devm_kstrdup(dev, this_opt, GFP_KERNEL); + } } return 0; } @@ -1132,7 +1133,7 @@ static int gbefb_probe(struct platform_device *p_dev) ret = -ENODEV; goto out_release_framebuffer; } - gbefb_setup(options); + gbefb_setup(options, &p_dev->dev); #endif if (!request_mem_region(GBE_BASE, sizeof(struct sgi_gbe), "GBE")) { From patchwork Mon Mar 6 15:59:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64835 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923157wrd; Mon, 6 Mar 2023 08:04:05 -0800 (PST) X-Google-Smtp-Source: AK7set8BZ+UNfyCmUhU+EVElfr+aSpxY4hrE8HK0jZN5320wmVpS8AYLKxWjLRORsfN3oVuzeux9 X-Received: by 2002:a05:6a20:690e:b0:cb:f76c:ceda with SMTP id q14-20020a056a20690e00b000cbf76ccedamr8749742pzj.22.1678118644643; Mon, 06 Mar 2023 08:04:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118644; cv=none; d=google.com; s=arc-20160816; b=LTHyUqo614Gzfjc7Ol+RAbJvKjoXzVQBM5laaOTgx8FuN/vGLY7+FLZgdnhtOLqiiE MWMq60zTomOISDgae6ZYEdEdXrAAy9XcgaC9jzDdnfDz6OrdumKkr+CC/Xfi9Uje2jy2 vzPxB1nk5ozxqKJwzAY9yagLVB5+S/wSLWAFSXhWxNlcgbxy53V1RNJZmqlyg8mJMK+7 56sEx4kfewwzvnO0x7vxeaYdCMvpmdWyoToh0UBgPIngtdQydy7ULBPsghdbJBT4w/DL XKhQht99VmBiVJDQt3B8nuCQxFWITqBCVRFMd28DFs9oc73IRaV/nakT9qLqI9PbCk9k H1pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=FxTnA/4g2gQ8QoHWKF4602AiCImq3uJcQGAx0xAZhD0=; b=rPE91YTSBrjYcPnKgSV9pyrOVEnAItQxXZm3IizQ35hOeHtpj5ZP0BHFIjC0Sdlb7f 8/S27vUGfmhBHHpe42cBmPL8fbh8Uotc28hNerBzVjCEgwmXuJbD3GDUtBD0VqrlFaZx erYhhB/5cyA9RPAkjZIcfcOaNxs/aaKgleasf0rhFTPWmmkDUxmaCjMP9MLZQ97TmGRp Rf2FvUz/Aibic7Dat4h6AV0zmDuag7P2zagNTvIePiWbeYHFgs2Fza/LDoxdlwqb0lt/ GJjm0GbnnEsV5QJO4HDYB2HPwQMvohuW1+gtxg4gU0llIeIQi/ndcI2uExB0EneLxIY/ G60g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="R1JJfkm/"; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g9-20020a655949000000b004fb8fe66ef7si9954314pgu.221.2023.03.06.08.03.47; Mon, 06 Mar 2023 08:04:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="R1JJfkm/"; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230199AbjCFQCL (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41398 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230400AbjCFQAf (ORCPT ); Mon, 6 Mar 2023 11:00:35 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E08342E0D3; Mon, 6 Mar 2023 08:00:34 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 9462F1FE05; Mon, 6 Mar 2023 16:00:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118433; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FxTnA/4g2gQ8QoHWKF4602AiCImq3uJcQGAx0xAZhD0=; b=R1JJfkm/Po0LNM1CAqRrM/YR42o67MYbo5KaZKOGJfLcTEyLBZ9ZsaP7wsOhttSMjHMGYp 20bx9U5hifW5XESEpB9lAN8xFuPNFIkwKuAFbmm8H5OfZmbj30JcqLLpRxfhtYVUDTjyHh f6d0E+pRl6FtacyKvH7UGcim1QXyQWs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118433; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FxTnA/4g2gQ8QoHWKF4602AiCImq3uJcQGAx0xAZhD0=; b=ZH/y6rh99TWEiPVSauQR7+ZZYGNj4Hb9vv9syDGW1/KxBZrdHZuv5l2oWN2YvtL9VhImrN 1xHXKFEjthqY+QAQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 429C013A6A; Mon, 6 Mar 2023 16:00:33 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id WOd+DyEOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:33 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 25/99] fbdev/gbefb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:02 +0100 Message-Id: <20230306160016.4459-26-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634935980847650?= X-GMAIL-MSGID: =?utf-8?q?1759634935980847650?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/gbefb.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c index 5330aa6029ca..36651bb6006d 100644 --- a/drivers/video/fbdev/gbefb.c +++ b/drivers/video/fbdev/gbefb.c @@ -9,6 +9,7 @@ * more details. */ +#include #include #include #include @@ -1083,14 +1084,14 @@ ATTRIBUTE_GROUPS(gbefb); * Initialization */ -static int gbefb_setup(char *options, struct device *dev) +static int gbefb_setup(const char *options, struct device *dev) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "monitor:", 8)) { if (!strncmp(this_opt + 8, "crt", 3)) { flat_panel_enabled = 0; @@ -1103,7 +1104,7 @@ static int gbefb_setup(char *options, struct device *dev) default_mode = &default_mode_LCD; } } else if (!strncmp(this_opt, "mem:", 4)) { - gbe_mem_size = memparse(this_opt + 4, &this_opt); + gbe_mem_size = memparse(this_opt + 4, NULL); if (gbe_mem_size > CONFIG_FB_GBE_MEM * 1024 * 1024) gbe_mem_size = CONFIG_FB_GBE_MEM * 1024 * 1024; if (gbe_mem_size < TILE_SIZE) @@ -1112,6 +1113,9 @@ static int gbefb_setup(char *options, struct device *dev) mode_option = devm_kstrdup(dev, this_opt, GFP_KERNEL); } } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:59:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64833 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923135wrd; Mon, 6 Mar 2023 08:04:03 -0800 (PST) X-Google-Smtp-Source: AK7set8GwOPhPwhpU7Vh+9TGII3+JeuJk8Eq8EFwPZ5ihuuHqwPPundC7a7kuUIlbl2yTi4dxao3 X-Received: by 2002:a17:90b:2241:b0:237:29b1:1893 with SMTP id hk1-20020a17090b224100b0023729b11893mr11174551pjb.46.1678118643323; Mon, 06 Mar 2023 08:04:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118643; cv=none; d=google.com; s=arc-20160816; b=aqECd7IKqZHBQoyT/c0M5r2guy3xP/fas80FtW6s/L/vA5Y2Z5Pwi/Y9MfXtIcYyCQ 1NppoLPv6jYR06Q6g02dI/48gMz/WLe81rfk3AfU480YCrfAxt3uXNYA4IkoBldP+VdT l84QMGjSjFlSfMv50NX7ixDlpUAVZzvIEA3nMwSJQcVr9f+bOV19A8E6IGfDQwzPAxKe AY7RcWv1PtUKpJhPyG6e7lkoGCD3ZgAtSzKDjWegzE3FVkPnOfXn675EGUdREZHvKmqR Z+7WzSL04Wf7/k+tLxFSOEx72iazLq2i6hK6iH8aydrgQd/XuMHTkV4oAo1kT6DLHCVO TrWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=78fsQ7KT7qSrtly2mvkXihDfcDaUcc6ompl2U420mus=; b=kkbprE9DvIMIR7M+9/+ZlxWOXPmtnaCwD3fMaAODOTD7fypCI/0HYAonkJtLJaH/rk KoDL49ubcblQngGRccfx1EZsMsjR1Z20ygvyMf5xyuZ6YEPE1XBGcK4PAO+HG/oYGCst tjb+2jtifREESSWC207QA1+0QPyj5gyviWRA1RRUp5MYysEm4rXky8wjnSXG8yBgSaBd wrOk4YtIbGl4X31IIfgeu1PeEg/zxRCTfeJBZ7DOEJ7f3OLxSvNg8ePyBrcMZTXwkKmN k0EtAIF35CQysdlk/xvZmRM78NBq2cU8mI1VMQS/1yjvTc2BsxdfG3xNkRZaQIv/g/hG 2oQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=tosgSDfD; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s4-20020a17090a880400b00234b3d276b0si9016445pjn.94.2023.03.06.08.03.45; Mon, 06 Mar 2023 08:04:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=tosgSDfD; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229576AbjCFQCW (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230413AbjCFQAg (ORCPT ); Mon, 6 Mar 2023 11:00:36 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4D1A42410D; Mon, 6 Mar 2023 08:00:35 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id E9BAC1FE0A; Mon, 6 Mar 2023 16:00:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118433; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=78fsQ7KT7qSrtly2mvkXihDfcDaUcc6ompl2U420mus=; b=tosgSDfD6XMO3Va3mwPRHkyncOiDlsB4YwZjvuAM9a2eQcv49zFwQPqIWijD+fZItv7UqU K+TEdhaAo4Wwess8SSTG7yMZThLrNY49EeBuYDJieAGWDL7LnlGSb3Hi8w6VKoI1cdrGxw bni037Ofyf4I70A8PbimHW/I4lGucIM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118433; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=78fsQ7KT7qSrtly2mvkXihDfcDaUcc6ompl2U420mus=; b=NTrKWFJjsWKC/O5zJGz9yrkMpb/bE0Hi3mLTuId/tAF0i7p/Fc3p2uJWGa07avfn9UCEJ9 8ZiuIlLAWM1kvLCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9909013513; Mon, 6 Mar 2023 16:00:33 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id IAGXJCEOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:33 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 26/99] fbdev/geode: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:03 +0100 Message-Id: <20230306160016.4459-27-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634934883798508?= X-GMAIL-MSGID: =?utf-8?q?1759634934883798508?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/geode/gxfb_core.c | 10 +++++++++- drivers/video/fbdev/geode/lxfb_core.c | 13 +++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c index 8e05e76de075..3ed85d2d53e9 100644 --- a/drivers/video/fbdev/geode/gxfb_core.c +++ b/drivers/video/fbdev/geode/gxfb_core.c @@ -497,10 +497,18 @@ static int __init gxfb_setup(char *options) return 0; while ((opt = strsep(&options, ",")) != NULL) { + static char mode_option_buf[256]; + int ret; + if (!*opt) continue; - mode_option = opt; + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", opt); + if (WARN(ret < 0, "gxfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "gxfb: option too long\n")) + continue; + mode_option = mode_option_buf; } return 0; diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c index 8130e9eee2b4..6e1e73a21bdb 100644 --- a/drivers/video/fbdev/geode/lxfb_core.c +++ b/drivers/video/fbdev/geode/lxfb_core.c @@ -635,8 +635,17 @@ static int __init lxfb_setup(char *options) nopanel = 1; else if (!strcmp(opt, "nocrt")) nocrt = 1; - else - mode_option = opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", opt); + if (WARN(ret < 0, "lxfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "lxfb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; From patchwork Mon Mar 6 15:59:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64834 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923144wrd; Mon, 6 Mar 2023 08:04:03 -0800 (PST) X-Google-Smtp-Source: AK7set/28op66z3bW8BvW6mGqpPsASnHZ/Rwj+tlOON+unVZ9B1OZpR21ItRluaIeUuS2evMIec8 X-Received: by 2002:a17:902:d549:b0:19c:be09:20d5 with SMTP id z9-20020a170902d54900b0019cbe0920d5mr13325274plf.11.1678118643720; Mon, 06 Mar 2023 08:04:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118643; cv=none; d=google.com; s=arc-20160816; b=ze0tA0kREDDyWw6WBxf9NukIoTos0g1qUtEGm4PoqPL4DuhnMXH9tW+A4RPi0gQ6TN g7gQP7wXC/7phzXdvUEMqes2D+NQxViRtM9yFjPjS6NmzsWf8iDz3OnFv4hNj5Q0gacX K4ct7L1+Rn6m+coLEfRQeoRk7TWwrU1ELq8Ya+wB3m5PW/+kbyNbg6oC3ufPgDxbZxnV DAS3Ft9kOmmhGu+PLDEKEooEbORaqp8PLT88wfOxCwbGQ+h6Ty5j/8v59TwbF+kYJ4yS aIOPOufLMAkr0Oata9o4RAXM+jsJaM7QY6/J1Qi+iuIlosfFWQr3ZnaeNatZGHBY1vQ6 NZSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=ACmxitiOteI6mi9z0BgBQ/16D1s/Eul8G7DwC8i4fUY=; b=WblDx0a2AMaPwLw9rCTDjf57hcM3fOKWDqOM3HkdnhpAVMi6caOO7RBvRuBNZs2AI9 23gooNilKVgaoK/pZ992z6eYTwRRLOfHq3UDx4+u1y/EOYtaClxe0liO4ZZE8vsxOGRz yJXQlRn6XlVS1qu6IAscwlArcrRsakvzGIBLqXahNRwwo/J4PFMOKsudnNGsXIZIR85G iC/IlFnmk5wlSmsHmsuD4QsOagAkk/+ydrEKsafagoRNxlsZbnWsHjXy2kYH+5mTAWwV cS8EcjqwcQg7R4zP3b3NjjYJN0L29/5+GcKl4uZgOSvwkf1dLk+sRN8jA+Luz9tJKcw2 OTkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=agFGvjCc; dkim=neutral (no key) header.i=@suse.de header.b=zGQGSCh4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kh14-20020a170903064e00b0019e30e492b3si9364674plb.200.2023.03.06.08.03.47; Mon, 06 Mar 2023 08:04:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=agFGvjCc; dkim=neutral (no key) header.i=@suse.de header.b=zGQGSCh4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229879AbjCFQCY (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230417AbjCFQAg (ORCPT ); Mon, 6 Mar 2023 11:00:36 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A02DA2E0FB; Mon, 6 Mar 2023 08:00:35 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 567171FE0B; Mon, 6 Mar 2023 16:00:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118434; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ACmxitiOteI6mi9z0BgBQ/16D1s/Eul8G7DwC8i4fUY=; b=agFGvjCcIAnoCBZPbPcoRWKEeBcQjj4jGbuaZWlzGXf7CeQ/K/b8KZ5BXf1UvGDvQgTA0W II2Q/E2hv3CAMmY4wNlgUi390KReXar+ihBinjwMPuKWLCL2GwQmKj4mgMMBYMRN/0x5FU Td76lF0lEWkmjgOIzqo2tYja9ScHbGA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118434; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ACmxitiOteI6mi9z0BgBQ/16D1s/Eul8G7DwC8i4fUY=; b=zGQGSCh49AibU4o0tE11q5r6bDGen1nUV0vNfXlzFWtgegrLutSY7a9TMGIdOI2+EuhTHD p7OKwUQ9GOpcqvBQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id EEA5813513; Mon, 6 Mar 2023 16:00:33 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id +OtpOSEOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:33 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 27/99] fbdev/geode: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:04 +0100 Message-Id: <20230306160016.4459-28-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634934822222656?= X-GMAIL-MSGID: =?utf-8?q?1759634934822222656?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/geode/gx1fb_core.c | 16 ++++++++-------- drivers/video/fbdev/geode/gxfb_core.c | 17 ++++++++--------- drivers/video/fbdev/geode/lxfb_core.c | 14 ++++++-------- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/drivers/video/fbdev/geode/gx1fb_core.c b/drivers/video/fbdev/geode/gx1fb_core.c index 9c942001ac10..dd1dc7ee7f83 100644 --- a/drivers/video/fbdev/geode/gx1fb_core.c +++ b/drivers/video/fbdev/geode/gx1fb_core.c @@ -7,6 +7,7 @@ */ #include +#include #include #include #include @@ -403,17 +404,14 @@ static void gx1fb_remove(struct pci_dev *pdev) } #ifndef MODULE -static void __init gx1fb_setup(char *options) +static void __init gx1fb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return; - - while ((this_opt = strsep(&options, ","))) { - if (!*this_opt) - continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "mode:", 5)) strscpy(mode_option, this_opt + 5, sizeof(mode_option)); else if (!strncmp(this_opt, "crt:", 4)) @@ -423,6 +421,8 @@ static void __init gx1fb_setup(char *options) else strscpy(mode_option, this_opt, sizeof(mode_option)); } + + option_iter_release(&iter); } #endif diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c index 3ed85d2d53e9..f5e88e92ba16 100644 --- a/drivers/video/fbdev/geode/gxfb_core.c +++ b/drivers/video/fbdev/geode/gxfb_core.c @@ -16,6 +16,7 @@ * 16 MiB of framebuffer memory is assumed to be available. */ #include +#include #include #include #include @@ -488,21 +489,17 @@ static struct pci_driver gxfb_driver = { }; #ifndef MODULE -static int __init gxfb_setup(char *options) +static int __init gxfb_setup(const char *options) { + struct option_iter iter; + const char *opt; - char *opt; + option_iter_init(&iter, options); - if (!options || !*options) - return 0; - - while ((opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, opt)) { static char mode_option_buf[256]; int ret; - if (!*opt) - continue; - ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", opt); if (WARN(ret < 0, "gxfb: ignoring invalid option, ret=%d\n", ret)) continue; @@ -511,6 +508,8 @@ static int __init gxfb_setup(char *options) mode_option = mode_option_buf; } + option_iter_release(&iter); + return 0; } #endif diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c index 6e1e73a21bdb..d687054cdb09 100644 --- a/drivers/video/fbdev/geode/lxfb_core.c +++ b/drivers/video/fbdev/geode/lxfb_core.c @@ -7,6 +7,7 @@ */ #include +#include #include #include #include @@ -618,17 +619,14 @@ static struct pci_driver lxfb_driver = { }; #ifndef MODULE -static int __init lxfb_setup(char *options) +static int __init lxfb_setup(const char *options) { - char *opt; + struct option_iter iter; + const char *opt; - if (!options || !*options) - return 0; - - while ((opt = strsep(&options, ",")) != NULL) { - if (!*opt) - continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, opt)) { if (!strcmp(opt, "noclear")) noclear = 1; else if (!strcmp(opt, "nopanel")) From patchwork Mon Mar 6 15:59:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64838 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923230wrd; Mon, 6 Mar 2023 08:04:09 -0800 (PST) X-Google-Smtp-Source: AK7set96HuBoi55Vi9/h+SzDPtjgkBtYdje21BQ8FwTVSWWCpvF1ecFXz+jsvMxhYa+2LsCZrz4I X-Received: by 2002:a17:902:dac8:b0:19c:a5dd:fadb with SMTP id q8-20020a170902dac800b0019ca5ddfadbmr13145670plx.54.1678118648735; Mon, 06 Mar 2023 08:04:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118648; cv=none; d=google.com; s=arc-20160816; b=R81LyyeapJsaYKPR0hXoLci/YtMKZZkAGx8Wb8Hfd2t1MI4wzhDTkJ5DKzt9yZMr+V zGfzOQrNnY0nrQMHjsm/vCUkpiH1afkBJLMf/fjHIlHXrSId7IWqZJsbzgkWaZ5Plqmr fd0GssEdIBAwMZlrLni5y8BQK31oEdtfTWpwHQYFVbOLzQ30qEDDU4saYqG7NstVEw7w c5QX0FSHnjjUc8WXkXSD9KQTlkUJKqoow2SoWZ9eEnk94atXEmPuuIxjKB+Naht6xAy7 zJIPttUzRDx2izqGbbtoEIRuuCOyszKgZd8woQIX1/j1ERqwBSCm1A9P6a3r4MPIhCrs ooCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=Daegt13aj+W//lZr8jRyusQkz8W6ZntxWFk0xss/ois=; b=JG9GTSS/x0+adlXeHa1QdPiYt7bY7LMgF7hb080JD9KbiJwrpkI4Vu6+oF/NLCmvL6 epSVH9On1w4S5bIH/VmTO2elVXu056e7qF00T+oBG9iLg1s4OIo23U8n1AGm0K4fXYD9 5ABEqH1S1WM3ZnCtHrqE5YiwlVdAUvxjCpJ5wfPqqvjIdUMxuYCZus2RWppHy5R78G0F XDx1d5HFMIceupqQr2PHoywZt5GQIIbpryNSoqk5EtrfLjqEXTgcVpaPdf2r5NWItF49 OSyIYDqf9p3vczbkg7z8j/BIfdi9lU/U1PR8O0lRYWd33tcSu0Jbmlg71rxAjhZlvaET 3zCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=RoZqQo9s; dkim=neutral (no key) header.i=@suse.de header.b=7YBoKzPF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f5-20020a654005000000b00503754660e8si9187410pgp.679.2023.03.06.08.03.54; Mon, 06 Mar 2023 08:04:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=RoZqQo9s; dkim=neutral (no key) header.i=@suse.de header.b=7YBoKzPF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229893AbjCFQCa (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230420AbjCFQAg (ORCPT ); Mon, 6 Mar 2023 11:00:36 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0724F25E09; Mon, 6 Mar 2023 08:00:36 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id B82F0223C6; Mon, 6 Mar 2023 16:00:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118434; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Daegt13aj+W//lZr8jRyusQkz8W6ZntxWFk0xss/ois=; b=RoZqQo9seqyRZSsMcMTj/mNrzws/HA+1pN+gEO5r7iEuL326SSnDJJeu0bHUQhse3wVIqB pDiOHA1W2gC7HuAplCqAhd+mBFrUxIiK+I6kgoOJ1h36GrAEX3KSZCnlCiyZpg4ADN1bJ+ 0i+AhTYYlBhjLTSIvu3b9kxeq+TIUPM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118434; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Daegt13aj+W//lZr8jRyusQkz8W6ZntxWFk0xss/ois=; b=7YBoKzPFjp0NPDLv2F5FLa4z2un3YEve6Vg729kDl9fy6lwL8pN6cE2xgWFIb4CLy0DYt7 HbFYK42ELFUVQxAQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 5BE8413513; Mon, 6 Mar 2023 16:00:34 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id uJOPFSIOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:34 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 28/99] fbdev/grvga: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:05 +0100 Message-Id: <20230306160016.4459-29-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634940133808957?= X-GMAIL-MSGID: =?utf-8?q?1759634940133808957?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/grvga.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c index 24818b276241..bb4baec2eccc 100644 --- a/drivers/video/fbdev/grvga.c +++ b/drivers/video/fbdev/grvga.c @@ -369,8 +369,20 @@ static int grvga_probe(struct platform_device *dev) grvga_fix_addr = simple_strtoul(this_opt + 5, NULL, 16); else if (!strncmp(this_opt, "size", 4)) grvga_mem_size = simple_strtoul(this_opt + 5, NULL, 0); - else - mode_opt = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, + "grlib-svgactrl: ignoring invalid option, ret=%d\n", + ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), + "grlib-svgactrl: option too long\n")) + continue; + mode_opt = mode_option_buf; + } } par = info->par; From patchwork Mon Mar 6 15:59:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64836 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923213wrd; Mon, 6 Mar 2023 08:04:08 -0800 (PST) X-Google-Smtp-Source: AK7set8rs9ruVbtA5EB9lKr+NX4c8GHdUC8OfZDinu/aQUOaGhBplWOZiehvwbkteq1ymunIYuSc X-Received: by 2002:a17:90b:1c90:b0:230:c96e:fc4a with SMTP id oo16-20020a17090b1c9000b00230c96efc4amr11556303pjb.1.1678118647773; Mon, 06 Mar 2023 08:04:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118647; cv=none; d=google.com; s=arc-20160816; b=CihcVU60L67hBqDlqjxMCqmLW00z7RFCFf/T5nJEw3fJc7SZEw8EpeEbpYCAktvIRr JBuNuE6kofCRanUBPI/yC7gt1LvswM9jekjiqqi1BFT2OrSGGZixS4ARh/9X+jvBuMVx LJyquJyugjZcTR2G0Ar8jZ5m7QTEnmX0tejqh6+IGDsE1lAR09NUtcIsmcQ2NNfNzn9D VN6XtToIh8foDd7/wxhvpjktsfidFgzGzF690wE8DVpBNohKXEGjZBKj63jEzg9Wb/xc cJz+/v+XArDmwf7XWvpD/cr2rvTWzFcPhoLRiZUxDIZBdU7COYcGJS8LdmXUaJvUMS3z E5dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=slMylKd0o1pIzeZMW4EsaSmRliq1ZmGtsXfkeJQfBhI=; b=bYcdRD84elbzTp5JdlhIwxv/RbYvDaoOLFo88C8nB8ZsyavN9iXBy5CSTsF6eqitG3 br/QUPPg/vimmcmAmI32B8KTeMR/6fQZ1i97eFJDCKW0HlqhA6Ap1E5jCoofpx+HHjeN uFthZvYHWZMlCTEtiPl0eY0wWFdTRPAtrUxYN8Ul+Jd/9ZHcrkzKRQi+wEYBQDxfMqr8 +JzgAUr9sVtpN1MSNr1mYqct5KX4a3AMbG3JZBSQVcHi2B/cExHYlR4PdZYRmHQ7jRk/ JR4Lc6xUsjB9LFZFS1MO/NVIUfYc/RfGNugHKIcTnbGpnDFVIqQtvbQEB4RCPDa64V/j nbmQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=nWYRCxcp; dkim=neutral (no key) header.i=@suse.de header.b="4kKE/MQi"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pg10-20020a17090b1e0a00b0023491176193si12377855pjb.10.2023.03.06.08.03.54; Mon, 06 Mar 2023 08:04:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=nWYRCxcp; dkim=neutral (no key) header.i=@suse.de header.b="4kKE/MQi"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230098AbjCFQC1 (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230421AbjCFQAh (ORCPT ); Mon, 6 Mar 2023 11:00:37 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6ACCF26853; Mon, 6 Mar 2023 08:00:36 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 29555223CC; Mon, 6 Mar 2023 16:00:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118435; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=slMylKd0o1pIzeZMW4EsaSmRliq1ZmGtsXfkeJQfBhI=; b=nWYRCxcpSw24XPnQhN6bsR7WDZgM5apHXp8qLJ8oOubE1YwShKqdO5TsIDKOMtJ3FPFb6N EZxbONNv0/77cheKLv9YZW6HrNa7N9p2dN+u8ZRCH6c/NY1jDBriNp7vIecSSHruZY/N9R zEcCu0I151s7ETsZ4rKWTZQfYb4sRPg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118435; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=slMylKd0o1pIzeZMW4EsaSmRliq1ZmGtsXfkeJQfBhI=; b=4kKE/MQinGXqJrRY+pyR3GyijdpoQkzvzi4uId+nsbVwA3X0bWWFnbwzB5QDn590hlGa6x yiJ+B/TIhTZCXFDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id BDA8D13A6A; Mon, 6 Mar 2023 16:00:34 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id iONwLSIOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:34 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 29/99] fbdev/grvga: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:06 +0100 Message-Id: <20230306160016.4459-30-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634938773609946?= X-GMAIL-MSGID: =?utf-8?q?1759634938773609946?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/grvga.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c index bb4baec2eccc..f803dc37c891 100644 --- a/drivers/video/fbdev/grvga.c +++ b/drivers/video/fbdev/grvga.c @@ -10,6 +10,7 @@ * Contributors: Kristoffer Glembo */ +#include #include #include #include @@ -334,6 +335,8 @@ static int grvga_probe(struct platform_device *dev) unsigned long grvga_mem_size = 0; struct grvga_par *par = NULL; char *options = NULL, *mode_opt = NULL; + struct option_iter iter; + const char *this_opt; info = framebuffer_alloc(sizeof(struct grvga_par), &dev->dev); if (!info) @@ -353,15 +356,13 @@ static int grvga_probe(struct platform_device *dev) if (!options || !*options) options = "640x480-8@60"; - while (1) { - char *this_opt = strsep(&options, ","); - - if (!this_opt) - break; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "custom", 6)) { if (grvga_parse_custom(this_opt, &info->var) < 0) { dev_err(&dev->dev, "Failed to parse custom mode (%s).\n", this_opt); + option_iter_release(&iter); retval = -EINVAL; goto free_fb; } @@ -385,6 +386,8 @@ static int grvga_probe(struct platform_device *dev) } } + option_iter_release(&iter); + par = info->par; info->fbops = &grvga_ops; info->fix = grvga_fix; From patchwork Mon Mar 6 15:59:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64839 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923248wrd; Mon, 6 Mar 2023 08:04:10 -0800 (PST) X-Google-Smtp-Source: AK7set8Cs4zNxoW1+Y8BOOUeq9CO82dvc4ghe9shEWcCMlp+q66TmHwZGinbLWz9xtY8bRNv0zmN X-Received: by 2002:a17:90a:15:b0:236:9eef:e285 with SMTP id 21-20020a17090a001500b002369eefe285mr11658368pja.35.1678118650565; Mon, 06 Mar 2023 08:04:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118650; cv=none; d=google.com; s=arc-20160816; b=dQDDe2+YEwEoP+9Z4qqDgyGIZ9ZV2g0/+ivmLv5vMHsFahpLFmuJysZ7oV2LwKJRwo JL1cotG0IHjfugrCAEg9yBaHu9Jg0Wo7MQR3+oOvWjsj+bHmKKbfzUgPgy/yrujSDMhQ 9xtjqloFp9rX0MdlmX7kgL8/8Kz+IGRFrdKmrN4F0+qPTxrJWVHIz3c/iqf7JOum+Xh0 1MzpgLKMJMWaNlv4f87n4vO+aERHU9L2PwIxYcQyF2Ijp9T8mLFw/XANbEdBaNgbD+m3 A9uJ5dYd2eV5oeSK+ahoQY+o9LfetxkXOzxZBK3H73p9noqsq/UdekNKidbtCMPRERgO wwZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=cbqgFJuuPg76i7Tnxrt6nBFhBok7n+TE7fgC7SU4OZ0=; b=n5QhFd1PeflI72SiZ1bMabYk4d2fHnj5wKHCHyJpuOBs6U56YgzLfzBnxPd8zReddk KR16+k1KvMvAiKW/doaf3BmY+ZepTV8cDWFDEcZcPSNiTBTKNoWbVVEjJuBqNvf7Moix yCDyphYF6cQ8d7TiUUBsWE9Za4maLocH+WKB6cLefRLM1CORp+BNL1kv5ytMiO7PWgsk 3DC+pAx5oiMK+RsdtAnDnDt5V9P2FmoRIjaz3fGxiqZkYeblALG172NMp2p10k5GI7sw ra8WqkJdy1CZMtY8r8U/UPk4rwCi49Xg9AJm5BkKyILyfEi/AKbJdQwBdACRHMVmKMJ1 o1JA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Da0ENzwy; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o21-20020a17090ac71500b0022c216a776fsi9571994pjt.1.2023.03.06.08.03.57; Mon, 06 Mar 2023 08:04:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Da0ENzwy; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231151AbjCFQCe (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230036AbjCFQAh (ORCPT ); Mon, 6 Mar 2023 11:00:37 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D40E92E0D3; Mon, 6 Mar 2023 08:00:36 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 8A86A1FE0E; Mon, 6 Mar 2023 16:00:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118435; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cbqgFJuuPg76i7Tnxrt6nBFhBok7n+TE7fgC7SU4OZ0=; b=Da0ENzwyFBTDsMLo3AswyCJ9nQ9MmJnvXIiRNIlgJMp8QxpKUpzomHhERtz7loGmLfN9/p nF6oWsvZzIka7u2mWeUEC8hxpWZrWylGj5N2SlgXnao2CDocmqTHpMBB59YQh5B76luBMI cE9fKUckWZT87SJ2zppW3J4HWEH8f04= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118435; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cbqgFJuuPg76i7Tnxrt6nBFhBok7n+TE7fgC7SU4OZ0=; b=YH3fqQmGKJmw+1YRRJcCgP64iONty98Zbul4QvaYMSkTYTluCtSrVH4Kb5bWog113QORMV IJ9+FtaoXxj4QoDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2D16013513; Mon, 6 Mar 2023 16:00:35 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id wO0pCiMOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:35 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 30/99] fbdev/gxt4500: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:07 +0100 Message-Id: <20230306160016.4459-31-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634941971359220?= X-GMAIL-MSGID: =?utf-8?q?1759634941971359220?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/gxt4500.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c index 5f42d3d9d6ce..61bc714693f5 100644 --- a/drivers/video/fbdev/gxt4500.c +++ b/drivers/video/fbdev/gxt4500.c @@ -779,12 +779,28 @@ static struct pci_driver gxt4500_driver = { static int gxt4500_init(void) { +#ifndef MODULE + char *options; +#endif + if (fb_modesetting_disabled("gxt4500")) return -ENODEV; #ifndef MODULE - if (fb_get_options("gxt4500", &mode_option)) + if (fb_get_options("gxt4500", &options)) return -ENODEV; + + do { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", options); + if (WARN(ret < 0, "gxt4500: ignoring invalid option, ret=%d\n", ret)) + break; + if (WARN(ret >= sizeof(mode_option_buf), "gxt4500: option too long\n")) + break; + mode_option = mode_option_buf; + } while (0); #endif return pci_register_driver(&gxt4500_driver); From patchwork Mon Mar 6 15:59:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64842 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923355wrd; Mon, 6 Mar 2023 08:04:19 -0800 (PST) X-Google-Smtp-Source: AK7set81RdtEagFWq6AmG+MzYY2U7x3JT4ynuvE++6WM8SA7p3BNU8IVgmjiwRd2Dx3jbKU5hxfi X-Received: by 2002:a17:902:d486:b0:19d:1230:439b with SMTP id c6-20020a170902d48600b0019d1230439bmr14664204plg.63.1678118659141; Mon, 06 Mar 2023 08:04:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118659; cv=none; d=google.com; s=arc-20160816; b=cyiFJMfMu/JfSw3gTBeSllxgTYk9/1dHXEGVmz8PQHxApAXSqmAH5ozJqDdNKymzdF mlnu04jwMQtGN61L9nIobvh7PUufVT0pxKF1jQF4DLGbTEeU/8hIYVMrsP90+s89vmjJ O3cLnQgntQCB3cBg1aBRCLIAgfH0FbrI0FxL6mf3bUaAy/0pdb4K8De0tQvf9+a6f5UL tHVv/RiM64t1A8yD1KQdkr+OhPAu2p0DWbB2h2iNOm6Tf6oUd5HGGYUxRNY3a82HLr0M fpZcBz/Osqel4XnuTBoM6NFPObYKgCWKQ/L/2dxd3xgU3x0FUq8yeoXaL1iBhM/KqUTS 299A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=8TOK4HErI/2h/odaJ3yQPBqDv7GClK8xHBQXOXIADoU=; b=O0CkFaVx05tTtw42PBiAjoKUfJMN0DVIv5XdGKz65B2aV/9FdFNxIOFK9mQ2JxsqFc zycMFeXlLHPDXrnexWpUyhQ7X8hDprDw3TaewAxTvrquMoswZhVEq5TJBS5eNxqwPKoa Sc0QLSrdBKloAHTNWE5e6tGibAIK9aSRufxNi4h51wuUJ9UZ81Ai9O0VNp8qn7nOa1nj Tt8K+21JuyMc6YqlLoPbpuwqtDVb6XIG3h+nK2RI/MfNvq6aE/esmHigWw1qsF+0pHUl lhtQI158G4SNlGkb9umNZmsfI9pwUr8oLax6FujkmAuJ7nRuKWov+QtadSKqjyBPe8Sq fcOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=j2oGZGmR; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x15-20020a63cc0f000000b004fb86793704si9213790pgf.764.2023.03.06.08.04.03; Mon, 06 Mar 2023 08:04:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=j2oGZGmR; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230517AbjCFQCw (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230033AbjCFQAi (ORCPT ); Mon, 6 Mar 2023 11:00:38 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 498F62E813; Mon, 6 Mar 2023 08:00:37 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id EAF0A223CD; Mon, 6 Mar 2023 16:00:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118435; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8TOK4HErI/2h/odaJ3yQPBqDv7GClK8xHBQXOXIADoU=; b=j2oGZGmRcaFV4sOEfUtQD63SjvnKYDpLXdmiKny/eUdB8X3MerkbRpoduPUwFuOII6rYzy ylz/c4M+1109Jzoe8AcG4X9xugu9U4k8q/to5ONmkPmRsBau/iGr+OdeMmIkeqII7Yi3Yq qEn1v2R4sz4XTPsnkx5sOrX8rtbv1Ok= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118435; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8TOK4HErI/2h/odaJ3yQPBqDv7GClK8xHBQXOXIADoU=; b=B22qWvL6Z85SpiqMWFw+V0uhYhQ49REUShk3qyvO2UXPkep+f20mR5bso4tLc4mruF8h4W 7ZuV47ng/Et9K2CA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8D8DB13A6A; Mon, 6 Mar 2023 16:00:35 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id MI2tISMOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:35 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 31/99] fbdev/hyperv_fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:08 +0100 Message-Id: <20230306160016.4459-32-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634951092802687?= X-GMAIL-MSGID: =?utf-8?q?1759634951092802687?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. As the driver implements a very simple mode parser in a fairly unstructured way, just duplicate the option string and parse the duplicated memory buffer. Free the buffer afterwards. Done in preparation of constifying the option string and switching the driver to struct option_iter. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/hyperv_fb.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c index 4a6a3303b6b4..edb0555239c6 100644 --- a/drivers/video/fbdev/hyperv_fb.c +++ b/drivers/video/fbdev/hyperv_fb.c @@ -903,17 +903,23 @@ static const struct fb_ops hvfb_ops = { static void hvfb_get_option(struct fb_info *info) { struct hvfb_par *par = info->par; - char *opt = NULL, *p; + char *options = NULL; + char *optbuf, *opt, *p; uint x = 0, y = 0; - if (fb_get_options(KBUILD_MODNAME, &opt) || !opt || !*opt) + if (fb_get_options(KBUILD_MODNAME, &options) || !options || !*options) return; + optbuf = kstrdup(options, GFP_KERNEL); + if (!optbuf) + return; + opt = optbuf; + p = strsep(&opt, "x"); if (!*p || kstrtouint(p, 0, &x) || !opt || !*opt || kstrtouint(opt, 0, &y)) { pr_err("Screen option is invalid: skipped\n"); - return; + goto out; } if (x < HVFB_WIDTH_MIN || y < HVFB_HEIGHT_MIN || @@ -922,12 +928,14 @@ static void hvfb_get_option(struct fb_info *info) (par->synthvid_version == SYNTHVID_VERSION_WIN8 && x * y * screen_depth / 8 > SYNTHVID_FB_SIZE_WIN8)) { pr_err("Screen resolution option is out of range: skipped\n"); - return; + goto out; } screen_width = x; screen_height = y; - return; + +out: + kfree(optbuf); } /* From patchwork Mon Mar 6 15:59:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64856 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923863wrd; Mon, 6 Mar 2023 08:04:57 -0800 (PST) X-Google-Smtp-Source: AK7set9j6Fdp1937kuhThTKoN0suX6d9K07kDZlrcWx5syK59AClPx+8zqe/IRAbXIQVgmB0q8kb X-Received: by 2002:a17:903:2288:b0:19a:9dab:3438 with SMTP id b8-20020a170903228800b0019a9dab3438mr11549317plh.2.1678118697133; Mon, 06 Mar 2023 08:04:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118697; cv=none; d=google.com; s=arc-20160816; b=X1BnXhz3PnWKyofAxU6FPHpO4vOsERqWq4fu9WdtKSUQkvKsTBUVXhHBYkSe3VoHpw mqALbdTamBE/yiTDoEzXtGqH72fcvDyhlXjiW0+iTNVRHcdy6qwlKxRZgaBHPwfLAcFP okSkSU8P/skUkeAjTwJry8VLGyXvy+1eVA8mv8ulcCaeK0eAXcK1x8Z2chEIUIG8ZXEJ TDPMp4rxymW8xQSmNROV0+YuhizBu0/FfUvamoV5nDP3hpW0zcp+WA38cMrqgB48Rz6X +6R8hKiOvvNkWO8kkM1l/bCnz0GKo9neRv9ZDyVEfCVOiD2UpjgnYmxjS3BpNlRMIFu9 xY1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=GGy0uoU2mZrL5vxS4nkKabnlKfDbjtCt8Qt8KHG9Q+4=; b=Q6xRiJQV9kcVnts8E0sarmnlxBGCFgKMSToiN6m27sAE93CBj3dP0iSl0Ii8j4fUI9 YBsmounnwa07jzhaI4G4AOBtHoqUvf3gGRcDUkaic2jyxeFFj6BcQ669MZoxvvy1bwPE AVbWngSZakHcbkoUS/ipsBMuQq5gbyv1Gnli0SxcguVI8A3bdyqJSftcuKlLfCoQAl4J CG5/Gldj6tGtqWg0JX4BZY7oGl80B8tuctTx5nCS9vmpqNIev1CIHQ7N+yFpQsYDHeik Ycnx7xKLwSjrU3cAXGLW/MIJ8wRrn0BBbuDyVq4IDIhFXURBNscXOr8BQLj7OCExTPjW v2AQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=iUJ1re8m; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lf15-20020a170902fb4f00b0019afac78059si2574918plb.603.2023.03.06.08.04.45; Mon, 06 Mar 2023 08:04:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=iUJ1re8m; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230284AbjCFQCp (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230076AbjCFQAi (ORCPT ); Mon, 6 Mar 2023 11:00:38 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A905C25E09; Mon, 6 Mar 2023 08:00:37 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 580411FE10; Mon, 6 Mar 2023 16:00:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118436; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GGy0uoU2mZrL5vxS4nkKabnlKfDbjtCt8Qt8KHG9Q+4=; b=iUJ1re8mOZl0ZwMPuyJXPQm7R25NyRs3Xv7I/zoLVT9WSJXAXPRcLmjoWYkNrvCln2WKfw sCJdMJZUdkc25z7vkQC/3dKonItI9In7lbYau2HF0gx9Kn8GvIBNj95wqy80VqeMxdCvQ9 hmZgFoL69g+w/Y2HeQ3gEkIDinom/8w= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118436; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GGy0uoU2mZrL5vxS4nkKabnlKfDbjtCt8Qt8KHG9Q+4=; b=mvRPARJ/Z8R3NhG7HdrFbmhrhL9ejvzLWreZJLkkO5+ESUf2/bckHr8SDClSrjsyySfarr h33hEYyTP3J6e9Aw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id F052413513; Mon, 6 Mar 2023 16:00:35 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id iBfHOSMOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:35 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 32/99] fbdev/i740fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:09 +0100 Message-Id: <20230306160016.4459-33-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634991313348098?= X-GMAIL-MSGID: =?utf-8?q?1759634991313348098?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/i740fb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c index 3860b137b86a..dd4b5c717e8e 100644 --- a/drivers/video/fbdev/i740fb.c +++ b/drivers/video/fbdev/i740fb.c @@ -1273,8 +1273,17 @@ static int __init i740fb_setup(char *options) continue; else if (!strncmp(opt, "mtrr:", 5)) mtrr = simple_strtoul(opt + 5, NULL, 0); - else - mode_option = opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", opt); + if (WARN(ret < 0, "i740fb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "i740fb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; From patchwork Mon Mar 6 15:59:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64840 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923251wrd; Mon, 6 Mar 2023 08:04:11 -0800 (PST) X-Google-Smtp-Source: AK7set+17INzwa76o3/UJHV6vU5QvtJGi+u/asuOqfMAZkrBkyMKLvfUX6r/Sq6FX4BSND+2yJOT X-Received: by 2002:a17:902:b193:b0:19a:a815:2876 with SMTP id s19-20020a170902b19300b0019aa8152876mr10392607plr.62.1678118650936; Mon, 06 Mar 2023 08:04:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118650; cv=none; d=google.com; s=arc-20160816; b=zlA6Il68FjIOR+Y3Ay1AJy0wtK22IuPfZ8p58/J0UsKW3VPoDwPH4+asi9wdP21mDO LKiy9t4P5OSLb2KfLZEQcBczHt0o/Ywy0KF/3HOG8mThfcKvJvTuZAx+2MiL07W+k2B/ +ZKp9EbKM4ldjgW57sS6XMuWhDxQGnBRcGkxJ9YpAL2rt+B1oFOmMq827gqLGOS64K23 brv3YSgGgBksr8yzR2kgEpAvZTeAPx8MAcdjtzZSXVb6biVVL+GEFeo8Zb96uuB/Vrkl 1uFNdac3gkOVJ3NQDwlNumxhaYtV0gHtsATO3AFuA+oV4nH2X+pniFT2SS3YpmpDGwLv pL9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=szSIj9mGfnEj6DDhBSYI3vEveuuHtykqw5SPVzp1w74=; b=1AZ6hs8wtLnWw0Yg8HkrLzdlibaq2g25fYEm6LAegWFx6giiKQKlPvL0bMtyV5dSa9 Xlm41BoU+zt9zq8Fby+9M42Z7AAxsbtPuKTfknz1oR48sonbSa2vDuP0HGGtR9Ijicwp lDBPAGuazUNp7ZOTYjDoTb0LUW30Y6yDJgIYTe2C2TvZ17lC3zUeNrp5dk96ZzUHGU0A 51ZaPsqSjrrmLKRFbkhYqC0FIGjDdOHdlVdVFW4lR8EhSeOfqECa8M7u09YBspkSvT+f gDlceB2Ht6nWQBg/UupEagHqK+PU0qneXVKNB9h/FmHoxzipvQA56bYALjFtuGyFr14k VMEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=HVUdyJKw; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lf15-20020a170902fb4f00b0019afac78059si2574918plb.603.2023.03.06.08.03.57; Mon, 06 Mar 2023 08:04:10 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=HVUdyJKw; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229803AbjCFQCl (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230052AbjCFQAj (ORCPT ); Mon, 6 Mar 2023 11:00:39 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24EDD26853; Mon, 6 Mar 2023 08:00:38 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id C3B5D223D2; Mon, 6 Mar 2023 16:00:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118436; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=szSIj9mGfnEj6DDhBSYI3vEveuuHtykqw5SPVzp1w74=; b=HVUdyJKw0cu6nbedGmwrMqy+SYtNj+Gaeh+x9sV5x7Zyl0M9X8vrlogM1Ey8i6J8gIRYT+ e3VfbolRpmR10UdcWcCc37ZcR6O2V/SyThnLoqFB2PKS33hSKerC43zBQKU8THJYEz7s+Y g68DTqs0NtkEjScViYka6L9A5zbMjuA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118436; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=szSIj9mGfnEj6DDhBSYI3vEveuuHtykqw5SPVzp1w74=; b=00q1Pc/34je/Cyfz+4Bo7JXAAx+YIpUxKAuk1hjz0DxlMHkexGWiEpOvYuW1pI/v5iFZ0x H9I3LGMxVjxSwIBw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 5F98513513; Mon, 6 Mar 2023 16:00:36 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id eDDEFSQOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:36 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 33/99] fbdev/i740fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:10 +0100 Message-Id: <20230306160016.4459-34-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634942901555121?= X-GMAIL-MSGID: =?utf-8?q?1759634942901555121?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/i740fb.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c index dd4b5c717e8e..cf45d6280f38 100644 --- a/drivers/video/fbdev/i740fb.c +++ b/drivers/video/fbdev/i740fb.c @@ -13,6 +13,7 @@ */ #include +#include #include #include #include @@ -1261,17 +1262,15 @@ static struct pci_driver i740fb_driver = { }; #ifndef MODULE -static int __init i740fb_setup(char *options) +static int __init i740fb_setup(const char *options) { - char *opt; + struct option_iter iter; + const char *opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((opt = strsep(&options, ",")) != NULL) { - if (!*opt) - continue; - else if (!strncmp(opt, "mtrr:", 5)) + while (option_iter_next(&iter, opt)) { + if (!strncmp(opt, "mtrr:", 5)) mtrr = simple_strtoul(opt + 5, NULL, 0); else { static char mode_option_buf[256]; @@ -1286,6 +1285,8 @@ static int __init i740fb_setup(char *options) } } + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 15:59:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64895 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934842wrd; Mon, 6 Mar 2023 08:23:06 -0800 (PST) X-Google-Smtp-Source: AK7set/KpG8B7ygBWW6WRra+KeqPuWwgriQKa4l14SEOcNf/7Huk+2FUxnAxY+juq3WsMW+lg4dd X-Received: by 2002:a05:6a20:1443:b0:d0:15c9:4e68 with SMTP id a3-20020a056a20144300b000d015c94e68mr823293pzi.62.1678119786311; Mon, 06 Mar 2023 08:23:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119786; cv=none; d=google.com; s=arc-20160816; b=sGci0YMuQGl1kbzgspJEZEwaP6uQSiZPLodXBWimLnTLoKiL6zsaAw0hTMuM9k3ooU 1rGvPZ2e/GmcsunYirzRZdWr0w/gxQr3RjTGkNzT3s+I4i1bAfclhUqKbVFXshPk9cKY QnUT40o6bj9fjtIQi7tpvXE0Ja6qvZfWX+C0nS8UfhTIWzTWO3ubYIxTEAu5l9mOhCO/ FYIne3ZKZTYcHQMHIv0jVibtub5FcEmef/LXrzpqWCc+THiBUfLL9i9VGSrJNq8OT5lR +J2HJQWEu65IbqWWqeRhLDZT+HXoqUzw7OSLxXO3SfTV4LPzjCoHsx3ifluEaahZgbLM YPsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=lukZcQyFgWDteguAf6aIzOi0pRoWXRBd9Sx3zg4LSys=; b=kF1m6n4Bh104Gftk3l3QEIRyzoh8xrsES9Df0WUK0zWG0dHhRuIywUAGKTAXAbl64e sNeUP32kubNJw9fv8TyXnahjwFY5I6oSIAvBx4PTU66GQSn/1paKzybA6wqh/rfPyIx1 HMVEuRDifXc9xXcKiczJxlWrfmFsc3cVoMK+X56TR1VN4e7t9l3eMxmfld5JPulkltQ/ 9VZfUydZBDYCdmGZ6lQLroYz371SVPvoUvhkZpiNk1epD5Tm+yvROmnd9I9o4zA6344g 1sy52fc9kCP6pJ19hdYcTeLm8BDE6rVPvFZOJ2SJCd6gQZcEO5mRX2lTvmg6JWY8JNE1 ym/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="j334/7t8"; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k13-20020aa79d0d000000b005a91f5ed6b2si7022007pfp.147.2023.03.06.08.22.54; Mon, 06 Mar 2023 08:23:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="j334/7t8"; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230057AbjCFQCs (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230072AbjCFQAj (ORCPT ); Mon, 6 Mar 2023 11:00:39 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8A95F2E0FB; Mon, 6 Mar 2023 08:00:38 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 38EA41FE11; Mon, 6 Mar 2023 16:00:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118437; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lukZcQyFgWDteguAf6aIzOi0pRoWXRBd9Sx3zg4LSys=; b=j334/7t8UKv88xr97Eho1ZNBsOoW8d/8AFnIxgGVPVLesvgg6veWoTc+DLTKmYuaQY7/Om yJ8TKde/4H5rSdEbU11fCpuMWanbrTlYDkYYm5U/5noD5PTjL6aD0GfdoS3VWkYJsyjsrw Y8JET6LHyuCk2jOtryMcII/88pTRKEM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118437; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lukZcQyFgWDteguAf6aIzOi0pRoWXRBd9Sx3zg4LSys=; b=AHFf8BXnpzkFU+mWXgBDdQ4KlD2Qqm4TCyLgAwt38K7Y6EVQdiK4botq9+WaP1DEHJVbAv /Btqmrowjt+yp+AA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C757D13A6A; Mon, 6 Mar 2023 16:00:36 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 6M+4LyQOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:36 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 34/99] fbdev/i810: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:11 +0100 Message-Id: <20230306160016.4459-35-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636132845706916?= X-GMAIL-MSGID: =?utf-8?q?1759636132845706916?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/i810/i810_main.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/i810/i810_main.c b/drivers/video/fbdev/i810/i810_main.c index 85abb65f07d7..66f94dfaef16 100644 --- a/drivers/video/fbdev/i810/i810_main.c +++ b/drivers/video/fbdev/i810/i810_main.c @@ -2002,8 +2002,17 @@ static int i810fb_setup(char *options) dcolor = true; else if (!strncmp(this_opt, "ddc3", 4)) ddc3 = true; - else - mode_option = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "i810fb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "i810fb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; } From patchwork Mon Mar 6 15:59:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64843 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923394wrd; Mon, 6 Mar 2023 08:04:22 -0800 (PST) X-Google-Smtp-Source: AK7set+YxnK9YyaKlUUiFeZh57YiAiqEthT43Np1oNX3AXgfpK2yH69trF2W0/GSAdpikhqEJIvN X-Received: by 2002:a17:902:db01:b0:19b:c37:25e7 with SMTP id m1-20020a170902db0100b0019b0c3725e7mr14680702plx.66.1678118661730; Mon, 06 Mar 2023 08:04:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118661; cv=none; d=google.com; s=arc-20160816; b=bh/H5dumz+WaUKXzRwLO6sIlTKgR8lfw32lIrbNAC+8Ac9ZyYVmvAeCUuYfSevyb9k qBqvXh2GvY1uuDzNhufQlK+ti7z4ScC0v8+rdO/fWXvwoLPVwD1/bEOw3weN2vV7qGzA iN5NEMyCl+bOjwNYvLg4JrM7/hQGgGvGwVsMo/4rklcTD77uowtj0ZNcpMZtfz7ZKzSs b2LgT5AtaOpECrxsep+vIsj8vVCWCDPL4ryzN9LMTTC2iGgkDsbMa85T1HOFiOUcYuEB fVXYI3mCAGnJaUWb6PqWCih/7kZ89lVJ+HUxaUHw1MR8uzgZcubSl7TKtHIlOg0mgCGm Uysg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=N4+KAj7O++Yi5vpFwEv8UDUdYndu+GaxZcmBs3XLVsE=; b=kBSAG2htvkWsWu+H4tLDLs70IhzPAdvYzdvTjqnzCYOS6yggnDN1NJkyCilEznLWYD a1F8VyXUo9ZDVqr/aTAVrKob2Yiv57BLBqnibS6rPUsaTcLEdBOXyBPM+HoIf25x/b4Y ZrwunKjSyj3+B0lxfuzyRel3NxE/BY9QPTRQdPolJj5oW094qNOJB6vlTcmEIxnr01n8 uDL+S74i5IA53EmSdAe8rgLUqSc/+xrThxwpxWAS3d98CNxJK7+aPbHpRHUxqfrfsWmg PlujU6UpHTLpTgoafx2VPbxi/z/43HcNSsHZ6orCJHg8XacKyKZrrRjUyJW1xfY7POeM q5gw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=MrrOCooN; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=6B4wSnDC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lg5-20020a170902fb8500b0019a99845593si9180493plb.425.2023.03.06.08.04.06; Mon, 06 Mar 2023 08:04:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=MrrOCooN; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=6B4wSnDC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229849AbjCFQC5 (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230125AbjCFQAk (ORCPT ); Mon, 6 Mar 2023 11:00:40 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E23082ED7E; Mon, 6 Mar 2023 08:00:38 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 9702F1FE12; Mon, 6 Mar 2023 16:00:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118437; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=N4+KAj7O++Yi5vpFwEv8UDUdYndu+GaxZcmBs3XLVsE=; b=MrrOCooNoOqiaDI3UBCDwQqRxu3KrZ8Xsu4FCuqHqFzGzItpU9rPmy5vAqKreZ94PyobG8 9JISjYQgvab3QMCF23iM2n03F+YpGq50XYQVx+cySGutUKX9YhXW/7Hb8GUw5KuDKGAaZO ufQ8j2kDuJMP9TciQE3jZPSoAOTnTpU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118437; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=N4+KAj7O++Yi5vpFwEv8UDUdYndu+GaxZcmBs3XLVsE=; b=6B4wSnDCF8D3W0DJ/OHeovnr378np44tRR49XRk1NaRoCsVMj9txmnXfuy1IThDxLyCHSF ozR+mQmTatZbKwDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3D96913513; Mon, 6 Mar 2023 16:00:37 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 2DUvDiUOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:37 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 35/99] fbdev/i810: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:12 +0100 Message-Id: <20230306160016.4459-36-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634954272710880?= X-GMAIL-MSGID: =?utf-8?q?1759634954272710880?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/i810/i810_main.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/i810/i810_main.c b/drivers/video/fbdev/i810/i810_main.c index 66f94dfaef16..3e624522fe7a 100644 --- a/drivers/video/fbdev/i810/i810_main.c +++ b/drivers/video/fbdev/i810/i810_main.c @@ -29,6 +29,7 @@ */ #include +#include #include #include #include @@ -1958,14 +1959,15 @@ static void i810fb_find_init_mode(struct fb_info *info) } #ifndef MODULE -static int i810fb_setup(char *options) +static int i810fb_setup(const char *options) { - char *this_opt, *suffix = NULL; + char *suffix = NULL; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "mtrr", 4)) mtrr = true; else if (!strncmp(this_opt, "accel", 5)) @@ -2014,6 +2016,9 @@ static int i810fb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 15:59:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64844 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923403wrd; Mon, 6 Mar 2023 08:04:22 -0800 (PST) X-Google-Smtp-Source: AK7set9X8pP1O2i2rFCeOFth7E85fg/sD+LRJGcaQXsm8NrO7jCCKLICrwspHW9JJnw9sNc/xADc X-Received: by 2002:a17:90b:1c87:b0:236:73d5:82cf with SMTP id oo7-20020a17090b1c8700b0023673d582cfmr11621409pjb.9.1678118662216; Mon, 06 Mar 2023 08:04:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118662; cv=none; d=google.com; s=arc-20160816; b=JYEFKTB7vSQ9HzafJKwHyecGHqUtPLTOQqH1hBdGmuBzSZqu3aP/4rRjl3miexULDk Syid/CkGQ6sSqlOzSwIcFqF2S93UEmf4FwOq4PgRJhxAJLSIlQsr1TRBBRjCNRqXLXRW vF/k4/ifaj6N3G+385gHcKewgJ1bAyb/P6cp36oXVGRBeUTId/QN7eOu2Kbxytrbo1fE ThK81x4qy7gkDfdXP2h6NhU+MTYSf8YSGvQD7GM4EMa+dOYmKPosuqAcxxO9Em+dQtbh LCTKTHo4Irs/7JhdnRkgtqCNsjqKac5Ll8ob8tx46S+H3tkL5/VcSU1OiG+yNk4qfdVS ivPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=u1Vj2hdFriPuAq6eu7C8YZHRTaIjSTKM0OUYtVPbUzk=; b=XM5Nye9L6Y6RaoqRA0iV1E4NSgVIMgsEQjAQrNFMyOhV5z9yS2HDec61sQh5oY5vT2 hPUpUBOonWNnHawqJx+O5o5mLi0ZQDroRxEXbsK/s9S3OMhA4jyHUJTC3OZwhi6fxUmd 8wwOOkE6sOTCkwzPZBxU7QBCy/pPSIRWO5UtSVoLEzWBNiI3e7OMx7GXf3q9OP5AgZve 8wrahf6gWRqTuXC0CNU7rg+AcyORNEZz1qvvgjMBMdBX7jQ5NOsYVsvfwJ8OudPh4nW5 sGtmMk6ZLywVXvCIfUHHwR+omG6vofC2Tuzbz7tI9IKxREqE1chpdhG3Ft7TMCE55tgW pMWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=NVJcM5+t; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y10-20020a17090aa40a00b00233ba274e24si12107088pjp.6.2023.03.06.08.04.05; Mon, 06 Mar 2023 08:04:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=NVJcM5+t; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230021AbjCFQCz (ORCPT + 99 others); Mon, 6 Mar 2023 11:02:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230126AbjCFQAk (ORCPT ); Mon, 6 Mar 2023 11:00:40 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4F5922E820; Mon, 6 Mar 2023 08:00:39 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 04C031FE14; Mon, 6 Mar 2023 16:00:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118438; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=u1Vj2hdFriPuAq6eu7C8YZHRTaIjSTKM0OUYtVPbUzk=; b=NVJcM5+tIjVKP36P2s61a81geLBT2XVpk0f49JGUpN36gKTy2EJ9npfGm04wJi6oNyABMQ bOhMpWxD8/HPl7I1+8n3/+4XfiUd87dBUrEYjiShSTB0DDjVwb6hbnlpxrTokTc9mqxDhO 5pFEn7NRrp51TH6y5EEhomLOiPfnclc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118438; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=u1Vj2hdFriPuAq6eu7C8YZHRTaIjSTKM0OUYtVPbUzk=; b=oUyTvCb7JB9J08x2nUAGyuDJaMojsQtB+ZHQlyLEJYFCPGhkHFN+qOwbnWxxDefF0hD8O8 uAfuSfArup44SOBA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9C43313A6A; Mon, 6 Mar 2023 16:00:37 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id gA4kJSUOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:37 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 36/99] fbdev/imsttfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:13 +0100 Message-Id: <20230306160016.4459-37-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634954608485220?= X-GMAIL-MSGID: =?utf-8?q?1759634954608485220?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/imsttfb.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c index bea45647184e..fc046886599c 100644 --- a/drivers/video/fbdev/imsttfb.c +++ b/drivers/video/fbdev/imsttfb.c @@ -17,6 +17,7 @@ */ #include +#include #include #include #include @@ -1560,16 +1561,16 @@ static void imsttfb_remove(struct pci_dev *pdev) #ifndef MODULE static int __init -imsttfb_setup(char *options) +imsttfb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "font:", 5)) { - char *p; + const char *p; int i; p = this_opt + 5; @@ -1608,6 +1609,9 @@ imsttfb_setup(char *options) } #endif } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:59:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64845 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923413wrd; Mon, 6 Mar 2023 08:04:23 -0800 (PST) X-Google-Smtp-Source: AK7set9/PetAxv+AvZEcYke90On4SazvUYuGVKYX3J0a1UBhcw+8A9vR8DgcFLcUA+tlAUvcZwCa X-Received: by 2002:aa7:946e:0:b0:60a:dc94:5d19 with SMTP id t14-20020aa7946e000000b0060adc945d19mr10465380pfq.33.1678118663026; Mon, 06 Mar 2023 08:04:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118663; cv=none; d=google.com; s=arc-20160816; b=0IiTvRfIkSSXOKHOqf1bubiXkQdKO+pE2yZWSQ9+0O6tvwn0a34BS6x3FV9UcvbO+u SiPRzcMUECW/e7O+BKHf20tnUFXhGGibznvDuV/NWDi0iuXFiUXht3HJSEzVpyzMGANv nv6UJDqe1NftyoE/QRdh74MwRYQCG7NIuSnbrihteTSsk9ghbhn7bKcuKhntZspnRmNs K51/mcINFyzPmpj4iyo+mqe5ifS0HvBJTkH+nq/NAgJGTKKJuJENk997PBBTWulTIzf4 48tqibuYgA9IOA7ICtVdyzzZUDYsiwaFMZAguABV09qO/gocph+KLtQRunAj4oIsFJMV qC+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=7iMEfuN9WtWV+W8GDub6mP4KQ3dzlvXhpj7NWAmQU0E=; b=uGJXuCo2nX+7x1OCIAN2x0iT8V/0ULnIy0oqbAoFdWMjW7sqqA+91eTFU4IbAe1gLw M3pgYu5oaxqg/X/0EVkWBPL74emjqmImxZKiaWnI6oGgc2tr2iIxTGYjieCtHhY4bCz7 ORi86RFaFkHTOJ4Gwuxh98o5FOXkDcpWy+J/sWHzfX+dVYqPs0FOX9PDPmnV65Nkvtx2 C6LqT44kKWA0DW2Uzm/ciOEQw/9gUdToEmYXAO3yrny3VdaxDnXMUuI9ZPlmanMkVK5U dAEU39PkXaiam4Dl9paouLpGUQwNRNTPAvYikBVgpd8jTbfmBx1rRbVAdTaUYkCyN53I y5Xw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jI5U4bYH; dkim=neutral (no key) header.i=@suse.de header.b=lc2R0HRk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s18-20020a656452000000b005023dfa3c69si87116pgv.405.2023.03.06.08.04.06; Mon, 06 Mar 2023 08:04:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jI5U4bYH; dkim=neutral (no key) header.i=@suse.de header.b=lc2R0HRk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230013AbjCFQDB (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230152AbjCFQAk (ORCPT ); Mon, 6 Mar 2023 11:00:40 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADF172E813; Mon, 6 Mar 2023 08:00:39 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 642A01FE65; Mon, 6 Mar 2023 16:00:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118438; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7iMEfuN9WtWV+W8GDub6mP4KQ3dzlvXhpj7NWAmQU0E=; b=jI5U4bYHQERQJ5zYLmjEBr6kHAGSynAx4GUKy1XmqHWtu1EhmY49M44UTE3CObvlKGu5y9 yo+RM5cR00zj5iKH2RnVxb3o2kbhY7t29sJO1Ld1SnC8pxkneuYI01bG3HXrTe6qgWg6TV RSuj5PYrQZQYKqGazTtobw2W3QpoR5k= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118438; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7iMEfuN9WtWV+W8GDub6mP4KQ3dzlvXhpj7NWAmQU0E=; b=lc2R0HRkewYJnPi639Ts7hGbCxPIXrVBltySd2DcbFrKvdj+cu4UzMqJDj3yZShsR0OzHE tAXWoeCZnooPaNBQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 08D9C13513; Mon, 6 Mar 2023 16:00:38 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id ILY8ASYOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:38 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 37/99] fbdev/intelfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:14 +0100 Message-Id: <20230306160016.4459-38-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634955334644909?= X-GMAIL-MSGID: =?utf-8?q?1759634955334644909?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/intelfb/intelfbdrv.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c index 0a9e5067b201..896c2646e2ae 100644 --- a/drivers/video/fbdev/intelfb/intelfbdrv.c +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c @@ -365,8 +365,17 @@ static int __init intelfb_setup(char *options) noinit = !noinit; else if (OPT_EQUAL(this_opt, "mode=")) mode = get_opt_string(this_opt, "mode="); - else - mode = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "intelfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "intelfb: option too long\n")) + continue; + mode = mode_option_buf; + } } return 0; From patchwork Mon Mar 6 15:59:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64851 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923756wrd; Mon, 6 Mar 2023 08:04:48 -0800 (PST) X-Google-Smtp-Source: AK7set/jujZWGMOPbDuep8yhLpzbNG/WaidysKelq5sRVLtzuTnxkoHgq8x8gj0RmESOd8i4CACs X-Received: by 2002:aa7:df93:0:b0:4ab:5ce9:9f83 with SMTP id b19-20020aa7df93000000b004ab5ce99f83mr11208621edy.23.1678118688568; Mon, 06 Mar 2023 08:04:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118688; cv=none; d=google.com; s=arc-20160816; b=pH6+fbqgrCzw2BQlENryY18WNC7HEzAcMaqq7AG0bQeAXAoBoj5MDaJROuhffkAqtw KbOYr1Uif1xnsLobX2PYO6QJv4zl6ONzc4vOYWVKXTpUJCiXTbr3hyFpg7rkjoAHGtBe 6v+CrV8x3tsdMOv6VZQw9w6SMkl0Y5RZa8Xu3UN6G1+z/TRFbWjuPrk+JSgnd4MKoxGv 8Qvw8lSRTTdaIZWZedPKx7Anv6D5J+dSvOSobQRXpW8NkgbtL9tHH9gmAkxORxcuMRTI 96+qJmCwRrvuhv9xl11V0/C/9QABFhYWaP6lapL1NTVyfDBJ38i1VH7M7a/t8HzX1t9e +eEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=0mI5hxY6oQ2Q0qWcdERaw/gENN4eL71qVG14XGIWDCI=; b=EgG5DgPe/2hvAAv9RCyliF5TUA0PNhWmRvH9Z/hKoYY/Hf71yAnGllEGpIX8SdUBjN POTSfazwfVmT95S1dIBsB1kUCaMiRyjtsI7GSygTq2p/5jIkmprWm3d4a1TgBqhyO/Pd wDF7L0Ed0Wgqw6BPM3a0U3dSnPdHg0TumCEuFyKcFo14gbKAn0Hlw9RI1chdQCtditXl /rN2+nE5U3zXhgo4GRScZ/nFZ7xxUpOkPzpcb376IfH2+3Eb1qYqnsxVSGb+Ae6HB4Zt RTE0d/0IgUYL7uXqhcRL7E2OHKoEwhSqip+u4+a+/AwQLNFRxlS5GouNbvnrHOFkVvhF cujw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=YDxqQDsM; dkim=neutral (no key) header.i=@suse.de header.b=G5QYY12i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f6-20020aa7d846000000b004bf4b5c1d5esi10592715eds.200.2023.03.06.08.04.21; Mon, 06 Mar 2023 08:04:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=YDxqQDsM; dkim=neutral (no key) header.i=@suse.de header.b=G5QYY12i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230384AbjCFQDE (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230214AbjCFQAl (ORCPT ); Mon, 6 Mar 2023 11:00:41 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 13C232FCFD; Mon, 6 Mar 2023 08:00:40 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id C62271FE6A; Mon, 6 Mar 2023 16:00:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118438; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0mI5hxY6oQ2Q0qWcdERaw/gENN4eL71qVG14XGIWDCI=; b=YDxqQDsMAp2UjoBTYs3dheGgn2s0QrRmSahZQmc9b99QUFQtkLLjYzwCOza3atJg8P3qNH w0p6UElS0n3VFUx3Qw0xcRTINa4XFbhhnSkOQbG15WBIJN6z3330ZLNnhx1PQfov3Csx+Y QIC3KuEFK1l+ee/LUE9ck4iOV+mqMRA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118438; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0mI5hxY6oQ2Q0qWcdERaw/gENN4eL71qVG14XGIWDCI=; b=G5QYY12iSeLUPhHPCh0//gAizWQw49VWoI4CZAvAG0KKVWPuNaDPYGe5vDkb9S29FvhGE9 mPj6MjKM7bBIv6CQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 68A7613A6A; Mon, 6 Mar 2023 16:00:38 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id OO23GCYOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:38 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 38/99] fbdev/intelfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:15 +0100 Message-Id: <20230306160016.4459-39-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634982049475711?= X-GMAIL-MSGID: =?utf-8?q?1759634982049475711?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/intelfb/intelfbdrv.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c index 896c2646e2ae..2d4e03b9e7fd 100644 --- a/drivers/video/fbdev/intelfb/intelfbdrv.c +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c @@ -108,6 +108,7 @@ */ #include +#include #include #include #include @@ -323,9 +324,10 @@ static __inline__ int get_opt_bool(const char *this_opt, const char *name, return 1; } -static int __init intelfb_setup(char *options) +static int __init intelfb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; DBG_MSG("intelfb_setup\n"); @@ -348,9 +350,9 @@ static int __init intelfb_setup(char *options) * video=intelfb:1024x768-16@75,accel=0 */ - while ((this_opt = strsep(&options, ","))) { - if (!*this_opt) - continue; + option_iter_init(&iter, options); + + while (option_iter_next(&iter, this_opt)) { if (get_opt_bool(this_opt, "accel", &accel)) ; else if (get_opt_int(this_opt, "vram", &vram)) @@ -378,6 +380,8 @@ static int __init intelfb_setup(char *options) } } + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:59:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64846 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923523wrd; Mon, 6 Mar 2023 08:04:31 -0800 (PST) X-Google-Smtp-Source: AK7set9HdWN0LmtIwmEf8iZ9B0PaE2obDDFlp/mz7im1f3acrx5RUEvywRlfA7EaFxJRunAxgpos X-Received: by 2002:a05:6a20:548b:b0:be:e450:69b3 with SMTP id i11-20020a056a20548b00b000bee45069b3mr14747551pzk.0.1678118670809; Mon, 06 Mar 2023 08:04:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118670; cv=none; d=google.com; s=arc-20160816; b=TUdeeWgMEolvqVELDfFTAM58GT02NrOd+mI9/QJSflJhDHBQAoRkImQfyXarfmsYkk tSyVNhda14MKqwbNf3ePWSgaqxPjfeU8tIp62/E2PuPEJ4nUw8Ax1wX6LAwEY8XVUL63 fddZ++lGt5Uak7rshryccAbU137dye/l1GCfu1Odc87PhyGjREomKUuKf1ZuIhtCfarJ UsuaSBMeW/TrSuRvosggp7ldMaKWCUwUIVnuaFJAvOUJmm+UKf0hIjZLbszlpzCBt9GJ Gad7IPvgaRO5NSSWjjE1Q9rLYUaI8kwMRfJ3xvyHv3z3Cay9KD7rNaAd8RWwBQIE50mm 6nZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=VI7czhrNpM2s9K222rNz4O6xPKZ6jdVhFOSUUaE2lw0=; b=NqbgIJ021RXFBGwHg79tOoEz1D75LlVrJ6FwynC27bujTg2E+JGMuKZIMJW/HShR7h b1uXxY9evvJV87ZgO3E6i2de90ifS/LoAc3gBdo57nwt89n2k7W87YPNa0umfvBSl8Q3 G2tB3AqU34/t6ZqrNxZDD1PeRTShKhvrtHLWvJpxN6HVb99yyXxaN3Wu9hIhRGeDGtcY D9a4llj5ootNxU1Eh/1YcslSWAhNYIYYMuXgY6FZorMLgP6v4M2iqUYJQcuH/CyLXh9i TkDGQm/8mksGBN18IgvrtyBJp6X5218m6RamGwx2iS0N4bXj7w7sc66Ldn8putk4inaZ S/BQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=QrF8kA+C; dkim=neutral (no key) header.i=@suse.de header.b=CLVk59UC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z3-20020aa79e43000000b005a8a9d14496si9075560pfq.47.2023.03.06.08.04.14; Mon, 06 Mar 2023 08:04:30 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=QrF8kA+C; dkim=neutral (no key) header.i=@suse.de header.b=CLVk59UC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231205AbjCFQDJ (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41664 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229561AbjCFQAm (ORCPT ); Mon, 6 Mar 2023 11:00:42 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 907AE30195; Mon, 6 Mar 2023 08:00:40 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 35D451FE7A; Mon, 6 Mar 2023 16:00:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118439; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VI7czhrNpM2s9K222rNz4O6xPKZ6jdVhFOSUUaE2lw0=; b=QrF8kA+C8XcomNE0zqN8N9/n5oBvjDYcFmcsZLk194PjlTIBh6z4pccrzaFTd3+upMUVyj 3/1n7f/8g7tEJ5iwjJ1H2hM3YKanxaop251MJBNIVCnOLQxMRgfPKpL548ofc2auWbh4HC t/VQvDrfiVFZ+dSidmNRideJ8LWSG70= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118439; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VI7czhrNpM2s9K222rNz4O6xPKZ6jdVhFOSUUaE2lw0=; b=CLVk59UClN2YcyneRzaq1MZ5QoxJ6OE2CJTZOcLwygMr7D84MCr8seqKhFTfbboX5ZtbG9 rq6UDfbwMH4AM4Cg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id CB41B13513; Mon, 6 Mar 2023 16:00:38 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id gLmBMCYOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:38 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 39/99] fbdev/imxfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:16 +0100 Message-Id: <20230306160016.4459-40-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634963323694600?= X-GMAIL-MSGID: =?utf-8?q?1759634963323694600?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/imxfb.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c index 51fde1b2a793..34cd4d4fd137 100644 --- a/drivers/video/fbdev/imxfb.c +++ b/drivers/video/fbdev/imxfb.c @@ -854,10 +854,18 @@ static int imxfb_setup(void) return 0; while ((opt = strsep(&options, ",")) != NULL) { + static char mode_option_buf[256]; + int ret; + if (!*opt) continue; - else - fb_mode = opt; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", opt); + if (WARN(ret < 0, "imxfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "imxfb: option too long\n")) + continue; + fb_mode = mode_option_buf; } return 0; From patchwork Mon Mar 6 15:59:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64861 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1924281wrd; Mon, 6 Mar 2023 08:05:35 -0800 (PST) X-Google-Smtp-Source: AK7set8g5qcnR2Gym4EOTOhhPz9YeeNkzJs4U9l5XQn+25tOqoL3bqDoWRZVDW6Xwd+94t+241k8 X-Received: by 2002:a05:6a20:2a29:b0:cc:75b8:7cba with SMTP id e41-20020a056a202a2900b000cc75b87cbamr10172305pzh.43.1678118735564; Mon, 06 Mar 2023 08:05:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118735; cv=none; d=google.com; s=arc-20160816; b=Su1a2hHXV8zeBvU25Hbx3P3j1hxqPbsqQ/t1eAR1eNueYT+bv3o1R3c+0ariHM4BQJ OhkM/WdcbgV1TPVUu/c/KgkGGWRlOqZ+Y7DSNN5LKU3njUZw0+GA9DtcuAPGI/aP0iQJ bjKWdZ40exdAuDrlN45/PurF6IXWAvA6yJc2dzy+eVYaHX2BGl8K26t7ysxTeKKLBmKM KM8MMQCMCoI0VO3Md8FfqZjEw5n+0pa0BFkk+VcnIfCakd5VEo+A2NKtb/CktJXI6xhS ithlUXlz9bbI71c1DW/aIEKieERcTG6s4n9c1QYg1aKAyrg7IXwe8kJ9A/4bnImbntmY NIjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=JtbWzX++GGWbJi+6VWECCdUUEYcE0hx5AMmoDw+mBo0=; b=imwnR0ODfDOG6PZtv0ujK7CJUZXWajTLQNT8BJl1oRYu1NHr7yasXkOMhD3iDqROyZ XPavaq3vC/5ZYKPNMAcz0d3waZeNJr3EsSuZLuyiYh91/iVUroKqNb01+1hYj6S9VVwB 0mVDiYwSUboQP0BdPcVUqXsfHCh9cFlYjjLEzZLBLWIu7BXXNeqozeseavp4OH6k7jCc qx/d4dDDj0xvSp9OjiPA9kQwVrL7UkUhIB1CuX/B8bQbkuTohnayY1PsJ8nOL5ntzs3m veCFXQAg1yF4q2XmkE2BMxE7cryrPdW+/SY1Y4SKQ0vfACZv+TOBg5mRsZhCISwfV7Vo pJsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=hoAdTAlS; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=wIOz3uCC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z3-20020aa79e43000000b005a8a9d14496si9075560pfq.47.2023.03.06.08.05.20; Mon, 06 Mar 2023 08:05:35 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=hoAdTAlS; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=wIOz3uCC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230430AbjCFQDM (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41666 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229952AbjCFQAm (ORCPT ); Mon, 6 Mar 2023 11:00:42 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 040C2311E5; Mon, 6 Mar 2023 08:00:40 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 99953223DA; Mon, 6 Mar 2023 16:00:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118439; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JtbWzX++GGWbJi+6VWECCdUUEYcE0hx5AMmoDw+mBo0=; b=hoAdTAlSWRWIS8eldmOwiIJ4f+Vg2uQDTsTusRwTAWOkeI47A15NIY23hQXLlTxTFXQduQ 0EI58wO/yiBVJ7VKAWVfYaGJwum1Jv6wOtcpXtBdidtKpgLQra+J7LDiopldk04/9TNyBs K4USCU4wP15UtxQ7BcbrGiJDNadof1Q= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118439; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JtbWzX++GGWbJi+6VWECCdUUEYcE0hx5AMmoDw+mBo0=; b=wIOz3uCCPRIotkqVBq+Ci4zHjt/k9eTmMhFPLMa6TYXNtnli4Ws8apt9RgJBaliprd9pwj /CE8LaWXXsUf0uCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3A52B13A6A; Mon, 6 Mar 2023 16:00:39 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id uG5dDScOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:39 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 40/99] fbdev/imxfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:17 +0100 Message-Id: <20230306160016.4459-41-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635031131085537?= X-GMAIL-MSGID: =?utf-8?q?1759635031131085537?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/imxfb.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c index 34cd4d4fd137..950df484e5be 100644 --- a/drivers/video/fbdev/imxfb.c +++ b/drivers/video/fbdev/imxfb.c @@ -14,6 +14,7 @@ * linux-arm-kernel@lists.arm.linux.org.uk */ +#include #include #include #include @@ -845,21 +846,19 @@ static struct lcd_ops imxfb_lcd_ops = { static int imxfb_setup(void) { - char *opt, *options = NULL; + char *options = NULL; + struct option_iter iter; + const char *opt; if (fb_get_options("imxfb", &options)) return -ENODEV; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, opt)) { static char mode_option_buf[256]; int ret; - if (!*opt) - continue; - ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", opt); if (WARN(ret < 0, "imxfb: ignoring invalid option, ret=%d\n", ret)) continue; @@ -868,6 +867,8 @@ static int imxfb_setup(void) fb_mode = mode_option_buf; } + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:59:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64847 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923655wrd; Mon, 6 Mar 2023 08:04:40 -0800 (PST) X-Google-Smtp-Source: AK7set8UKK39oj6ywVbgV/0CFcDMC8DiGG2ZW2RdsbNQySAQxZZr7lPRjAV9heQTmkU8+7dJSJjB X-Received: by 2002:a05:6a20:c510:b0:cc:5917:c4ec with SMTP id gm16-20020a056a20c51000b000cc5917c4ecmr9130243pzb.23.1678118680078; Mon, 06 Mar 2023 08:04:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118680; cv=none; d=google.com; s=arc-20160816; b=U5+qcDJ9ZpG8uKL0roMiXWpzhq3KqSLsZJ8EfNpWzi38yBURkwp3pGWZS3Nqv1crpB IRqWoOumhHgmUksFpjUQpMXxUEKFwI/Ba5pVLVszK6iCj1ZHr4jG4PNrlIKn0dGHxDfX I+wfdNXcIqW20HKD91PQyV6mt7n/nzcdSSmUiODqvyLgAgoKYfoxvA37NMJs//8ii/4B gPushZJPsFcKNGcN50l7PzbVAf5g/6J3GNMyb3m+DMGbw88CGgxM61OGi08Rs1JOkTeL lqG1Qqr23tMLuq2l53+paBessMsvXtFK/qTOoBsoVybA3G3HLlJmtIdDAuE6lGlhPvJA rHlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=K0gGAw7ZqBoMZQQEk3RoG354RK+dTClSMJKbERgVuz8=; b=LRpDT4wigiDo0cR9WwrClIaFwlxSvZTGydxYDU28eFIWis7TGRZHlWZzclImZI3AlQ DKZXEehoywPW67tYelql7cAoDDCRbg18HmsWWj1n7Ld2BSYH871pdd0KtSz26CrA4XAR lIIWYuUmqDbIZkJfIe+XJKhPmdq8FCPkT1M4GPap74NmXdvIHvk32j7odgNCTShq2J3v 5n+JGXC+v4IBq8+87XS+1tpQ1OqWGTB8MP3/fK5zev7zdAAwohPpZsDWMdLRs4IU388R Z2KDONlvruZttxihKYCT5MakT3YLTh59Y2wsIN71PcVO1pBrVNFUj4wwTmqU1BDlTTSZ aFNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=QvMmCKNw; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=5CRCQQCE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i184-20020a6387c1000000b0050320fcb11esi9631178pge.594.2023.03.06.08.04.26; Mon, 06 Mar 2023 08:04:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=QvMmCKNw; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=5CRCQQCE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230521AbjCFQDX (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230321AbjCFQAm (ORCPT ); Mon, 6 Mar 2023 11:00:42 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6CDDD2FCDE; Mon, 6 Mar 2023 08:00:41 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 10025223DC; Mon, 6 Mar 2023 16:00:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118440; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=K0gGAw7ZqBoMZQQEk3RoG354RK+dTClSMJKbERgVuz8=; b=QvMmCKNwXDv+cSg00PFI22+IxUxHLK5DLRZbbuZ7Jz3xMDPN8olle+TigcBeEyicia25DD Jut0LD6tq+fjFP8aNsGs29r3vtZbGeOuaOD/G343DAf+MB7w9ZbH1ZAFFlMuQo+YOVd0RW pIPAjIXHfM27OBAyk49NBjnyuUkE8M4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118440; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=K0gGAw7ZqBoMZQQEk3RoG354RK+dTClSMJKbERgVuz8=; b=5CRCQQCEKlKMirs1zh8B4JrZ1nWQZbgPPGMJJ3GDYDKTYcECCiXaqRdIMIsCZw4+V6toOx V7/iz9RnNDnWfACw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9E85413513; Mon, 6 Mar 2023 16:00:39 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cFzMJScOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:39 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 41/99] fbdev/kyrofb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:18 +0100 Message-Id: <20230306160016.4459-42-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634972999688964?= X-GMAIL-MSGID: =?utf-8?q?1759634972999688964?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/kyro/fbdev.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c index 0596573ef140..a171f1119e4d 100644 --- a/drivers/video/fbdev/kyro/fbdev.c +++ b/drivers/video/fbdev/kyro/fbdev.c @@ -579,7 +579,15 @@ static int __init kyrofb_setup(char *options) } else if (strcmp(this_opt, "nomtrr") == 0) { nomtrr = 1; } else { - mode_option = this_opt; + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "kyrofb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "kyrofb: option too long\n")) + continue; + mode_option = mode_option_buf; } } From patchwork Mon Mar 6 15:59:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64874 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1931943wrd; Mon, 6 Mar 2023 08:18:22 -0800 (PST) X-Google-Smtp-Source: AK7set8GkZCvQTqp9LFP+udPycR3gH0U/1WQlSyOAqiM4t/AJIAh8liBk8O7aTlYq3g3GbVLc1jD X-Received: by 2002:a05:6a20:a11a:b0:cd:52a:faf2 with SMTP id q26-20020a056a20a11a00b000cd052afaf2mr13386911pzk.53.1678119502284; Mon, 06 Mar 2023 08:18:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119502; cv=none; d=google.com; s=arc-20160816; b=NN7Oucsjz/1gz4UF5CxkHjjj4P5eqqqC5q5KPdAmg/z2YQfEBWWnnToppBq+kwB5+G TAik87MsYTNrYFaYCXJhnke4yaIAKCkkKeI8MNiNd7rqNGgq+pmJatYw+6Rsn1tLeATw F122NF9DNIPegJzCgnOfMchUUowCrrJLMFMrXuJtvPQ0X1kVR/pVRh4Tni6itEMSN53Y mli+RlDS10JQt2l3gJUs+TqFZNjAnbt/Cd+2PU9zmgsHE+GMnyZ9fySavHFVAZdAf93z 2cK/2Ckw5jE0BTFXdXOQZhNP7jqcw8DKucCf/ouenMzK16dx4dwASb8Ozv7EB05VWqZd jRgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=cwqVqLpgUlWI9lNPI1evG9ZIvx/rxfSu6w7hLxHEO1M=; b=w3fXpW2E1WBR3tCeUskTYOqrvwaNTa1UymEQYzCFmo1XOtw5z5CjRL6cT1Q8HxxQwE muh22sUZot1fJAKfEGgV5yY9/E7RduvF63P04R5bRGaYu1cW5uUiepFB+lgdTfMwCSbp 3iBGKrbVeY4eiGpBR9IJCpcA1sgboYZfOYPDmRZjf+ivETeOLwBnAarPg7aHlie8G9uE cmNn3FLJkN93JwZk0IEu/d7IL8Qvw/2PInzsyUYRBGM6MY8lvsE2NP4OGHBFIFMJ4B1Y EIzSNhEB5YOY1N9of+ZWRFZwRRQPwk1W2xwn8OFyQZWddqtVT/F1u/3g5pguUgvooYQK uhfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=BOCKi3DJ; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 143-20020a630795000000b0050300a5cf3csi9293714pgh.469.2023.03.06.08.18.09; Mon, 06 Mar 2023 08:18:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=BOCKi3DJ; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231265AbjCFQDU (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230425AbjCFQAo (ORCPT ); Mon, 6 Mar 2023 11:00:44 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC5C333463; Mon, 6 Mar 2023 08:00:41 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 67624223DD; Mon, 6 Mar 2023 16:00:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118440; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cwqVqLpgUlWI9lNPI1evG9ZIvx/rxfSu6w7hLxHEO1M=; b=BOCKi3DJGxCVb2eTSqE2gWoeQ2DRsbUuoQ5zZ6KOjaVNuQ+W5wYpTfst1/IZGMEEFupZy9 sN3lAiH3I7nA4iMMB4pv7ekKWOX9SHpTdB98kH7aAeEL+eDGkAX0GO7TssiLNONbE4f6JG YZlN7rjJmGl5LuLxwySw/HCt3j9EfOs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118440; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cwqVqLpgUlWI9lNPI1evG9ZIvx/rxfSu6w7hLxHEO1M=; b=mpoJNTk5aCW4ze/v/oWDZzIHjLV2fF3Kxpku3QGa19Xe35RhJ2pc/Jc9ncZkH9ZjUgXVY7 PLJj2S+tgBw3V+CQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 09D1E13A6A; Mon, 6 Mar 2023 16:00:40 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id EKR3ASgOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:40 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 42/99] fbdev/kyrofb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:19 +0100 Message-Id: <20230306160016.4459-43-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635834988659358?= X-GMAIL-MSGID: =?utf-8?q?1759635834988659358?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/kyro/fbdev.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c index a171f1119e4d..c2c6e1bba3a0 100644 --- a/drivers/video/fbdev/kyro/fbdev.c +++ b/drivers/video/fbdev/kyro/fbdev.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include @@ -562,16 +563,14 @@ static int kyrofb_setcolreg(u_int regno, u_int red, u_int green, } #ifndef MODULE -static int __init kyrofb_setup(char *options) +static int __init kyrofb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ","))) { - if (!*this_opt) - continue; + while (option_iter_next(&iter, this_opt)) { if (strcmp(this_opt, "nopan") == 0) { nopan = 1; } else if (strcmp(this_opt, "nowrap") == 0) { @@ -591,6 +590,8 @@ static int __init kyrofb_setup(char *options) } } + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 15:59:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64886 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934336wrd; Mon, 6 Mar 2023 08:22:13 -0800 (PST) X-Google-Smtp-Source: AK7set/qTCUc9oQnXEdfrFiPN27refmkVkV4SMCL+/RkEYLj7vRK3M+QOhQ8F56GWxcXU2hkWwYw X-Received: by 2002:a17:90b:3b48:b0:233:e161:57ab with SMTP id ot8-20020a17090b3b4800b00233e16157abmr11853962pjb.5.1678119733650; Mon, 06 Mar 2023 08:22:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119733; cv=none; d=google.com; s=arc-20160816; b=xtRHCzFC7E9l417EmmlBKG67ZeTrJckAq2ofJoJiakJoKSxBbVR9JEjsXpdY5Jto5u BbAMQPmV3HXbYyiM6rZJkh0IYK/ALS4ZQx1ONFwG7aV79k0jMA4ygnxkvzdbm8wl8Rr8 FNHXbLndmZXqFkzgoTNAY3gUKbxFvjybkpBV5xXQKPE2vlBThFvwoAQta+QNnU6InOdO nFjpiqVfEHDTKsRwjRGJcnq9tQoXKF5O1OWv1HsxXoUlH9Kp2+LLkGafYsEUW5t+Vrg5 POaDSSGO/dayIrGHG/+nv0ZAuTKfeY1XDhe0VCZQVy51ik3I5m59ioRFEGrp0ZIdSwVY WDWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=tdQ9Z0pKhccY3nAxYeCZXdxmClNrcqOqv/uxdQRKhl8=; b=whLHRKepENxMbyGNPk8iOOtbTTC8QdJw/W6839hd1W63R8VoYMd4XJ2yPUTvvLIFAq w0ZROWOyYGRacB5lNugG+h5FUW4RU66AJix8jzJtU/nt0AsCTKy/nroSNHTiTl1A6wnw mJRWt/XBD+GkqwH/EErZfFkFEpjykR0wnaEwab5f5dr1xoM9zETX+39lYFiyonVNe1lk onTRBv+ItZtvcKB4rqccbeHHhFnTA3jfgl3YjuyxhnxsFNAz9LG4iBxcDlf2moknnsAB O6oYltPrJLxehyVlN/+UZdODTUxQSXsIczZAzzR3z9rth63E7sMfYVpD2yfT40HUj9Vy OVkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=dDysJK5I; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bm18-20020a656e92000000b00503a2b23520si9044644pgb.690.2023.03.06.08.22.00; Mon, 06 Mar 2023 08:22:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=dDysJK5I; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231160AbjCFQDR (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230458AbjCFQAo (ORCPT ); Mon, 6 Mar 2023 11:00:44 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 208893400A; Mon, 6 Mar 2023 08:00:42 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id CA1981FE85; Mon, 6 Mar 2023 16:00:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118440; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tdQ9Z0pKhccY3nAxYeCZXdxmClNrcqOqv/uxdQRKhl8=; b=dDysJK5IsCuhM1q2UWLb5Ii5to5sS5Q4BZGGCGE2pS/9vfUfk8TWhygJI3GxRCBxiQXwPA 14gNMuSkMQG14LLNsdA/Oxqko5ax+4zmtSA0/fi4DV59JBXJsFyyl+NotQSNh+ym6cMPAn I1rrLDYRDERoY5W5mLEBXXWyycCB4rE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118440; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tdQ9Z0pKhccY3nAxYeCZXdxmClNrcqOqv/uxdQRKhl8=; b=Dv4YwkluAuGRzM30rb8v2sbxU0FROOq1braDVs1pbDI8FImUyWqXz/rnLm9cufyF5noEbq XFU41H4GOayQQYAQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6C54A13513; Mon, 6 Mar 2023 16:00:40 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 4MCfGSgOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:40 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 43/99] fbdev/macfb: Remove trailing whitespaces Date: Mon, 6 Mar 2023 16:59:20 +0100 Message-Id: <20230306160016.4459-44-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636077786738123?= X-GMAIL-MSGID: =?utf-8?q?1759636077786738123?= Fix coding style. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/macfb.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c index 312e35c9aa6c..44ff860a3f37 100644 --- a/drivers/video/fbdev/macfb.c +++ b/drivers/video/fbdev/macfb.c @@ -339,7 +339,7 @@ static int civic_setpalette(unsigned int regno, unsigned int red, { unsigned long flags; int clut_status; - + local_irq_save(flags); /* Set the register address */ @@ -439,7 +439,7 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green, * (according to the entries in the `var' structure). * Return non-zero for invalid regno. */ - + if (regno >= fb_info->cmap.len) return 1; @@ -548,7 +548,7 @@ static int __init macfb_init(void) return -ENODEV; macfb_setup(option); - if (!MACH_IS_MAC) + if (!MACH_IS_MAC) return -ENODEV; if (mac_bi_data.id == MAC_MODEL_Q630 || @@ -644,7 +644,7 @@ static int __init macfb_init(void) err = -EINVAL; goto fail_unmap; } - + /* * We take a wild guess that if the video physical address is * in nubus slot space, that the nubus card is driving video. @@ -774,7 +774,7 @@ static int __init macfb_init(void) civic_cmap_regs = ioremap(CIVIC_BASE, 0x1000); break; - + /* * Assorted weirdos * We think this may be like the LC II From patchwork Mon Mar 6 15:59:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64850 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923718wrd; Mon, 6 Mar 2023 08:04:45 -0800 (PST) X-Google-Smtp-Source: AK7set9qAKKy+GSfEVQ/ZtF3muBkwA3CMvXHBYCF4UfD4K+qGZtFYbXJI7zKjpC2IIUQ0bdjUmkI X-Received: by 2002:a17:90b:33c3:b0:237:b92f:39d1 with SMTP id lk3-20020a17090b33c300b00237b92f39d1mr12130637pjb.0.1678118685625; Mon, 06 Mar 2023 08:04:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118685; cv=none; d=google.com; s=arc-20160816; b=UgaVfsQ210CT7PUeNwvw93MYiw75g6R2octMdgfIBCMx2XXTcGdnksW7t+aprruSK3 w8H1iflAyCvcVTd7K2/QZlYfvh2GPkAfI1nthMOq5iyBzEzN6XikWXhjzYP3NaLK/n6G UDIG0ujL1EBqAfPIq2op2MDnA8JkQa43gzAknt4AXc0aRXTz27QJIZ4SaibqkgHn/lre cfuxErA9J9V9vGs85ebCKgvYLF+F/gpzReYiuXOHuu3z7Ix7/IoAJT3wk93oyQZPnLRq ZdxJ4WKPjdoX85+bboRIHu7X8DfyBK2ixx/EzpVpbVo2pfOZo0GNUsFXOB2zTDd9fM6X 2yOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=zGLBLBg3pdJVJ0Ef7zMg0fUWatn8Nn9plsu006L4xGY=; b=JRNJwVUG76HeuyDzAe5jdGjzTKHCjszPG1ICytb9I+UIFcuZOuYTOIBQB2EGCPemHS 0d9zYwKqHi4xgowNB29ZP0B9eOF6cYaWIRXtfXfdpF+v2bW9VSj1F8Y4GWNQJCHb3q4r 7jJyNCKdXVPK3AWcqXTG132M7/3O4a5qVXalUtaDvGQw0hoK9cCuLT3Sg98l3Uhv7iSw 4cLT2JBZLSMck2v07iNqCyqRAKHZ0r2tFJMZCWYSEXU5ket1//gLFP//Mp0TzrRewllq xEQsmxbwAW1/6LdJoomcKei5kzGmbDbfJNgNByjshi0gWiKoZG8xHEXYEdwXkDXy/M25 e59g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=rGbS6q1d; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=tImxUNXW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ce4-20020a17090aff0400b0022c9594aaf4si9273666pjb.184.2023.03.06.08.04.32; Mon, 06 Mar 2023 08:04:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=rGbS6q1d; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=tImxUNXW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231382AbjCFQDf (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41666 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230215AbjCFQAp (ORCPT ); Mon, 6 Mar 2023 11:00:45 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B5FCF34F7E; Mon, 6 Mar 2023 08:00:42 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 338261FE82; Mon, 6 Mar 2023 16:00:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118441; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zGLBLBg3pdJVJ0Ef7zMg0fUWatn8Nn9plsu006L4xGY=; b=rGbS6q1dbhX3Pk7dNvUjpg8lilOZjgiJHNpUw5nxdDRrKvdHY+/1hEn/lLOTcJ6k5cF4v2 1QgMMBPb3bfiOLBqVpLPk9Ln3fenHy2+Vcv9IcDgd0730zb6rUqU5gQRsbWMoKq+Anxajh gig1RRPHv+C7TEa8m2U4BfSYTfIPZzw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118441; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zGLBLBg3pdJVJ0Ef7zMg0fUWatn8Nn9plsu006L4xGY=; b=tImxUNXWmu7wTyC7umHvV5pt6XrboNN+O93DgzWYN/JyZLxSNY1wixlU1hhBMVcr+jm1/R 8Jg2dPER5jD8+MDw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id CD79113A6A; Mon, 6 Mar 2023 16:00:40 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CDtAMSgOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:40 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 44/99] fbdev/macfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:21 +0100 Message-Id: <20230306160016.4459-45-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634978556042415?= X-GMAIL-MSGID: =?utf-8?q?1759634978556042415?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/macfb.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c index 44ff860a3f37..a72edb98b170 100644 --- a/drivers/video/fbdev/macfb.c +++ b/drivers/video/fbdev/macfb.c @@ -20,6 +20,7 @@ * http://rajsky.psych.nyu.edu/Tips/VideoBugs.html */ +#include #include #include #include @@ -504,23 +505,22 @@ static const struct fb_ops macfb_ops = { .fb_imageblit = cfb_imageblit, }; -static void __init macfb_setup(char *options) +static void __init macfb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return; - - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { if (!strcmp(this_opt, "inverse")) fb_invert_cmaps(); else if (!strcmp(this_opt, "vidtest")) vidtest = 1; /* enable experimental CLUT code */ } + + option_iter_release(&iter); } static void __init iounmap_macfb(void) From patchwork Mon Mar 6 15:59:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64849 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923712wrd; Mon, 6 Mar 2023 08:04:45 -0800 (PST) X-Google-Smtp-Source: AK7set+ZxngOK7/b4UKe4Xj4VboqupMvAn8XxPuJECCw7dUWC0E1LUPKB/RQv0xRdvt6XcpeY3pN X-Received: by 2002:a17:90b:33c7:b0:237:7ed5:bbe2 with SMTP id lk7-20020a17090b33c700b002377ed5bbe2mr11195572pjb.3.1678118685171; Mon, 06 Mar 2023 08:04:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118685; cv=none; d=google.com; s=arc-20160816; b=liSQSAntRvc4937nMUr8PFycy+vvhmzO/Wy9/27Cs+Zf3kr6I/khDTKsOkLoeJKb4Y lp+fxeD3oEd7tDkQWBekKSJibeGESCASRYdD4RV6yCWClQIDZPOLzUfG1lKLZtmpN7ey PISzV4nbS3b2jIV3fWD7P0ygPGtFtBfPZpjgFGnKrNK7Z4Vmy7LDgwi7FmJNaa1tIVyT JJ2XmFeFyIiLbl5BEyHUCFuMsg3pqol4WD4Cm+v3Fjk/NwzP7BwO0Yi7gxQ2qDoX3Aoa WIIhiDcX/ffRYhEm3mj5njS1uwbBTlYL0YuvkCRxt+uIBTLBZQa8Rgjc1t0Ps+SAsdFe ilBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=ZkQXjan0jowROvGRC5u3ioDg+jvgH6ZrVreFgORBrsc=; b=IJxLTUaLLGYxRODn9uHLfUf92HjgLsZhplnnmAz/mbi5ciG/UbeUn+qophjDzch6mP thYw+w0GAUWoG10l6TVJwr7x1w69HkyOY0gxzRRzb8giEh4W7+/Fho+qYIYaXgxImc05 +BAUlG3hfxu4GKntsBP+ocxk8ov1NLMryg5P9fEGf6sKHBFEyThA15I9Kbf4/7R4cYSR 36RL0vPaVO6ElXD116/5Zb8OOAxh3kVfphxiKgade0gNEj4BVgA2FRI7BiXsJvKoEvU6 DQgyhHH3GU6eMypukrfU/BkxhygZ1JvaR/JB9XBp3ZYxKqc5TtJtREVhSEwXJo9olUfO HRoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=p4dSG4UN; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t2-20020a17090ad14200b00233e8ff45b0si9220351pjw.63.2023.03.06.08.04.31; Mon, 06 Mar 2023 08:04:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=p4dSG4UN; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229911AbjCFQDc (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41778 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230465AbjCFQAo (ORCPT ); Mon, 6 Mar 2023 11:00:44 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3072125E09; Mon, 6 Mar 2023 08:00:42 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 95A25223E5; Mon, 6 Mar 2023 16:00:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118441; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZkQXjan0jowROvGRC5u3ioDg+jvgH6ZrVreFgORBrsc=; b=p4dSG4UN0SvOYm7f+Ini5G3JxYDXizo15S+ZES2hM8gMpQ+3h0fPW1c3+zc8LfsqJ5uOAa OFPVScXTSW0J1TU/x2+ApALnnvxl1elZCtpmtFZIlmXmV7n746WZB7lcdKoDAc/dsQotHo JYY02IhBpZi7DNJVPKZmos1RkATJ2OQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118441; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZkQXjan0jowROvGRC5u3ioDg+jvgH6ZrVreFgORBrsc=; b=x+GPpd14JqLOBkBEeV+nlMqiuF81+O1WMnDaNkbDHairiMyBGsocqbASU5EH4OxvOuXOwO C+wXHNWgKrawJdBQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 388EA13513; Mon, 6 Mar 2023 16:00:41 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id EDztDCkOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:41 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 45/99] fbdev/matroxfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:22 +0100 Message-Id: <20230306160016.4459-46-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634978406415299?= X-GMAIL-MSGID: =?utf-8?q?1759634978406415299?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/matrox/matroxfb_base.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c index a043a737ea9f..f690ee0c9b1f 100644 --- a/drivers/video/fbdev/matrox/matroxfb_base.c +++ b/drivers/video/fbdev/matrox/matroxfb_base.c @@ -101,6 +101,7 @@ */ #include +#include #include #include "matroxfb_base.h" @@ -2333,17 +2334,14 @@ static void __exit matrox_done(void) { /* ************************* init in-kernel code ************************** */ -static int __init matroxfb_setup(char *options) { - char *this_opt; - - DBG(__func__) - - if (!options || !*options) - return 0; +static int __init matroxfb_setup(const char *options) +{ + struct option_iter iter; + const char *this_opt; - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { dprintk("matroxfb_setup: option %s\n", this_opt); if (!strncmp(this_opt, "dev:", 4)) @@ -2467,6 +2465,9 @@ static int __init matroxfb_setup(char *options) { } } } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:59:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64848 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923684wrd; Mon, 6 Mar 2023 08:04:42 -0800 (PST) X-Google-Smtp-Source: AK7set8inIpqOQ8YK6ObA8phrd8+Q0OL2xydAYjqA90d+eR7xOQoXUrUMmkPNm1CVYMZ5IK+epj4 X-Received: by 2002:a17:903:228b:b0:19c:bae2:681a with SMTP id b11-20020a170903228b00b0019cbae2681amr11989140plh.66.1678118682667; Mon, 06 Mar 2023 08:04:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118682; cv=none; d=google.com; s=arc-20160816; b=DQ/e0PCNzVgXf2zrD503obOC4inw6bjjZP3qQs9kYTzBxVpHBzvw5zahIChFqDm79w Or3jVyigKz87kaiVTrEpj8mYu6AjiToZQ7NkfajAn1idYlZi1aJuH/adAgbsKtMFWTMd 6JGO/JBYbXB/Dxz6/TWChhEHEBX3i9FRs/vSJaqRv+wmy/qRlC4EsfNQ0L+4MuxZxAU8 dT/3EqEAbrcILPzHpOwx7MHJFFmFFC50HFcjudcj8heHxNKqOHSCaBXcYi8mlnDaTMWT HrjZY0B7LaVzrtpluR6dQvn+BGaoBOEi3m2rcxkVGEmfrojiNd5/+w0ZeOtdJW6cUedE L6Uw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=0MbXmAED/WWG0mr/2DOyHWFGxo5EmitjWc+reW8upDI=; b=Qky/zJfuPGH2w7MIPoIdhb/t5mwFIU9E/6K5Vsz9iu4txlvf94gSmEcpNB40JDUNOy UlYKF5mmu75Ocw+skQtW8zXaq+ee/RiNWS7+5SdZ4B1VcwwrgwKSPEi8BOo6tD7MCJ6J EHuPK+oOyy/U5OUulTU65SNPoW3CA5tG/BSV5CG9DCy07qJGni+hzgIPY9zmuG3GgQed 8iGsqnWSuJfMOTtV6Vg30sgCmwNoFGMWFJSyNZnz0T/qIUCescNne45KVMjohzjKA+PX VCp12OPW36mOHQPK6DVt1dmEZijHorB0G2EI+RSxIPWYD8ibGBOhkujqBsBsDQpewBTq uZLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=S+97CIg0; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id je9-20020a170903264900b001870a181f24si561328plb.222.2023.03.06.08.04.29; Mon, 06 Mar 2023 08:04:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=S+97CIg0; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229892AbjCFQD0 (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41628 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230467AbjCFQAo (ORCPT ); Mon, 6 Mar 2023 11:00:44 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B67DC2FCCF; Mon, 6 Mar 2023 08:00:43 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 03BB7223EA; Mon, 6 Mar 2023 16:00:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118442; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0MbXmAED/WWG0mr/2DOyHWFGxo5EmitjWc+reW8upDI=; b=S+97CIg0q3c5K+TuqxSZD3t/TtccVwdfs7BL2vx8JV40xHQlOnCT44nOPNxZWms+wafw6u 2KYAPYVGczXFRWC+FFmrY0tlNcE7oZm1DXH7FVNd0qn9U5/TMZ2NUH3qKnUzQfKthwQBuR rlUPfNLrEr4OsxfDp6S+hS7751t++rw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118442; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0MbXmAED/WWG0mr/2DOyHWFGxo5EmitjWc+reW8upDI=; b=ELgqy9L5zAtaBO082optXPQ1Go7QxZOM/JFvRhDK1o5pe0ouXouJ993gNcvsu+4o/H+ESh nx7es1PAg0CQSADA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9C37313513; Mon, 6 Mar 2023 16:00:41 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id KG5OJSkOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:41 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 46/99] fbdev/mx3fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:23 +0100 Message-Id: <20230306160016.4459-47-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634976073948372?= X-GMAIL-MSGID: =?utf-8?q?1759634976073948372?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/mx3fb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c index 76771e126d0a..cf14fe08567a 100644 --- a/drivers/video/fbdev/mx3fb.c +++ b/drivers/video/fbdev/mx3fb.c @@ -1666,8 +1666,17 @@ static int __init mx3fb_setup(void) continue; if (!strncmp(opt, "bpp=", 4)) default_bpp = simple_strtoul(opt + 4, NULL, 0); - else - fb_mode = opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", opt); + if (WARN(ret < 0, "mx3fb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "mx3fb: option too long\n")) + continue; + fb_mode = mode_option_buf; + } } #endif From patchwork Mon Mar 6 15:59:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64855 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923858wrd; Mon, 6 Mar 2023 08:04:57 -0800 (PST) X-Google-Smtp-Source: AK7set9XfWB0QNU3fkvWHGmLhaetuuoYUU+2qSwbi9/mgZDNSNAhpOjpdk4MTmhKqa4FM/L1Qrig X-Received: by 2002:a17:90a:2c2:b0:234:ac93:d715 with SMTP id d2-20020a17090a02c200b00234ac93d715mr12322995pjd.45.1678118696624; Mon, 06 Mar 2023 08:04:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118696; cv=none; d=google.com; s=arc-20160816; b=OlWhTCdQN6XfjgWFT0Gx2Ge9bBbm9XoM+JAqZcICcbKvXvDb3JxIvUp6SUg6r1GSPQ 3u9ojM0sFDR2E/rmTfMcnyCY0crgbiJpEtLAxCqwpZpKAVt5Kmf7LmOVn5u7ALCBOSda 69VUszoFVIHF/2PszVZNqiGWLDS+Af5IR1EhJiDiPiGxFFTqo0MNTcoLjvwNbXEQJ19Q vvSxrSEYUL2828IlYc6QxdIv5YEoBZOXe2WuKdvkQcaoWOWgnjgMS8s3TpfNF0ac1Gse VhKxethYVzJoGspioVXh3KNP0i62JKaZL5cKop1bwpzt983LOU0U25mWyBWMtWjuPkna Jb+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=VWHGHzW+q4kH1KH9xY8JJ8/Ps4LWtbKGrYcEV4O06cw=; b=MFLxWuJ7PN/rglXSm31Xiok6CgL/7suluiOD8eQGP9uGKiHrbH5Db+Ayftx0x7z5oW hycFXJeDghUIlVJ8I/Sc59kGmgjQQE5R91On9J2xFXrKsO0jw8O+lrFdHAceu5q6/CjI uclkd5gev0eBc1I6GNZ4jXbSW+tqnloYCXnZCGNL73a/Rn9wDJFB59ndoOWQnGVjVoHo Kry0ThnVlUJMIKnr33mBf/uiwk2m0LPnd3jCWDx533XfTmkUDNZePKFoYL8A6ylhh5zQ oMBVirurcORaXvPN7XQ0BYDyZX0jSm/5NtMON64wP4B+xRq8gXVH+uBzkAn+czKZWqW8 FeKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="VJph/50t"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d11-20020a17090a498b00b00229f5cf70f9si9309862pjh.107.2023.03.06.08.04.43; Mon, 06 Mar 2023 08:04:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="VJph/50t"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231449AbjCFQDy (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41816 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230504AbjCFQAq (ORCPT ); Mon, 6 Mar 2023 11:00:46 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E16B305DA; Mon, 6 Mar 2023 08:00:44 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 62216223EB; Mon, 6 Mar 2023 16:00:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118442; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VWHGHzW+q4kH1KH9xY8JJ8/Ps4LWtbKGrYcEV4O06cw=; b=VJph/50tpYWpeD5xSouwPdd5N+UgrC9A0PWexq0Z93ZLQnDO2jbNMZSbhMebV1wmOD8h6k CJjdO30HSXkjqa4QnBJ0Z1tNVCg1oQx7RwF/3Fku3u4BotRgPjPlTmRl25vB6oA8Pk6vzC fWhWMr9eTu1T22A7hxkhHbuNuNCHMpQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118442; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VWHGHzW+q4kH1KH9xY8JJ8/Ps4LWtbKGrYcEV4O06cw=; b=ynBpFxaUvUoYCB9hqyNEKRepUHFWDhchenuy25Fur3iMNFndKFcoS3PED9ofZDOeY8woPN 6SplZdPzWJzn5iDw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0873613A6A; Mon, 6 Mar 2023 16:00:42 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CPYyASoOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:42 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 47/99] fbdev/mx3fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:24 +0100 Message-Id: <20230306160016.4459-48-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634990625158293?= X-GMAIL-MSGID: =?utf-8?q?1759634990625158293?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/mx3fb.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c index cf14fe08567a..cb9f5ac69e79 100644 --- a/drivers/video/fbdev/mx3fb.c +++ b/drivers/video/fbdev/mx3fb.c @@ -6,6 +6,7 @@ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. */ +#include #include #include #include @@ -1653,17 +1654,16 @@ static struct platform_driver mx3fb_driver = { static int __init mx3fb_setup(void) { #ifndef MODULE - char *opt, *options = NULL; + char *options = NULL; + struct option_iter iter; + const char *opt; if (fb_get_options("mx3fb", &options)) return -ENODEV; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((opt = strsep(&options, ",")) != NULL) { - if (!*opt) - continue; + while (option_iter_next(&iter, opt)) { if (!strncmp(opt, "bpp=", 4)) default_bpp = simple_strtoul(opt + 4, NULL, 0); else { @@ -1678,6 +1678,8 @@ static int __init mx3fb_setup(void) fb_mode = mode_option_buf; } } + + option_iter_release(&iter); #endif return 0; From patchwork Mon Mar 6 15:59:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64854 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923856wrd; Mon, 6 Mar 2023 08:04:57 -0800 (PST) X-Google-Smtp-Source: AK7set90LaHGR1ECGEowRvgQOD29WLVTnE8dMihxvzCwI+mooTOUmhd7q8C0gVA3K8RdRqodunQ5 X-Received: by 2002:a05:6a20:d021:b0:cb:df6c:acfd with SMTP id hu33-20020a056a20d02100b000cbdf6cacfdmr8642537pzb.52.1678118696755; Mon, 06 Mar 2023 08:04:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118696; cv=none; d=google.com; s=arc-20160816; b=k+m9Y4XdA0GTuJvLtc1Pl3w5lCKr7TGH3vqpR7PW2Ove7oyHpG+J9dtj8e1R51MbIK KgWVbRFrOfRrsHvQfR9s7k1oKrTjrpj6X7JTs4pQaxNIi4CpJdrUE2mwJUGApvXrdXYW 38y0orjVkxjlghyWhQj+Q4yW0EMhwTsm/mI2LAQtn4zoAWlRDcGo4RCCx/s0qpoumeXG wxjn0JgVjxmoGxFhhjadPvJRUjvSiYwlKeZqK7N036t93o+pA+z3K5XdSm6I9f9TG6WO RQj/+1U1cfrnJKKQcg4j5PCInIJg+RYRo5c728ZMCcVy6F2cH5s6s5gU71YJB6fwR2gH 2uqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=RY3kXDB5O3B2dKeL06A7y/2N+B8soo0q40s9lvLV3c0=; b=TECgebVCV2Nq5qbHJ2dj+zgU6gBVMzYj2uFmnsMAF5yLj70NdKfVGbB0wMyP5afQ+z D6e2ONunQ5uFkI5WI7sYvTpRbXjpc+5wBUhfM+2Ij277QV51gXK2iUuRfgqoRc7ymwsz ILwzXnGxOS2dWgxRJsrn8sTq5vfI4JnEaOFtqf9e7Qzp7yTJxsj87jAZGBOmoCNc0dJA lH5Ni+wivM65DsMKPg+t9QPZzFwArNMjooBpw6hGIkL7Xj9LnnS/moETSDLE4BzPA2qb ddR6qZXmrQu2R19mI7/OHeoXMCKmwPBufzZ1TX5NeG6YfKPGX/2QNklIAocUIJEqcPwW CbUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=dFdmq7Ma; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g142-20020a625294000000b005a9c2c4657fsi8658969pfb.191.2023.03.06.08.04.43; Mon, 06 Mar 2023 08:04:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=dFdmq7Ma; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231410AbjCFQDv (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41820 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230508AbjCFQAq (ORCPT ); Mon, 6 Mar 2023 11:00:46 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E1F530B34; Mon, 6 Mar 2023 08:00:44 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id C37991FE8E; Mon, 6 Mar 2023 16:00:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118442; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RY3kXDB5O3B2dKeL06A7y/2N+B8soo0q40s9lvLV3c0=; b=dFdmq7Maqv9IBxfXjOtZJbinxuRrLnLdsPdKXYEl1qQi/wrhQxu8yr+8McekkWAH/2SmlB 7zKf6taB7830jBxci9VS5tTnFIAKMID+oBDHDZjBQENwb5N42q/gyz69EriiuWzzmYdH8S 7Ry3BWyWak5Iq5j43eCCPntiOLDl5qY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118442; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RY3kXDB5O3B2dKeL06A7y/2N+B8soo0q40s9lvLV3c0=; b=GbyCBA84a/aaAPVwSDmwul2Q+inOSugQYvcb0HUNAJvn/QXdaVWrRao+yY5sfTedrTiO1F EYEYAT8cItDj8+Aw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6679113513; Mon, 6 Mar 2023 16:00:42 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id ENcjGCoOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:42 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 48/99] fbdev/neofb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:25 +0100 Message-Id: <20230306160016.4459-49-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634990447312165?= X-GMAIL-MSGID: =?utf-8?q?1759634990447312165?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/neofb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c index 39d8cdef5c97..958111f7d63c 100644 --- a/drivers/video/fbdev/neofb.c +++ b/drivers/video/fbdev/neofb.c @@ -2198,8 +2198,17 @@ static int __init neofb_setup(char *options) nopciburst = 1; else if (!strncmp(this_opt, "libretto", 8)) libretto = 1; - else - mode_option = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "neofb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "neofb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; } From patchwork Mon Mar 6 15:59:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64852 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923798wrd; Mon, 6 Mar 2023 08:04:51 -0800 (PST) X-Google-Smtp-Source: AK7set8XIzMMzf8U8uXTra1kS1YYilXax6Q4cW5RxIgCH+OMVc+AAB+QCAaMk0ZKe9pUXlTDMgun X-Received: by 2002:a05:6a20:1e58:b0:ce:7c40:6a98 with SMTP id cy24-20020a056a201e5800b000ce7c406a98mr9706159pzb.28.1678118690812; Mon, 06 Mar 2023 08:04:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118690; cv=none; d=google.com; s=arc-20160816; b=UiHGfIvtXDrjmsYYRWsp18+a8SMifRuCr6fRwXtQXotxG+BA89gtSnVO4RERxlTLoo UIkPTXV2ApSWEeq5NEkZxbLC/11D9d3TJawZ81Amot9SFoY9+OKlLTaGImiRMamScCE0 L5z0qeKcZLHAOsWuOLmRwVvJex+iQpr/Mt0MJRymmVcxrFKFM8F/3LpyzSMowzSNCtKD yXcp2S/kKCr3+4kbcM2iYoI3m7XjoYdtb2hFXKbFvf1O56khYAlrws+lUuiYgu3nnIWw c9Bem5iltRILKBw4ahkE4JhANynbIt4kh3E67JosXzcCPhNNdst0wECL1xIrq1DAzmeG jzWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=gYmDAktYqSKk16Nt3SCIyrh7JuKwp4gqEgQeRQha4rE=; b=sDA+KXTk4TzNHTh4A2XUuwcdMNtEvWUOGgtG3+rcblYY6ogu17EybKNLvzxMe5wyLT +QIzOklHedoqQ7ZEGoNcr/+Q9jP838UIq3E7jl+p09OeoB/rmFdj+/U/U2fuQ/77g0iF VrsiDbsCj6r/MBsEut+M2E2pP1pDIbXNX+EhCt3jLiRdbZYe/x3H7kvweRemxq7Im7qK 2XdEae3pOGCk6HQxMniyDW2S1Qs3lI6Zfx8Zajgw4e3zxg3K7d4eY1skfDWMTOBQ2lya lv5nSbLtrzG7suUwzgrX0NiBzaB7+agNFbG0Pm6n4tg2lr7+yAVSft5Zy2qXrAQvfUMT YvUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jGqD8OG7; dkim=neutral (no key) header.i=@suse.de header.b=Yx9jMAbS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c18-20020a624e12000000b005aa804c4afesi9873741pfb.300.2023.03.06.08.04.36; Mon, 06 Mar 2023 08:04:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jGqD8OG7; dkim=neutral (no key) header.i=@suse.de header.b=Yx9jMAbS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230101AbjCFQDk (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230516AbjCFQAq (ORCPT ); Mon, 6 Mar 2023 11:00:46 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 863512E0D3; Mon, 6 Mar 2023 08:00:44 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 30B48223F0; Mon, 6 Mar 2023 16:00:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118443; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gYmDAktYqSKk16Nt3SCIyrh7JuKwp4gqEgQeRQha4rE=; b=jGqD8OG7NA+zxUIBZpS607qu9LoqogwbziuEQ7wE8IsvXasOWQ8sk5113lM4Y+Aoai1VjK V1zbFNmtoIOBi7CARgZrmLNEkMCwEljbaHEMS7NXihNFU4UAWiycDcf+QMzBR3/zfVURv9 emwhEoGxwTySfU/TsMKcZ+nfow8VtMs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118443; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gYmDAktYqSKk16Nt3SCIyrh7JuKwp4gqEgQeRQha4rE=; b=Yx9jMAbSCp9f9Fq3RNrZI9vyCIxqTNcX1eE2f3Ejd1rnk0M/TQNXaucXHpCnuLtVijIOGY R5buLDvH1HKHS+Aw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C8F1713513; Mon, 6 Mar 2023 16:00:42 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id uMAkMCoOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:42 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 49/99] fbdev/neofb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:26 +0100 Message-Id: <20230306160016.4459-50-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634984269352772?= X-GMAIL-MSGID: =?utf-8?q?1759634984269352772?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/neofb.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c index 958111f7d63c..e9b132d660ab 100644 --- a/drivers/video/fbdev/neofb.c +++ b/drivers/video/fbdev/neofb.c @@ -55,6 +55,7 @@ */ #include +#include #include #include #include @@ -2175,19 +2176,16 @@ static struct pci_driver neofb_driver = { /* ************************* init in-kernel code ************************** */ #ifndef MODULE -static int __init neofb_setup(char *options) +static int __init neofb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; DBG("neofb_setup"); - if (!options || !*options) - return 0; - - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "internal", 8)) internal = 1; else if (!strncmp(this_opt, "external", 8)) @@ -2210,6 +2208,9 @@ static int __init neofb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif /* MODULE */ From patchwork Mon Mar 6 15:59:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64859 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1924037wrd; Mon, 6 Mar 2023 08:05:14 -0800 (PST) X-Google-Smtp-Source: AK7set8Jfhf/ivZR38MnmgXgzaUBtN0BfuUfVabqRYXRGlI/hXLfMGAOR+bTurCILijqgaIqKAAL X-Received: by 2002:a05:6402:1655:b0:4bf:c590:3c4e with SMTP id s21-20020a056402165500b004bfc5903c4emr10812176edx.4.1678118714562; Mon, 06 Mar 2023 08:05:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118714; cv=none; d=google.com; s=arc-20160816; b=iC2oWPyIuAGBeHkx2ntte8WOQ/zorjc6HF0viGg4w8EMimxJCkrVoHChzKMvEjsznJ /01eMhMXpJQWkt/qMJq5q0P8SE0x95GpwWBc0I0ejEBFpmsFfr8ghRB2O+jYY11S2Bpx tDDtYiUquU/mL5W7XnJn0pl5o2Jr4qz310dw4XwZPCK4uNwZEDVRi3NIROOUKZwuw22l D/RMIOa71HPVJvs7h0I8kjmhz3EpU3CEd7WS+h+FvY0I2FQL7eAIG2t1rgdSkBRcGAD5 XM4/QLOrP9xIbj5drpOuobD/QtXkTtaunPTwT8w/B/z1YvGKjNCFqicVow60UkuVIn0t tUFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=bNt7g7qk3sNz1zHUSaStHnUvLckbyLDyTgt+yojcOaU=; b=eeFuvG1hP7VhfDhNVf/r9p4eds/tyGxTf0ifd0NootKZkbwilGxEiE/eKVF6EgCAgM Opf0pRWqUFYknmHvYB3O+baERcPna6x47+2aBi8HpPdKZJ2ewe33PF2o2iGeF2YXBXZ+ Jj/bLku/oVXxr2ehykX1fMw25H27ZbSnyG/+F8TeYtfo9oBXpiuAqYz7wo8khzWUwDln kNEa8v9LlV1beHk3lFxQju+4GRKH81cKLijbTUSp8eSV97VAlG79s1LEazDcr8pak5SM qqT+nKT3BopZ9L3Rn0l0aGBL5KjmLB7x45xF/3fAZ5kLcWURJe3B4ub2ZkbZf0E4ejbJ t+BA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=sSn5L16M; dkim=neutral (no key) header.i=@suse.de header.b=2bcIZLSA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n5-20020aa7d045000000b004c698b50192si10553795edo.340.2023.03.06.08.04.50; Mon, 06 Mar 2023 08:05:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=sSn5L16M; dkim=neutral (no key) header.i=@suse.de header.b=2bcIZLSA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230340AbjCFQDq (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231127AbjCFQAq (ORCPT ); Mon, 6 Mar 2023 11:00:46 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D82122FCEF; Mon, 6 Mar 2023 08:00:44 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 902811FE9D; Mon, 6 Mar 2023 16:00:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118443; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bNt7g7qk3sNz1zHUSaStHnUvLckbyLDyTgt+yojcOaU=; b=sSn5L16MpIhjidLvMNCBDr4FRRQm/jwbp6ove7mwcqJnV62ScS4M1M4j7CBVp9L2gmTHfu sql+Kb67O68OSpxuTInrxN+65Qbam2Q97DctYwxoweaACPcYMQ61dv/qIzeSUnA8o0nvWm nlb5c0L67GkGSY/iUvxsJv9e53HZTj0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118443; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bNt7g7qk3sNz1zHUSaStHnUvLckbyLDyTgt+yojcOaU=; b=2bcIZLSAwIvktfikfJeQXEEUi+WahZFzsbEkYrkLuT6pYFhDjMKNq2HYVeV9VKd8XIv68Z 0gzvebfe1cw4VUCA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3376313A6A; Mon, 6 Mar 2023 16:00:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 6Ou7CysOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:43 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 50/99] fbdev/nvidiafb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:27 +0100 Message-Id: <20230306160016.4459-51-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635009331311571?= X-GMAIL-MSGID: =?utf-8?q?1759635009331311571?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/nvidia/nvidia.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c index e60a276b4855..eb91201babd4 100644 --- a/drivers/video/fbdev/nvidia/nvidia.c +++ b/drivers/video/fbdev/nvidia/nvidia.c @@ -1498,8 +1498,17 @@ static int nvidiafb_setup(char *options) fpdither = simple_strtol(this_opt+9, NULL, 0); } else if (!strncmp(this_opt, "bpp:", 4)) { bpp = simple_strtoul(this_opt+4, NULL, 0); - } else - mode_option = this_opt; + } else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "nvidiafb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "nvidiafb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } NVTRACE_LEAVE(); return 0; From patchwork Mon Mar 6 15:59:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64860 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1924117wrd; Mon, 6 Mar 2023 08:05:23 -0800 (PST) X-Google-Smtp-Source: AK7set9gT2JMeOWUs3vr9Uuf0QhbiSPJ286zbQCHSFiy5Vc7eGCOfg1g8Kn3jF99qEbHXLAd9F6w X-Received: by 2002:a05:6402:330:b0:4d0:c131:dbc6 with SMTP id q16-20020a056402033000b004d0c131dbc6mr8010411edw.24.1678118723014; Mon, 06 Mar 2023 08:05:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118722; cv=none; d=google.com; s=arc-20160816; b=stemT/kevrmkMprK6LTOoyxor02qdNjGsw6GyLqCIzRJwQyE7oZgidmeu8MMrHu6Oi BE+BzUKz+U8HCu7owqlXuHI0MHp0h9V6p5YUs53g0OHSuVhllMppb6w4hwSK3DbnWau1 e5Nc6OpW/1DNEL6QQboTKbtdpo/02miu+wjC8ewPC1oAQ0OfKyUPctHpMqxHqnnFYoPD V+WRNBiZKPXUYIvSxQCIlhOCdkqCI9buHIi35Vy39SUVQs5GTilNJ/2lM2Mp5d4lvItY zAb+UwfdIm4qkBeC1so3zpSVUxemJoFnBUezL/UkUUzWAg3E7KuzSp20qkOWe7HnXf5Q 5GVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=GdlBvpQCtFANkdgtqm8ATrYFTI/ql2Egv02ZUyDqJ8o=; b=roP1MgGSICAXSJ/Yx1eqrtHNTDJi3R9gGMjquqCg4tYDU+ildIskjQhfb6bTo3+i4e 0ImPSQ85lZ2eiI0ka/HctEMrjmCTDLvgmOjLXxc5xKTEIpmCnipxMh9px9yjxh7JfR5S 5M9/rfpwN6SUXvzpZfZi+KYulcm+dY4jUOiVWa1qP2ctL1k/Tetvpt3EH2JX+hLWUm0i ib6zc3jZeMbPVBozEt3YpJ4ZscNh58t96xENI0YdJtWI+zX3X26/UlsRnsG0hR4iOBnf D0N1UQlOpyzEqL95tXtjKr/IjBHN+gyzHPKELVlP48J6dK2Nsei8irXOy44dpTiSb7Py WURQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=HCZQ0kRD; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i6-20020a056402054600b004ace0fce44asi11338830edx.521.2023.03.06.08.04.59; Mon, 06 Mar 2023 08:05:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=HCZQ0kRD; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229622AbjCFQD6 (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231167AbjCFQAr (ORCPT ); Mon, 6 Mar 2023 11:00:47 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A91462E813; Mon, 6 Mar 2023 08:00:45 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id F0CE8223F5; Mon, 6 Mar 2023 16:00:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118443; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GdlBvpQCtFANkdgtqm8ATrYFTI/ql2Egv02ZUyDqJ8o=; b=HCZQ0kRDvWLtfqeDNYrYdSQ5fA3xEzhdgqLwHl+t6jQxmCQDXXqqHRjZnVdQq7GmTqRPi6 eclrzaKX4l4SdJ2lQRmRd39SCd1aouKWj1l5/LyVC38Ca1AGZ3HQWxQQDgg3QDtZeUuqvC 9dRlhbPiwqT9LvKb+Vnxac5h4MDMNQc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118443; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GdlBvpQCtFANkdgtqm8ATrYFTI/ql2Egv02ZUyDqJ8o=; b=Hd+sMIb0Mlk7afi9BKsvEL4L3ph/cRvshwvmOsYdJEdvckMpsdPLTwcceaEJrWqc+tzWxG rHEKgviagQh1ZLDQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 94A3613513; Mon, 6 Mar 2023 16:00:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id gO9JIysOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:43 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 51/99] fbdev/nvidiafb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:28 +0100 Message-Id: <20230306160016.4459-52-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635017920117620?= X-GMAIL-MSGID: =?utf-8?q?1759635017920117620?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/nvidia/nvidia.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c index eb91201babd4..58b1b13f09dd 100644 --- a/drivers/video/fbdev/nvidia/nvidia.c +++ b/drivers/video/fbdev/nvidia/nvidia.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include @@ -1458,17 +1459,18 @@ static void nvidiafb_remove(struct pci_dev *pd) * ------------------------------------------------------------------------- */ #ifndef MODULE -static int nvidiafb_setup(char *options) +static int nvidiafb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; NVTRACE_ENTER(); - if (!options || !*options) - return 0; - while ((this_opt = strsep(&options, ",")) != NULL) { + option_iter_init(&iter, options); + + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "forceCRTC", 9)) { - char *p; + const char *p; p = this_opt + 9; if (!*p || !*(++p)) @@ -1510,6 +1512,9 @@ static int nvidiafb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + NVTRACE_LEAVE(); return 0; } From patchwork Mon Mar 6 15:59:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64858 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923997wrd; Mon, 6 Mar 2023 08:05:09 -0800 (PST) X-Google-Smtp-Source: AK7set8CSYnQUi9Eu/yF7r5DmDJyUox/pC/ZesLCgVAvq9DoqI+e5k8mtggnt8TLYuIPT/YhIZiM X-Received: by 2002:a05:6a21:7886:b0:cd:1ccf:246b with SMTP id bf6-20020a056a21788600b000cd1ccf246bmr9837915pzc.57.1678118708919; Mon, 06 Mar 2023 08:05:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118708; cv=none; d=google.com; s=arc-20160816; b=iObIDZWMnnTmwRy4CebEe5AwnziTH+4yJdYsdq0/6r9GqiYnjuQYn5JXEAZD3/YkIu e4Ip3clhtc5DOgmYA+ZOmu7yRlmvtcu+b3Cs+EJcuFT83QAl0aiKkc4VdI29m12zIXyt qVpUIoViobkKLBDaK9+u0ApWQNhvKxVBqXgh7DuLHO9ybYVwv7iq2Gr0qOmgFVmU/nA/ ei0tlCdbHPoVWqxVvIjujAmWmehTENqiAVa4YNF4RuMIsewf1Ehw4U4TF8vbOg63xn2d S2uu1pXfmWDN8HKq/MwQOVDx4S5scsBqFZ2xskgEduNS8GVfiDeyR3Ht1PuEoVvX+7V3 gZsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=5xZuWufF0BKBnJgqnmUzO92Agzss6jwSfAKczEAHKgw=; b=wraH0F8U6ns8kMHhl/3ah0ZOo/UH3vtY6EM486hBsPo/ZPYviQkwSaKEi+cy4fxJnr q59pzkhb7aLH5xqEjPJDVxKUsr2Tr01FgQIydcMZ/BuZpHIuaamu0EMbnvcgBd6lP0iT jmB6YRnWqs3qiJYrndpuBtRMaViFr/mkZGHDLKpBGGR1L0UguHihmnITPM3oY0FSmw4s zKkIaa71XWif18LKKbQJDT3rPac67n9ZGLgyZoc5gUztwgrqnWQiYEmyU9QC6X9eRIvb MgkCJtiEtiQSvm8OHhkAkK3ljQTga3KhHsIOZscjYWjpwdCY/QVe+QO+Y1SpYXL5v8YX 7ZgQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Ri+OkwPp; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=aqrGuidr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t23-20020a63eb17000000b0050327dc5ff4si9545918pgh.67.2023.03.06.08.04.55; Mon, 06 Mar 2023 08:05:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Ri+OkwPp; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=aqrGuidr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231256AbjCFQEG (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41664 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231178AbjCFQAr (ORCPT ); Mon, 6 Mar 2023 11:00:47 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF54F30195; Mon, 6 Mar 2023 08:00:45 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 5973E223F9; Mon, 6 Mar 2023 16:00:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118444; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5xZuWufF0BKBnJgqnmUzO92Agzss6jwSfAKczEAHKgw=; b=Ri+OkwPppiCoGP9RFfeKBJINJh8GGPK6sO/aql/OWm+N8e38md54yG1eM8FoghdD0HGk4u 98L3izBlLDXHA0Fkb9m1lGhvHOU9rH+lV2sURp1LZLRPC8osURiIGBD14qdloYQD/O9oew ZaOjvQeKFDdzqG5HgOkl2SqHrxtvyOw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118444; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5xZuWufF0BKBnJgqnmUzO92Agzss6jwSfAKczEAHKgw=; b=aqrGuidrSFqrQf7eR1g3H2MBDl0S41CbUCmCHHRkWYuQ5h3+tMTkJShxYePoVy3k1lhxoG itYNAd1KxDdLOyDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 00BD513A6A; Mon, 6 Mar 2023 16:00:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id WPrbOisOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:43 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 52/99] fbdev/ocfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:29 +0100 Message-Id: <20230306160016.4459-53-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635003145480280?= X-GMAIL-MSGID: =?utf-8?q?1759635003145480280?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/ocfb.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c index da7e1457e58f..34684191f2f0 100644 --- a/drivers/video/fbdev/ocfb.c +++ b/drivers/video/fbdev/ocfb.c @@ -75,9 +75,18 @@ static int __init ocfb_setup(char *options) return 0; while ((curr_opt = strsep(&options, ",")) != NULL) { + static char mode_option_buf[256]; + int ret; + if (!*curr_opt) continue; - mode_option = curr_opt; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", curr_opt); + if (WARN(ret < 0, "ocfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "ocfb: option too long\n")) + continue; + mode_option = mode_option_buf; } return 0; From patchwork Mon Mar 6 15:59:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64857 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923934wrd; Mon, 6 Mar 2023 08:05:02 -0800 (PST) X-Google-Smtp-Source: AK7set8/viGH/KOOWfSN+3JnI8nwiAPNXXQj7VOdIafERO2q7PGxcIbomxxslxrSERi6xsgMGWZ4 X-Received: by 2002:a05:6a20:c510:b0:b8:90aa:1956 with SMTP id gm16-20020a056a20c51000b000b890aa1956mr9225932pzb.20.1678118702330; Mon, 06 Mar 2023 08:05:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118702; cv=none; d=google.com; s=arc-20160816; b=wRC01JS73VgUPXYfhuBYuN+yRQOjPenudXeIJothv1UoPtt3nal8oyPzLQPP5rhyMk Vxnga1ArEY5nPCykkhsYaLhaQyNuhroGj6Tq8W5pG/x3pCPVEHIZFU3f/XNYdlDyEO02 WEd8ebZ0reQvUPoUFZUn6lRbVc4a2RcKLpV14ZbWvZkyeeR0GsU7sr05BfYbQmHd5wtt nN+k6rF+OPt3aOEj/lVmbTvdcsQWYZRW8ZsPnRAHoJB3PnU6BbCauREoWsM6ixDwCTyD EvO1DagS1T3KnG3Gu8WZlCzzztu+SymHxC7wl5Mxv6wHzjDj1vu2OSlqRAqwjjl7Hc1N dB7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=lkt2t6TbCzJeoqPND2yFcyB59V0QgGNbu9SOcmgKnwk=; b=mc5zHFGFK5IO20vdYp3xlmg7zLtKuCuhtpdxBzQOXQ+Ca2uuE0/n7n0rx0LzOH5WiQ 0NZ4k/44sEzZRGdqN5oCP/ZFgAKEpugqPhMOL3vjPiRRS+U9Jn3p2WsDrxyBfRErkFdy Mu+Zqauiqgom21JUPuk9/Zlv6+a7CwGlBjqWVU5pSGbOtKAT5FKQX6VsaPLqEivgm4io YA3imu/EG97yJPBnTicEajz7KCB9LMMi/X8Y3KyH1wlszk81HFrQ9bipZ3shR3crYR/D 0Fr4UHF9EPXE62PWYRUqatnJnsMdwkeO4EkKL3NXM+2gZTpoRz62ACi1uu0aixdfzxEM tAqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=NHhEcmv9; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=qfqauMl2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x16-20020a63db50000000b004fbd99002b4si9379031pgi.682.2023.03.06.08.04.48; Mon, 06 Mar 2023 08:05:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=NHhEcmv9; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=qfqauMl2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230179AbjCFQEB (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41666 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231180AbjCFQAs (ORCPT ); Mon, 6 Mar 2023 11:00:48 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B97E30E8A; Mon, 6 Mar 2023 08:00:46 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id BBAAF223FC; Mon, 6 Mar 2023 16:00:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118444; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lkt2t6TbCzJeoqPND2yFcyB59V0QgGNbu9SOcmgKnwk=; b=NHhEcmv9tsTiLJnQPH2ETHxCXkscjljCidCHPH+0jJoMKrFPIlw13weJEQ/uR4kiHi1+No 7B21Wmn0iT8sijfvKnK85CFFQGL5peTP18PtRSlTBJxiQfxOyXGaiTTMQLlPREW9dNHE24 2kZd+BUHqz1lzgrPvbopotGkchivvcs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118444; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lkt2t6TbCzJeoqPND2yFcyB59V0QgGNbu9SOcmgKnwk=; b=qfqauMl2cTtJd+0wi1cHAGPk6rCgs4b1+BCspicy+N2lDVf+4nioAOvim68MP+hMiNqD+K bMKzDjfBg/QZouDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 5EF3A13513; Mon, 6 Mar 2023 16:00:44 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CPVGFiwOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:44 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 53/99] fbdev/ocfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:30 +0100 Message-Id: <20230306160016.4459-54-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634996601765943?= X-GMAIL-MSGID: =?utf-8?q?1759634996601765943?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/ocfb.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c index 34684191f2f0..546230483f53 100644 --- a/drivers/video/fbdev/ocfb.c +++ b/drivers/video/fbdev/ocfb.c @@ -8,6 +8,7 @@ * kind, whether express or implied. */ +#include #include #include #include @@ -67,20 +68,17 @@ struct ocfb_dev { }; #ifndef MODULE -static int __init ocfb_setup(char *options) +static int __init ocfb_setup(const char *options) { - char *curr_opt; + struct option_iter iter; + const char *curr_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((curr_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, curr_opt)) { static char mode_option_buf[256]; int ret; - if (!*curr_opt) - continue; - ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", curr_opt); if (WARN(ret < 0, "ocfb: ignoring invalid option, ret=%d\n", ret)) continue; @@ -89,6 +87,8 @@ static int __init ocfb_setup(char *options) mode_option = mode_option_buf; } + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 15:59:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64862 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1924431wrd; Mon, 6 Mar 2023 08:05:50 -0800 (PST) X-Google-Smtp-Source: AK7set+9HTMdWMZZXSTgP5ZsdjGDyZZBNLdy1xWyLdt3vFNQXvtq3j0bumJd8ibD+LkCf4Gwx6Ht X-Received: by 2002:a17:90b:4c50:b0:234:d3a:2a38 with SMTP id np16-20020a17090b4c5000b002340d3a2a38mr11857662pjb.43.1678118749895; Mon, 06 Mar 2023 08:05:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118749; cv=none; d=google.com; s=arc-20160816; b=iIYhrk4NCtHkEnOtQu4NtumLBt9k9j+ySuHMpnxinA+l1fcRxJ/fV3G2yZ94CSg3ql zr5oLPi4mBUMKriskOFPSKYojyPGPvX7XHqPdEbLxTquestT/B7yXUL38mWPrbnrwPDC xeDOylVy78ooerRpnbe3m6CMgQ5okXDj81QB5GjpyvWv3M2NS4A5GNrJ92hYp/FNoEhv DzRBaqm4JUUhETXMpJbQuVUumnnQIVl/mNV8RTKV+BcYssShEgnr8aUMExxL67OIThxx RHD+ROvyhkqPkegE6cGwcpFwwP+ifDMT3f59dbgO79p+zgDoZDCEiUfABdrZLmo063yi /7lA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=FDbqWv5400a+VKgJzOqfkAd4hlorIAaEh2nSCFtvtGc=; b=lGtCgY1eE9ht/MKALVeVM60WbWtUL6vaFQNuKZkb6P0Hl8bFxiov6I9DySLuZhlAur uOxnNojcNAm9R9/h7L0Wqn6TpoMpZZM9MUXvCAwnMoRl3FravbCynSmyYjbLIf0iiO8n kgVPdR7Qe5dUviTQsdrEfZlvDjWt0pM+X8nIrPb1SWci0lfQJrBcXxGbBw2CaH09fFdw x8rEAluV2+Xcc4L/M2Pq85Kv4XeCzDCJDtH87VrEKuN1R6C+ACMGhgDgwzaOgLs2OONq fvrmrvBaepikA9VUlxoMY/zS1XvC17bbOPF2qwIWESWo2oX1C6KZTBcygnZUNHTJt3zC 6tvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=d8KWB8gr; dkim=neutral (no key) header.i=@suse.de header.b=FEvtDlKD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q24-20020a17090aa01800b00238aab7e540si9950181pjp.4.2023.03.06.08.05.35; Mon, 06 Mar 2023 08:05:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=d8KWB8gr; dkim=neutral (no key) header.i=@suse.de header.b=FEvtDlKD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231388AbjCFQEY (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41680 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231181AbjCFQAs (ORCPT ); Mon, 6 Mar 2023 11:00:48 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 917142A6D2; Mon, 6 Mar 2023 08:00:46 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 21A321FEAA; Mon, 6 Mar 2023 16:00:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118445; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FDbqWv5400a+VKgJzOqfkAd4hlorIAaEh2nSCFtvtGc=; b=d8KWB8grReTsp7EdFmF1dYuc7UjFEFWkdMlnYuY3q2xkxJZiertWS7uNdwfQaags6RMf0m hIRTXaU7d0pcafaAP8un9ei5EufYbVz7YHEw77NlEjgDyBsaOw6K6OIGXT5Wp639lViXXu cAn90eUDM/SN/l3mUnvBpUVwIJAIh/U= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118445; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FDbqWv5400a+VKgJzOqfkAd4hlorIAaEh2nSCFtvtGc=; b=FEvtDlKDZcdcwsYwN+k/oUaPR0pEpgvBHhrlbpfb/7RX4YyApBKHEby7n2RI1regyZHYuq KTvN+Em66oNmBjDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id BE3F913A6A; Mon, 6 Mar 2023 16:00:44 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id OPWLLSwOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:44 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 54/99] fbdev/omapfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:31 +0100 Message-Id: <20230306160016.4459-55-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635046215301714?= X-GMAIL-MSGID: =?utf-8?q?1759635046215301714?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/omap/omapfb_main.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/omap/omapfb_main.c b/drivers/video/fbdev/omap/omapfb_main.c index 1f3df2055ff0..464a667708db 100644 --- a/drivers/video/fbdev/omap/omapfb_main.c +++ b/drivers/video/fbdev/omap/omapfb_main.c @@ -11,6 +11,7 @@ * Dirk Behme - changes for 2.6 kernel API * Texas Instruments - H3 support */ +#include #include #include #include @@ -1842,17 +1843,17 @@ static struct platform_driver omapfb_driver = { #ifndef MODULE /* Process kernel command line parameters */ -static int __init omapfb_setup(char *options) +static int __init omapfb_setup(const char *options) { - char *this_opt = NULL; + struct option_iter iter; + const char *this_opt; int r = 0; pr_debug("omapfb: options %s\n", options); - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while (!r && (this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "accel", 5)) def_accel = 1; else if (!strncmp(this_opt, "vram:", 5)) { @@ -1893,6 +1894,8 @@ static int __init omapfb_setup(char *options) } } + option_iter_release(&iter); + return r; } From patchwork Mon Mar 6 15:59:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64890 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934613wrd; Mon, 6 Mar 2023 08:22:45 -0800 (PST) X-Google-Smtp-Source: AK7set+4IxQctM39Plp18KEYmarrBwqFDvVBUUi0WR4orGsT5NkQbROWr3vUUr5xvd/xnXNVzSAw X-Received: by 2002:a05:6a20:1e4f:b0:cc:b5de:3037 with SMTP id cy15-20020a056a201e4f00b000ccb5de3037mr9838101pzb.51.1678119764868; Mon, 06 Mar 2023 08:22:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119764; cv=none; d=google.com; s=arc-20160816; b=hTqjXlI9u47LbO/1Y7E4zs+e6h3Eosx8K/RBg5DEvx0qKirpD8gN+QNbMEymsa6L/6 SDnK7nndpHrGU9zWbK/FieTYel+r3sN+ZOhDrk8NvTON8hXUWqU78ljJ/ZVhju3IkKHV WWQ6SJVAQWUHz+jiVWvMPjLc8dy2ww80wK+m1PaSCyAwc93d2JYZUqhPwMUsIK29XNN1 Oa+JB4DSkxjYj1Lj99SfamPdc4rwMyxAUOWXMQub0122MB0rra6rElUI7vEWha7L4gnG vMGLnUIBuSxiYRKt4ZkiuF8igpU8PMpHGKcVAOike0IYN+Gxc5SxbOyZyQA+k1Ox06yE tQGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=X5AyqMEb/dcQWrJZGyOdvA+a4qQMQbwFfZc6UsGJ8JQ=; b=dY3nzNCmWMPqu6jyw9NeJZL8Pbg7/O44WoueoOOdolFTmnl0oCSrI6rTZsi+5tho3F jznlpLIPc7kob0FoBKSjy8nmJMud4C++F5BnNgxEp79uFfYkYguRsDVKv1f0s2cYX8YK Gzij6HdFY9f3RO77zC9X8/l85rpXY+6x8SHAQTSkfCTPJJfnOpa5+m/0TP3JhT+UN7y9 RmLc3A4gLbJVsVHnXQV8GI8AjY2IarYAV3aYJbEI1mw/1mQE+c9cIwCTCR6dE/UPyCO3 ESkG1iCd44CFi4eR9CgXiGbmOXTulvL+RZ2hsywQUpPAB5Nqb4QwqXng0BTEtp7GQEIZ 7f2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=dVFyUP2b; dkim=neutral (no key) header.i=@suse.de header.b=GlZsmHoI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n26-20020aa7985a000000b005e8a3dd45c3si9918751pfq.312.2023.03.06.08.22.32; Mon, 06 Mar 2023 08:22:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=dVFyUP2b; dkim=neutral (no key) header.i=@suse.de header.b=GlZsmHoI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230322AbjCFQEb (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41816 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231189AbjCFQAs (ORCPT ); Mon, 6 Mar 2023 11:00:48 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C50742ED53; Mon, 6 Mar 2023 08:00:46 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 8406022401; Mon, 6 Mar 2023 16:00:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118445; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X5AyqMEb/dcQWrJZGyOdvA+a4qQMQbwFfZc6UsGJ8JQ=; b=dVFyUP2baBGf9dvkncsVlo9MYCWDNFG8nv4glDhW5tyv5c1l0SjKbjM+FjMOKBGjKzvXDy jweZm0u6aG5G07WS9UYXGJSNRBXgBZoVYPSOfyGiYMO4fYhrHEkjh/frYiRznSvOJtYBhj zUGTakJjpUYEdzuqiLmyi/so6lgsLBs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118445; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X5AyqMEb/dcQWrJZGyOdvA+a4qQMQbwFfZc6UsGJ8JQ=; b=GlZsmHoIHEMsPv5KnPss40JCrUMMeKcNWxpjxNgeEhiq6g7kiJkUvutwGy962jW7c/A738 +EuUu6pvHsU/agBA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 27D0513513; Mon, 6 Mar 2023 16:00:45 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id wH6GCC0OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:45 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 55/99] fbdev/platinumfb: Remove trailing whitespaces Date: Mon, 6 Mar 2023 16:59:32 +0100 Message-Id: <20230306160016.4459-56-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636110198240448?= X-GMAIL-MSGID: =?utf-8?q?1759636110198240448?= Fix coding style. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/platinumfb.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c index 5b9e26ea6449..c7172174c1b7 100644 --- a/drivers/video/fbdev/platinumfb.c +++ b/drivers/video/fbdev/platinumfb.c @@ -52,17 +52,17 @@ struct fb_info_platinum { __u8 red, green, blue; } palette[256]; u32 pseudo_palette[16]; - + volatile struct cmap_regs __iomem *cmap_regs; unsigned long cmap_regs_phys; - + volatile struct platinum_regs __iomem *platinum_regs; unsigned long platinum_regs_phys; - + __u8 __iomem *frame_buffer; volatile __u8 __iomem *base_frame_buffer; unsigned long frame_buffer_phys; - + unsigned long total_vram; int clktype; int dactype; @@ -133,7 +133,7 @@ static int platinumfb_set_par (struct fb_info *info) platinum_set_hardware(pinfo); init = platinum_reg_init[pinfo->vmode-1]; - + if ((pinfo->vmode == VMODE_832_624_75) && (pinfo->cmode > CMODE_8)) offset = 0x10; @@ -214,7 +214,7 @@ static int platinumfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, break; } } - + return 0; } @@ -269,7 +269,7 @@ static void platinum_set_hardware(struct fb_info_platinum *pinfo) struct platinum_regvals *init; int i; int vmode, cmode; - + vmode = pinfo->vmode; cmode = pinfo->cmode; @@ -436,7 +436,7 @@ static int read_platinum_sense(struct fb_info_platinum *info) * This routine takes a user-supplied var, and picks the best vmode/cmode from it. * It also updates the var structure to the actual mode data obtained */ -static int platinum_var_to_par(struct fb_var_screeninfo *var, +static int platinum_var_to_par(struct fb_var_screeninfo *var, struct fb_info_platinum *pinfo, int check_only) { @@ -478,12 +478,12 @@ static int platinum_var_to_par(struct fb_var_screeninfo *var, pinfo->yoffset = 0; pinfo->vxres = pinfo->xres; pinfo->vyres = pinfo->yres; - + return 0; } -/* +/* * Parse user specified options (`video=platinumfb:') */ static int __init platinumfb_setup(char *options) @@ -624,7 +624,7 @@ static int platinumfb_probe(struct platform_device* odev) break; } dev_set_drvdata(&odev->dev, info); - + rc = platinum_init_fb(info); if (rc != 0) { iounmap(pinfo->frame_buffer); @@ -640,9 +640,9 @@ static int platinumfb_remove(struct platform_device* odev) { struct fb_info *info = dev_get_drvdata(&odev->dev); struct fb_info_platinum *pinfo = info->par; - + unregister_framebuffer (info); - + /* Unmap frame buffer and registers */ iounmap(pinfo->frame_buffer); iounmap(pinfo->platinum_regs); @@ -658,7 +658,7 @@ static int platinumfb_remove(struct platform_device* odev) return 0; } -static struct of_device_id platinumfb_match[] = +static struct of_device_id platinumfb_match[] = { { .name = "platinum", @@ -666,7 +666,7 @@ static struct of_device_id platinumfb_match[] = {}, }; -static struct platform_driver platinum_driver = +static struct platform_driver platinum_driver = { .driver = { .name = "platinumfb", From patchwork Mon Mar 6 15:59:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64902 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935143wrd; Mon, 6 Mar 2023 08:23:39 -0800 (PST) X-Google-Smtp-Source: AK7set+dzvBxh0RTwtbBidYx6gT+HzXvZMS9RluGG9FXxniuwsVZxZQBMCbLl9x0PfK3iFGRkXS3 X-Received: by 2002:a05:6a20:1a12:b0:cc:8e18:420f with SMTP id cj18-20020a056a201a1200b000cc8e18420fmr10028995pzb.35.1678119819623; Mon, 06 Mar 2023 08:23:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119819; cv=none; d=google.com; s=arc-20160816; b=ct4yboW2729avxQz5m1v8E0d9UYkpZN6avvVk3JhAhbVvQm8bnP1uK86Rn0rn0v4SN 9lT1NiV46wzGubBGVAXZiqfyKxv5DUjsmHiZiXPyV8CsWOT4eobUhrEmXdwyk/HGoz8i coaGItMXph4H+a4hXjth+XkPQ1DE3cH7CQ35kmR0cS9ChycdmUNNt7gIEFa1GZHctOK/ E9LuTjLQk0xtczZ7/eFnwwWpivOF7X32fzU5zyiK0KuUfQgTOBkxgopuh3p8n44dOjsJ L9cECcTzsP6gl6lgb4G1KZjrf1m3VgaLBklcTTIv9l3XWhDODLqor+McYdTjKZxa8tjs YvzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=S9aOCeHqZlZesioi37B2NVNrU0985XVnrbCXRalDe94=; b=b41/FdHmRvrieGkDp3aQMMcJdFksAwvlDpXkn8t4xc6Cwp3SPdByN9rUt+BrBRkJHG 8pk6UaO5kA6wIJLGxu+abNzt0ouoENlvqhUYjWEDWlVOziWPzDWnymU40m+CIhvn+A+e 2Nmkih9C1MD4MpoTW0ghp7+TTcBfA10/BRpZ/QDefV+hza0uNd78mNVbTkV/GOvhvmo4 ec2YjvGHKSZoaps3VhyYvKSaQaTsRLgst9PELsqcVG5S/K+1ot8HWLPL/gVCPIlsLmbR VOmF90VyhMZG8SxFndu7tB7HBsKogWoEmrWv80xg/1mUv9yvWrLOyUTRTrhiS9cqfMpL bejw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=B7MGPgkg; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b="y/FCJC70"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c20-20020a6566d4000000b00502fdc84d7fsi9461551pgw.598.2023.03.06.08.23.27; Mon, 06 Mar 2023 08:23:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=B7MGPgkg; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b="y/FCJC70"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231562AbjCFQE1 (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231193AbjCFQAs (ORCPT ); Mon, 6 Mar 2023 11:00:48 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 413CB25E09; Mon, 6 Mar 2023 08:00:47 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id E6C4222402; Mon, 6 Mar 2023 16:00:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118445; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=S9aOCeHqZlZesioi37B2NVNrU0985XVnrbCXRalDe94=; b=B7MGPgkgov5u7qATe+/yiN/dQr13NYhlaJ9FfNoDPe7PD782it2Y6MrJ+fFt+5QlhICHFo hnNdbx0inQS6diZWdefspyz3oeON+AfmrHiWdK9omvZVGOc8GRYZSNllaw0mlNCie2VA/g E7dnWxbbXf5ADMqM8JSMTWH3fAoC1Xc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118445; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=S9aOCeHqZlZesioi37B2NVNrU0985XVnrbCXRalDe94=; b=y/FCJC70+qCLgBSyVm+GkBzzHpZaGORydb8TdcBUe6COteZgoSOHJmM2FDM/vfuhmY1zcZ 9D6pBD1L487QYwCg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 875E813A6A; Mon, 6 Mar 2023 16:00:45 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id GAkjIC0OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:45 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 56/99] fbdev/platinumfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:33 +0100 Message-Id: <20230306160016.4459-57-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636167666486681?= X-GMAIL-MSGID: =?utf-8?q?1759636167666486681?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/platinumfb.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c index c7172174c1b7..71d5b7c169e7 100644 --- a/drivers/video/fbdev/platinumfb.c +++ b/drivers/video/fbdev/platinumfb.c @@ -19,6 +19,7 @@ #undef DEBUG +#include #include #include #include @@ -486,14 +487,14 @@ static int platinum_var_to_par(struct fb_var_screeninfo *var, /* * Parse user specified options (`video=platinumfb:') */ -static int __init platinumfb_setup(char *options) +static int __init platinumfb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "vmode:", 6)) { int vmode = simple_strtoul(this_opt+6, NULL, 0); if (vmode > 0 && vmode <= VMODE_MAX) @@ -516,6 +517,9 @@ static int __init platinumfb_setup(char *options) } } } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:59:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64870 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1929124wrd; Mon, 6 Mar 2023 08:13:06 -0800 (PST) X-Google-Smtp-Source: AK7set8U+GN51SIzQmqj0jWtC7TQo+4strmP5nivW4+48yEdUaHNmSzwC7yN5uZCdfu51Gmbbjiq X-Received: by 2002:a05:6a20:3d92:b0:bf:58d1:ce86 with SMTP id s18-20020a056a203d9200b000bf58d1ce86mr16148785pzi.5.1678119185873; Mon, 06 Mar 2023 08:13:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119185; cv=none; d=google.com; s=arc-20160816; b=zy+0DX6lZHAm0UXUjAgTEZi15E1KZ1517w2TtQ+uaR6vbYyhkDLazPJuvUfk/EuPM/ TtEWUvwztthfgFvBh890rBLDDqQ2DbsUb4Slt1af+0boYsmGim0KBfvbafaTKWQQUJ12 XvSOXBG9ceg0ww8x625GqMKHGCcoTBUDi+jd95OOIaw7tjv2idGOfLE+K6UvKDuBHLGi YBh5sJOf827v72+2KRWb7QewgmVQUBQGSA2p4v5ROXNtQIlWAh6Dz16+1Nc5rs/SHzBM F0D2AK+llMcLM6AkgcN68xGqeuWXuORf+fc8TsYZj5272S7NFTyCbzJDVB5+Kxwfwgxt R0dQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=gUS+ZW/pjIEoipwKswrnCLU1MrAzI/P20Inh2a0F+bs=; b=wHFkROBR5CCF1x4vIrK8uhwG6BH1h8txEGWCh3ZH1ClDg3uBhK8ZebT2mxtdQ3y6XM 92y+UmTRnsmAUNmQ27KHRmV8VJnuw4mcUgHjO0HBfweDou6iUAc1j5ZVGbimFhyBjei2 3sjsQo++HR0k65aslYdrl1MTshMuECNluaAhMlS4DKlvmx5OffYJsp5QCZZhZ4QU4cNx i2b4E2sYQpF/GEhTuSkBIzkYCxaIWhbIcMUF/iVakW3cNWc6azVxlF0tdU/DRKmxCXUg KwJfbhrTLR9lb2hYS7e9Y0zUn1kPoeyr92fJtOzhFPu5KA1mMQ8yYfVe1eCxrQKFUj5H rsXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=CrcpXfMq; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=uHf5iErw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m21-20020a656a15000000b00503a029385asi9901694pgu.849.2023.03.06.08.12.53; Mon, 06 Mar 2023 08:13:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=CrcpXfMq; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=uHf5iErw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230463AbjCFQEU (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41820 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231258AbjCFQAt (ORCPT ); Mon, 6 Mar 2023 11:00:49 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 949A32ED45; Mon, 6 Mar 2023 08:00:47 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 51E3922406; Mon, 6 Mar 2023 16:00:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118446; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gUS+ZW/pjIEoipwKswrnCLU1MrAzI/P20Inh2a0F+bs=; b=CrcpXfMqJqc6ae5p1CI7DFt9MvHFl/3jAsSDDKr4YE4Crfttt0VQMXO3em4fR6/mwjYaSC 5AAK2BMKVxhwNWtOTOvkY+YWuVamVp+774vDPWeEYys4QthyAMMX5LsBq5gt1bD72KtU/a l0j9Y9yFx2PFxHYOOajRAtwDZ9q+h3c= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118446; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gUS+ZW/pjIEoipwKswrnCLU1MrAzI/P20Inh2a0F+bs=; b=uHf5iErwd5ElSU4O3kj+nz1dVxQnF35JZOdp/SzwZk0Ql0HgPNSv3Crx/bL96+CL+Zn3x3 sw4BB30WF57qMQBw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id EB9F213513; Mon, 6 Mar 2023 16:00:45 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id WHFsOC0OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:45 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 57/99] fbdev/pm2fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:34 +0100 Message-Id: <20230306160016.4459-58-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635503107909474?= X-GMAIL-MSGID: =?utf-8?q?1759635503107909474?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/pm2fb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c index 47d212944f30..c6a117538fd8 100644 --- a/drivers/video/fbdev/pm2fb.c +++ b/drivers/video/fbdev/pm2fb.c @@ -1792,8 +1792,17 @@ static int __init pm2fb_setup(char *options) nomtrr = 1; else if (!strncmp(this_opt, "noaccel", 7)) noaccel = 1; - else - mode_option = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "pm2fb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "pm2fb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; } From patchwork Mon Mar 6 15:59:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64864 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1924743wrd; Mon, 6 Mar 2023 08:06:11 -0800 (PST) X-Google-Smtp-Source: AK7set8RNj7y2LQL58SBh+QtOIYzfirpr5ipn4ciFEdn/XxL6foSwoqdyX7CUOqeS9X0DmPTSHw0 X-Received: by 2002:a17:906:32d9:b0:8aa:bf4e:7b2c with SMTP id k25-20020a17090632d900b008aabf4e7b2cmr12343958ejk.21.1678118771763; Mon, 06 Mar 2023 08:06:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118771; cv=none; d=google.com; s=arc-20160816; b=hChDFldmcbXNqVAhtXp2PESUgh8O33Xhgvln3E2Q7Sn/IpuCDZ415YPcbHWbDVzqeC TycEHvI4+N8r14oybTOdAGCSHGqhpru79dGNBLpfLxhwfAnnmHIzit53m7cIT/MGMZMH UQzJEzJe2OBBjuGCGtpQm16QC50HuOgASkZ+eJi5XCrJoFdK7noAwVa47pY2xVKXfDEk uwarM5OoyLP1BWLXFa9Ez5C21DPPt9fZtf+Bfk8hICZBw35laTS1781nAgYOYLbeDvAv CBVYmZjqfUUJwnAf7+CncQ7XGgyR8CDeaToez6ywbtf54EZHFutAPjtKDiTgtSGjX38E W7RQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=19VpuBm70vNXnliD8T8K9oFn9HFUwo8rA5qbZ2DfN+A=; b=WKP3eKYW/6QUZyNDS2OhneJ4VO3F8eZJgDQj1xYXv4DllLGEy3wVuE4GzXPXXLNTPt 8IlQB5gObKjH7EdvnUW4y18jd/VFAdCdtRkfVR79OWqQts7V7ZLqCIcDmTz15X6A29rn dk1c/31Vnj6BcCsUug+V3bPINlFdXeiGo951yiTdd9V2sh2KOM1vIGXfsH+hG+trVXJe GSG5AFFd0X+LMOkLAu+DzHIVKeIte5n+g8ylNh5NPbJFpDk5qQjPIEA/6KJcE2L/JcAf vSn3RPTZbgqJdMKZRa4LyrVE7o4x5qKkgATTKB3UiO0nQeQGhpyaPwSRR1HQ6ceTf5nN auxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=rineVMVS; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=brI7szav; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x19-20020a170906805300b008e416a5f36bsi20233ejw.515.2023.03.06.08.05.47; Mon, 06 Mar 2023 08:06:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=rineVMVS; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=brI7szav; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229486AbjCFQEP (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231264AbjCFQAt (ORCPT ); Mon, 6 Mar 2023 11:00:49 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 08E762ED79; Mon, 6 Mar 2023 08:00:48 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id B48B71FEB2; Mon, 6 Mar 2023 16:00:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118446; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=19VpuBm70vNXnliD8T8K9oFn9HFUwo8rA5qbZ2DfN+A=; b=rineVMVSwgL0pJkgvD7v14B+v8/s4iidysofQdfX4Cb7Y6ElVbD2yxJf9R/DmY1MYGVds0 gBv8l8PpL9bIjpdckt9oeXD+CmygyvvgEGswoLRoRduIT7oTRRJXO63r1+TdfvvHx6jhhh UYQrGM1o6yrDESqG2ViT92nlkO8AsXc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118446; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=19VpuBm70vNXnliD8T8K9oFn9HFUwo8rA5qbZ2DfN+A=; b=brI7szavTzuLuj45bTppKinf8IxIal5TwelwYUJG2hsFok28choJKmfUrd/0sgxmoH1M67 o1XqPFLWOrt7B/CQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 56E9C13A6A; Mon, 6 Mar 2023 16:00:46 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cE9PFC4OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:46 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 58/99] fbdev/pm2fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:35 +0100 Message-Id: <20230306160016.4459-59-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635069566917208?= X-GMAIL-MSGID: =?utf-8?q?1759635069566917208?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/pm2fb.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c index c6a117538fd8..a6a793efb0fe 100644 --- a/drivers/video/fbdev/pm2fb.c +++ b/drivers/video/fbdev/pm2fb.c @@ -28,6 +28,7 @@ */ #include +#include #include #include #include @@ -1772,16 +1773,14 @@ MODULE_DEVICE_TABLE(pci, pm2fb_id_table); * * This is, comma-separated options following `video=pm2fb:'. */ -static int __init pm2fb_setup(char *options) +static int __init pm2fb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; + while (option_iter_next(&iter, this_opt)) { if (!strcmp(this_opt, "lowhsync")) lowhsync = 1; else if (!strcmp(this_opt, "lowvsync")) @@ -1804,6 +1803,9 @@ static int __init pm2fb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 15:59:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64901 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935123wrd; Mon, 6 Mar 2023 08:23:38 -0800 (PST) X-Google-Smtp-Source: AK7set8/E6X9jn2gpVmq9lfxbILeghJ/Fvht1yot7/7QLXrtTEM6lDRSgX6hX2phrARluIRY4TlY X-Received: by 2002:a17:90b:4a85:b0:237:b5d4:c0cc with SMTP id lp5-20020a17090b4a8500b00237b5d4c0ccmr11693087pjb.39.1678119817893; Mon, 06 Mar 2023 08:23:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119817; cv=none; d=google.com; s=arc-20160816; b=wRs7wIWdjkCfDUlOc4dkf4C52JoV0FsowZFBA94L1oPIhhzkRnzorYyqVreKprqKa9 QYPJRY+ds9769YJuyC4g8sqIw6RLRTgXKWTrAsIOqzxzwAEkXwtEtzRHbbM2tiQ+4Kop 71wVefJiZUaI7pgQoctTUzdSgvf958+WADnzS9wbOiCLhMhtmKLco9qkXXU1+4RT8XNn CqCHqKQrQJtiElaHjW5k8EIbGGIBzKXyPh6PYc70JJuDqgMhw/Ek4mOrb/236J4UK30D LwwkaY1rm2f9K2uEtbZobll906DQesWApNHgZhmM6Qgyq9KoDKNnidUCpjhSzYcEsEw4 N+Rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=MS+PFmaqiOmf95A5S5Zq6/GUizF4f5fYETWFaMoxpps=; b=fRN2nd4C/HSdD2rSb58Og40gAbiIm/QpB/vGdnhcxnzzTAfIEuLmdUEqBLnijogEUy ALqzZc7zpW5IKjsGEkE1epdWJ5iFQk168Xk3w0WjsvvtYPhMsqr15vKvEbzifehFFjsQ er3yQH6dBx9ScjvZrBCl7/3tRiFev6necT1nI9QpLXZlx0z+SEIldrVwWOzNUcToL0W5 G8ulvhsA6KHzwjt0WZHzH42bKdQDfFZBDfcMVm3u/vXcQ9IDkWs2ahGVNXsMMnnmwk8i bY8p1NxmaEbhBvj87ac3ssaeOQTnodOTynqJGoD2QG3PLcGB8yL3aD4mnhPruOz5DlmV S/bw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=eyAcjdzD; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p12-20020a17090a74cc00b0023761783876si9846482pjl.103.2023.03.06.08.23.24; Mon, 06 Mar 2023 08:23:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=eyAcjdzD; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229785AbjCFQEM (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231263AbjCFQAt (ORCPT ); Mon, 6 Mar 2023 11:00:49 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 65FD32E0D3; Mon, 6 Mar 2023 08:00:48 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 218AB1FEB6; Mon, 6 Mar 2023 16:00:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118447; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MS+PFmaqiOmf95A5S5Zq6/GUizF4f5fYETWFaMoxpps=; b=eyAcjdzDglmtF4oh1f0MNlaik2bGJgNkrgTFv1LJfMo4v1hE2CKxGYM9r1k5sOmX1luf0b Pt6wK2chtkXQCnXhJq+hJN4v3enn9riFmiEEq9S+7RuJSjKCBFMXzAvoC6vT205OWvaiJ0 1Ln1Nod3dTOz4yy9dnVEH86cOCkZLaw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118447; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MS+PFmaqiOmf95A5S5Zq6/GUizF4f5fYETWFaMoxpps=; b=nuUXLk2Pj692pTF+R3MQ78A7dHt9zUtyxTUn/qqQKTI7goCHVs9q8w74qYk1XVpRrUC1dB OGeaL7bNptKdhkAA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id B846313513; Mon, 6 Mar 2023 16:00:46 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cIAfLC4OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:46 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 59/99] fbdev/pm3fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:36 +0100 Message-Id: <20230306160016.4459-60-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636166457749922?= X-GMAIL-MSGID: =?utf-8?q?1759636166457749922?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/pm3fb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c index b46a471df9ae..d0a2cf623c60 100644 --- a/drivers/video/fbdev/pm3fb.c +++ b/drivers/video/fbdev/pm3fb.c @@ -1526,8 +1526,17 @@ static int __init pm3fb_setup(char *options) hwcursor = simple_strtoul(this_opt + 9, NULL, 0); else if (!strncmp(this_opt, "nomtrr", 6)) nomtrr = 1; - else - mode_option = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "pm3fb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "pm3fb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; } From patchwork Mon Mar 6 15:59:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64882 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1933992wrd; Mon, 6 Mar 2023 08:21:44 -0800 (PST) X-Google-Smtp-Source: AK7set945SbW4pPjemd8+kKbM1EhlJ1taYYTdi+zAynDtJqOBXnXz5IQCfn2dTxOT3CnnDkhcGst X-Received: by 2002:a17:902:c94b:b0:19d:553:746b with SMTP id i11-20020a170902c94b00b0019d0553746bmr14423340pla.66.1678119704593; Mon, 06 Mar 2023 08:21:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119704; cv=none; d=google.com; s=arc-20160816; b=YWXF+EnCVdXoLlD+aLVwld1norAhom/wb/2n5fqYnqEsbg0XEAbZptd+6qHE2ND8kT cH8sGNissySEp4qlFbeo41Gxw5CDvW+9IpWRYWW/wztToTZzPNzQ0gjgELjDOQNmoazH 0eUX7nGAITYoyAi+STYfkjKDLW+r2sYB3NSsQxfUWwlosEHHZpCPcqbBRCouFR1LEBb6 SOxcEX/FJJXjxJmUjrz1Ogce9KzvFfnuucdCuAqq1q4adrRimDenqmlT3ycr+FPEhoqW NNt5/U9Wr+IjIn46/19RSF74lecOCJz5w6srpQ9/C988ydE9+1qxBP36u3MGTWuWKK+r TIjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=5yPnSkbz5tA4uAxISnCkR1RSi8OF61H7RsXEqS6C5Nk=; b=cePEUchtRCTE+s9iRk2AGWgaNGJx91y9XmB4Xrvk8NXwRd3dO7e/RxSD2WtAQYdUE1 b/pAyvKoxgU5ySSgFwO10EVnvmZ8m1S30/7+tSZtOVca5ZhVLDCLWg1KJ346ptDmFP4U 4DqRqKaCy11ya/Nioq1DcXhXOvwmF2dk51J6+FwfvMGPq2O10ogvcW+7TbCJTP6BZotA uhzn4ZawXetF9nMaJZNxgyWjcBB3FmPXrhHuM1Xjz+Yc03+5PEt9h+5OE0zclwxl3sUL W69yVr94QhwRso+N18DKKt0uxoezTWVlvZhDMbYa74Wj0jiFICYWObmRIx7UQ4f+Dreo ZGUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=w+n+ch+Q; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=AkGWwV+A; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y3-20020a1709029b8300b0019b521f4b07si9350601plp.52.2023.03.06.08.21.31; Mon, 06 Mar 2023 08:21:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=w+n+ch+Q; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=AkGWwV+A; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231545AbjCFQEI (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231272AbjCFQAu (ORCPT ); Mon, 6 Mar 2023 11:00:50 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F18062FCF9; Mon, 6 Mar 2023 08:00:48 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 84D802240C; Mon, 6 Mar 2023 16:00:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118447; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5yPnSkbz5tA4uAxISnCkR1RSi8OF61H7RsXEqS6C5Nk=; b=w+n+ch+QtZ/PrnUkjqkuUkxbbK4eWiCtDZ1wwhbOhcw/lecYrodPTBgW7kprX3fl9w7gqK V6WByqkcEfh1aYAT2LWCRovEHtzzp/c71upUeUG4gBOzSZ2C5FTzDvZxuH2sUzDnqc1n5d 7vtIHZuwTeZjhAHQiyp9wJ3l03/5zts= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118447; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5yPnSkbz5tA4uAxISnCkR1RSi8OF61H7RsXEqS6C5Nk=; b=AkGWwV+A7HRbMxnQAQxcJsFEy1RoWlLDfYJASmlbsqLlTzVl+9PsMt7D1AaoKTwf7WSrA1 3YjAu9z42XtbYVCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2718C13A6A; Mon, 6 Mar 2023 16:00:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 6K5vCC8OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:47 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 60/99] fbdev/pm3fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:37 +0100 Message-Id: <20230306160016.4459-61-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636047265563662?= X-GMAIL-MSGID: =?utf-8?q?1759636047265563662?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/pm3fb.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c index d0a2cf623c60..4eec0ad1e984 100644 --- a/drivers/video/fbdev/pm3fb.c +++ b/drivers/video/fbdev/pm3fb.c @@ -23,6 +23,7 @@ */ #include +#include #include #include #include @@ -1509,18 +1510,16 @@ MODULE_DEVICE_TABLE(pci, pm3fb_id_table); * Only necessary if your driver takes special options, * otherwise we fall back on the generic fb_setup(). */ -static int __init pm3fb_setup(char *options) +static int __init pm3fb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; /* Parse user specified options (`video=pm3fb:') */ - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; - else if (!strncmp(this_opt, "noaccel", 7)) + while (option_iter_next(&iter, this_opt)) { + if (!strncmp(this_opt, "noaccel", 7)) noaccel = 1; else if (!strncmp(this_opt, "hwcursor=", 9)) hwcursor = simple_strtoul(this_opt + 9, NULL, 0); @@ -1538,6 +1537,9 @@ static int __init pm3fb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif /* MODULE */ From patchwork Mon Mar 6 15:59:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64867 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1926995wrd; Mon, 6 Mar 2023 08:09:41 -0800 (PST) X-Google-Smtp-Source: AK7set/h/8ylO7oLEoqlws3r1ki1fQ0eKsxhTaJKe6qIDED1CMcrQwU8fFG/0HacrMJix9VC+C68 X-Received: by 2002:a17:902:e80d:b0:19c:cb64:dacc with SMTP id u13-20020a170902e80d00b0019ccb64daccmr15179782plg.61.1678118981311; Mon, 06 Mar 2023 08:09:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118981; cv=none; d=google.com; s=arc-20160816; b=Xi9G1YsulehfzRV05CHyVvKqdX+HKPdkrLqWNPnAgZlWBMjUGlfcFjp+HLSkfR5Rdc 0NgGBuy+a7qD1S2ms/IwcSiW+MlQfzkat/x/8TSEgyPhHHKLNTdHsVlOlh97nh8WmB5T ZAXcR7N4kl8EulRtm6sIKxFCq1MO/9XWf3c892uKC36exk/RzpU8HsUhvDLNsHDYQS23 hol+6T6ZYftwWUnGoWLQe1IxjNUZA25449p8V1+EvhHfg81+NQJrOyTn+GSb/5a+Huz0 9vI2XGifjOVcJpIFimjH0vSShUlkzq/DBSRvxe/zhXq2po/OTf1NEsIlccPzC/hUuxAR Dbvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=VDfFDt7NYTyK2aPKtVVQx73vE1xW7+lyU5Y/t6YH1Aw=; b=Z6foV8yN8LM6y0t0J1aGYkokR3mY975nmAw3gIV8bISAYWoBSdTbgDLXOK7e5wGMiF QrH0462SoI/qfm91ua+d5WJomATxmTXQBqWYD8du2I9CVD2NBVZloFXvC6cClGaUBkF0 hU9PUwO7NZ5uycJFxJaFVNwkG1juhfrfGltEOjuTbwrY0YYebv3Z213kccxxAZUrmttY ebFlkqyiS9qU6VvWYj7DxE9RrfdYcagngjkVrVTxHZb7+5LITXT+V9zWtpt8h4YXC3ir udI3BqZWBgf0YSPZFNn/qtinu8FIb42y0Q4BdFR7GomDrp5bFozB7Tl1W1sSpmC7vqpx PsVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=YCuoZH5v; dkim=neutral (no key) header.i=@suse.de header.b=77pBNYDA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kb12-20020a170903338c00b0019e37273b47si9026953plb.558.2023.03.06.08.09.28; Mon, 06 Mar 2023 08:09:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=YCuoZH5v; dkim=neutral (no key) header.i=@suse.de header.b=77pBNYDA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231189AbjCFQEf (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231317AbjCFQAw (ORCPT ); Mon, 6 Mar 2023 11:00:52 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 515EB30B34; Mon, 6 Mar 2023 08:00:49 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id E68AC2240D; Mon, 6 Mar 2023 16:00:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118447; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VDfFDt7NYTyK2aPKtVVQx73vE1xW7+lyU5Y/t6YH1Aw=; b=YCuoZH5vrb88dmhkcqHeZwWnsWN/9hDNUqsa7M8Ff78pvzJm19ixcxoq6iMaEbPkLjRC2U nBkdlkoaeWveE+xVbr8Sc1jWYLfHKnncw6sWNMzbM0C/7m8bNAiN9LaP/bbabLHfqkw9B1 7U4VdUDKy7jzq73QM0RO6/4xsmDhs1o= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118447; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VDfFDt7NYTyK2aPKtVVQx73vE1xW7+lyU5Y/t6YH1Aw=; b=77pBNYDAw+nlLWdiXpinb/K3eDqjxZK9WUBGDc+n/WoOeThXp7xrRC9z44+IFXnTcu9TuI nmSt6x9g42iD/xDQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8882513513; Mon, 6 Mar 2023 16:00:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id sDl4IC8OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:47 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 61/99] fbdev/ps3fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:38 +0100 Message-Id: <20230306160016.4459-62-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635289035360128?= X-GMAIL-MSGID: =?utf-8?q?1759635289035360128?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/ps3fb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c index 2fe08b67eda7..87543411acaf 100644 --- a/drivers/video/fbdev/ps3fb.c +++ b/drivers/video/fbdev/ps3fb.c @@ -1276,8 +1276,17 @@ static int __init ps3fb_setup(void) continue; if (!strncmp(this_opt, "mode:", 5)) ps3fb_mode = simple_strtoul(this_opt + 5, NULL, 0); - else - mode_option = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "ps3fb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "ps3fb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; } From patchwork Mon Mar 6 15:59:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64898 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934958wrd; Mon, 6 Mar 2023 08:23:20 -0800 (PST) X-Google-Smtp-Source: AK7set9Ah4S/LGFSRPbUn5AXQMTUjEDnBfdjT23sxOtaHjtQaZGSBG9yKqfwF9PSbKRatrw+DoLX X-Received: by 2002:a17:902:d486:b0:19e:2495:20ea with SMTP id c6-20020a170902d48600b0019e249520eamr14108479plg.28.1678119799856; Mon, 06 Mar 2023 08:23:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119799; cv=none; d=google.com; s=arc-20160816; b=Yd5TsHHzvm0CEmQ+7qgYC7vyPyA09foxIbaB0I7EteeNjYD3H0ClAc/BfIZqMrjYLX BqdKTkCInwa09+piL5yDNLNbg+DMfE5A4U51ZKHXZvCr2iI3jfnml8uLiRax3unV8VIv rriFIvSucmx8OSjTHmzKUsY/kvbIL91ti6qcYkIsqs+CEMHq3J5XdzfeDQ3+FEeE+a5K RF017pURNBhNEHBHI0PTRF14DINz0bzeutlIbpUBKrDfazS/414x9Wp/qTglpSklp35P fmFgl7yyZ80Zxs0SMsiZ91hFLx6dse6aTcRNUwHzkp3G7Octcklr23bC8u2LhIAZw89U epSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=A7YnDe3aCf50AqpJp4Wzplaha6UCPWu6xjvmVT/66wY=; b=AtJH98EYYnMnp3n5O1DnMjos81TPi+3VN5VfOuZhxBW9WmGdxoSVfXEc1j0H7kH9cC apmO64uEWB8A08JS3xAcSzJOO1qi+sICFHhh3DcTmb34+xt+lCfQGvQIobAgZSTcvF6i /AhUgneem1fA/9NKCuBqhU08E6/Rn8Ylc+q7iIgJKMw7j4AVES8mJ80Zmo4ycSCQIoCU dfiUFCSGl6fBiwhhTjAbLZ9Rk9LPkW+wR5v2+S0aOkXravpi/wFWl42qq+vNOynuqkuB 8KEqAOVBfF/Wtyr/aoTNnmwrgeoAFKTIu7lRMLAOuzj9CIY33mtkwhfsrMmwjue+VI4b qvgQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=pNSDKF5C; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=Z+wSpFHG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l11-20020a6542cb000000b004fb988c78f0si9229586pgp.242.2023.03.06.08.23.06; Mon, 06 Mar 2023 08:23:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=pNSDKF5C; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=Z+wSpFHG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230133AbjCFQEi (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41820 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231322AbjCFQAw (ORCPT ); Mon, 6 Mar 2023 11:00:52 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 97DA02E813; Mon, 6 Mar 2023 08:00:49 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 484A222416; Mon, 6 Mar 2023 16:00:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118448; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A7YnDe3aCf50AqpJp4Wzplaha6UCPWu6xjvmVT/66wY=; b=pNSDKF5CwThjpxHh8R7ZQhSpo/AvfxIKHq5OEd8Qk+xplhSzry3Hx8QFuPy0nRxzBXWEUe nwbR1ImnVbQ4DVg7B66GymLb8dQ+m9Awm0Gjlwj71gKTzsBJmW4AvicvWgi+Gw8kmu9JU3 wE8fXZGLnHo7RAPLNivnVttYiIiVO2o= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118448; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A7YnDe3aCf50AqpJp4Wzplaha6UCPWu6xjvmVT/66wY=; b=Z+wSpFHGB7tPNNCT3v3Vqym6j7FeA5YkKZRG3Q0koRWhkmZMOjcVdJoTBgRgbiAciWG3bW wxWkXVKXwp5lTQAw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id EA1A513A6A; Mon, 6 Mar 2023 16:00:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cM1cOC8OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:47 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 62/99] fbdev/ps3fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:39 +0100 Message-Id: <20230306160016.4459-63-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636147341923078?= X-GMAIL-MSGID: =?utf-8?q?1759636147341923078?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/ps3fb.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c index 87543411acaf..d7c287089c64 100644 --- a/drivers/video/fbdev/ps3fb.c +++ b/drivers/video/fbdev/ps3fb.c @@ -17,6 +17,7 @@ * more details. */ +#include #include #include #include @@ -1256,6 +1257,8 @@ static struct ps3_system_bus_driver ps3fb_driver = { static int __init ps3fb_setup(void) { char *options; + struct option_iter iter; + const char *this_opt; #ifdef MODULE return 0; @@ -1264,16 +1267,9 @@ static int __init ps3fb_setup(void) if (fb_get_options(DEVICE_NAME, &options)) return -ENXIO; - if (!options || !*options) - return 0; - - while (1) { - char *this_opt = strsep(&options, ","); + option_iter_init(&iter, options); - if (!this_opt) - break; - if (!*this_opt) - continue; + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "mode:", 5)) ps3fb_mode = simple_strtoul(this_opt + 5, NULL, 0); else { @@ -1288,6 +1284,9 @@ static int __init ps3fb_setup(void) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:59:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64905 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935193wrd; Mon, 6 Mar 2023 08:23:47 -0800 (PST) X-Google-Smtp-Source: AK7set+vF5+m7mszrPbrc9spytWJWXZnXW0AhiqunNFp2NZQ/tmrVGYlsBpKyriiyEp8TFg+KJqU X-Received: by 2002:a17:90a:e7c7:b0:236:8e07:4c6d with SMTP id kb7-20020a17090ae7c700b002368e074c6dmr12143837pjb.7.1678119827240; Mon, 06 Mar 2023 08:23:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119827; cv=none; d=google.com; s=arc-20160816; b=BbfRuUEMfes1iGj4b4pWyYj8Odzanx71FmrlC1aIcrlp3Ub3f0nMGTGBvawG2E6PQk plNbpiwD80wkGyXzY+PZB3nld3SFJorLNmDkxoFTOBpQGnZ4KI0S6jrsMzN6GCKbVDVo FseWrNK/2pIovl3DM0eRLp1CiYEu6DjB2RIIU2AJB+7cb2cJ9omfM1Vv56CNykRsPpKW IraKOxOXELBhwNBWNR60t1xY2yZkKrTe4Hm00J4sRx9VL8EwYpn8td+CVpW6Lo65pD7U 0craJ0ZWdXJtr8sncJwLZsKzRUaVNLsrWg2c51YdABncZBpFlb7ui5ufd+hVGy1BMVbx DpmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=yk8NEEFyYFz7QCOnrJy+3UNVzVnSkFF9rUK/rTVstVw=; b=bEHTqD14vbI8aUsu+q9zjSYbN61YytIg1QiNCrkWicLla6Nn12ghYJ4t/q0JvHpcJL r6QQ6tZ5/Ui2YtavH2t7Ft60E4TAFsKKT3+4WJDq6scyk1Vul/EyazqQMS+GMaW8cy+4 JWFN714HE1wds7KbgyQ1XkLarrkRbGFr88tJRRd8buQq3xv+Rqe5l8mY+BhB/92dHhM+ kNObf26xZn9uPmbna5TA855+chNGpkK/ls8VtIMpJM0UfgfldTxIdx2EnvbWpbDj78wn NTi1/9s3+6FX2Mzo1vCCDcQt2xE3qqY9WP2zabC2hb3qnB5aVxhltK4N6S07HmrBXhfC Aksg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ipn1oNoL; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=iC4cIbwt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z6-20020a17090a170600b00234ac7c8061si11812524pjd.175.2023.03.06.08.23.35; Mon, 06 Mar 2023 08:23:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ipn1oNoL; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=iC4cIbwt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231592AbjCFQEo (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42000 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231330AbjCFQAx (ORCPT ); Mon, 6 Mar 2023 11:00:53 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0FD052A6D2; Mon, 6 Mar 2023 08:00:50 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id A129322417; Mon, 6 Mar 2023 16:00:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118448; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yk8NEEFyYFz7QCOnrJy+3UNVzVnSkFF9rUK/rTVstVw=; b=ipn1oNoL8qgLXjs4f4GtU9f/Ri4YDt73X0/TvFnJ79CtWu9n8/hVZ440v9W1mRlrMiJY0m ZaKok8Kf9WW9HIlqjzJnAy1fgeoNTaMoYA5kSIO1mxHfdyxUaObCQYCwdElfxm8sTp+Nrm RIBwLREtIjf+l2gADtz4zYDiixiSOSo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118448; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yk8NEEFyYFz7QCOnrJy+3UNVzVnSkFF9rUK/rTVstVw=; b=iC4cIbwtW1r3WfnatTA5zG+AxJ5q1hiAvjhOthUj8zVJkV1RQje56jvLmm06CSUTaLYgih i8qNrh7K62zv6OCA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 4CC8513513; Mon, 6 Mar 2023 16:00:48 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id iJjmETAOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:48 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 63/99] fbdev/pvr2fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:40 +0100 Message-Id: <20230306160016.4459-64-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636175871522041?= X-GMAIL-MSGID: =?utf-8?q?1759636175871522041?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/pvr2fb.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c index 6888127a5eb8..cd778f8753f1 100644 --- a/drivers/video/fbdev/pvr2fb.c +++ b/drivers/video/fbdev/pvr2fb.c @@ -1049,7 +1049,15 @@ static int __init pvr2fb_setup(char *options) } else if (!strncmp(this_opt, "nowrap", 6)) { nowrap = 1; } else { - mode_option = this_opt; + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "pvr2fb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "pvr2fb: option too long\n")) + continue; + mode_option = mode_option_buf; } } From patchwork Mon Mar 6 15:59:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64894 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934821wrd; Mon, 6 Mar 2023 08:23:04 -0800 (PST) X-Google-Smtp-Source: AK7set+8AmMtUFDWxqhgTdB4ku4P4e6urmDHZFHcnmBEG7ABAMySlnbP25EXit+erUp2xwR8yyn1 X-Received: by 2002:a17:903:2d2:b0:19e:d6d1:bb2a with SMTP id s18-20020a17090302d200b0019ed6d1bb2amr1192066plk.38.1678119784188; Mon, 06 Mar 2023 08:23:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119784; cv=none; d=google.com; s=arc-20160816; b=zb3q3cHkj5MbwQJ1ja5VYcpS7qxCXJXKvPrPYIdCx5KbcueaBpSVjwRyb8+Y0PQYWN sTZjTntByTq4NGy7l7nZ6vO0IC+HlA7XqYplzFSXwKL/UbVkzLVzQAbrjUZp9HTU97Ow Ml+RyITZ81vsNYcYlpeNbX+XZunyfArN3DDWQ8OE71uUaUho0lhqHxChoQHXLoatcc9W Iz28Hts23tTuQ5s29jQzvPn7gmJOJpBKx/ilYhUP7DIJhL28auFc96jyvuYMEoirumYg X2Jx23LQE0zrvA3eemvTzPASUzQWMdvltIgB/yMU+lNduxfjnpjz2ZzMXnyXp64Byk+Y 3jRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=OWrkdVSEPMMK9cPjOGgBoOtcewGCxhSWSIMFGqazRc0=; b=riDX5MIIlA35ic25+nEhesGmjVM6R8UTlRXKY30dJXSIui5ZFnOBZT9YVTkRRWETBd 2065DN2bY/cfYhanKTnANbsTLrif6M4+Avx7LuUqRYgw0FIO1qFoonXedCl4fr1um5dx d4zb7gMJqOt20NIs8b5HhlsHRR/wqsEl4HdmluItyV4bMWzg1iLuWz9JDN/ut6vjxh8L ksu2BklgCZFTZ3cqajeeNIUfsLu2/3R4cTV2AbVl/9Nk67oy1wr9PoZYe1DSUiHxdHAU DgYEFEYQPb1hcg6h1ZoDAwisKpbRQSt7Wfg/pcozoQ58Qt/4/n3QUHIcJj630q++jrvs peRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Goz1yKKx; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y10-20020a1709029b8a00b0019a71e14c19si9474135plp.320.2023.03.06.08.22.51; Mon, 06 Mar 2023 08:23:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Goz1yKKx; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231322AbjCFQEl (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42024 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231343AbjCFQAx (ORCPT ); Mon, 6 Mar 2023 11:00:53 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68B692ED53; Mon, 6 Mar 2023 08:00:50 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 05A501FEC1; Mon, 6 Mar 2023 16:00:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118449; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OWrkdVSEPMMK9cPjOGgBoOtcewGCxhSWSIMFGqazRc0=; b=Goz1yKKxJT0Jr6x5BTkNtJr6vgGDw0pko1sUEqMhorQVy2CEnmdo7IqfwSwLtXzBLOUJIp KYly7cott6YArzFVQmwOxKMS9p1NhLrSHepl2UshUvVyLflqPepjrn5BhayjT2rZJ0y3cj YaXXA0liKLJl2aiOY4JoBKtgtYuxkjU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118449; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OWrkdVSEPMMK9cPjOGgBoOtcewGCxhSWSIMFGqazRc0=; b=pfbJlJtyzM0O5KIBaoENIeDlueFBFEhTDijAwxcEZJivTdx6S7jlRDIgw2aPl4T9brVWH1 nwuXTIV2jya25RCA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id A3C1213A6A; Mon, 6 Mar 2023 16:00:48 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cG8rJzAOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:48 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 64/99] fbdev/pvr2fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:41 +0100 Message-Id: <20230306160016.4459-65-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636130919781642?= X-GMAIL-MSGID: =?utf-8?q?1759636130919781642?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/pvr2fb.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c index cd778f8753f1..9255b3506b81 100644 --- a/drivers/video/fbdev/pvr2fb.c +++ b/drivers/video/fbdev/pvr2fb.c @@ -46,6 +46,7 @@ #undef DEBUG #include +#include #include #include #include @@ -1024,20 +1025,18 @@ static void pvr2fb_pci_exit(void) */ #ifndef MODULE -static int __init pvr2fb_setup(char *options) +static int __init pvr2fb_setup(const char *options) { - char *this_opt; char cable_arg[80]; char output_arg[80]; - - if (!options || !*options) - return 0; + struct option_iter iter; + const char *this_opt; cable_arg[0] = output_arg[0] = 0; - while ((this_opt = strsep(&options, ","))) { - if (!*this_opt) - continue; + option_iter_init(&iter, options); + + while (option_iter_next(&iter, this_opt)) { if (!strcmp(this_opt, "inverse")) { fb_invert_cmaps(); } else if (!strncmp(this_opt, "cable:", 6)) { @@ -1061,6 +1060,8 @@ static int __init pvr2fb_setup(char *options) } } + option_iter_release(&iter); + if (*cable_arg) cable_type = pvr2_get_param_val(cables, cable_arg, 3); if (*output_arg) From patchwork Mon Mar 6 15:59:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64863 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1924578wrd; Mon, 6 Mar 2023 08:06:01 -0800 (PST) X-Google-Smtp-Source: AK7set8hNcAPHcwY6hQ/EzES+sAyXh3y5bhaZFXi5gHEbv3jQ/cLXEvhFYOn8sIFJVQIJcolnUBR X-Received: by 2002:a17:902:e549:b0:19e:76c4:2d30 with SMTP id n9-20020a170902e54900b0019e76c42d30mr15287802plf.61.1678118761063; Mon, 06 Mar 2023 08:06:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118761; cv=none; d=google.com; s=arc-20160816; b=RGj0on/9Y6QHefRiodDQNb1I0zQ0AO1DaFvBJ0z5riL62+PoRIWMKHmM0zf449KsSo vP1M/yL5xXeMUmt4DX/BHh7QD0M3BiD/X4rgGZHPIwVFW7ycUBlpi1+AQfKqEa0/sOFg Gi2u92ZZrhO122fpLMpgfsU5QB2rq5UcBtayyk1OkAWM1adfOJYY73hMEATOm0tb/N+w AG9cSqaEDhuH2+36YZfmq3Dz9+1+nr7qhTgpXOhR9S3uthhiyc/7wTdxfnYTwpn6MEi4 BGRa3ROMdwalUw5sipbyu6l9lbhd9wCO2wMij63twYHSozeOaUVz4Idp2GAt+W02wHv/ 4vHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=snfxViy/qdBZ7vPsSIH131CJdLXFxu4HUqdQ8e37Ud8=; b=IQulPnMX9b3JpT7my+sEk+rFw7jQ19JStmerKiAOuuJSxciCXKuCG5a14yuNB22UXz SHwmTpBOMfit9dM4YBe9N0nTFwPcCxgFA1qNIsn08bGyXGiPgLqyG1pC9VWnM5jPwdr+ WoEK2HlIAM83Imr/TLH53EG0SC+4JcEnw7xjS5WBLa5P3gGDkxHigQViKZVjAtDA3CP3 WoScahbVgc3+LgtzfGsVLXycla7V73LTuXF+V4Nan9zCv8YlNfPodyPEMn8XE8QARS68 VeJdav61Ouoyn0MrDWDVH7ozALi+1cn2ZTr5onbbvdCauh/VKbiC0AK3AFm2M3VOt378 gAig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Zxi4arKw; dkim=neutral (no key) header.i=@suse.de header.b="0/WTUCL0"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lc7-20020a170902fa8700b001926e41c963si9117200plb.31.2023.03.06.08.05.48; Mon, 06 Mar 2023 08:06:01 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Zxi4arKw; dkim=neutral (no key) header.i=@suse.de header.b="0/WTUCL0"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231627AbjCFQEs (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42038 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231359AbjCFQAy (ORCPT ); Mon, 6 Mar 2023 11:00:54 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A6DC832E58; Mon, 6 Mar 2023 08:00:50 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 5D4CF2240E; Mon, 6 Mar 2023 16:00:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118449; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=snfxViy/qdBZ7vPsSIH131CJdLXFxu4HUqdQ8e37Ud8=; b=Zxi4arKwI8LyGIiT6qDZFplx3WjAiVUTv64MwpmZ9zxfKO2wmAhKEnjpYvUDQcFUOYsPpz 79g2AKWBjzNEcYzymVXnX3ZyyToxLMr3os4tWtGA2qZuuQaYffVeJBJ8ByIOe0rYo0jp43 KNjeH6YAaZrm7NZSGapCW32CwYAL5BI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118449; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=snfxViy/qdBZ7vPsSIH131CJdLXFxu4HUqdQ8e37Ud8=; b=0/WTUCL0oPb9lqiQxJDQsko4JelX3Bjrotl1dZNLTd3+caezJol+RQJp3BDWng0sZId3yg R3hbR7MLNBJtrQAg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 09EFD13513; Mon, 6 Mar 2023 16:00:49 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id AF2mATEOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:49 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 65/99] fbdev/pxafb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:42 +0100 Message-Id: <20230306160016.4459-66-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635058302971319?= X-GMAIL-MSGID: =?utf-8?q?1759635058302971319?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/pxafb.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c index c46ed78298ae..1937a58e47a1 100644 --- a/drivers/video/fbdev/pxafb.c +++ b/drivers/video/fbdev/pxafb.c @@ -32,6 +32,7 @@ * All Rights Reserved */ +#include #include #include #include @@ -2011,23 +2012,26 @@ static int parse_opt(struct device *dev, char *this_opt, return 0; } -static int pxafb_parse_options(struct device *dev, char *options, +static int pxafb_parse_options(struct device *dev, const char *options, struct pxafb_mach_info *inf) { - char *this_opt; + struct option_iter iter; + const char *this_opt; int ret; - if (!options || !*options) - return 0; - dev_dbg(dev, "options are \"%s\"\n", options ? options : "null"); - /* could be made table driven or similar?... */ - while ((this_opt = strsep(&options, ",")) != NULL) { + option_iter_init(&iter, options); + + while (option_iter_next(&iter, this_opt)) { + /* could be made table driven or similar?... */ ret = parse_opt(dev, this_opt, inf); if (ret) return ret; } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:59:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64876 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1933478wrd; Mon, 6 Mar 2023 08:20:50 -0800 (PST) X-Google-Smtp-Source: AK7set+GuWJspNczt7RH1e3kpv08gqAjQctKJ8qK1zOM1u5Wz2LeFAziJHEWSQx9bN4J3tGSloB4 X-Received: by 2002:a62:1ad4:0:b0:5cf:4755:66d9 with SMTP id a203-20020a621ad4000000b005cf475566d9mr7906421pfa.24.1678119650306; Mon, 06 Mar 2023 08:20:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119650; cv=none; d=google.com; s=arc-20160816; b=DG9DqL4VEkE5MhM4furYn5c2/7ZRhPV6hJieGMHVvit0q7vKhuiHBSjW2Alqwsugfa 3wct5hbCHHUihiqJCLUq7m2SQQbPU/rzkwBshfJrGDq8YV4x4ohGsFhHCMwWFqdy03it HmUhFFPQ7gEoi5iWKV93R9pGzaka4WIMR7F8EyDiFZUIM6oGOI7VUpiFTownLQWAjmnX myZRK1tB4/E0tN6KNsIoncKu5J3lsqVEmB44iOuB2FZws2YTcvD0gaMn0hAzxN28ydf/ SFX099DoTTICWNYwS5/T0QlQfFRQpWxnL8ND2r9XWHooHi6OHv4B0VNz7xL7byrA5jZk KsuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=KeAlevCWeWePabJAji9QriWw1Xre+Z3oHUn0cc9BQIk=; b=CGZ6O96R9T0QU0jb5Cslz2J++kHc2JRbsM4SF2xVtUC8z+g9013G7pr4Ds9/i3w0Lv 7xfiy7dAnFZGDPvEIVAFHDDaSIV/56j/esrPcPfAIhaca7W8NPs0mjyCdnpiv9lxPmHg N86winnyfR/19ulB1varotFlxBQwKDjCRghCQv3nYdYQ1xgnqdDxHlyJavMH9HkXi3OF oM3lQClkfw1EbNTS5+1Pi1yzdBz+gspexyKVBGfrudD8TkvUcKXKtlXHqZmebn64xc7q Bpc2sh2sAkGRvSPs4dVu9W+w7KoyU41FWmIsJ/rJT2qd77JCKrS0Z3jz25ICFM81+vJo xY2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=YuTMjqOV; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s6-20020aa78bc6000000b005a8d595767asi9815042pfd.252.2023.03.06.08.20.37; Mon, 06 Mar 2023 08:20:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=YuTMjqOV; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231695AbjCFQEw (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42072 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231381AbjCFQAz (ORCPT ); Mon, 6 Mar 2023 11:00:55 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 22DDA2E0D3; Mon, 6 Mar 2023 08:00:51 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id BC6DB2241C; Mon, 6 Mar 2023 16:00:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118449; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KeAlevCWeWePabJAji9QriWw1Xre+Z3oHUn0cc9BQIk=; b=YuTMjqOVPPTdnqtMm4Gjk1woVSERAG+XGK8+BhA2SIt+oqeiS5AnDwsmUkYc/oDXMLyscX Xe1pwVJLCxD2lIVwLri1KFCvflZOgyQWJ4bMPxaLWn620+NNq/A/mNVztNMzFuOFk6h62B F75u0lxPL1fwlfLAotKGkrQHBPUgHlg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118449; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KeAlevCWeWePabJAji9QriWw1Xre+Z3oHUn0cc9BQIk=; b=YbA/aSwezIiBCjAunUVSJQ9NmgQHQe2ttWpY9f+fGgvNk+79sYaAdYcIGtIw64N39e6hb0 W+Vjk8omi9rcJeAA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 61B3213A6A; Mon, 6 Mar 2023 16:00:49 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id iKEFFzEOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:49 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 66/99] fbdev/rivafb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:43 +0100 Message-Id: <20230306160016.4459-67-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635990205035004?= X-GMAIL-MSGID: =?utf-8?q?1759635990205035004?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/riva/fbdev.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c index 41edc6e79460..affb7c5ef69c 100644 --- a/drivers/video/fbdev/riva/fbdev.c +++ b/drivers/video/fbdev/riva/fbdev.c @@ -2132,8 +2132,17 @@ static int rivafb_setup(char *options) strictmode = 1; } else if (!strncmp(this_opt, "noaccel", 7)) { noaccel = 1; - } else - mode_option = this_opt; + } else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "rivafb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "rivafb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } NVTRACE_LEAVE(); return 0; From patchwork Mon Mar 6 15:59:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64871 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1930459wrd; Mon, 6 Mar 2023 08:15:28 -0800 (PST) X-Google-Smtp-Source: AK7set8BDKUEq7Oz1REZqlKbPk37oPdC7C1mWcnAo9jpIWJCa83Wx3owXkeDMLTeRkGWqQjxyZUN X-Received: by 2002:a17:90b:4b11:b0:237:9ce1:12aa with SMTP id lx17-20020a17090b4b1100b002379ce112aamr11555088pjb.35.1678119327791; Mon, 06 Mar 2023 08:15:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119327; cv=none; d=google.com; s=arc-20160816; b=NWN7xuHjPhBL6gxBX0lGm/64J38q3rEQ6/b5RpYu2EAsa5Tl0YUGvjeYurOPRoaKIn 3z4uJnb237hisXOmpQbavgzU60eMDYuqYptRBsicOFrhA4HGBSkNHhWhqOuybigdtqWU foeDgzz95PMphtCFBIdJBFmwZc8KFETu7vlcAqri91/Qp7No3gYhLKK6fhbBGAbgN57C 54pmHCKExC6T1vtO2qrGr7G2Aw024CLv6QNrNe1ivICMHOBeBZNDUyISFieseEAlQIZH Js1rbdKjigUB9w2hPe4dLNqQyDW+Xp3fUafsvMFshqOd1iXXmCIldFPmamx1K1eGg1Ix sKwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=WSh0HckrJ14YnHwX8ou8Ih8C9aC0FM64D7FA3t8uE60=; b=0mmGWlLeRUugiaLC0lOx5qw6/rx8WWYKS2ggPmQ0MaA9wUH2M6XKmZCwSwPZQKAF35 tIZ6JBpaz0Xu5VuOZhBUS6oimOz5dhnGl9VDwg+zOdQJ6Fk0BCyquKlASBJ6AMaf6SXd vJIOBGATj4/MMSMpXaep/nSFo9VOeLQhOK7BlvTjrS9hVPfWezn/lnLDSMtgKoPBBux5 Dx269CnIkckuYeEUWyaCHBqdn8Tc4GrKUmkxZbIyIMovn3FyvfS9DRs93hB+8kM1oQdM /AK+FPz2+jmiEjsQDPY98Wb9xHTCIMtrNT24J+lHe1rstXWe1UXFdplzikLRa0RXtJYR agNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=QneuH2XZ; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m19-20020a63f613000000b00502f457059dsi9905743pgh.330.2023.03.06.08.15.00; Mon, 06 Mar 2023 08:15:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=QneuH2XZ; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231658AbjCFQEu (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230293AbjCFQA4 (ORCPT ); Mon, 6 Mar 2023 11:00:56 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8096D2E807; Mon, 6 Mar 2023 08:00:51 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 2C50C22420; Mon, 6 Mar 2023 16:00:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118450; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WSh0HckrJ14YnHwX8ou8Ih8C9aC0FM64D7FA3t8uE60=; b=QneuH2XZ6Xs+drSTkA4ph3R2sAoTuAW3CggI3eegmR3uKEN2BcOB9D2md7FPav27gZsC4i N2dtuydW9qAIwtaK31qTu4b3ppxUXkKao9UsWKfQNBQr4LmjyoVgvoYeCbdyq+hhGCeXK3 MK2I2COBaOpjZNJGsrevr3MrsEOeUoE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118450; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WSh0HckrJ14YnHwX8ou8Ih8C9aC0FM64D7FA3t8uE60=; b=bp7IKviDrEyrrsnS0ceS6wdtj23PO79q69MreIKf7f5OkJkEJEbrbJ/lgUMhywPF7jBIkF wMEzF2Z7xEC/zkAg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C10F813513; Mon, 6 Mar 2023 16:00:49 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id uMnwLTEOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:49 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 67/99] fbdev/rivafb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:44 +0100 Message-Id: <20230306160016.4459-68-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635652282355583?= X-GMAIL-MSGID: =?utf-8?q?1759635652282355583?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/riva/fbdev.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c index affb7c5ef69c..d95319bb93cc 100644 --- a/drivers/video/fbdev/riva/fbdev.c +++ b/drivers/video/fbdev/riva/fbdev.c @@ -30,6 +30,7 @@ */ #include +#include #include #include #include @@ -2105,17 +2106,18 @@ static void rivafb_remove(struct pci_dev *pd) * ------------------------------------------------------------------------- */ #ifndef MODULE -static int rivafb_setup(char *options) +static int rivafb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; NVTRACE_ENTER(); - if (!options || !*options) - return 0; - while ((this_opt = strsep(&options, ",")) != NULL) { + option_iter_init(&iter, options); + + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "forceCRTC", 9)) { - char *p; + const char *p; p = this_opt + 9; if (!*p || !*(++p)) continue; @@ -2144,6 +2146,9 @@ static int rivafb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + NVTRACE_LEAVE(); return 0; } From patchwork Mon Mar 6 15:59:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64883 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934013wrd; Mon, 6 Mar 2023 08:21:47 -0800 (PST) X-Google-Smtp-Source: AK7set9AuzcsZ/aeB4dFyAlaR0wJjbvsePq1gAI2IFIaOa6MLk89BM31ROK/IOkIe0KxIAt9iwwv X-Received: by 2002:a62:5e03:0:b0:5b5:8e27:1394 with SMTP id s3-20020a625e03000000b005b58e271394mr9346281pfb.34.1678119706852; Mon, 06 Mar 2023 08:21:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119706; cv=none; d=google.com; s=arc-20160816; b=ljPrkdzkycSqCQS5QHyjxUn7cI+KdrnACRZWkZ2alaucTkiLbyGp0YrxvK6VrQ3Rbb cREitD4K+eR5/KovWgad3DUHyF+CMe4p64nu63ywVA9WuRh7+jdZQ+dQUs3JrnCt3Xh4 ZjPinFVQiMEh7+YQLKgHLGTO7H0Yy+rMhcRuOME2sQZpVe4HSjNgKnQffW0PMkbdzyfn G4N0diXVqsvBEI+LEyguTeZ3MBI1NHRN9cWv5mNC0I1LOH+kclN0ufaHQMmC0ZtE+bOU CIdcnvXK3fjmV2M4pMI6m/sI+4XSAsASSmCWIYxSUiloQxZTIEgfqXSFgzzO0pCo5q6H 6lVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=63rAnMx2YP20dq4CbrataKJRbeisc0iZL+E03N9wrcE=; b=JKJRXZjduPoa6GbFUF6fLoKKDlBbAGPK/U9FJxjwLRyX/uDVZWYX+K8q1wEpi+iG38 ocdSXr/mmNS9mB7ncHT6gB2paxgJGH8y7yEoT/iiR8R+W7RNTJzoztvmP3VlIRN1jPTX /h8EKn5+Lv5FaAhY2C06jFncCvqSkke5zeX8qayWxMK1s7NGeWE6SClYVGQKu2LM4f59 jw5+iiv3mMNubznx4db4diPCfAXEr8i60IvfG9aLj1s1p/DiSOzri1IL80lQhKvz4ABy p/ebxbKXQjwt05m5ip8bDYzHa2umhTl7okdGt/l9a03FmOLr7rLGrukUZSjE0eb2FNKl vFDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="ffSxHVH/"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f5-20020aa79d85000000b005a8b3c6b5c1si9161972pfq.245.2023.03.06.08.21.33; Mon, 06 Mar 2023 08:21:46 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="ffSxHVH/"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231717AbjCFQE6 (ORCPT + 99 others); Mon, 6 Mar 2023 11:04:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42138 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231403AbjCFQA4 (ORCPT ); Mon, 6 Mar 2023 11:00:56 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D38A63018E; Mon, 6 Mar 2023 08:00:51 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 812C81FEC4; Mon, 6 Mar 2023 16:00:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118450; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=63rAnMx2YP20dq4CbrataKJRbeisc0iZL+E03N9wrcE=; b=ffSxHVH/UnJx5Egi7/w50TwVwbInrgMDZVnUV6n6xvFhZd/ZKjD/Nn19p0jZeed2mD+nzh uZepI7NEZzh/ttgCN9b9JMgAXD7Ly1KZ8yM3Q4ZqGsK89P0G+yaL19NWxvd1H2Oh0UNrZ4 apcWF0BFGsSiKK4xC1YspRYZMoNsH7c= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118450; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=63rAnMx2YP20dq4CbrataKJRbeisc0iZL+E03N9wrcE=; b=8bMnB9nt/h9VK9qBKZ7klkW+QDw7629xsahXkHDZyKTbqpJ7z4j0HVP6zzDqgKIqMATyAf dAP//9UNASp6DYAg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2E32E13A6A; Mon, 6 Mar 2023 16:00:50 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id yDt+CjIOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:50 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 68/99] fbdev/s3fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:45 +0100 Message-Id: <20230306160016.4459-69-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636049791879443?= X-GMAIL-MSGID: =?utf-8?q?1759636049791879443?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/s3fb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c index 7d257489edcc..70aefd7224a1 100644 --- a/drivers/video/fbdev/s3fb.c +++ b/drivers/video/fbdev/s3fb.c @@ -1535,8 +1535,17 @@ static int __init s3fb_setup(char *options) mtrr = simple_strtoul(opt + 5, NULL, 0); else if (!strncmp(opt, "fasttext:", 9)) fasttext = simple_strtoul(opt + 9, NULL, 0); - else - mode_option = opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", opt); + if (WARN(ret < 0, "s3fb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "s3fb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; From patchwork Mon Mar 6 15:59:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64865 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1924878wrd; Mon, 6 Mar 2023 08:06:25 -0800 (PST) X-Google-Smtp-Source: AK7set++GpE8+fGoj6PBt2X5WEf7sZsa28yGLLmTtA8gW2ySKP96+OU830JlRILGKBtJx3hE+7Py X-Received: by 2002:aa7:968b:0:b0:593:befd:848c with SMTP id f11-20020aa7968b000000b00593befd848cmr10032140pfk.16.1678118785058; Mon, 06 Mar 2023 08:06:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118785; cv=none; d=google.com; s=arc-20160816; b=CBuVBQfThRlAJLSM8AF6FlBoNV5u/2rVlYIRg2vU/dT4FM4dVY9GT84U9Ubj4p+PaW FugMturfHEDH02RUjFIQg96O5zDq3tsLiaxD6UI1XmnOE3fWJuh0/bAiw+0scZwPYpMN qT+j4DCVoUzr+zB47MnfWzKE6kVmgcMVGBRkxaRtubpGNFbrDpaUtILJ5hQ2ZFs3hrE2 F/KyHOxTlMhETXi4JGxMbIxNCeTF1LbwwPK9Pyu1Fvtemv2gY8bfeBiBdA7iXIMqVpb5 iuM2AD+Il3S8PYQCwxrzpIjpaHdD/3JSeDxWZClPqL8+EO2tqaMOwHqXdx8LfI0AzdBa ISSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=1oaOTqhLqj27vSdh0cq11LIl0EI69h40CbQa7yd1/0g=; b=bJJ1MAFCMgvnSlpLtWkQiSVdK+mb7/RIp/dMtP8Ia9HOMG9g5zqSHj/FCc6nG1prbE gg5yyYnoyEplxXfQNkQP3FyvttEbWj+V80UodeH7gbYirsV6zYNlQozXysHVGYuUuD8Q V1wiXrRCCQO7+RLHpskjyDt6G2mWlDaXZBAkgVccZV34uhYDzD4VfroEOfNly6Spb8N2 jn1TEIMvTJeJqgNXtSgRlRGm3JnNhLwvSNZg7FqdH3idoEOG2hDFl4SQrJjGfYJJkhtr H7o5sZIPKdPgn53ayIZI3e8XlZVeZE7Vo1escrcK9BRTY7TYywhd9vU9SdPwyGa3Jt2K fXnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ta6oVjgZ; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=L2UEvQOA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c18-20020a624e12000000b005aa804c4afesi9873741pfb.300.2023.03.06.08.06.11; Mon, 06 Mar 2023 08:06:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ta6oVjgZ; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=L2UEvQOA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231842AbjCFQFL (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42140 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231408AbjCFQA4 (ORCPT ); Mon, 6 Mar 2023 11:00:56 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 497713344C; Mon, 6 Mar 2023 08:00:52 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id D3B331FEBD; Mon, 6 Mar 2023 16:00:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118450; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1oaOTqhLqj27vSdh0cq11LIl0EI69h40CbQa7yd1/0g=; b=ta6oVjgZxW6t2uTHz1oo+mZ03l6ueNVF5e+5aa9/k8MBRNjWrAYEgwvEWpIj/OsI/IkBIn tsunLcrtobwQL0xw+96gozhnNAUOX2hBV4aZEIQCXKnrsPoEMj8bsL+mqsgtuhTGYWaN9F qwuUTPTmR/C2/8XSTKprIb820NCcXX4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118450; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1oaOTqhLqj27vSdh0cq11LIl0EI69h40CbQa7yd1/0g=; b=L2UEvQOAkMesIGHLeKLp4JKRZPvuryBcCgJrdGiA/UW2xhuo43BLKKYDJpp7n6USvStaHM c8Cg00NSdKVL+oDQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 83FBF13513; Mon, 6 Mar 2023 16:00:50 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 6MtyHzIOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:50 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 69/99] fbdev/s3fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:46 +0100 Message-Id: <20230306160016.4459-70-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635083403999044?= X-GMAIL-MSGID: =?utf-8?q?1759635083403999044?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/s3fb.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c index 70aefd7224a1..f3bd7b1c2c9a 100644 --- a/drivers/video/fbdev/s3fb.c +++ b/drivers/video/fbdev/s3fb.c @@ -12,6 +12,7 @@ */ #include +#include #include #include #include @@ -1520,18 +1521,15 @@ static struct pci_driver s3fb_pci_driver = { /* Parse user specified options */ #ifndef MODULE -static int __init s3fb_setup(char *options) +static int __init s3fb_setup(const char *options) { - char *opt; + struct option_iter iter; + const char *opt; - if (!options || !*options) - return 0; - - while ((opt = strsep(&options, ",")) != NULL) { + option_iter_init(&iter, options); - if (!*opt) - continue; - else if (!strncmp(opt, "mtrr:", 5)) + while (option_iter_next(&iter, opt)) { + if (!strncmp(opt, "mtrr:", 5)) mtrr = simple_strtoul(opt + 5, NULL, 0); else if (!strncmp(opt, "fasttext:", 9)) fasttext = simple_strtoul(opt + 9, NULL, 0); @@ -1548,6 +1546,8 @@ static int __init s3fb_setup(char *options) } } + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 15:59:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64888 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934558wrd; Mon, 6 Mar 2023 08:22:39 -0800 (PST) X-Google-Smtp-Source: AK7set+4HEpE22vDhaQ4aY4g9yKkA3tIJUvhve6+8Od5HRfohnRVeNHBSmd5fTEdRS/pizpROoax X-Received: by 2002:a17:90b:1c03:b0:230:a5e6:daa9 with SMTP id oc3-20020a17090b1c0300b00230a5e6daa9mr11697338pjb.36.1678119758804; Mon, 06 Mar 2023 08:22:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119758; cv=none; d=google.com; s=arc-20160816; b=nRYddiFHWjquaHoFu5WQ54B1TN0RRspWZDKlMqt/6hbfwM81xF1TMWcksZoXbhdne9 z4CvdbqV9E1fwk7pBC1pfXdVRfWqWThjsAXXRxEPxy9t0ZcvqDQSM2/K6f59tQxMFICt u4BlSiecX1hiT6Xl5efnVz4j5YpLIhuGqITvxuTt2+xmGql/ftj0zaPCHP8qeDzhFBK0 a5bGju447Yo6RovFcMkw+bbV1fz4bE15ihlwWY2i1YSmVdrsBsLTT5xb5UbZdld5yf// Xe985NPhnF4FkkJOJDsTc9/WoP23WftL1eeqk+imHUzUZgJ7ekS6osy18MvzqNqoEpMO 5QjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=zIcCTHOdlnmOrevNPvQ6R5cfRaWzMuURTLQ3rJVomJ0=; b=J7oojqqG3Rr4x2uSw18iKVZX62XPruy1MB70aS3nsrisclUMLhIfmOInnLNtaNbKFi W41dZAdcach7dA5awts6A2zjtp9xi97dnQRIqFacb/mWD1eOmt8E0+eocQXF6uIt3s3d eSIV7b+YprbbJdt2HCp6X4j3Rsj9lYz3eqmrUNPXWV4Si2BVC34QpXtyxIStm7OJcWXb FYch3Ww9C5mPP2IZz2k8df3aBQ4Su9ECountSHZQd4HAJw9k+XIRUh+YdQs7RzkwpaB7 I0+bB3c2lppMSvWSeT83nrwjpJBEyZMAHe0pV45ho9CZeOKmjkzTOe8fF+9675HzPBZc vSvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=wakMHB6Y; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=E6gREROO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k190-20020a6384c7000000b005074d572706si1418020pgd.433.2023.03.06.08.22.26; Mon, 06 Mar 2023 08:22:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=wakMHB6Y; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=E6gREROO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231878AbjCFQFP (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231411AbjCFQA4 (ORCPT ); Mon, 6 Mar 2023 11:00:56 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9D3892FCDE; Mon, 6 Mar 2023 08:00:52 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 3A6591FECB; Mon, 6 Mar 2023 16:00:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118451; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zIcCTHOdlnmOrevNPvQ6R5cfRaWzMuURTLQ3rJVomJ0=; b=wakMHB6YSWHElv0eseFqAQJHSUDEpOKBQ2zXWLIvvfR4rSj30bH5MoLOUQ95H6yt3gKYuE jwm6e1dhQNTPh4J37ezH7yIJ+7galbWoGDGi+1I24cwiHoqJSk/RKdQzHqfHqQBzSausPT 4gWnC37kChwr67oK+eeaciSpVvJbTEs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118451; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zIcCTHOdlnmOrevNPvQ6R5cfRaWzMuURTLQ3rJVomJ0=; b=E6gREROODWoRv7Ps324DQe5AXbef2Hfx+MAaoNEyCdB+xYdSRcvobbwsjkMYjR7SypeMWz rmH5CWOnl6qVUlDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id D6D6913A6A; Mon, 6 Mar 2023 16:00:50 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id kHKrMzIOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:50 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 70/99] fbdev/savagefb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:47 +0100 Message-Id: <20230306160016.4459-71-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636104146575396?= X-GMAIL-MSGID: =?utf-8?q?1759636104146575396?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/savage/savagefb_driver.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c index 4a27b68798bf..19fffe0b6cdd 100644 --- a/drivers/video/fbdev/savage/savagefb_driver.c +++ b/drivers/video/fbdev/savage/savagefb_driver.c @@ -2544,7 +2544,15 @@ static int __init savagefb_setup(char *options) return 0; while ((this_opt = strsep(&options, ",")) != NULL) { - mode_option = this_opt; + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "savagefb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "savagefb: option too long\n")) + continue; + mode_option = mode_option_buf; } #endif /* !MODULE */ return 0; From patchwork Mon Mar 6 15:59:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64877 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1933603wrd; Mon, 6 Mar 2023 08:21:03 -0800 (PST) X-Google-Smtp-Source: AK7set/OThx/EXV2Is9EWt1YKuCPm1v4fTZjq+UMHWhJQHm9hzWa3G60tG9XWft/255Vy2HP3T7M X-Received: by 2002:a17:90b:4a83:b0:234:a9df:db96 with SMTP id lp3-20020a17090b4a8300b00234a9dfdb96mr12254834pjb.33.1678119663519; Mon, 06 Mar 2023 08:21:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119663; cv=none; d=google.com; s=arc-20160816; b=dr8zLTL36dETGzxSYC89js9epwhqguLXPFmTwsMpK/jqkoeb+9+GdlsPs32LkyhEPR XaT0kjfQSvcTENsYheWLh01hGWmv/OeUS7qjfQruZEQkvXDgzzlhRWBwVdHnSoydchl0 GIKvUmf1GINsEG0Nd5ZzfwQHT4HIZft2R+mLqC1NvZw15AJdLnvlRMKLKgiPyLaiaHeZ K41KA2IUmEqIU4pUmS4uVL7h1ZPcAiSvpmaHt0ejB60wNLBoCMPj8aiWohn5PvYT/Jq0 1NHjj/0e3g80B8g6EcigpD48whAiaJbXX3dpM7DmZijp9f4EKv3b/8OYsDo707twxRjz 3SCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=0DwH9PbkOKEqD3wmCjB0TQMZNUTuSApTKev00H3660E=; b=lw1hlp/DUAuYH71LOUUOwatUCCBw545jRV2qnJoL5wfNhxJgGL6ta6BMZOZb5TJOEr mWpUq+lnli/DfuZI+YbjJk2pdq2RVadQVoMmgUDuWjVhAMKjKhegtAWsfJHAZP4V6E3P QrfHHjXFzylLsOhBNCJcyf4UX4f/hppYpz9mldG7wRaz9MBk+GVf4nwPeoZJbqAW/TZ1 U1IuOvgWFOiDQpgL9BTAyfbq8oS66GjFay3EUq43w2SXMghdzEywFMSONsv0OGoUOBgm TRfH3s5mrkISn5Dtp+Mqcf1Czc+DCaK45v7Bk6vj2maO4rDKLKAwkP/F6txk0NKT/8yZ Nlfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Lk+8+JhT; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=Sd8cn0Wt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nn16-20020a17090b38d000b0023720e7e54dsi14035502pjb.49.2023.03.06.08.20.50; Mon, 06 Mar 2023 08:21:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Lk+8+JhT; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=Sd8cn0Wt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231812AbjCFQFI (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42050 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231421AbjCFQA5 (ORCPT ); Mon, 6 Mar 2023 11:00:57 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E976B2ED7E; Mon, 6 Mar 2023 08:00:52 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 98CCE2242A; Mon, 6 Mar 2023 16:00:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118451; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0DwH9PbkOKEqD3wmCjB0TQMZNUTuSApTKev00H3660E=; b=Lk+8+JhT/+B3f0AwSzmLvFmEfURRKyVzWUrzHFGKzJ+mhJ98TLoYKnbcsJFoQp5T1KByW+ N47ktubG4HpzVPVQlOKinz0XONa5lwU3J3I7+rZKdK2y3PeTfS6UKzYuCfUywj/uJlh3fi W0Y+RRvd7RnHuwWrANQ1KFIaAn0NiLk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118451; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0DwH9PbkOKEqD3wmCjB0TQMZNUTuSApTKev00H3660E=; b=Sd8cn0Wty4HjwI7jXy8sDdskYz0sboQCIYBR22NrZ+XNj8yXkNNQOUqcan8o6sLDrqABUp 17idD2saMikjCrBQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3E30D13513; Mon, 6 Mar 2023 16:00:51 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id qB1eDjMOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:51 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 71/99] fbdev/savagefb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:48 +0100 Message-Id: <20230306160016.4459-72-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636004389708412?= X-GMAIL-MSGID: =?utf-8?q?1759636004389708412?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/savage/savagefb_driver.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c index 19fffe0b6cdd..94026848d67d 100644 --- a/drivers/video/fbdev/savage/savagefb_driver.c +++ b/drivers/video/fbdev/savage/savagefb_driver.c @@ -42,6 +42,7 @@ */ #include +#include #include #include #include @@ -2535,15 +2536,15 @@ static void __exit savage_done(void) /* ************************* init in-kernel code ************************** */ -static int __init savagefb_setup(char *options) +static int __init savagefb_setup(const char *options) { #ifndef MODULE - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { static char mode_option_buf[256]; int ret; @@ -2554,6 +2555,9 @@ static int __init savagefb_setup(char *options) continue; mode_option = mode_option_buf; } + + option_iter_release(&iter); + #endif /* !MODULE */ return 0; } From patchwork Mon Mar 6 15:59:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64889 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934569wrd; Mon, 6 Mar 2023 08:22:40 -0800 (PST) X-Google-Smtp-Source: AK7set9F1HIlUAGFLxC8BeNrF5S0cOmsQi2E1Vc46DSe0TMaSfbHJpDiOwU8lK9gVYvaZCXkIFg8 X-Received: by 2002:a05:6a20:7f9c:b0:cc:aa7b:84e1 with SMTP id d28-20020a056a207f9c00b000ccaa7b84e1mr16830420pzj.21.1678119760259; Mon, 06 Mar 2023 08:22:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119760; cv=none; d=google.com; s=arc-20160816; b=QWuCHNAu0RH7f+SuxtVU6V7xY3gvQtVwFlvozL70vhOixwyTCsmWSQ+MHL0Hli7fYm mYxZuniIIia1wUBhm0Z7eVXZO0ewsiEOJZh8xqlUhaz0xtSJrACY/8oRpvIHo95bEe29 JSTIRjbqPjH0cLWRB82cBvaGNxSGB4EzGUkeCaXDVmYRc6UiYxvqSljL0/1bpm6+N2cC pjQ18WHrkxX8Oa1f3mmCT0d8mfgB6IBnLxL9pMxW1iD9x4HJBpbwcPLxJuihr4eFnjpU zrOCsLDVgoy1EK0vPEqSO6eOFqhy8RInDFHyYz9ZDqlbjXDquY4KjXmuRjvPYj4q1c4p GvfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=FHsw9G40HD12yWMfW+3kaONrrrxFvi6OorhBwRazvNw=; b=DIo2wYvI/VHVKjSQJ48d+r6qlzL64W6EhS+HTQUBhtZ9z+7y8F6y87j4zyaAyq/6qV hPI9O2624y7vANZ/v6sIaBSPafgVCPt+aFQyRxO/xANwb1c+Ua2fUOPxyEadaykRAwT1 BfIPGiAjk3ECiHcAKgqf9XrXsrVzjouGzp5Xiperm4oU3hSQJ3DN6uyXO6pATXsnOhjY fIUeWyLLtCJ6aPeJbXi9k8Y2M7wClwZenVOhEPuXACaxEtOBeC52C9QB3uJ5gAgrk/Mb dPZ6XNNJ+3Te1YAhv1+LRbmGLxGHbLEC033sa+2sTv6x8/9D9yhqxzIEppvQmpCallLE wWrA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jaLHBd2Z; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y187-20020a6232c4000000b005a8ac97d6cdsi9115564pfy.344.2023.03.06.08.22.27; Mon, 06 Mar 2023 08:22:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jaLHBd2Z; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231775AbjCFQFF (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231422AbjCFQA5 (ORCPT ); Mon, 6 Mar 2023 11:00:57 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 402102E813; Mon, 6 Mar 2023 08:00:53 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id F17472242C; Mon, 6 Mar 2023 16:00:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118451; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FHsw9G40HD12yWMfW+3kaONrrrxFvi6OorhBwRazvNw=; b=jaLHBd2ZnCEawg3As+bdVniBuW//6UdlJDPreseZw6KPB5jjYCo604b2XU3tfyAff5vpfN 8ukpj6sTWj8zQN/fDtjdBHUBt4Vku22YPBNa/wlRkSLqpGeqevGiB+3EbCbR+pn/DI7n1+ lXD4UbfcWIw0ppSmyiXrmep2077pRDc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118451; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FHsw9G40HD12yWMfW+3kaONrrrxFvi6OorhBwRazvNw=; b=KoS8rLuFGGdDvRtgrX+jMTdBEh8GGfYNXVX0wj4gReGH1MfoyEZflEAyErznczRPIxhS+N eVvjme4RGvyY9RAA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9C20913A6A; Mon, 6 Mar 2023 16:00:51 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id KIVfJTMOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:51 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 72/99] fbdev/sisfb: Constify mode string Date: Mon, 6 Mar 2023 16:59:49 +0100 Message-Id: <20230306160016.4459-73-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636105412650801?= X-GMAIL-MSGID: =?utf-8?q?1759636105412650801?= Constify the intenal video-mode string that is passed around among functions. The caller owns the memory and callees do not modify its content. This change will later allow to constify the option string. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/sis/sis_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c index cfba776afcea..c16493d3ac4f 100644 --- a/drivers/video/fbdev/sis/sis_main.c +++ b/drivers/video/fbdev/sis/sis_main.c @@ -73,7 +73,7 @@ static int sisfb_blank(int blank, static void sisfb_handle_command(struct sis_video_info *ivideo, struct sisfb_cmd *sisfb_command); -static void sisfb_search_mode(char *name, bool quiet); +static void sisfb_search_mode(const char *name, bool quiet); static int sisfb_validate_mode(struct sis_video_info *ivideo, int modeindex, u32 vbflags); static u8 sisfb_search_refresh_rate(struct sis_video_info *ivideo, unsigned int rate, int index); @@ -180,12 +180,12 @@ static void sisfb_search_vesamode(unsigned int vesamode, bool quiet) printk(KERN_ERR "sisfb: Invalid VESA mode 0x%x'\n", vesamode); } -static void sisfb_search_mode(char *name, bool quiet) +static void sisfb_search_mode(const char *name, bool quiet) { unsigned int j = 0, xres = 0, yres = 0, depth = 0, rate = 0; int i = 0; char strbuf[16], strbuf1[20]; - char *nameptr = name; + const char *nameptr = name; /* We don't know the hardware specs yet and there is no ivideo */ From patchwork Mon Mar 6 15:59:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64866 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1925043wrd; Mon, 6 Mar 2023 08:06:39 -0800 (PST) X-Google-Smtp-Source: AK7set+8Os12QHCPokH6jYoteZ0gn+4JL9jkfApAmK0GgDk9uabiGozKt8xaWGEXuvrLFt6URkxt X-Received: by 2002:a17:902:eb81:b0:19a:b6bf:1df6 with SMTP id q1-20020a170902eb8100b0019ab6bf1df6mr12048466plg.20.1678118799210; Mon, 06 Mar 2023 08:06:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118799; cv=none; d=google.com; s=arc-20160816; b=Nu3RGM/9xrBD5qaONFj51b8p/U4C4xbCsXoo8BKt0oo0o6iCY0joI0nKnFTlK9pPhI 02/gEsoPHYXAQcnM2ooI6YbKjnfv6UbGmA0z7MZnX7aIlaofL0sLHm3nVJCRXJRRh6Ht Fac7O7tBcXc05wAl/jcY5vcEWPMgDwemt4rI+Xjtdb+IZWvln370PGTGWLlXKPTyuVEQ aCPhiKyUHpmlH0EsgIbmGrv6j+MG18cq+9/stDk6PNCoJirrBMj8qnkyXiMZGNykG1NC Skipk4Y9wpXCSbPAnkuYalOvnNr7PKPAjf52LapC6V4EmOJUtJARkHPFr4SWsB7SbzgK JIuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=IgDfEiZ+lqWxemBwjnD++85rG8ImLkOXixDWmH7+Qvc=; b=NkEM1f+GdJb5wlXe40w18wCOfzSpP0zbU2Bf7wvHQkDEbIx8bNt/N5uhzpbn//pJzm YBbEuydz9LyJ/qIR1mR/epTtnVY+o5Tn3fAvK5wqty6Qfkr2Ke253Ll8I/hLvSXb4Q+L vuuQf+xSBWeA7OvJ2BbZK6XYC7K1KQYrTGj/FtMbREwNN+P7N8uWKQJo17gCdR7ax1ED uyW5E6efm8KCfK+MYf32lmzpGpB3A5+ksuvQbVT2MUhwWx3yeR9Ccii6XbuWm/0eLdKn 9lQZIuCNSkIjBdr5c8IFX5A/xxm9aF1Ttnxn0P87edLI8LQqNYQimXZf0iBryN0R/gMJ AcKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=06PWyrPn; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x16-20020a63db50000000b004fbd99002b4si9379031pgi.682.2023.03.06.08.06.25; Mon, 06 Mar 2023 08:06:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=06PWyrPn; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230293AbjCFQF0 (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42168 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231431AbjCFQA5 (ORCPT ); Mon, 6 Mar 2023 11:00:57 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A208E2A6D2; Mon, 6 Mar 2023 08:00:53 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 55AA11FECE; Mon, 6 Mar 2023 16:00:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118452; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IgDfEiZ+lqWxemBwjnD++85rG8ImLkOXixDWmH7+Qvc=; b=06PWyrPnlY2PpvcduLC6hbRXrvAvLmhUJlODGem3cz4jKBYELZ+f9NbVP76wM7kZ3QPPRY qNTwvZ0OEz0/lLBb0UXT1tskGCw/CTJ8dtiKQXi5KywfTUhAGQ2at3aZ4d2K5UggA8Gmsq 4aEmOSbzo82FTMGKXQIQ0LwqoZ+SDnk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118452; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IgDfEiZ+lqWxemBwjnD++85rG8ImLkOXixDWmH7+Qvc=; b=zvxwEXIh7ySAzyLjW3NPaZW3m2hiBd3qGLTIqzgWMTYF/FYIP+HxtzZt89w4O7BNJbtyLx p42uU1SMNbeS5FDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 014AC13513; Mon, 6 Mar 2023 16:00:51 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id mLYqOzMOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:51 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 73/99] fbdev/sisfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:50 +0100 Message-Id: <20230306160016.4459-74-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635097857018205?= X-GMAIL-MSGID: =?utf-8?q?1759635097857018205?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/sis/sis_main.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c index c16493d3ac4f..7e6e2251e62f 100644 --- a/drivers/video/fbdev/sis/sis_main.c +++ b/drivers/video/fbdev/sis/sis_main.c @@ -20,6 +20,7 @@ */ #include +#include #include #include #include @@ -54,7 +55,7 @@ /* Interface used by the world */ #ifndef MODULE -static int sisfb_setup(char *options); +static int sisfb_setup(const char *options); #endif /* Interface to the low level console driver */ @@ -3987,19 +3988,16 @@ sisfb_handle_command(struct sis_video_info *ivideo, struct sisfb_cmd *sisfb_comm } #ifndef MODULE -static int __init sisfb_setup(char *options) +static int __init sisfb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; sisfb_setdefaultparms(); - if(!options || !(*options)) - return 0; - - while((this_opt = strsep(&options, ",")) != NULL) { - - if(!(*this_opt)) continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { if(!strncasecmp(this_opt, "off", 3)) { sisfb_off = 1; } else if(!strncasecmp(this_opt, "forcecrt2type:", 14)) { @@ -4081,6 +4079,8 @@ static int __init sisfb_setup(char *options) } + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 15:59:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64892 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934658wrd; Mon, 6 Mar 2023 08:22:50 -0800 (PST) X-Google-Smtp-Source: AK7set+QjBHektMrZN4HaSENGNXBJpCnuwdzU073brz6Dhq84et23wRbFHPdGEEVvF0skhXjBQ/v X-Received: by 2002:a05:6a20:8406:b0:cc:cc27:9185 with SMTP id c6-20020a056a20840600b000cccc279185mr18228143pzd.50.1678119770475; Mon, 06 Mar 2023 08:22:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119770; cv=none; d=google.com; s=arc-20160816; b=Vh4L1vEyQSaO6Vty7Zw5DoyqeeotAnLtXXJZRry/UPiOtjUeGHFiJk3sM+ENrWLwnf c6qrLbTperz908Sq1pabjcbn2gfdNDgR79+ljzyAmUjgFsHVTtwyclsY92sy0v5H7rw3 S/PNJKsP7SJGPTY7EHGyq1+9ntw19E9oZZgV2wniZ0MSliLNw/+xVZPQNZy1DIT26r4w Q6+pdygnnsj2qMmdrFC0ivLNw1EVyhRxxisAsTWI1dREFrPyqWwzlssod/SzBFcSbeBN MMLD/OS1PJzEqw5X2mrQnLFwS1+ECWrgcIHzm+IX437PgeEgxT8AQqiZghfJ6Y1RodYv N6cw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=4pYlnhHsXehvuEXAaE7vZAg0+RcAOHve8GXvNQPf9tw=; b=C542Y7r2e1pweB8G0yGIFMv+iXYMrHlkkQZiXaW2rT2FnvZ9Ybh+uoEl2v6DkTJdhK VeGUOVPu0teWBdB5HPtcngiGf3UDlI+PrbAsYHJVOZGUEnZLqrNQ8msIMIuOWAmIhxyV AQVmgzkSXNIhl4rOqWshk4ZHGyCdpByix85PxxNMnHHG2TKH+UiK1RkNeo6dlqw2y0th BBeX9aM6FgUD1Lo9/lH+WgPkj3mG6aS4I3hyPrOTry73iMKVck5Yg86E+hxF/svMNdD7 9AEEvDjghDFxLPuyosbjPapIXv+INjPfGvH2N8upRK2TxZVOJjIMIXwx0jeMN9BWuMHP T8Qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=qiEx02Sd; dkim=neutral (no key) header.i=@suse.de header.b=bOA6jqmI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e17-20020a631e11000000b00503012d18f8si9662112pge.858.2023.03.06.08.22.38; Mon, 06 Mar 2023 08:22:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=qiEx02Sd; dkim=neutral (no key) header.i=@suse.de header.b=bOA6jqmI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231747AbjCFQFB (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231423AbjCFQA5 (ORCPT ); Mon, 6 Mar 2023 11:00:57 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A3DB2FCCF; Mon, 6 Mar 2023 08:00:54 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id B04CA2242E; Mon, 6 Mar 2023 16:00:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118452; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4pYlnhHsXehvuEXAaE7vZAg0+RcAOHve8GXvNQPf9tw=; b=qiEx02SdzApw3jnhZTQdIYKA9xXDDK49JbJWa87PpbhsOYS1FLqtq4IVvlAX7A7bzrnkOy KwEjaf67XVJKVYzXjacFtyEd4ZpKmNt+UXX8vy1nkgttGmtfleXA3kJUFGuyQskXvNFbQq K+Kom1HqiDvYkR4QjqLj6l3Cz/Bfj0Y= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118452; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4pYlnhHsXehvuEXAaE7vZAg0+RcAOHve8GXvNQPf9tw=; b=bOA6jqmIa4PpO2pBUmZjmKn6flKLX0KA9+92wC+3LlLVKDgBpMpxkCY7q6gXfsNkxAnscA bl/5kOjJYN77+VBQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 58E5513A6A; Mon, 6 Mar 2023 16:00:52 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id eKbgFDQOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:52 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 74/99] fbdev/skeletonfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:51 +0100 Message-Id: <20230306160016.4459-75-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636116286600978?= X-GMAIL-MSGID: =?utf-8?q?1759636116286600978?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/skeletonfb.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/skeletonfb.c b/drivers/video/fbdev/skeletonfb.c index 40c130ab6b38..1e876ad2a261 100644 --- a/drivers/video/fbdev/skeletonfb.c +++ b/drivers/video/fbdev/skeletonfb.c @@ -43,6 +43,7 @@ */ #include +#include #include #include #include @@ -973,9 +974,19 @@ static struct platform_device *xxxfb_device; * Only necessary if your driver takes special options, * otherwise we fall back on the generic fb_setup(). */ -static int __init xxxfb_setup(char *options) +static int __init xxxfb_setup(const char *options) { - /* Parse user specified options (`video=xxxfb:') */ + /* Parse user-specified options (`video=xxxfb:') */ + + struct option_iter iter; + const char *this_opt; + + option_iter_init(&iter, options); + + while (option_iter_next(&iter, this_opt)) { + } + + option_iter_release(&iter); } #endif /* MODULE */ From patchwork Mon Mar 6 15:59:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64884 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934023wrd; Mon, 6 Mar 2023 08:21:48 -0800 (PST) X-Google-Smtp-Source: AK7set9p3tPE+IFCM18Pb2zEXvUeA9SGKumOF+N7tLMla1fZXz4fXKLFo9kQ9XdHCEJXd7XYvDMM X-Received: by 2002:a05:6a20:12cd:b0:cd:40b4:bc75 with SMTP id v13-20020a056a2012cd00b000cd40b4bc75mr13297618pzg.48.1678119707831; Mon, 06 Mar 2023 08:21:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119707; cv=none; d=google.com; s=arc-20160816; b=O/6or5wH+oKQaG7MiLWEAJIY8jGv1smOKCgcON6XufrTFEJl6ejE+0g8y48BY8bvFO X1YXSRHUUUN/NIwV/DFyb7wKhkq7nq+9pUzhzKUVKTJ8AthJ2ipVisYtwBEVkCvG/IDq XYmNSzhO3eU0OnXNhPlipwE+Eane3SiNxcXaLVOcIkSS2W6Qe4N0cYcpuhS+7V51Ocv5 d6W7dCPF/0w693FjqEpzfptnHnxMv8CcBhTBICv6tMBF2PVrCcCwITizNw5HkMilf8nP Q7txeRtKmepHfjkcPmjmfSRAQVtvlflsbZR2m4FoDBJInFOBkDrN8WHqBPqGmPWuGCFr JkJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=/mD4G4g5PKVnWJeJOlK/9atHL+s+VwLsA1DXPQcRuS8=; b=JyJvyU4ipCuVg5U/lNRE2BkzyFBRpkmuemRMH6gEpKWwoIPEHUSVyZIBpDNDuLV6mt lEWZ4FAk0avDxq0ockpjIkD4ZsP8l/BsPsKefCEEElBygcZKotFOdO0KenWhnhDoT0Gd oVo0iAAsGgq0TJrVFiXfz8QiL6CTu+b86RNlUSfmeSMHZ4NGmNQCB0ofs0B5cl3AOnXz Dk5RchvdmpTu1RkW2bYLCagc3HbBVl7cbVRpgFBcrMRVBBSbPNbR3F0yDyyMSzzKr3HA manJyi6u3DYzn+8PK1JYkiuKqLF1ZeDm/PxgvFNWZk3GOOT2CCOQxsRF58qqUxuTUQb7 GUiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=QhmoVNA0; dkim=neutral (no key) header.i=@suse.de header.b=H6wjNmwq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n26-20020aa7985a000000b005e8a3dd45c3si9918751pfq.312.2023.03.06.08.21.35; Mon, 06 Mar 2023 08:21:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=QhmoVNA0; dkim=neutral (no key) header.i=@suse.de header.b=H6wjNmwq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230052AbjCFQFV (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231437AbjCFQA6 (ORCPT ); Mon, 6 Mar 2023 11:00:58 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5F83533463; Mon, 6 Mar 2023 08:00:54 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 159A022426; Mon, 6 Mar 2023 16:00:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118453; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/mD4G4g5PKVnWJeJOlK/9atHL+s+VwLsA1DXPQcRuS8=; b=QhmoVNA0HCmkwRTmuQWbJUa22zmn0hw9Tvp4xOZrt+mF/Jy3ccartVIqL+C736yGOoZCQJ v8+/FKlprNw7JpxQ/4ewuXTd+DuZIf9ORq1J6l2zYKVh8/fF5z7Ib+lqhXF9lJT5SiJa4D lIgNBXAcRXFIizXSk7eIFTULyflzKt0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118453; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/mD4G4g5PKVnWJeJOlK/9atHL+s+VwLsA1DXPQcRuS8=; b=H6wjNmwq5kd9ML242yT/QOwXzkWG02v2KIZmiwsDi2TYAtNKEzdajdKN/N1p7FaTKrlaht /VxpZsRL6ja619AQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id B3ACE13513; Mon, 6 Mar 2023 16:00:52 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id EG0WKzQOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:52 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 75/99] fbdev/sm712fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:52 +0100 Message-Id: <20230306160016.4459-76-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636050896968598?= X-GMAIL-MSGID: =?utf-8?q?1759636050896968598?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/sm712fb.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/sm712fb.c b/drivers/video/fbdev/sm712fb.c index b528776c7612..b0f3898125f4 100644 --- a/drivers/video/fbdev/sm712fb.c +++ b/drivers/video/fbdev/sm712fb.c @@ -1761,8 +1761,21 @@ static int __init sm712fb_init(void) if (fb_get_options("sm712fb", &option)) return -ENODEV; - if (option && *option) - mode_option = option; + + if (option && *option) { + do { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", option); + if (WARN(ret < 0, "sm712fb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "sm712fb: option too long\n")) + continue; + mode_option = mode_option_buf; + } while (0); + } + sm7xx_vga_setup(mode_option); return pci_register_driver(&smtcfb_driver); From patchwork Mon Mar 6 15:59:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64879 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1933668wrd; Mon, 6 Mar 2023 08:21:11 -0800 (PST) X-Google-Smtp-Source: AK7set+jFe2w2bwCY8m0rbzfT2ebHtypcm87ihz5lG8InJ8CY+7JTs+f9ax3Yo+CFWlcmxlzJkhf X-Received: by 2002:a62:1d13:0:b0:590:7330:353c with SMTP id d19-20020a621d13000000b005907330353cmr11877003pfd.6.1678119671328; Mon, 06 Mar 2023 08:21:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119671; cv=none; d=google.com; s=arc-20160816; b=JUA3dsuptKM8jyctSbfmw11GE8aVlrQuh+DSGHdMrbf6loboP2kccsxgqdSrklH8Xj IE5LD0V+gCJYszWCFn5v261Q9IBBKGztI63ozk9elJHAq9a1rHWAA3gBNcek7vQsVgLj 2zUN0n4jzxfsAVbraCmmwPr5iGBcqQ0/zx+WsHmxZ8Iv5BZfyITqXmEUAB+8DPaMivRX wuhBRMtUI02CmxnCIpQj0yWN+jj6Wrioyg5NOf4UVNdh7/o0Y83TStun0HJUhM84GMmB TiOwX34xChkT2w09j0mWp60JuMKwfcxsVbmy68VHIwsDW5syPwZx4E+f8U7Yh4i7gjuX ZliA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=ljuuhqpOqDDWmpDnbCdmNaVjarJVcwoFXmhAbwHgMNg=; b=iokk8KRwQgAGqHVKeFT8ekceOMXw5YE68RLRgsdwKhpdKQzL3tRZLzzhgnMN3L5EXE Fns46iXOCq79TUe3LIqBadzlTgZ72/3OsrZiqlP5qzYaP4MYer5HaWtBxC0U5hPEywBr 3D6AWuChZQn4CviHZvHLBN1yP6YhSeGHR2A2QqG7vb1JLHwiifosp/qQn98x3LTvtv80 B9IxysBZt//e540jhQLavLLvX/yLewft5JiPc6qHnuH+r1boFJPdzS/TC6F1KzHZDkmu YHVwIC4eyq7y8QNoQv/eJcmI8vLoU3PaQIg34BvxdAKXTrOEkBMMipOPTL3FoIvzK15E EGKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=GRYYeHFR; dkim=neutral (no key) header.i=@suse.de header.b="uyjMas/n"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p7-20020a622907000000b006030aa89fefsi8757156pfp.341.2023.03.06.08.20.58; Mon, 06 Mar 2023 08:21:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=GRYYeHFR; dkim=neutral (no key) header.i=@suse.de header.b="uyjMas/n"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230482AbjCFQFb (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231464AbjCFQBA (ORCPT ); Mon, 6 Mar 2023 11:01:00 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B3DD634333; Mon, 6 Mar 2023 08:00:54 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 6D26422433; Mon, 6 Mar 2023 16:00:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118453; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ljuuhqpOqDDWmpDnbCdmNaVjarJVcwoFXmhAbwHgMNg=; b=GRYYeHFR+sXD4ucrs0CM8OonsIBECWGTFKP2zZ+ycPeiKN/Mjah8nkUfPVbQagTR5VjTxn NvQdjtxy9CNE4KgWeie9HnUJoGq3+5KZh33kSfFmpFDD/piEkEb4UP4j0rd1gXBPJsjdN8 fsJUR/F5KvsdurHBf/qC8d3xrMZtSpI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118453; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ljuuhqpOqDDWmpDnbCdmNaVjarJVcwoFXmhAbwHgMNg=; b=uyjMas/nXWwFncG/VqAI8UJM1TBdDYgFItMI4x6cTLqCultdpbHnEf/R5jekOrCfQ5Nazj 7K66MR5r8FFEeVAQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 16F3513A6A; Mon, 6 Mar 2023 16:00:53 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 0H/OBDUOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:53 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 76/99] fbdev/sstfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:53 +0100 Message-Id: <20230306160016.4459-77-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636012457025570?= X-GMAIL-MSGID: =?utf-8?q?1759636012457025570?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/sstfb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c index da296b2ab54a..7cd65f924b08 100644 --- a/drivers/video/fbdev/sstfb.c +++ b/drivers/video/fbdev/sstfb.c @@ -1301,8 +1301,17 @@ static int sstfb_setup(char *options) mem = simple_strtoul (this_opt+4, NULL, 0); else if (!strncmp(this_opt, "gfxclk:",7)) gfxclk = simple_strtoul (this_opt+7, NULL, 0); - else - mode_option = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "sstfb: Ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "sstfb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; } From patchwork Mon Mar 6 15:59:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64872 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1931433wrd; Mon, 6 Mar 2023 08:17:24 -0800 (PST) X-Google-Smtp-Source: AK7set+HR2jnRCyFRIfOOGaVos2qhP91Xp8Q4pzDCsc1YiuBX+EZmrn5rRwBsypAkpKIe8ha6LRO X-Received: by 2002:a05:6a20:46a9:b0:cc:4118:7609 with SMTP id el41-20020a056a2046a900b000cc41187609mr9395848pzb.37.1678119444035; Mon, 06 Mar 2023 08:17:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119444; cv=none; d=google.com; s=arc-20160816; b=piYM1NYkujeQepKUfrQOpO8iKhe63+npDYWyK2ZoDuvp4uIILLtjSLYTHjBsZBMnWV o0sCjRnvwwdbjSwqlChTYevIQGZtjVp4iRGUYAC5iOY+6CEcEwXf3dPtyQqIAw+3lcDo 21SSw2KYx2xJI5RNKhT/TDus8tx4sgJdkshhyqfD6K8sDJTxfc1cD0T1765o2qkjH+PU 7mMR269/h9Jb0B2qKTopmteZs7LTT/ON738i2u6Wb2qKVodneFjh2156X0oMj9KV44Fy WmjVcvreadz7mBhc5HK2Ah0cA+sSxhG3bv0Y5KqJpOkN+8MgWnMbYeTToMMURmFIA5IF dJGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=8zqlhoySL/+Cl4DvCGVN1/4X2sxUzQQxUz8kG5dII7Y=; b=lmQ2T1h4bb+OJSCzUe9H2X84LxE9Cly+EPk73SOeSxvDGvtjKdwUybMyfRORp29Vnz CCZhVBaLz1DYSyEjbfjA6fAY+gPDIy3ISpX0ACwPrj27dDzaYuT3W9+S4qcwuXaPk8uI tmYX6DLHw0CQ0Q39yAQ3xSI+vj1F2CwkmMzXHMYFkWUlT1PM9yNCAYchhmZwQomtSmkE dXCA9vmhKSIPn7n5MmXNsJ9fDXLIJy6adK3jFyj5ZTkRAi967k6+RIGr1YWEfe1D9im9 XkZLpA0uCL/bFtTGeQUZHmPVQIej78VznrkokW/3r/Odyj9gQ55qiD+V+jknOnZ/4T05 UGpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=f3AHmAS0; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=uLhNIq46; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j25-20020a635519000000b004f2200cade5si8771185pgb.359.2023.03.06.08.16.58; Mon, 06 Mar 2023 08:17:24 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=f3AHmAS0; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=uLhNIq46; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231247AbjCFQFg (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42222 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231473AbjCFQBB (ORCPT ); Mon, 6 Mar 2023 11:01:01 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1ADE432E58; Mon, 6 Mar 2023 08:00:55 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id C037E22438; Mon, 6 Mar 2023 16:00:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118453; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8zqlhoySL/+Cl4DvCGVN1/4X2sxUzQQxUz8kG5dII7Y=; b=f3AHmAS0i4v505wvstRJfF7KcB995UCtX/Tp2H5HSPoejkWBwL+VPVGi2CxhDStbrGxfX6 PSThBx/uMoguCfpuTCpi1JiBgDzmWsNcSkvmLXBVQ5S0RqmWh2iX1mFb/r//0vST76wj8p dmxQ38Iw+ieOBoAbZGf1FzszhmrtGdQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118453; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8zqlhoySL/+Cl4DvCGVN1/4X2sxUzQQxUz8kG5dII7Y=; b=uLhNIq46LztfPeQewB+IzQzo955ubK9udVOMjNXR7+N9apmDvXK/1MzHC9ADAXXBJ2Vnk0 F/P4V6oXhMTjP3Dw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6FB1113513; Mon, 6 Mar 2023 16:00:53 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id sOd/GjUOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:53 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 77/99] fbdev/sstfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:54 +0100 Message-Id: <20230306160016.4459-78-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635774325738381?= X-GMAIL-MSGID: =?utf-8?q?1759635774325738381?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/sstfb.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c index 7cd65f924b08..6c3769062d50 100644 --- a/drivers/video/fbdev/sstfb.c +++ b/drivers/video/fbdev/sstfb.c @@ -81,6 +81,7 @@ */ #include +#include #include #include #include @@ -1273,16 +1274,14 @@ static void sst_shutdown(struct fb_info *info) /* * Interface to the world */ -static int sstfb_setup(char *options) +static int sstfb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; - - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { f_ddprintk("option %s\n", this_opt); if (!strcmp(this_opt, "vganopass")) @@ -1313,6 +1312,9 @@ static int sstfb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 15:59:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64878 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1933598wrd; Mon, 6 Mar 2023 08:21:03 -0800 (PST) X-Google-Smtp-Source: AK7set/ZvLAKCf0pUYgCGDwS2I0gZSPVIfDq5xmLO9xwilmI/C6Pp7BACZUvUSkGGitqfz1m8CGx X-Received: by 2002:a05:6a20:8408:b0:cb:ec5f:3c5b with SMTP id c8-20020a056a20840800b000cbec5f3c5bmr13014315pzd.18.1678119663328; Mon, 06 Mar 2023 08:21:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119663; cv=none; d=google.com; s=arc-20160816; b=Ga40pYnOhUC9d1zX8qgeSFASqW8e3Ki0iiWYv85BXD7Wm66NYSF9Rxe9zv25gCA4bz +ZfbwbSSjXRIz2tT4yRPjluRWOW6cM2NEhYi0VcE7nRyfXOOvkfvsTDZInB9KZZj1zze ypPgJ9dSMejgILR7lbwAZEvMfd4Pe5Xv9nuxls9Wdcwnlg/btLFfcGiioeBG2/kKigzY qkiZPYoushvM0H45Y3lXjzY+xgEXVn2krmLtNfWIgfwxrjS3f5c/ET6ae2DoC20uz/Na TJuD9Hd1exR+9LDVuTZBmYv512FQw3bGmSjls5xkjmZZ3RIG5X1fNbCt0DbLWIHyOYqz F5xA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=ux309O9TgXMG2iCBc1Nlc/YxhMdiiSbk+pPPbR4+wSE=; b=qZO/CORPhPD0tkv0O92oiEQXradBoOQ5MHPHcmeb6YCtSbHD0yRO3KkHLmhTmpYDY0 gEn4GK2RNi9c+7FDyyOcSR2LZD/JQwFMhZwu3PL7ZjoF1F6y5infhRuavVlYNx4Dw0tF /Ns0+AV2mlYeKt0HNzt6B0JeVc6UFZB7dN3HDqXe2fC3f5xMMcpAVwGWLRGzkI+IA7l9 FxHwdnho/KiPVirBOCIn3AanUnnCwr//fSDucfjuiypxIaS20f8w+Jq31ScB+lNsIjYb jMr4HPT4YhTXDi0ssKOhVNU2v62t00eYuZD8dTa/ATQe7XwVIFxqRHAeCi2VQzcpGbVx I5sw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=cHlFCGgJ; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h185-20020a6383c2000000b004fb647a766dsi10001371pge.7.2023.03.06.08.20.50; Mon, 06 Mar 2023 08:21:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=cHlFCGgJ; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231154AbjCFQFu (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231486AbjCFQBD (ORCPT ); Mon, 6 Mar 2023 11:01:03 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7A2CA32536; Mon, 6 Mar 2023 08:00:55 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 2F29C1FED3; Mon, 6 Mar 2023 16:00:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118454; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ux309O9TgXMG2iCBc1Nlc/YxhMdiiSbk+pPPbR4+wSE=; b=cHlFCGgJRl+TL9ujL2GCiY/0xCP8fnBUYJtSh+N5u85Rey0kAdvey/59LQWamzYXr5LbQ9 64remF5e5rxpYVPk1VHlnqHwlhn5OYxcOY0ne2fZY9gIYuzjgWwzdbtApSif+ojT+vYyeL PAC4E+rYNLhR52VmHMnE9TRvMHvm/Ug= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118454; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ux309O9TgXMG2iCBc1Nlc/YxhMdiiSbk+pPPbR4+wSE=; b=KwHPi0tLBMnCHIKI6wKS+3sFnrFfSJTY51Wd8T5PNQHKE2QBOm4LbnGGKiwdeSedYi2hid eaoDeD+BL09No/AA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C620613513; Mon, 6 Mar 2023 16:00:53 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id SA+XLzUOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:53 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 78/99] fbdev/stifb: Remove trailing whitespaces Date: Mon, 6 Mar 2023 16:59:55 +0100 Message-Id: <20230306160016.4459-79-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636003934387473?= X-GMAIL-MSGID: =?utf-8?q?1759636003934387473?= Fix coding style. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/stifb.c | 156 ++++++++++++++++++------------------ 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c index 3feb6e40d56d..a151377f5b45 100644 --- a/drivers/video/fbdev/stifb.c +++ b/drivers/video/fbdev/stifb.c @@ -1,11 +1,11 @@ /* - * linux/drivers/video/stifb.c - - * Low level Frame buffer driver for HP workstations with + * linux/drivers/video/stifb.c - + * Low level Frame buffer driver for HP workstations with * STI (standard text interface) video firmware. * * Copyright (C) 2001-2006 Helge Deller * Portions Copyright (C) 2001 Thomas Bogendoerfer - * + * * Based on: * - linux/drivers/video/artistfb.c -- Artist frame buffer driver * Copyright (C) 2000 Philipp Rumpf @@ -14,7 +14,7 @@ * - HP Xhp cfb-based X11 window driver for XFree86 * (c)Copyright 1992 Hewlett-Packard Co. * - * + * * The following graphics display devices (NGLE family) are supported by this driver: * * HPA4070A known as "HCRX", a 1280x1024 color device with 8 planes @@ -30,7 +30,7 @@ * supports 1280x1024 color displays with 8 planes. * HP710G same as HP710C, 1280x1024 grayscale only * HP710L same as HP710C, 1024x768 color only - * HP712 internal graphics support on HP9000s712 SPU, supports 640x480, + * HP712 internal graphics support on HP9000s712 SPU, supports 640x480, * 1024x768 or 1280x1024 color displays on 8 planes (Artist) * * This file is subject to the terms and conditions of the GNU General Public @@ -92,7 +92,7 @@ typedef struct { __s32 misc_video_end; } video_setup_t; -typedef struct { +typedef struct { __s16 sizeof_ngle_data; __s16 x_size_visible; /* visible screen dim in pixels */ __s16 y_size_visible; @@ -177,10 +177,10 @@ static int __initdata stifb_bpp_pref[MAX_STI_ROMS]; #endif /* DEBUG_STIFB_REGS */ -#define ENABLE 1 /* for enabling/disabling screen */ +#define ENABLE 1 /* for enabling/disabling screen */ #define DISABLE 0 -#define NGLE_LOCK(fb_info) do { } while (0) +#define NGLE_LOCK(fb_info) do { } while (0) #define NGLE_UNLOCK(fb_info) do { } while (0) static void @@ -198,9 +198,9 @@ SETUP_HW(struct stifb_info *fb) static void SETUP_FB(struct stifb_info *fb) -{ +{ unsigned int reg10_value = 0; - + SETUP_HW(fb); switch (fb->id) { @@ -210,15 +210,15 @@ SETUP_FB(struct stifb_info *fb) reg10_value = 0x13601000; break; case S9000_ID_A1439A: - if (fb->info.var.bits_per_pixel == 32) + if (fb->info.var.bits_per_pixel == 32) reg10_value = 0xBBA0A000; - else + else reg10_value = 0x13601000; break; case S9000_ID_HCRX: if (fb->info.var.bits_per_pixel == 32) reg10_value = 0xBBA0A000; - else + else reg10_value = 0x13602000; break; case S9000_ID_TIMBER: @@ -243,7 +243,7 @@ START_IMAGE_COLORMAP_ACCESS(struct stifb_info *fb) } static void -WRITE_IMAGE_COLOR(struct stifb_info *fb, int index, int color) +WRITE_IMAGE_COLOR(struct stifb_info *fb, int index, int color) { SETUP_HW(fb); WRITE_WORD(((0x100+index)<<2), fb, REG_3); @@ -251,30 +251,30 @@ WRITE_IMAGE_COLOR(struct stifb_info *fb, int index, int color) } static void -FINISH_IMAGE_COLORMAP_ACCESS(struct stifb_info *fb) -{ +FINISH_IMAGE_COLORMAP_ACCESS(struct stifb_info *fb) +{ WRITE_WORD(0x400, fb, REG_2); if (fb->info.var.bits_per_pixel == 32) { WRITE_WORD(0x83000100, fb, REG_1); } else { if (fb->id == S9000_ID_ARTIST || fb->id == CRT_ID_VISUALIZE_EG) WRITE_WORD(0x80000100, fb, REG_26); - else + else WRITE_WORD(0x80000100, fb, REG_1); } SETUP_FB(fb); } static void -SETUP_RAMDAC(struct stifb_info *fb) +SETUP_RAMDAC(struct stifb_info *fb) { SETUP_HW(fb); WRITE_WORD(0x04000000, fb, 0x1020); WRITE_WORD(0xff000000, fb, 0x1028); } -static void -CRX24_SETUP_RAMDAC(struct stifb_info *fb) +static void +CRX24_SETUP_RAMDAC(struct stifb_info *fb) { SETUP_HW(fb); WRITE_WORD(0x04000000, fb, 0x1000); @@ -286,14 +286,14 @@ CRX24_SETUP_RAMDAC(struct stifb_info *fb) } #if 0 -static void +static void HCRX_SETUP_RAMDAC(struct stifb_info *fb) { WRITE_WORD(0xffffffff, fb, REG_32); } #endif -static void +static void CRX24_SET_OVLY_MASK(struct stifb_info *fb) { SETUP_HW(fb); @@ -314,7 +314,7 @@ ENABLE_DISABLE_DISPLAY(struct stifb_info *fb, int enable) WRITE_WORD(value, fb, 0x1038); } -static void +static void CRX24_ENABLE_DISABLE_DISPLAY(struct stifb_info *fb, int enable) { unsigned int value = enable ? 0x10000000 : 0x30000000; @@ -325,11 +325,11 @@ CRX24_ENABLE_DISABLE_DISPLAY(struct stifb_info *fb, int enable) } static void -ARTIST_ENABLE_DISABLE_DISPLAY(struct stifb_info *fb, int enable) +ARTIST_ENABLE_DISABLE_DISPLAY(struct stifb_info *fb, int enable) { u32 DregsMiscVideo = REG_21; u32 DregsMiscCtl = REG_27; - + SETUP_HW(fb); if (enable) { WRITE_WORD(READ_WORD(fb, DregsMiscVideo) | 0x0A000000, fb, DregsMiscVideo); @@ -344,7 +344,7 @@ ARTIST_ENABLE_DISABLE_DISPLAY(struct stifb_info *fb, int enable) (READ_BYTE(fb, REG_16b3) - 1) #define HYPER_CONFIG_PLANES_24 0x00000100 - + #define IS_24_DEVICE(fb) \ (fb->deviceSpecificConfig & HYPER_CONFIG_PLANES_24) @@ -470,15 +470,15 @@ SETUP_ATTR_ACCESS(struct stifb_info *fb, unsigned BufferNumber) } static void -SET_ATTR_SIZE(struct stifb_info *fb, int width, int height) +SET_ATTR_SIZE(struct stifb_info *fb, int width, int height) { - /* REG_6 seems to have special values when run on a + /* REG_6 seems to have special values when run on a RDI precisionbook parisc laptop (INTERNAL_EG_DX1024 or INTERNAL_EG_X1024). The values are: 0x2f0: internal (LCD) & external display enabled 0x2a0: external display only 0x000: zero on standard artist graphic cards - */ + */ WRITE_WORD(0x00000000, fb, REG_6); WRITE_WORD((width<<16) | height, fb, REG_9); WRITE_WORD(0x05000000, fb, REG_6); @@ -486,7 +486,7 @@ SET_ATTR_SIZE(struct stifb_info *fb, int width, int height) } static void -FINISH_ATTR_ACCESS(struct stifb_info *fb) +FINISH_ATTR_ACCESS(struct stifb_info *fb) { SETUP_HW(fb); WRITE_WORD(0x00000000, fb, REG_12); @@ -499,7 +499,7 @@ elkSetupPlanes(struct stifb_info *fb) SETUP_FB(fb); } -static void +static void ngleSetupAttrPlanes(struct stifb_info *fb, int BufferNumber) { SETUP_ATTR_ACCESS(fb, BufferNumber); @@ -519,7 +519,7 @@ rattlerSetupPlanes(struct stifb_info *fb) * read mask register for overlay planes, not image planes). */ CRX24_SETUP_RAMDAC(fb); - + /* change fb->id temporarily to fool SETUP_FB() */ saved_id = fb->id; fb->id = CRX24_OVERLAY_PLANES; @@ -565,7 +565,7 @@ setNgleLutBltCtl(struct stifb_info *fb, int offsetWithinLut, int length) lutBltCtl.all = 0x80000000; lutBltCtl.fields.length = length; - switch (fb->id) + switch (fb->id) { case S9000_ID_A1439A: /* CRX24 */ if (fb->var.bits_per_pixel == 8) { @@ -576,12 +576,12 @@ setNgleLutBltCtl(struct stifb_info *fb, int offsetWithinLut, int length) lutBltCtl.fields.lutOffset = 0 * 256; } break; - + case S9000_ID_ARTIST: lutBltCtl.fields.lutType = NGLE_CMAP_INDEXED0_TYPE; lutBltCtl.fields.lutOffset = 0 * 256; break; - + default: lutBltCtl.fields.lutType = NGLE_CMAP_INDEXED0_TYPE; lutBltCtl.fields.lutOffset = 0; @@ -596,7 +596,7 @@ setNgleLutBltCtl(struct stifb_info *fb, int offsetWithinLut, int length) #endif static NgleLutBltCtl -setHyperLutBltCtl(struct stifb_info *fb, int offsetWithinLut, int length) +setHyperLutBltCtl(struct stifb_info *fb, int offsetWithinLut, int length) { NgleLutBltCtl lutBltCtl; @@ -633,7 +633,7 @@ static void hyperUndoITE(struct stifb_info *fb) /* Hardware setup for full-depth write to "magic" location */ GET_FIFO_SLOTS(fb, nFreeFifoSlots, 7); - NGLE_QUICK_SET_DST_BM_ACCESS(fb, + NGLE_QUICK_SET_DST_BM_ACCESS(fb, BA(IndexedDcd, Otc04, Ots08, AddrLong, BAJustPoint(0), BINovly, BAIndexBase(0))); NGLE_QUICK_SET_IMAGE_BITMAP_OP(fb, @@ -653,13 +653,13 @@ static void hyperUndoITE(struct stifb_info *fb) NGLE_UNLOCK(fb); } -static void +static void ngleDepth8_ClearImagePlanes(struct stifb_info *fb) { /* FIXME! */ } -static void +static void ngleDepth24_ClearImagePlanes(struct stifb_info *fb) { /* FIXME! */ @@ -675,7 +675,7 @@ ngleResetAttrPlanes(struct stifb_info *fb, unsigned int ctlPlaneReg) NGLE_LOCK(fb); GET_FIFO_SLOTS(fb, nFreeFifoSlots, 4); - NGLE_QUICK_SET_DST_BM_ACCESS(fb, + NGLE_QUICK_SET_DST_BM_ACCESS(fb, BA(IndexedDcd, Otc32, OtsIndirect, AddrLong, BAJustPoint(0), BINattr, BAIndexBase(0))); @@ -713,22 +713,22 @@ ngleResetAttrPlanes(struct stifb_info *fb, unsigned int ctlPlaneReg) /**** Finally, set the Control Plane Register back to zero: ****/ GET_FIFO_SLOTS(fb, nFreeFifoSlots, 1); NGLE_QUICK_SET_CTL_PLN_REG(fb, 0); - + NGLE_UNLOCK(fb); } - + static void ngleClearOverlayPlanes(struct stifb_info *fb, int mask, int data) { int nFreeFifoSlots = 0; u32 packed_dst; u32 packed_len; - + NGLE_LOCK(fb); /* Hardware setup */ GET_FIFO_SLOTS(fb, nFreeFifoSlots, 8); - NGLE_QUICK_SET_DST_BM_ACCESS(fb, + NGLE_QUICK_SET_DST_BM_ACCESS(fb, BA(IndexedDcd, Otc04, Ots08, AddrLong, BAJustPoint(0), BINovly, BAIndexBase(0))); @@ -736,23 +736,23 @@ ngleClearOverlayPlanes(struct stifb_info *fb, int mask, int data) NGLE_REALLY_SET_IMAGE_FG_COLOR(fb, data); NGLE_REALLY_SET_IMAGE_PLANEMASK(fb, mask); - + packed_dst = 0; packed_len = (fb->info.var.xres << 16) | fb->info.var.yres; NGLE_SET_DSTXY(fb, packed_dst); - - /* Write zeroes to overlay planes */ + + /* Write zeroes to overlay planes */ NGLE_QUICK_SET_IMAGE_BITMAP_OP(fb, IBOvals(RopSrc, MaskAddrOffset(0), BitmapExtent08, StaticReg(0), DataDynamic, MaskOtc, BGx(0), FGx(0))); - + SET_LENXY_START_RECFILL(fb, packed_len); NGLE_UNLOCK(fb); } -static void +static void hyperResetPlanes(struct stifb_info *fb, int enable) { unsigned int controlPlaneReg; @@ -783,7 +783,7 @@ hyperResetPlanes(struct stifb_info *fb, int enable) ngleClearOverlayPlanes(fb, 0xff, 255); /************************************************** - ** Also need to counteract ITE settings + ** Also need to counteract ITE settings **************************************************/ hyperUndoITE(fb); break; @@ -803,13 +803,13 @@ hyperResetPlanes(struct stifb_info *fb, int enable) ngleResetAttrPlanes(fb, controlPlaneReg); break; } - + NGLE_UNLOCK(fb); } /* Return pointer to in-memory structure holding ELK device-dependent ROM values. */ -static void +static void ngleGetDeviceRomData(struct stifb_info *fb) { #if 0 @@ -821,7 +821,7 @@ XXX: FIXME: !!! char *pCard8; int i; char *mapOrigin = NULL; - + int romTableIdx; pPackedDevRomData = fb->ngle_rom; @@ -888,7 +888,7 @@ SETUP_HCRX(struct stifb_info *fb) /* Initialize Hyperbowl registers */ GET_FIFO_SLOTS(fb, nFreeFifoSlots, 7); - + if (IS_24_DEVICE(fb)) { hyperbowl = (fb->info.var.bits_per_pixel == 32) ? HYPERBOWL_MODE01_8_24_LUT0_TRANSPARENT_LUT1_OPAQUE : @@ -897,9 +897,9 @@ SETUP_HCRX(struct stifb_info *fb) /* First write to Hyperbowl must happen twice (bug) */ WRITE_WORD(hyperbowl, fb, REG_40); WRITE_WORD(hyperbowl, fb, REG_40); - + WRITE_WORD(HYPERBOWL_MODE2_8_24, fb, REG_39); - + WRITE_WORD(0x014c0148, fb, REG_42); /* Set lut 0 to be the direct color */ WRITE_WORD(0x404c4048, fb, REG_43); WRITE_WORD(0x034c0348, fb, REG_44); @@ -968,7 +968,7 @@ stifb_setcolreg(u_int regno, u_int red, u_int green, 0, /* Offset w/i LUT */ 256); /* Load entire LUT */ NGLE_BINC_SET_SRCADDR(fb, - NGLE_LONG_FB_ADDRESS(0, 0x100, 0)); + NGLE_LONG_FB_ADDRESS(0, 0x100, 0)); /* 0x100 is same as used in WRITE_IMAGE_COLOR() */ START_COLORMAPLOAD(fb, lutBltCtl.all); SETUP_FB(fb); @@ -1006,7 +1006,7 @@ stifb_blank(int blank_mode, struct fb_info *info) ENABLE_DISABLE_DISPLAY(fb, enable); break; } - + SETUP_FB(fb); return 0; } @@ -1092,15 +1092,15 @@ stifb_init_display(struct stifb_info *fb) /* HCRX specific initialization */ SETUP_HCRX(fb); - + /* if (id == S9000_ID_HCRX) hyperInitSprite(fb); else ngleInitSprite(fb); */ - - /* Initialize the image planes. */ + + /* Initialize the image planes. */ switch (id) { case S9000_ID_HCRX: hyperResetPlanes(fb, ENABLE); @@ -1170,7 +1170,7 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref) fb = kzalloc(sizeof(*fb), GFP_ATOMIC); if (!fb) return -ENOMEM; - + info = &fb->info; /* set struct to a known state */ @@ -1211,7 +1211,7 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref) dev_name, fb->id); goto out_err0; } - + /* default to 8 bpp on most graphic chips */ bpp = 8; xres = sti_onscreen_x(fb->sti); @@ -1232,7 +1232,7 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref) fb->id = S9000_ID_A1659A; break; case S9000_ID_TIMBER: /* HP9000/710 Any (may be a grayscale device) */ - if (strstr(dev_name, "GRAYSCALE") || + if (strstr(dev_name, "GRAYSCALE") || strstr(dev_name, "Grayscale") || strstr(dev_name, "grayscale")) var->grayscale = 1; @@ -1271,16 +1271,16 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref) case CRT_ID_VISUALIZE_EG: case S9000_ID_ARTIST: /* Artist */ break; - default: + default: #ifdef FALLBACK_TO_1BPP - printk(KERN_WARNING + printk(KERN_WARNING "stifb: Unsupported graphics card (id=0x%08x) " "- now trying 1bpp mode instead\n", fb->id); bpp = 1; /* default to 1 bpp */ break; #else - printk(KERN_WARNING + printk(KERN_WARNING "stifb: Unsupported graphics card (id=0x%08x) " "- skipping.\n", fb->id); @@ -1296,11 +1296,11 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref) fix->line_length = (fb->sti->glob_cfg->total_x * bpp) / 8; if (!fix->line_length) fix->line_length = 2048; /* default */ - + /* limit fbsize to max visible screen size */ if (fix->smem_len > yres*fix->line_length) fix->smem_len = ALIGN(yres*fix->line_length, 4*1024*1024); - + fix->accel = FB_ACCEL_NONE; switch (bpp) { @@ -1326,7 +1326,7 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref) default: break; } - + var->xres = var->xres_virtual = xres; var->yres = var->yres_virtual = yres; var->bits_per_pixel = bpp; @@ -1352,7 +1352,7 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref) fix->smem_start, fix->smem_start+fix->smem_len); goto out_err2; } - + if (!request_mem_region(fix->mmio_start, fix->mmio_len, "stifb mmio")) { printk(KERN_ERR "stifb: cannot reserve sti mmio region 0x%04lx-0x%04lx\n", fix->mmio_start, fix->mmio_start+fix->mmio_len); @@ -1366,11 +1366,11 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref) fb_info(&fb->info, "%s %dx%d-%d frame buffer device, %s, id: %04x, mmio: 0x%04lx\n", fix->id, - var->xres, + var->xres, var->yres, var->bits_per_pixel, dev_name, - fb->id, + fb->id, fix->mmio_start); return 0; @@ -1399,7 +1399,7 @@ static int __init stifb_init(void) struct sti_struct *sti; struct sti_struct *def_sti; int i; - + #ifndef MODULE char *option = NULL; @@ -1411,7 +1411,7 @@ static int __init stifb_init(void) printk(KERN_INFO "stifb: disabled by \"stifb=off\" kernel parameter\n"); return -ENXIO; } - + def_sti = sti_get_rom(0); if (def_sti) { for (i = 1; i <= MAX_STI_ROMS; i++) { @@ -1445,7 +1445,7 @@ stifb_cleanup(void) { struct sti_struct *sti; int i; - + for (i = 1; i <= MAX_STI_ROMS; i++) { sti = sti_get_rom(i); if (!sti) @@ -1468,10 +1468,10 @@ int __init stifb_setup(char *options) { int i; - + if (!options || !*options) return 1; - + if (strncmp(options, "off", 3) == 0) { stifb_disabled = 1; options += 3; From patchwork Mon Mar 6 15:59:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64903 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935168wrd; Mon, 6 Mar 2023 08:23:43 -0800 (PST) X-Google-Smtp-Source: AK7set80M7OTiQ0nDsl52VWAyRoxGkjoOw+DBGHlh6fKkIuWsAfc2+O//O4FoHQ4qTzP5xJHJwuX X-Received: by 2002:a05:6a20:2448:b0:cc:c3f7:916b with SMTP id t8-20020a056a20244800b000ccc3f7916bmr11091248pzc.0.1678119823012; Mon, 06 Mar 2023 08:23:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119822; cv=none; d=google.com; s=arc-20160816; b=HusW3oxko+QT5muMcc8cucY/CfSke/oUimHw5kUqyFYgNYGSsmY2N2FfYEl71ycOJ8 H6TAIQbeYXxDcgOP/HHhE04CnOQnQXHbdKyRribZtgWasboT3pNxXqZ4sTvu6Nl7u1ol kO2gaMpZuc5Rwa9GeZKUhf5raOBXGlLXj22+GgUqzL1GGyYBxLbYqPVLI2PIqni0Hd9U tk1gMZSi5Nrg0bfb3BnjCcsSDrBoWjEm/e0C46c3syG+QQbNnUozg2sUBxtcfVQwxIId ut0WwKUArA8/oadeOMMnMproEnUBO4jqWaY5mRCGgWf7rDmyCnuLOKJDoSlEhq5xqtPy YBRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=yOhrk3uETM+pHr/QFHdYcLngL83sbtfH5kDoWLgLZZs=; b=pm0n+LEFyhs7LqRHTz7AuyNIMi89SgjHuFcLO3FPKM//RC7h/q4C4pkNz2ePn3xB7D /Dy9m1DTe0gDKwSor9EjJKrFHtMaArwIYjXJ6sWvsZ4geTwA5LYXck7pkfjJjN7KiLnD WZ+/3dV0ScRbnA/qZ+JueX/fXAjnrxWpYZLOzRLZij79MZJEMX0O1VsUEyU6JaHs/TZ6 NsA6H3GIYuup0DVvnrac96Jv4Vm25tSXrfAVKkxzIMPjHKg8lycEKgwV4v5ZnsWxR09t I9mg/g8wZAEDDloxTdxYSiPdkICBRpcAw4Z3ikrRQ3fW7XGj7rr+Mf6rC3R5fSRm3HoU +CDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="cFfY9u/U"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=4R7PA0tH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e9-20020aa798c9000000b0059072f087b7si9640636pfm.135.2023.03.06.08.23.30; Mon, 06 Mar 2023 08:23:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="cFfY9u/U"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=4R7PA0tH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229830AbjCFQFj (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231481AbjCFQBC (ORCPT ); Mon, 6 Mar 2023 11:01:02 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D54722E0D3; Mon, 6 Mar 2023 08:00:55 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 865161FED6; Mon, 6 Mar 2023 16:00:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118454; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yOhrk3uETM+pHr/QFHdYcLngL83sbtfH5kDoWLgLZZs=; b=cFfY9u/UJ9aeaeawMWvOIzzsUb2kja3lMv3D49+urNNE3uH2w/XNPP31AOfVbPYw+apfuz E+v2B2ef6C6EVKycL6hcLfNrfKzeTelxJmikHnrTiOkshtUSyLXdOE2qebKIwdxDYHitK7 BrkWHLcxy7juDYaVrluJ7tUkT1H5LEc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118454; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yOhrk3uETM+pHr/QFHdYcLngL83sbtfH5kDoWLgLZZs=; b=4R7PA0tHfHRSIED4nXwUYPe0ntH8GGEBrmTNrAlv1QSvnXF8YKhVZZcIpQlRdUpfeaa4aE 2EeMjt/WWPzsjDAA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 32C2313A6A; Mon, 6 Mar 2023 16:00:54 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id WHCVCzYOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:54 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 79/99] fbdev/sti: Constify option string Date: Mon, 6 Mar 2023 16:59:56 +0100 Message-Id: <20230306160016.4459-80-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636171586323340?= X-GMAIL-MSGID: =?utf-8?q?1759636171586323340?= Constify the intenal option string that is passed around among functions. The caller owns the memory and callees do not modify its content. This change will later allow to constify the caller's option string as well. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/stifb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c index a151377f5b45..304ce8fcb9f8 100644 --- a/drivers/video/fbdev/stifb.c +++ b/drivers/video/fbdev/stifb.c @@ -1392,7 +1392,7 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref) static int stifb_disabled __initdata; int __init -stifb_setup(char *options); +stifb_setup(const char *options); static int __init stifb_init(void) { @@ -1465,7 +1465,7 @@ stifb_cleanup(void) } int __init -stifb_setup(char *options) +stifb_setup(const char *options) { int i; From patchwork Mon Mar 6 15:59:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64875 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1932420wrd; Mon, 6 Mar 2023 08:19:19 -0800 (PST) X-Google-Smtp-Source: AK7set9BfYbmcJY1FaHKtceWCJaIBenZpsI29LRA2b1IJtaw7lqesTh9HHTV+BHukbOIlGB0WmqP X-Received: by 2002:a17:90b:4c43:b0:237:5db6:22be with SMTP id np3-20020a17090b4c4300b002375db622bemr11614515pjb.49.1678119558811; Mon, 06 Mar 2023 08:19:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119558; cv=none; d=google.com; s=arc-20160816; b=OUxEivK+WBYQymLQ4fqlN8L+EVq71XQr6GoLflslztqbY3kknf+CBLMqqBmqp4CdWO vbioUOGJjfTG2tvnhsJw0bUq292iJW6USYRELiN7MyBVxaSFbqjuE5SJDDSRcDxWFkix CBZgRUBt85e3WP1e5EzCxa/aS0TCGs6szKmNN2S4K0ORTPa12+hOQxvnQ+lj15d+S3u+ 9juKzd4j5aJ4587Lfg1afKJWSDtN4Lgk87vcHpzlGvEqhwJ5OU/tKTuBVdlqn0sqeg78 jIHqv5lSAXqBdxRI3EUP8TBzXWW29l6NPjUwYL3pZoTkw2vk5fW6lo8N3wfhUaGLA31O zwMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=4CTiBWCUsSzOh1iLUcC+NpZPt+whzLfG50MTmUnIlMg=; b=ft0wVhI2fGTce7jkEavo826Zm5jaI5oRXDCTiWO85no9NBVhKo09g9osoZT/DZ1dql ShxTsO5K+arz+P68Oc3x/5kkDi7Xd9+bCKKJherHWbByfTkb9O8UU4s0rcDeF4uJ/G09 4RVFs7n7eAVCz3AuX3DOzuqgw8ML4uiatOFAa0wehIEX70JLWCeJlvdeOP10xTW2o/i8 V8R68wQL0lSNgLqZHKAa2PrjRzyJ2mY0XrB/g50xxlSuyKBAYhITuTZiFOvic4DoOsjk iK0rjyQnS/IKjLFyyisQvgRzzCdYttPfOaq0b/mU2IwKTIihdIq0aoAGOZ0Tm5d6V3yp GlQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=P2PiTpZv; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=PhP4C6vl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r9-20020a632b09000000b004dccf388f93si9041871pgr.522.2023.03.06.08.19.06; Mon, 06 Mar 2023 08:19:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=P2PiTpZv; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=PhP4C6vl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229519AbjCFQFs (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231488AbjCFQBD (ORCPT ); Mon, 6 Mar 2023 11:01:03 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 46A7934C39; Mon, 6 Mar 2023 08:00:56 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id EC2961FED8; Mon, 6 Mar 2023 16:00:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118454; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4CTiBWCUsSzOh1iLUcC+NpZPt+whzLfG50MTmUnIlMg=; b=P2PiTpZvGnfq2wqnAXUK7WniO3UNETfvcMcNJIAOiG/NMxPqrNH0HCDyrpDlHFjzFsKoJB qeoWv5tTsxRqWhVeKrOQDuwhad6PcPKffMHTGwU91L9ldvzyGl5jf89DZKsWYsCck57E4R QzeCPLqHkwcO+VyxhU38q+uhnA0raSY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118454; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4CTiBWCUsSzOh1iLUcC+NpZPt+whzLfG50MTmUnIlMg=; b=PhP4C6vlnz9G4m2ojHstR0sRP9FOMkoiUnThczLryuI0RnRGr45EjGnIMmswtWGZpuutKM nr5uPv4MbkG+s2Cg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8A52F13513; Mon, 6 Mar 2023 16:00:54 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id SFb6IDYOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:54 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 80/99] fbdev/tdfxfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:57 +0100 Message-Id: <20230306160016.4459-81-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635894718990692?= X-GMAIL-MSGID: =?utf-8?q?1759635894718990692?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/tdfxfb.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c index d17e5e1472aa..ed3d8491e724 100644 --- a/drivers/video/fbdev/tdfxfb.c +++ b/drivers/video/fbdev/tdfxfb.c @@ -1589,7 +1589,15 @@ static void __init tdfxfb_setup(char *options) } else if (!strncmp(this_opt, "nomtrr", 6)) { nomtrr = 1; } else { - mode_option = this_opt; + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "tdfxfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "tdfxfb: option too long\n")) + continue; + mode_option = mode_option_buf; } } } From patchwork Mon Mar 6 15:59:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64881 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1933948wrd; Mon, 6 Mar 2023 08:21:40 -0800 (PST) X-Google-Smtp-Source: AK7set+Lk5sdzfiiLjbb0TF4novhNSIZbU+cr+CcGC/ASKIK2n4HgXuT+/H9EkrDmG3Nvyw/pk78 X-Received: by 2002:a17:902:da82:b0:19e:9849:1767 with SMTP id j2-20020a170902da8200b0019e98491767mr13604122plx.42.1678119700639; Mon, 06 Mar 2023 08:21:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119700; cv=none; d=google.com; s=arc-20160816; b=RIddtJ6vemsylxlvpSmq5EsQey1KZWXIw0kpPyvEmRTadJYkERT0v0MeVeRscFvp3x DiXPj98dYDGknIrOs+tsTWs/G5oDqnU2Pxh8o8JLWSsMX3Aw3GCnRAC9qPGUQDcbLZ68 zDuibNTZLjHtCIRKqLAK3aj10e1tvmcyDCsvD/sqZFS2WeFnb2qavMbxgnwQnvmqAhWB 5s8WBEm99wNvjmCFST5OadPlnJeZv3bnheosQGFDmacKWx2gKbDE76oSzdz2XN6Xhe2i ANgA3BCpME+OJOkTFF6RJdE7TFxFv1+z0yZgGHE2YYZpbR1bYck61Hs27r6hOFFQ0iHw 9mPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=Ls2zpWNQwKyUd6c7jGCzHsXipZg/epgyes0ZWs+tOkQ=; b=U0Olk8cOywozOqkvBG3Lz/IRpcVteMImM8KaVy82yGUqZo6VfvDjPmjV+Mg4AvlkQZ fYtZQstQNqBQwOR1ccBwzTsRMrsvBUCSpsvmPjkKiLviB8AQNWmsQoDSNo9/dFpB7n6Y CJRb5w5iLiuW87BpcJsGImathk77z6g72oYcS0XgVd9SJ1nwS45bEquaC7c/HN4bCTqX xAa/uM4pViLMVoQtPrnLSmdeGdWew790I2zfSl2JQj1hwKGT63VKGD/3In6eHsfZqFXu PJh1mJXGhX1ksq5+MlpN6DfdK6DF9rH8fIe+mlmpR6z9QW3R0tY3D+xsm+E6VuaYXQRQ wjgw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=cNab8bW1; dkim=neutral (no key) header.i=@suse.de header.b=xpghlH3a; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b20-20020a170902d89400b0019e68e3d533si9947043plz.98.2023.03.06.08.21.28; Mon, 06 Mar 2023 08:21:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=cNab8bW1; dkim=neutral (no key) header.i=@suse.de header.b=xpghlH3a; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230202AbjCFQFm (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231493AbjCFQBD (ORCPT ); Mon, 6 Mar 2023 11:01:03 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D43C4311E5; Mon, 6 Mar 2023 08:00:56 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 6248D22441; Mon, 6 Mar 2023 16:00:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118455; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ls2zpWNQwKyUd6c7jGCzHsXipZg/epgyes0ZWs+tOkQ=; b=cNab8bW1wtB1J/f7O9PqZI22+q4ZVQsMV4pMe7hlvQRnFEf2FPr9BV5rNnBMSNkw87suyy zii8gpql9YZdZrPq0vHjPUBKJZOFrodN/3euKsE4QkBQaCEfJzeDTYSfXQ9Mr5fufwi6mE hDzCrw90Q8EyEOCzGxOODTOVBUrhLjo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118455; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ls2zpWNQwKyUd6c7jGCzHsXipZg/epgyes0ZWs+tOkQ=; b=xpghlH3ap6xUl4eeycZ5M7CETfUlMyor5LQYwbIo+fkm9wcHjWroPP4metLpnX9FGP8sO6 vjEcTfbEu+BbryCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id F090713A6A; Mon, 6 Mar 2023 16:00:54 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 2OXaOTYOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:54 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 81/99] fbdev/tdfxfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 16:59:58 +0100 Message-Id: <20230306160016.4459-82-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636043074035069?= X-GMAIL-MSGID: =?utf-8?q?1759636043074035069?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/tdfxfb.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c index ed3d8491e724..54b19ce40bff 100644 --- a/drivers/video/fbdev/tdfxfb.c +++ b/drivers/video/fbdev/tdfxfb.c @@ -65,6 +65,7 @@ */ #include +#include #include #include #include @@ -1570,16 +1571,14 @@ static int tdfxfb_probe(struct pci_dev *pdev, const struct pci_device_id *id) } #ifndef MODULE -static void __init tdfxfb_setup(char *options) +static void __init tdfxfb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; + while (option_iter_next(&iter, this_opt)) { if (!strcmp(this_opt, "nopan")) { nopan = 1; } else if (!strcmp(this_opt, "nowrap")) { @@ -1600,6 +1599,8 @@ static void __init tdfxfb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); } #endif From patchwork Mon Mar 6 15:59:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64868 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1926996wrd; Mon, 6 Mar 2023 08:09:41 -0800 (PST) X-Google-Smtp-Source: AK7set8uiAaBmsEgFwDGWby0oEv71wSzqEuxrqp9Lmx4KpfwURUTI9WrCb9YN4QCdtL5b0ThfPXz X-Received: by 2002:a17:90a:fe07:b0:23a:8d2f:5997 with SMTP id ck7-20020a17090afe0700b0023a8d2f5997mr8552906pjb.20.1678118981380; Mon, 06 Mar 2023 08:09:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118981; cv=none; d=google.com; s=arc-20160816; b=QdxUxO8NkrJ4fvPycqmq0zZ7BWIApc9mdPXhUp/lNGeQlfDryjV+ugVfHnNJecJewn S05nG+Dk4KjTShskizQ+/a2g5jpYH7e1by/9TEkV50g1YWWfImagTwAM7FxnN0nyW6p+ yaozb3mkkc1BBXOudolTtP4HCv6b5fiLEWBnpyzWWiFCs44GW0yesDzN5W0GaNARY5UT +JIeXIYHQXZ4Ok1dxRHC1Su+AEXbY/o1i16eCqREiQ62cYRi2H/1quYk27nCVpl4Au9y UT8iZ3eRwIxzVV3+1aPRQrCW7HiWSUTQoBkSP2iRqExzeiTi8MvajKg4cvCsLRNFz3Q2 Hitg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=aGY7Fu+FjH5ebrEemOkXLczvoMTp1L2oXB861qWkvNU=; b=E1K+irqonYP84ZxO+Wf8OqEAnJN2J26IlAOLosZ69HDYTw2EJLpwbA0kxZD4RtqoC0 GeUPJgBQXzrQyHeOoWtXn+wecqAEzk7HmvPiLef5k3lFQcvmUnY0Nvj1+kPvk/x4vdUZ bRuRXMneZHvb6uH3LPYt7xhkgqNWtNFrwcCrZV2XFDxeVTln3fWmz1mQVWkuun6RK9Kw rfdSP+RnGZjmO5FSPzAaUytGfx18dkKBNSUdbgwxpzHN+lJsSnmCGUWVNMXxU9JSTIYe oj2S9TLBOJyGANolx6Qqat0scfbAos9Wkd7dYUZIzdehTPRpT6J+jE+UFCY2J4qwEbTc GrRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jO+jFE6X; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q15-20020a63f94f000000b00503a2a23fbdsi9080214pgk.841.2023.03.06.08.09.28; Mon, 06 Mar 2023 08:09:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jO+jFE6X; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230272AbjCFQGL (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231496AbjCFQBE (ORCPT ); Mon, 6 Mar 2023 11:01:04 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B37625E09; Mon, 6 Mar 2023 08:00:57 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id C4A3422443; Mon, 6 Mar 2023 16:00:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118455; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aGY7Fu+FjH5ebrEemOkXLczvoMTp1L2oXB861qWkvNU=; b=jO+jFE6XviH+PxwP2JyPoLSjnYyEpIn34E2rFOJkcRr0M7X98vcXTCiZDd8uzD5T6ZRojH 6StEZ5ATSm4FgKja60Gp2u7FGnLZ5DDftD7PBHiCxseMbiGZEgD6ZkHe80NVcSMKkD0M79 Gm2x2+2UOPr3prtpTjKJgh8IlQFG4mg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118455; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aGY7Fu+FjH5ebrEemOkXLczvoMTp1L2oXB861qWkvNU=; b=VlJjJiIUs+oHeU8hDVVlqsE2CfYsTGg62x/mWIFG5U/Zh94oDrhdW8CkvrHNvrfjokCm16 N6nRW7LywKCIABBw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6655F13513; Mon, 6 Mar 2023 16:00:55 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id gOr6FzcOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:55 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 82/99] fbdev/tgafb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:59 +0100 Message-Id: <20230306160016.4459-83-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635289130811225?= X-GMAIL-MSGID: =?utf-8?q?1759635289130811225?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/tgafb.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c index 14d37c49633c..a412fdddfd8c 100644 --- a/drivers/video/fbdev/tgafb.c +++ b/drivers/video/fbdev/tgafb.c @@ -1579,9 +1579,21 @@ static int tgafb_setup(char *arg) while ((this_opt = strsep(&arg, ","))) { if (!*this_opt) continue; - if (!strncmp(this_opt, "mode:", 5)) - mode_option = this_opt+5; - else + if (!strncmp(this_opt, "mode:", 5)) { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", + this_opt + 5); + if (WARN(ret < 0, + "tgafb: ignoring invalid option, ret=%d\n", + ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), + "tgafb: option too long\n")) + continue; + mode_option = mode_option_buf; + } else printk(KERN_ERR "tgafb: unknown parameter %s\n", this_opt); From patchwork Mon Mar 6 16:00:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64907 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935346wrd; Mon, 6 Mar 2023 08:24:05 -0800 (PST) X-Google-Smtp-Source: AK7set8zyWhTrDyJeUs39RQmLVVjsBUOBwxqEGHXTfWrNyxbQs03CH1dmBKdM+eNOnjfQ53z8b4J X-Received: by 2002:a17:90b:1b52:b0:22b:b82a:f3a2 with SMTP id nv18-20020a17090b1b5200b0022bb82af3a2mr12100360pjb.11.1678119845148; Mon, 06 Mar 2023 08:24:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119845; cv=none; d=google.com; s=arc-20160816; b=CW1IJaEiZz/qddV8cR4xXYDwgvDiJha5NFtuo1yV4L37RdLH3twADcSJMoiTrNsQa0 BVjHjNdIFUCIXsnqj/6/n+SVULHs66Wtoze3JVAyapwmHGGR6aHDgvly6B0eWDid7FtM hprKrCm5YZNgK/irIOgYv+bFYnAZJ+eRQL5NExNzTztJed2WwuNjAF36R0y/GLYI5X3A mtz7+assLUwbhYBC4JfpckEekklH10ZUxNku1ZLuAZYLBoyuFpJjEuen6E0/J3KSBkG8 YBR8N4kmp1R4sRxlpXpFF5Ka7cmviA4GG8O9k9hMAVjSc7ZlXHFQCVjx+P4HoS3tSzAi YKEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=5GGmlkKUitP/mPaJwo4DVCYrRiGQzK8ly7VqVkEk13o=; b=MvLubRd7BvM/4rMk6rmREgAvw6zaTqUOauZl/Zp6YnqOFikyC/KohVxjrtuvUYj3lU j0nnEAM60i8lnInXmbU2JjuAxU5ZwrusmR9Z8syTT1i89z6bY9lLHFNoNQ3nqVqwdv4W koP973U9Uo/p9VfO/jVu9RXm4qjMia+n8F76kZYTQsp8WTq90U/2GEnA6XJg6AJcv7t7 6WXcLn2Og6xD1faPGOpLF5/NYr+BgfeP48coKAngWZ7/v/QwB+ToBT3AyFMvMaWxIQxC PTYojupdMW7+x/oNhj4betJtvp6joWWWTxSQxzw0UQNL3Dyd7/bGRO9+HEmcp6RdbbPb /uSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=LHeaDUuq; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 29-20020a63195d000000b004ec148c7e05si8789472pgz.844.2023.03.06.08.23.52; Mon, 06 Mar 2023 08:24:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=LHeaDUuq; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231438AbjCFQGF (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42330 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231501AbjCFQBE (ORCPT ); Mon, 6 Mar 2023 11:01:04 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83EDF34F44; Mon, 6 Mar 2023 08:00:57 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 43F5D1FEE3; Mon, 6 Mar 2023 16:00:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118456; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5GGmlkKUitP/mPaJwo4DVCYrRiGQzK8ly7VqVkEk13o=; b=LHeaDUuqcFLT7mvfjL3Oe2/1UgmRJHfKInYcEKlnvYt4gTrcecvGEXnoNnAJqb35G/SlDv nPl1lofsiQ/GLHtiJ6rgy5havdpCwU9WJxddivM0PSECOADY2BIrzW1W45EhJu3rDUdSeL XkPTWdMb62Vr0KLMHhq8iLyaxGuyRzs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118456; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5GGmlkKUitP/mPaJwo4DVCYrRiGQzK8ly7VqVkEk13o=; b=CgsnbGbmnWvItotHj0adFz0sUs6nZ/rNAfneC3yL5yga7kw0lmaeTHogJ5Fs4t7PAfUWVw IZvSo6EYQ983jqAw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C9EF613513; Mon, 6 Mar 2023 16:00:55 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cNVhMDcOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:55 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 83/99] fbdev/tgafb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 17:00:00 +0100 Message-Id: <20230306160016.4459-84-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636194893828691?= X-GMAIL-MSGID: =?utf-8?q?1759636194893828691?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/tgafb.c | 45 +++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c index a412fdddfd8c..704909edf89d 100644 --- a/drivers/video/fbdev/tgafb.c +++ b/drivers/video/fbdev/tgafb.c @@ -14,6 +14,7 @@ #include #include +#include #include #include #include @@ -1571,35 +1572,31 @@ static void tgafb_exit(void) } #ifndef MODULE -static int tgafb_setup(char *arg) +static int tgafb_setup(const char *arg) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (arg && *arg) { - while ((this_opt = strsep(&arg, ","))) { - if (!*this_opt) + option_iter_init(&iter, arg); + + while (option_iter_next(&iter, this_opt)) { + if (!strncmp(this_opt, "mode:", 5)) { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", + this_opt + 5); + if (WARN(ret < 0, "tgafb: ignoring invalid option, ret=%d\n", ret)) continue; - if (!strncmp(this_opt, "mode:", 5)) { - static char mode_option_buf[256]; - int ret; - - ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", - this_opt + 5); - if (WARN(ret < 0, - "tgafb: ignoring invalid option, ret=%d\n", - ret)) - continue; - if (WARN(ret >= sizeof(mode_option_buf), - "tgafb: option too long\n")) - continue; - mode_option = mode_option_buf; - } else - printk(KERN_ERR - "tgafb: unknown parameter %s\n", - this_opt); - } + if (WARN(ret >= sizeof(mode_option_buf), "tgafb: option too long\n")) + continue; + mode_option = mode_option_buf; + } else + printk(KERN_ERR "tgafb: unknown parameter %s\n", this_opt); } + option_iter_release(&iter); + return 0; } #endif /* !MODULE */ From patchwork Mon Mar 6 16:00:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64909 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935662wrd; Mon, 6 Mar 2023 08:24:42 -0800 (PST) X-Google-Smtp-Source: AK7set9fw8quJ3l4bLocUlXf4VrhdXU8nLOjpbcL/xBGxoJR1AzNUYqZ1fwxFri86C63FyGjQ1q4 X-Received: by 2002:a05:6a20:a5a8:b0:cd:36d:90fc with SMTP id bc40-20020a056a20a5a800b000cd036d90fcmr12276593pzb.41.1678119881811; Mon, 06 Mar 2023 08:24:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119881; cv=none; d=google.com; s=arc-20160816; b=qCGlzVo49YpllZFRXU9AHI74+Rpgk0YeLZXUUDVBozUHp/ho6lqyd3MjsGwHP8oi06 phF65oJtfTUHlMLXRLV6xB9a0sW9dwJLLYHm7i4DFC3EpXmPWsGn9juHAqv57klPVAH8 LX1lTbWkiMNUqyZP4Ih2OMjmcYRSLiSRLBA3/Pwd7pxu01WEHNv9DlFiSC08X20zui+I Qr+C2gQfSGWM49ItQh4YwOIKNNqDmo9T7JqnbZvd3LuWG1wgT1EBIeNpTajqgI5fUOjb bs8iJJHySy18/362UpvgAX5f4/5bcFUKosck1pOvlvVUt5mlFZpSi+9YPJYFD/fea3ml fwGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=OEolRl7Gtp6eBSHcZORJIpDzJ5v2DCmOHbu1CyAwA3Y=; b=Eglx9h19Wn03Ylrqy4y8yf6OTNc6a31e9b2L5Z1thzE+EFXQLsbxyzuKapTlmd34+6 RZZSpwzwyqANkIdO+in1N5u1x6KPnTAF3igiMjwwFefykzW6Dufm4YqqA4RK0JHKHrgS MqSgrgJOO5zQ+cyRoWCkw9dGpV4Hmg4gX7wqxutdQ6zaMWJ6dt1Z9pOJTAmqrbGn4opq 3G4A9WXChYXf0f6IGPCeZ0bF9V8Xh0m8EIgWOLAjghXsp+7+hxeGKTBCqa34gHblixZN NcYC6X9KF5+yO0OuY0e9Nzoazn8LUKDOCok5xB41UVK0XQHobYINIuAuSFlc/eQntAKw nkIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=nSAPDps7; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k20-20020a6568d4000000b004fc205aa2adsi9282506pgt.65.2023.03.06.08.24.29; Mon, 06 Mar 2023 08:24:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=nSAPDps7; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231374AbjCFQF7 (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230283AbjCFQBF (ORCPT ); Mon, 6 Mar 2023 11:01:05 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05F2334C3B; Mon, 6 Mar 2023 08:00:58 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id AFFB31FEE6; Mon, 6 Mar 2023 16:00:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118456; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OEolRl7Gtp6eBSHcZORJIpDzJ5v2DCmOHbu1CyAwA3Y=; b=nSAPDps7b4eyqBSFBGX40iycf64sF9/x7zewiXbBXIgAwzGfjnbPkMl7H2bVusG+ypnnkQ 09gZjxZA1bTyL+96HyqwGXH5nBzyBnV3iyb4kTnylRUbHh/vqFqjrN5JhjY/thXIzgoWwV hrmhdXkj6pM1gB8vff2/qhblJ37W5O4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118456; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OEolRl7Gtp6eBSHcZORJIpDzJ5v2DCmOHbu1CyAwA3Y=; b=MieZldQrprtTBsfNXL0KzOsqbmwfoQDjj+0/IPsyDelLittK1mvKIo3Odip4IXy8GCTDxc 7k+7tkeTmpW2x9CA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 3A63413A6A; Mon, 6 Mar 2023 16:00:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id oHFyDTgOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:56 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 84/99] fbdev/tmiofb: Remove unused option string Date: Mon, 6 Mar 2023 17:00:01 +0100 Message-Id: <20230306160016.4459-85-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636233530883007?= X-GMAIL-MSGID: =?utf-8?q?1759636233530883007?= The option string is unused. Remove the variable and a related helper function. No functional change. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/tmiofb.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/drivers/video/fbdev/tmiofb.c b/drivers/video/fbdev/tmiofb.c index 50111966c981..8920cee52d7f 100644 --- a/drivers/video/fbdev/tmiofb.c +++ b/drivers/video/fbdev/tmiofb.c @@ -11,6 +11,7 @@ * code written by Sharp/Lineo for 2.4 kernels */ +#include #include #include #include @@ -997,32 +998,11 @@ static struct platform_driver tmiofb_driver = { /*--------------------------------------------------------------------------*/ -#ifndef MODULE -static void __init tmiofb_setup(char *options) -{ - char *this_opt; - - if (!options || !*options) - return; - - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; - /* - * FIXME - */ - } -} -#endif - static int __init tmiofb_init(void) { #ifndef MODULE - char *option = NULL; - - if (fb_get_options("tmiofb", &option)) + if (fb_get_options("tmiofb", NULL)) return -ENODEV; - tmiofb_setup(option); #endif return platform_driver_register(&tmiofb_driver); } From patchwork Mon Mar 6 16:00:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64900 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935063wrd; Mon, 6 Mar 2023 08:23:31 -0800 (PST) X-Google-Smtp-Source: AK7set89cwt7IyaadELjO1A0b540ggq5tz+aNgmgXGUmGt2HroFz7gSoN3VLBVL1xDvXx8etSfoa X-Received: by 2002:a17:903:2349:b0:19e:64b9:41c6 with SMTP id c9-20020a170903234900b0019e64b941c6mr15404149plh.60.1678119811317; Mon, 06 Mar 2023 08:23:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119811; cv=none; d=google.com; s=arc-20160816; b=AyfH+rHpQCGGXGTl2Pdz4hB6rrgF+Yr/wV3Abg3DxIysyYh++LaO+NL+02NTWJSstT imPkBIBGepjbCWc3IZlHb0RG8fNqIYpOr16nDJaXvzW77WWcSdtueB2EvK8sMgf6kutQ VhG0GOji6fuZKmLzWgWh1Vd7KD3Ap48677hLl14HqB7qhev7bi91IusuSh2p4ayM+Bm8 bPNUm3SdT6+kr12bNr4lqSBTVLvxSdibhSC1ItBlOy116giXc5PYO7DNAaAPjMULUEZo 7d80rs660SdXlVrkWCXwTE/WG13xmiKeMUovvjkaMK3Nk+L3V5Pqv80bskilgWLvvrEW zHmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=NRH8FDBlUenGi6t3vADvmnZXBzAlyd1DOo5qbgN/AjE=; b=P0vohYEwwgw5tUnsp29UAca4jMixmtMe7kezTkGgDw77zWEJ6FnWCPdewLzx+gqZvB XMqajSRXjVAkz3mhonq329Uu6KrMwlWv+7QpUUa389GdFrnqewXrbqWY+L5ZjD8apQ9F 0T4E8ZaEYgBYm8Il2ni3fa1RKj//2cRnK4hPsRe+0HsuZGcHA+wEr6VNW7jBx8F0zjhK m4QyQ4ziGAmxS2nUnBq0ckW7DqTGI7EvsvSyuv4vwMzFq/txQDrstHkD9BLm2Q2crdn4 EUGHl045jGRb5QMtNurQKlKmqbRIUUbvQWeqLUZRylFYsOWaIk3YPV5bxl+KNP/uTGps tn1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=FcmR5Ilu; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lm6-20020a170903298600b0019c14335fc0si10041821plb.70.2023.03.06.08.23.19; Mon, 06 Mar 2023 08:23:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=FcmR5Ilu; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231551AbjCFQGV (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42340 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231504AbjCFQBF (ORCPT ); Mon, 6 Mar 2023 11:01:05 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6358735279; Mon, 6 Mar 2023 08:00:58 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 2104A1FEE8; Mon, 6 Mar 2023 16:00:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118457; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NRH8FDBlUenGi6t3vADvmnZXBzAlyd1DOo5qbgN/AjE=; b=FcmR5Ilu2FyZ0aLZLBjI89PfVeogAgi8Mj3NX5fDD6u8EnA92IzM/KZ9RUvIFMIYffMmFF ttlyLQCdemVx47Xa+brtK/X9Wh6quLpVYb+bi6gx0DfVvACXPIetiiUzl4s++i38cXFW12 9ulDrdY5EcKxarL+MWNJ4DKzGUtOXPI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118457; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NRH8FDBlUenGi6t3vADvmnZXBzAlyd1DOo5qbgN/AjE=; b=wY5srk6jZqqWfP4NxccbClrm872HRKp9pzYLQDFdEis3ybVZ+2xKQmslhC1gIsFyykRMs+ IPUbHcSbEW1RVMAw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id AF5ED13513; Mon, 6 Mar 2023 16:00:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id eDDJKTgOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:56 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 85/99] fbdev/tridentfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 17:00:02 +0100 Message-Id: <20230306160016.4459-86-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636159535038409?= X-GMAIL-MSGID: =?utf-8?q?1759636159535038409?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/tridentfb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c index 6099b9768ba1..21cee678047b 100644 --- a/drivers/video/fbdev/tridentfb.c +++ b/drivers/video/fbdev/tridentfb.c @@ -1800,8 +1800,17 @@ static int __init tridentfb_setup(char *options) memdiff = simple_strtoul(opt + 8, NULL, 0); else if (!strncmp(opt, "nativex=", 8)) nativex = simple_strtoul(opt + 8, NULL, 0); - else - mode_option = opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", opt); + if (WARN(ret < 0, "tridentfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "tridentfb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; } From patchwork Mon Mar 6 16:00:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64880 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1933923wrd; Mon, 6 Mar 2023 08:21:38 -0800 (PST) X-Google-Smtp-Source: AK7set8oYxQKfqypx2wPLGDAwK1JaLAQe+/Zl/Cd6NTSdNvVpZbYAnXph0Pwby3m7PtU4vuUYLPb X-Received: by 2002:a05:6a20:12d5:b0:cb:85eb:611c with SMTP id v21-20020a056a2012d500b000cb85eb611cmr12216682pzg.29.1678119698026; Mon, 06 Mar 2023 08:21:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119698; cv=none; d=google.com; s=arc-20160816; b=VdAb2LlTkAmJ/y/hye0tPnE8e11nyDp2q+s6aNcefVqmXu8muj3VV7QJtSpbWbjDhH jI38pdVDm7aFru929qJomGPp3AB8vQUCFQQY+kv+I8nbN4Y+O1AzCJ8ka/68UfAo2jN0 DqJlESd0e7AxRZ7gVa6eIFlrPdG3o1JqWFzzj/TPXFGNjh+2Nb+ao4rcTpVZYKAXLJ72 7w3lpi88epQoUC7TkuX+pedpCPEO6S3chw+2V/bGNn8SNAmn689pPsIYTWPQQT9qv0gS AS1zUpGfPHDQqf0RwhAVGCw6a2g2oaYQ81kHSSuXs3SA96B9gkZz9fcDOavAaKxA4XFQ HxXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=mGQE+ZcGyuVNRtdwYQbikR9YEbMLrF150xmpu0jqFzU=; b=BEWG7t1dCgo5G+wq2C8ABF0gcq+zH7Q3CqesUYojOe08BZ42X56TfekXAn9Zo+7mGh UUtOA7eGXfN3ejOxyrtjoPoUnmVfavuOUPbU0by65R8fsYeOf6LeabhXGBKYJZbOdhQ9 jwFKJKJlB9n3sxY29JFUI1GQd+OMRtqCFGAA0ofF1K0KDZggXOqnYqck5qCh7lhYjHgG y/ljxrXe9ixaQeH8qerFqow+eLzvAXb9O/ejiPGwI/xtLUzvJ9m4lVHjA79mUpCbf5Rl sbsPuZJmMkxDNlLhnlWB+gYHRWzZMbHpc8Er/Vnudml7S5KmeHRZjqt8PNPUMZUWuUC9 0TPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=DYymHttl; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 29-20020a63195d000000b004ec148c7e05si8789472pgz.844.2023.03.06.08.21.25; Mon, 06 Mar 2023 08:21:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=DYymHttl; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231129AbjCFQFz (ORCPT + 99 others); Mon, 6 Mar 2023 11:05:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42342 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231503AbjCFQBF (ORCPT ); Mon, 6 Mar 2023 11:01:05 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF56536088; Mon, 6 Mar 2023 08:00:58 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id A29D51FEEB; Mon, 6 Mar 2023 16:00:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118457; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mGQE+ZcGyuVNRtdwYQbikR9YEbMLrF150xmpu0jqFzU=; b=DYymHttlVRncjdxkjgOcd/RypvLPIwkCs4865i0fRblDr+sWZVWwyhdQohkYcoFeyoHeZh bVJQYnEx+cyBP6EcUYK8GFgBLnJjKRFVnat6u/EkAVO8V+lxFuh5CmiFuN9CTcIOyIM2hB kbnlY0nueRouXYoypO7HF0o7UX8910A= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118457; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mGQE+ZcGyuVNRtdwYQbikR9YEbMLrF150xmpu0jqFzU=; b=ncqaOhvDFT5fGJedOnieNRBQbXIgs8+ET12Fjq4Ckcj34fqN8R/Wln1EFgyXtrCXwYOepx 1Eb/9CH5SBfvtnDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2107913A6A; Mon, 6 Mar 2023 16:00:57 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 0DI3BzkOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:57 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 86/99] fbdev/tridentfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 17:00:03 +0100 Message-Id: <20230306160016.4459-87-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636040684048290?= X-GMAIL-MSGID: =?utf-8?q?1759636040684048290?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/tridentfb.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c index 21cee678047b..0b8d4bc514e2 100644 --- a/drivers/video/fbdev/tridentfb.c +++ b/drivers/video/fbdev/tridentfb.c @@ -17,6 +17,7 @@ */ #include +#include #include #include #include @@ -1774,14 +1775,14 @@ static struct pci_driver tridentfb_pci_driver = { * video=trident:800x600,bpp=16,noaccel */ #ifndef MODULE -static int __init tridentfb_setup(char *options) +static int __init tridentfb_setup(const char *options) { - char *opt; - if (!options || !*options) - return 0; - while ((opt = strsep(&options, ",")) != NULL) { - if (!*opt) - continue; + struct option_iter iter; + const char *opt; + + option_iter_init(&iter, options); + + while (option_iter_next(&iter, opt)) { if (!strncmp(opt, "noaccel", 7)) noaccel = 1; else if (!strncmp(opt, "fp", 2)) @@ -1812,6 +1813,9 @@ static int __init tridentfb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 16:00:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64896 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934910wrd; Mon, 6 Mar 2023 08:23:14 -0800 (PST) X-Google-Smtp-Source: AK7set8IJLghtPUM/y9Yop5zeDvEQU6FLu26wGeHRDMeH6mRPx/l4nbGCKDTxeIXso8FH5TPmQ3Y X-Received: by 2002:a17:903:25c2:b0:19c:b7da:a880 with SMTP id jc2-20020a17090325c200b0019cb7daa880mr10777108plb.11.1678119794226; Mon, 06 Mar 2023 08:23:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119794; cv=none; d=google.com; s=arc-20160816; b=tNECw/lzvy92LmW8OjdLtifJ3JFgd2NypaCLxGJnIJf4Iwc+Rx6aMkG0xoIsHMIGXB ZlwKi49aGCNuQa/1Gq6PpJm9U4hAjZ7LamlWc6hpQXFm8dVqBya7phVXnnz0Bsy5GAnr 2yZY+GP56cEhaXmx56FuWYr/gO4vJDFUuyHTH7DNVfPKUmAkx6a3IdxbJfbDU6ruA6Ib DNQR9+jMzz96qAZkvmaaFDZGS9ZI5a9VjeyCC4pX9cX6tZSSgM7wt+E0+V2JsP7mH9FV mi1pGQ8TGwpbF0LUOFZD02Fk4ExHHJeFZrkjT5776I4L2qWZDWSfYnSXLdDiXAoj2fno 4Fgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=fY7la/uDAaobcBLaIZ85iqzUSoMyQj9cvO6BCel8NIQ=; b=SrXfs7AINul8l2xZMSpZNGYGMUS/aR8nZWUAzekJ73rx8HCPethL/Vl6KfCwCjlo8z JMMT51ZA1k7FNdH3dCc6TI6RjbHYZ6NwtHcEprqzv90A2q2ybRV19hxEgghfiEVq96Zo Zp11Ef7PII6OQDvF906K6IldPEv1uv4rOmNTxXmPy5xHApooZjtEaCV5tZofjtsQCe6H 9avlOBxTCvXluE7U3tiSHm512aGTqtohYn7KuKE5AQMJpTa2CZNbOtuMZM+004iBidMD d1flnoON7bSkTjBUdqM8hVGT+U4kq+xuFozyEMu5tee0HgzqUinTc5o/fwMRPbzJ5gpG BbHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=qHsDy5eO; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q33-20020a631f61000000b00502ea3f3761si9404339pgm.199.2023.03.06.08.23.02; Mon, 06 Mar 2023 08:23:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=qHsDy5eO; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231536AbjCFQGT (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42342 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231506AbjCFQBF (ORCPT ); Mon, 6 Mar 2023 11:01:05 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 662672FCDE; Mon, 6 Mar 2023 08:00:59 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 1D2AF2244B; Mon, 6 Mar 2023 16:00:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118458; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fY7la/uDAaobcBLaIZ85iqzUSoMyQj9cvO6BCel8NIQ=; b=qHsDy5eO9yrSPhK/XQhdzCtKRVRbSQHLTxCxG18+IDzTMh8CZ/Vuuv+NuczfuH7Rg11B9/ 2/OFGiLzeVo/8kZ1fp2DMrdVqng0F/j1gM+goEH9eW9sp1MPyL9Toy1pj09pKAi4lwj9SL bfYMqJ0daIYn3j97bdHKWJXWxywDHcY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118458; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fY7la/uDAaobcBLaIZ85iqzUSoMyQj9cvO6BCel8NIQ=; b=Pr6Z2vZDZym0ebLFiDPvT4FgSkTzx0WnJoMOBBUvEdY3QZfMNkQjugC3D3WckrE6A8xouS CEHlxlU9EiPP3OCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id A819513513; Mon, 6 Mar 2023 16:00:57 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id UBf9JzkOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:57 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 87/99] fbdev/uvesafb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 17:00:04 +0100 Message-Id: <20230306160016.4459-88-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636141321963719?= X-GMAIL-MSGID: =?utf-8?q?1759636141321963719?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/uvesafb.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c index f09f483c219b..201f6bba0763 100644 --- a/drivers/video/fbdev/uvesafb.c +++ b/drivers/video/fbdev/uvesafb.c @@ -1851,7 +1851,15 @@ static int uvesafb_setup(char *options) else if (!strncmp(this_opt, "vbemode:", 8)) vbemode = simple_strtoul(this_opt + 8, NULL, 0); else if (this_opt[0] >= '0' && this_opt[0] <= '9') { - mode_option = this_opt; + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "uvesafb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "uvesafb: option too long\n")) + continue; + mode_option = mode_option_buf; } else { pr_warn("unrecognized option %s\n", this_opt); } From patchwork Mon Mar 6 16:00:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64906 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935198wrd; Mon, 6 Mar 2023 08:23:47 -0800 (PST) X-Google-Smtp-Source: AK7set+AgYpGqiVcbRQz6TDPbSZx1ZIy/vz21AMJHNiHI7a8+3GwmMysXSeuO2yE9xu46jZsGTeZ X-Received: by 2002:a17:902:ea02:b0:19a:9580:74c with SMTP id s2-20020a170902ea0200b0019a9580074cmr14109042plg.7.1678119827496; Mon, 06 Mar 2023 08:23:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119827; cv=none; d=google.com; s=arc-20160816; b=HtHWPUYUcuhlxgzmoT4rqDp8WpGP0MYYAe62wgheWb83ANSDrRC06l/I8NZ87WI7Sa +SXscW6X+zaMLufkHDjmRlX0Hvp5EcqqsfziIatP+dWKAZbINc6vLzFjDCXN+3Busnu/ N0VpDYfdXL+22j2NGiTnTEuQrU2Mi2fstZYC3EzGziJM2Bkx6r7AyssRoZPauad7mlyO Jz3QqOnC2RjYEfKwOK6U/iULMXhZO1er2JlW4zE1J05/ozsSKcBsIWqxDLFCXrI9uVZ9 4bPl2OGgZJ7MxSeI75yG4xKSUe8DW4QfcyqVVw3iEjmIlpggWus5Cj8hqqJy+ywTLMiJ 65DA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=mEhBpN6twqC93ccGiwa5lzYv6YauDqAwC362BxH6GVI=; b=ZZP+OBb+RxDX/moCZdeNtYoUxxmF/J8sCeFZMMDX0vig5j/wn4tNWDKWzovSCr77pD J/AzmCDursBtz7LbKCqwO2oJKZeWka3ctWD46mrVXvgixX+EXvFDltBrmF1txtR5KruZ djAQaTIOYjteb62PAK/vDI0n2en8t2UdDvuLUDoKfG1HWxGppXZ1i7662Ty9vvB9j45T rJW7eb5RIyLLrogMN/jKaJ6dy5ZHHx5cLZfZgJkhi88aBq20slghrKrUSOM2rq/HgRkO bAqNHZzbif8qY1cd7WFBIN/FgorrNCH57ulgHyH6NpwPgZUN3NY/LQAQIdVLK5BBTrM2 6ILQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Ut4v9Yp+; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u15-20020a17090341cf00b0019cce5618adsi10925282ple.642.2023.03.06.08.23.35; Mon, 06 Mar 2023 08:23:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Ut4v9Yp+; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231488AbjCFQGP (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231511AbjCFQBG (ORCPT ); Mon, 6 Mar 2023 11:01:06 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 044F42E813; Mon, 6 Mar 2023 08:01:00 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 9145522285; Mon, 6 Mar 2023 16:00:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118458; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mEhBpN6twqC93ccGiwa5lzYv6YauDqAwC362BxH6GVI=; b=Ut4v9Yp+wjwadONFNsyMBXo+mZuvnX1hNTwxN5+cjhS2okVvDS88iMnL9ULbLKMeJBvbqt 9uPkKM/Pj80pMIbKiwu3v9dwwEkSx29N8JQPI+tDGeSzwzGd6BCYfpIcBn4A+tYbHFTWsL ai2eg21TdqQA0G3W6G7X1eyn9O4/yqI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118458; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mEhBpN6twqC93ccGiwa5lzYv6YauDqAwC362BxH6GVI=; b=YimuZxKPDn8Mnu7nQeQbXeW4UjY4rPWmFD3/5m6LKna2JANBJ2sb8WycuUXUQuRAk+NEBT JM1YQiGjrwFc3XDg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 1EA8B13A6A; Mon, 6 Mar 2023 16:00:58 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id aP94BjoOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:58 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 88/99] fbdev/uvesafb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 17:00:05 +0100 Message-Id: <20230306160016.4459-89-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636176382934331?= X-GMAIL-MSGID: =?utf-8?q?1759636176382934331?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/uvesafb.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c index 201f6bba0763..aada6a44380c 100644 --- a/drivers/video/fbdev/uvesafb.c +++ b/drivers/video/fbdev/uvesafb.c @@ -9,6 +9,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +#include #include #include #include @@ -1808,16 +1809,14 @@ static struct platform_driver uvesafb_driver = { static struct platform_device *uvesafb_device; #ifndef MODULE -static int uvesafb_setup(char *options) +static int uvesafb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; - - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { if (!strcmp(this_opt, "redraw")) ypan = 0; else if (!strcmp(this_opt, "ypan")) @@ -1865,6 +1864,8 @@ static int uvesafb_setup(char *options) } } + option_iter_release(&iter); + if (mtrr != 3 && mtrr != 0) pr_warn("uvesafb: mtrr should be set to 0 or 3; %d is unsupported", mtrr); From patchwork Mon Mar 6 16:00:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64869 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1928802wrd; Mon, 6 Mar 2023 08:12:35 -0800 (PST) X-Google-Smtp-Source: AK7set8Pb+n4ODNIL//44Ov/LBnCzCWqNsvuZel9Y/Q0bTp7B2E6s6rTRJUl6H6+nNssaodPiqfZ X-Received: by 2002:a05:6a20:9144:b0:ce:7f0a:9341 with SMTP id x4-20020a056a20914400b000ce7f0a9341mr11073618pzc.5.1678119154728; Mon, 06 Mar 2023 08:12:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119154; cv=none; d=google.com; s=arc-20160816; b=0TXz8Ls0dfxbG7ERvzm2LHvLPj2DOmg1nIc9Tk3FY1/ZikSz0zvTggadcD3Az7HvpU YmXVHf6P+uqPAPcsRcOThRa8CsOWqRKDCfDLKxuWoO5BQ5kMWxlswQ4xpVL8UsnJfA9q kf29T+AuDLurHjZflI9x5VqenYdxb+gzBAV2bEXJBgrjABCvceuP77zLZL/VlaI+u3VB 4OH3DFwA92EjqSyFFuythH4yRy6YxLNaWClV2pFWe2qvHBrhMgNpxlWBHtSfvTbaiQ4Q Ej2RjBVh6w2SFVtKwtdmNZ+/+IuIHcNEzCKCPR4SPOQwrpVxqrkG93d6AAC2cSYdJVpy GCIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=zyH/0IPG9qUaFYsN9w/QwcLQQulAY9+Gu12kUrvFX8w=; b=i1o44BlWWVoPirNuZU/8gzkSdJ7D/JYc4sCrSwGzHnTDR1KqEREsvbBnuE+xvE/5K0 d2Jb1gQ6d0ZgROXzZq0UrgdS90xOoqRIikqtdHLeuap/VCS7NJipQS+4mV3iKdjfQEWC FzGI3AbDqnLgl1QleoJ03DmI/3suBEwEd4LxiAhrBrSDTdDPwXdvr81fAy/l5dNV4nSS sQ92LGdXoCOnXXv7MvLvRWsdlGKF0I50naQgld9pry30/+HrL4O1jYtmfQPAD8HnE4/2 9Zn/w+SNpq2r5gaBTpFw5dIOz3LOAj35FfJmems1Ffr7B3+y9HoDyuA5SFKf1ugsM9mH txJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="nzzELS/K"; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c25-20020a631c59000000b004fb20bf0a73si9457257pgm.112.2023.03.06.08.12.21; Mon, 06 Mar 2023 08:12:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="nzzELS/K"; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231566AbjCFQGZ (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42374 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231514AbjCFQBH (ORCPT ); Mon, 6 Mar 2023 11:01:07 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AF222FCCF; Mon, 6 Mar 2023 08:01:00 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 05B3022453; Mon, 6 Mar 2023 16:00:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118459; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zyH/0IPG9qUaFYsN9w/QwcLQQulAY9+Gu12kUrvFX8w=; b=nzzELS/KQ0f6PvEQbk7fKZU3Y+4WfDd83yEc40+/ngpNxQpZOIm8c5q0e8Cj4WzSlC/rtB uw4l5bT1ZzAH/W2ck1C5xYGw/vv1Zfe+pwLWUfn/ih3ntES1D8BEkrl3g3Y38s5KPBw9sM 9bd6s35PfzhrKiiEMKaWgNAuvN2l/7k= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118459; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zyH/0IPG9qUaFYsN9w/QwcLQQulAY9+Gu12kUrvFX8w=; b=Q+mU012QejaFFGb/sGL0VqoWftCSR5rJZ4XsoEL6CYGcoC32Igf/Yo/D4rZtN56zwXJPa0 +1o+Jy6gZqy4IFAA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8BA7913513; Mon, 6 Mar 2023 16:00:58 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id aM/eIDoOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:58 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 89/99] fbdev/valkyriefb: Remove trailing whitespaces Date: Mon, 6 Mar 2023 17:00:06 +0100 Message-Id: <20230306160016.4459-90-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635470940715902?= X-GMAIL-MSGID: =?utf-8?q?1759635470940715902?= Fix coding style. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/valkyriefb.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c index 1007023a5e88..b166b7cfe0e5 100644 --- a/drivers/video/fbdev/valkyriefb.c +++ b/drivers/video/fbdev/valkyriefb.c @@ -1,7 +1,7 @@ /* * valkyriefb.c -- frame buffer device for the PowerMac 'valkyrie' display * - * Created 8 August 1998 by + * Created 8 August 1998 by * Martin Costabel and Kevin Schoedel * * Vmode-switching changes and vmode 15/17 modifications created 29 August @@ -77,13 +77,13 @@ struct fb_info_valkyrie { struct fb_par_valkyrie par; struct cmap_regs __iomem *cmap_regs; unsigned long cmap_regs_phys; - + struct valkyrie_regs __iomem *valkyrie_regs; unsigned long valkyrie_regs_phys; - + __u8 __iomem *frame_buffer; unsigned long frame_buffer_phys; - + int sense; unsigned long total_vram; @@ -244,7 +244,7 @@ static inline int valkyrie_vram_reqd(int video_mode, int color_mode) { int pitch; struct valkyrie_regvals *init = valkyrie_reg_init[video_mode-1]; - + if ((pitch = init->pitch[color_mode]) == 0) pitch = 2 * init->pitch[0]; return init->vres * pitch; @@ -467,7 +467,7 @@ static int valkyrie_var_to_par(struct fb_var_screeninfo *var, printk(KERN_ERR "valkyriefb: vmode %d not valid.\n", vmode); return -EINVAL; } - + if (cmode != CMODE_8 && cmode != CMODE_16) { printk(KERN_ERR "valkyriefb: cmode %d not valid.\n", cmode); return -EINVAL; @@ -516,7 +516,7 @@ static void valkyrie_init_fix(struct fb_fix_screeninfo *fix, struct fb_info_valk fix->ywrapstep = 0; fix->ypanstep = 0; fix->xpanstep = 0; - + } /* Fix must already be inited above */ From patchwork Mon Mar 6 16:00:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64899 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935050wrd; Mon, 6 Mar 2023 08:23:29 -0800 (PST) X-Google-Smtp-Source: AK7set/f1G5U4WHw5ImGYVE6ASb+ReABRNPszI4HUXipRV9PAEGLwjmIKDJFcy0n0hSJRVEuc/QE X-Received: by 2002:a05:6a20:918a:b0:be:ea27:3c16 with SMTP id v10-20020a056a20918a00b000beea273c16mr9783571pzd.35.1678119809038; Mon, 06 Mar 2023 08:23:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119809; cv=none; d=google.com; s=arc-20160816; b=Bh6cplJUAy0G7EnEXv1V3KjXb3NTgWdNn4RRqLmd7r7N5jX2d3MGMT6x/DqnOKcDv5 CCSOu7JiLaxmcaSQRi8x/be6MwThvYS1RyhPzq1Slfd7tik5LqeUN9re4FlptAUP+LjE +K0yCwo9MWlJ9YTAhTAFv3RGiFd3hHUppI6Cbn13CPpsDo/bY9LzcssNUOulcR/EgMNK Wq1GZqMOoGJKvhCeuxjDcxI+YRSTduYk5wR1kuj4d6qOMGa3kLVp4Sk8naRrkAOxt9Bu bKJCFKnog9nstiAyJSM6tma7uHcOpzLbDG3Am3lRaUsyjs0UcbMw2ZmVm1s32+D/Wo7U QJww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=QCuFu5SU57CJHGfgdFQfRit83nbssA/Udz2hcttdwvo=; b=xOerXlEPve/TQMEfQfCLL7sAFPhOkLMpHGwiToJpllG7IUgykjXimV4MF2huId7Oec zbvvzaPCTf+9TKKE9mzXTr60vhsQgXx65XR3p1WFLYR6pLfx4hisIootDwL0WFM6Wq8i vWFJ5/oqL6HF9/4wr+ciPyCGqeqW3jeU3bf6HUsQHzzssgzv07GMNJt4w9mFZTQZ/iZ9 UZR3Fia4LeGbMsq8jJoIYuWjRqgNtc4kTtJ1afFSXJ+jt43aojSWFYtvL/2SdL8YvJVo ngKDiQbClSWhx1TaPGW8ZKxruSrX2OJabYcjNcZXyTcsVwJGucvfPOrponqg0uplCSKv b2pA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=W1nzjeHY; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=P1f84vfZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 5-20020a630705000000b004a4eae7c943si9389755pgh.535.2023.03.06.08.23.17; Mon, 06 Mar 2023 08:23:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=W1nzjeHY; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=P1f84vfZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231579AbjCFQG2 (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231517AbjCFQBH (ORCPT ); Mon, 6 Mar 2023 11:01:07 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E2C0E33463; Mon, 6 Mar 2023 08:01:00 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 66A7B1FEFF; Mon, 6 Mar 2023 16:00:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118459; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QCuFu5SU57CJHGfgdFQfRit83nbssA/Udz2hcttdwvo=; b=W1nzjeHYtW6hzk14lqyszCbBcEyq+8sp1neVZkcFBMWzDWHpoD8hvd9fJ3XnrradACZnRR V76iuXULIzy+1BbZuk5joOrpdRBBC4XeTuNp/6Oli/pO5cyLRKWRInJPHx7z8l5wz2cdNC BHDp6sWJypFqjb5/34UCDmkWLRk1b/I= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118459; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QCuFu5SU57CJHGfgdFQfRit83nbssA/Udz2hcttdwvo=; b=P1f84vfZfPvK+9BrjhaXylpZL4FXUF/HeEJ+a5miwhRpk/t6QiJVhJ316MSaNST23ETt/X OFH2X0fV9excSxDw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0A93113A6A; Mon, 6 Mar 2023 16:00:59 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CDilATsOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:59 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 90/99] fbdev/valkyriefb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 17:00:07 +0100 Message-Id: <20230306160016.4459-91-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636156484928194?= X-GMAIL-MSGID: =?utf-8?q?1759636156484928194?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/valkyriefb.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c index b166b7cfe0e5..a787b0142d00 100644 --- a/drivers/video/fbdev/valkyriefb.c +++ b/drivers/video/fbdev/valkyriefb.c @@ -39,6 +39,7 @@ * more details. */ +#include #include #include #include @@ -90,7 +91,7 @@ struct fb_info_valkyrie { u32 pseudo_palette[16]; }; -static int valkyriefb_setup(char*); +static int valkyriefb_setup(const char *options); static int valkyriefb_check_var(struct fb_var_screeninfo *var, struct fb_info *info); @@ -545,14 +546,14 @@ static int __init valkyrie_init_info(struct fb_info *info, /* * Parse user specified options (`video=valkyriefb:') */ -static int __init valkyriefb_setup(char *options) +static int __init valkyriefb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "vmode:", 6)) { int vmode = simple_strtoul(this_opt+6, NULL, 0); if (vmode > 0 && vmode <= VMODE_MAX) @@ -571,6 +572,9 @@ static int __init valkyriefb_setup(char *options) } } } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 16:00:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64891 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934625wrd; Mon, 6 Mar 2023 08:22:46 -0800 (PST) X-Google-Smtp-Source: AK7set+i1oI4NxE58RC+ri5NetbUenZwWare+9SKY+KrMfUEAFre+7nREd2ZH51q7b9xRz3t7BVP X-Received: by 2002:a05:6a00:2d28:b0:5a8:4ae7:25d5 with SMTP id fa40-20020a056a002d2800b005a84ae725d5mr17310301pfb.8.1678119766181; Mon, 06 Mar 2023 08:22:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119766; cv=none; d=google.com; s=arc-20160816; b=hsNzUld1NlELTqDvS1VJZg5cwFnwnqgpt86dM3lllVsLP3WcmXAjW9l6Eud3xf5Qtl yy3cTxJIJwZT2pfWneNZWjqm7xnzSnr5HFqw4DqP8mN0OYGEM4HS6d3prILMugYL+gLf RjY5DzNws7thjB+zx+D/5i8rneSu2vm5YFhl1fd1prPrEGXOgnWVRjxUMZl2zOGrFSHi EfnD901BfqdYWGNCwEz8KVKVZMfJvEDO1uMDZk7W0k6nRtSDXAENW/j+sKIK8vBBnn+I kkthX7uDsWZUHCF/p+zSouqBkbnM7bl6Pt/udBthvfU6PbByp3DZ7Aj8ury4pOGDltE8 9qrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=Q00Utiwa/F841Bfuw5zq1QJNoc8fZ3VllqOH/C02QCE=; b=cIaqbSe/sgnWU0maPo2aW1fBci6BctdQfylUjXMJ850OpAlnqA3vxU1M+YXvPBy/Fr CVVWkwEF3CqmTmEFHwfdJaz+IQ8g4a+uS7h3IRdUFemSGI2LQckooi/6TuDm3FVBEZ1m 81oArY+Zf9Ntmr6ASrqEgiRAxzaLoO4WfXwvZko5lQfbR0pouPjfbimwuuN9kxZF4u9H 2dOhWqtufm/ekxtt6W2O2QYhJNITfqApKx9p7cK5W7iQ5DN2qcRfEwAnR+7bGzONmtmn l/kHmWzc6ICKpqrp+BaALatrJPbUW2mV3FKmb9w7sx80wHMh9RJUStstIGHrpE24a+tY tzdg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=2YyHro04; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k7-20020aa79727000000b0059d96ba730dsi10264598pfg.110.2023.03.06.08.22.33; Mon, 06 Mar 2023 08:22:46 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=2YyHro04; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231597AbjCFQGb (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42398 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231519AbjCFQBI (ORCPT ); Mon, 6 Mar 2023 11:01:08 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6716B360B9; Mon, 6 Mar 2023 08:01:01 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id C0FC61FF02; Mon, 6 Mar 2023 16:00:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118459; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Q00Utiwa/F841Bfuw5zq1QJNoc8fZ3VllqOH/C02QCE=; b=2YyHro04N0b6hHpoFP2VQC2IKhOpPCA1BPziXoC8McHbOvN7SlzhzzcOmFrBQ/kuMBc6/M v1MGvf6vmWPMlCx2NfyBp/wOLsQcY8OBo1YEvYItF7ChD6r1wAXIh6TkZWKdBInE9vha+B V/jdd2v6HfQsHjY0nc9fVZYomGui0+A= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118459; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Q00Utiwa/F841Bfuw5zq1QJNoc8fZ3VllqOH/C02QCE=; b=rJ3Km2Gruxrmh0L4o3E6JxO9pq9pA1bXR3yUWfn53OmQ45VXvbngIFjQYfNujwP4uQIhdT OKZJtBSdJKn6/KBA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 68E7E13513; Mon, 6 Mar 2023 16:00:59 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cNKzGDsOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:59 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 91/99] fbdev/vermilion: Remove unused option string Date: Mon, 6 Mar 2023 17:00:08 +0100 Message-Id: <20230306160016.4459-92-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636112253424055?= X-GMAIL-MSGID: =?utf-8?q?1759636112253424055?= The option string is unused. Remove the variable. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/vermilion/vermilion.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/video/fbdev/vermilion/vermilion.c b/drivers/video/fbdev/vermilion/vermilion.c index 0374ee6b6d03..bea318504475 100644 --- a/drivers/video/fbdev/vermilion/vermilion.c +++ b/drivers/video/fbdev/vermilion/vermilion.c @@ -1056,16 +1056,11 @@ static void __exit vmlfb_cleanup(void) static int __init vmlfb_init(void) { - -#ifndef MODULE - char *option = NULL; -#endif - if (fb_modesetting_disabled("vmlfb")) return -ENODEV; #ifndef MODULE - if (fb_get_options(MODULE_NAME, &option)) + if (fb_get_options(MODULE_NAME, NULL)) return -ENODEV; #endif From patchwork Mon Mar 6 16:00:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64873 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1931652wrd; Mon, 6 Mar 2023 08:17:51 -0800 (PST) X-Google-Smtp-Source: AK7set8sk6L9/EWDIvowB58Q1OYlxxZGrtupwwco2tRclDzsoZb6uc77a5sKaetw45tJ5XlwF1Xd X-Received: by 2002:a05:6a20:3947:b0:c7:1bae:876e with SMTP id r7-20020a056a20394700b000c71bae876emr13591076pzg.36.1678119471287; Mon, 06 Mar 2023 08:17:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119471; cv=none; d=google.com; s=arc-20160816; b=CtG1Opl4AN9qBDWTxfi1DqquZRHaSf8e0IcklBapY4ELuGqDhwxr7dVkD71tZQrpY6 HWQl2ir8bSk7u3k9BCIEun9uKAGHN1Dtq6V1+DHIq6w9cD0X86/QBloaNV+HTDfGqS+X YbooRpf5l0q2jvQwT2qGkPARCl258beDeWO5lzIODCUnUJAhWl4ffR23CHwQuMbtfjgo NbYZjDyCywU5niwX8voI/23pfNOC5S1dfGd7u1m/UDxS6PjZc4TQnNqevKBTxR4m9+LO f6s3PaZPX4eSV8pHymPHD/P03sXPLAOwXf+14az58F1KHKdSSh27OzM+xp+/hZ2Zogp9 JHwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=dONd6f2HgnZB2y++YdhIG1SYI1ymM+yxwiajgTlzEkA=; b=ZrnFIkU+f8bnKX3YF1iX8VxdkpnrR+k8lXXvX+jIZc4D9ejDbWErn3YDGpoZhjGS/B FavIHcsU5LsnnhsHoV+PY8B0hAPgWKvToRPHfzvgWmVQ/hDLJzYZF4aOwBVSJ29TBkv0 r9b5OO7OO+Yf+jM9R04QqWBnuYww0Vzpx/w/yvoI0omGoYuZJk+S/vOynCzdRFGgv+ff MwNGNGX4Rs+FU5o2THyT9oPt3xCaDvp2LacbFyamA/7JSQf/Q2DIUEiodvVTelEZm9fu FoLHG2wflmbVLIx+baUTPZMD3RVLCZObIMabedth0fGiz7tQY8e0ELwQmYkEQgWdTBXQ szsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=WFHDKQyh; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a8-20020a631a08000000b0050722641243si6442402pga.223.2023.03.06.08.17.25; Mon, 06 Mar 2023 08:17:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=WFHDKQyh; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231602AbjCFQGf (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231523AbjCFQBI (ORCPT ); Mon, 6 Mar 2023 11:01:08 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 85D2D3645B; Mon, 6 Mar 2023 08:01:01 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 303DA1FEF0; Mon, 6 Mar 2023 16:01:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118460; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dONd6f2HgnZB2y++YdhIG1SYI1ymM+yxwiajgTlzEkA=; b=WFHDKQyhwL+2euaP6YonRjhjvt+FCdLlPmnJTmspLca2E5fjTy7i1HEaB7Rh/ECcoJL/Xn P8VM3lCEjSXW+PL6Ix43BmAtiQx0vLCnSj62DHsyEOSmWYts+3pKQg/sBKaTsdKLoHrWA6 6u5coGZIbNKXB8cetIf35K6ubW9w+bA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118460; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dONd6f2HgnZB2y++YdhIG1SYI1ymM+yxwiajgTlzEkA=; b=b6f38i2LHYIoNOB6S8lYYbfGHHtVdSSlSWqn159gGK0kCo86FioTrNkfEnU1b80kfhfsv0 qs6hh9K+ME2PFwDg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C5E2913A6A; Mon, 6 Mar 2023 16:00:59 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cHBjLzsOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:59 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 92/99] fbdev/vesafb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 17:00:09 +0100 Message-Id: <20230306160016.4459-93-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759635802992166081?= X-GMAIL-MSGID: =?utf-8?q?1759635802992166081?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/vesafb.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/vesafb.c b/drivers/video/fbdev/vesafb.c index 3f8bdfcf51f0..0310a3db2b10 100644 --- a/drivers/video/fbdev/vesafb.c +++ b/drivers/video/fbdev/vesafb.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include @@ -209,16 +210,14 @@ static struct fb_ops vesafb_ops = { .fb_imageblit = cfb_imageblit, }; -static int vesafb_setup(char *options) +static int vesafb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; - if (!options || !*options) - return 0; - - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { if (! strcmp(this_opt, "inverse")) inverse=1; else if (! strcmp(this_opt, "redraw")) @@ -240,6 +239,9 @@ static int vesafb_setup(char *options) else if (! strncmp(this_opt, "vremap:", 7)) vram_remap = simple_strtoul(this_opt+7, NULL, 0); } + + option_iter_release(&iter); + return 0; } From patchwork Mon Mar 6 16:00:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64908 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935405wrd; Mon, 6 Mar 2023 08:24:12 -0800 (PST) X-Google-Smtp-Source: AK7set8krPsnzO6Ok0UhkxlXQ4/jm48uUi9UEI6YNfBzyxO1bbRCIciqmxvUJNLWE1BX4QnYqFIF X-Received: by 2002:a05:6a20:144d:b0:cd:c79:50e8 with SMTP id a13-20020a056a20144d00b000cd0c7950e8mr16203676pzi.62.1678119852336; Mon, 06 Mar 2023 08:24:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119852; cv=none; d=google.com; s=arc-20160816; b=qJ6PGqxNsJ3GhzfLW23/oduQhNxwzuzqaECAX+0kWNslYyOcyR1iGFwBXzIfYXAkKe SIntWVhQsKWzU1si86lYwIEqpGjhlz9uyz/P6Agjh9PBxmi6XDztY432CItU3yJXA9lc oYnxgQo4Y2qASZ+oRW8TO72Ez6BCT3nASJ1Rjpqyvc6/APzSFoJFhhFDEJO/fPRj2Ti5 lDed8mWE6xGN4Kcr7Stp5Nncht/w/oyTzQCeJuzv6VFP7aI4QHNYgmANS3iiz4V269yg vBpkhkid8UcX+mHaJF7YbPgw0Mr8VsU34MUjUixH0WqgeZs4ivfARw8ABMN4gDPBYlo0 S/fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=MXGv0fdp1SeaTBkcusJuAlPjwuf6QThoq9N0qSVQosw=; b=bg2CjZc7RqFzqVYSr5JllJ7W53BEoU4/JbPBVCiyB9RGre8pY5AXWWpea0eD198Sox s9iy/q8PPlCs+zcDndtXFrZmwXI6h7vPAoMFAN0LaAmmeMdRUkNjzY39OP+X/rlZROQt oVqKHTbx6bEqF1SbEcN/hWewvBz7H/9QpfFWGxQ5ndmjFBWpsR698aGJSA/DH2DIUMpZ z6igoOGVow92JjgEpHgsOWBuLaLf1J46CiLL6VdvJX5FOBpS73FHeGZ8ax1fegkkgPcy t3oDf+ONTrmEoqVbJaQr9w+6pgg2pLniIebhnWQi4K3QwtWw3hN+hoz5YcARKVtUKDoj ildw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=xEBvVtc7; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q13-20020a632a0d000000b004fc39adf481si9237422pgq.381.2023.03.06.08.23.59; Mon, 06 Mar 2023 08:24:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=xEBvVtc7; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231614AbjCFQGk (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42418 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231526AbjCFQBJ (ORCPT ); Mon, 6 Mar 2023 11:01:09 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D28D36696; Mon, 6 Mar 2023 08:01:01 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 8DF771FF07; Mon, 6 Mar 2023 16:01:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118460; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MXGv0fdp1SeaTBkcusJuAlPjwuf6QThoq9N0qSVQosw=; b=xEBvVtc7IHAwtr8aMdThOyNogMbo2jDUcd40NuQu+ZPz+tWqoZ3ZgZIb28m0Vth5qLdT1O TdfRrjPUmkmyFds2fInAA4eFuEns6jW/mtJ+uu3xLJkNAoPapFXbrluzXcaSVdl/qIEZDK Uky6A4KqcMOhZUQV4qDzWlWPWouO9PM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118460; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MXGv0fdp1SeaTBkcusJuAlPjwuf6QThoq9N0qSVQosw=; b=N+XPBP7uH1ru2SSAXWo9HC/OdhcR8kP2omP1FXPZhhMsytvzeSYbJ6G0WttlIcnv7XJbHk HdhebkDvmKr83gAQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 330F013513; Mon, 6 Mar 2023 16:01:00 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id YFeSCzwOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:01:00 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 93/99] fbdev/vfb: Remove trailing whitespaces Date: Mon, 6 Mar 2023 17:00:10 +0100 Message-Id: <20230306160016.4459-94-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636202433209247?= X-GMAIL-MSGID: =?utf-8?q?1759636202433209247?= Fix coding style. No functional changes. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/vfb.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c index 95d3c59867d0..680c88267ef4 100644 --- a/drivers/video/fbdev/vfb.c +++ b/drivers/video/fbdev/vfb.c @@ -110,7 +110,7 @@ static u_long get_line_length(int xres_virtual, int bpp) * First part, xxxfb_check_var, must not write anything * to hardware, it should only verify and adjust var. * This means it doesn't alter par but it does use hardware - * data from it to check this var. + * data from it to check this var. */ static int vfb_check_var(struct fb_var_screeninfo *var, @@ -168,7 +168,7 @@ static int vfb_check_var(struct fb_var_screeninfo *var, /* * Now that we checked it we alter var. The reason being is that the video - * mode passed in might not work but slight changes to it might make it + * mode passed in might not work but slight changes to it might make it * work. This way we let the user know what is acceptable. */ switch (var->bits_per_pixel) { @@ -234,8 +234,8 @@ static int vfb_check_var(struct fb_var_screeninfo *var, } /* This routine actually sets the video mode. It's in here where we - * the hardware state info->par and fix which can be affected by the - * change in par. For this driver it doesn't do much. + * the hardware state info->par and fix which can be affected by the + * change in par. For this driver it doesn't do much. */ static int vfb_set_par(struct fb_info *info) { @@ -378,7 +378,7 @@ static int vfb_pan_display(struct fb_var_screeninfo *var, } /* - * Most drivers don't need their own mmap function + * Most drivers don't need their own mmap function */ static int vfb_mmap(struct fb_info *info, From patchwork Mon Mar 6 16:00:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64930 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1942370wrd; Mon, 6 Mar 2023 08:37:55 -0800 (PST) X-Google-Smtp-Source: AK7set9EWkR6Su0oixfnt4Ljh+gtXYTGIR4b1tDd8JCoPWROJqHm6CarJfm8fkmUlaIuiN504ZG2 X-Received: by 2002:a17:902:d544:b0:19d:387:6602 with SMTP id z4-20020a170902d54400b0019d03876602mr12010981plf.58.1678120674928; Mon, 06 Mar 2023 08:37:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678120674; cv=none; d=google.com; s=arc-20160816; b=y+4NZatkuhuRTkGAdjSXMKX2lCbI33ogPN8iT+/8VQ5t9MtzkrlWzEbWDze+hBfzWa iQF7r+5rFyL8xEj1ioAE2709F3zF1YXtIMyzEhd5oyOeegV6fQ+bvdRzeNbfsm4ZzQhz LQiAfVVfYZPPUGAjxNzVfkCDmYaOU0R2enW0e4GO7g4NVe0yagdU8HN0J0oLhc5Akov/ FxsDkaCOCmapOshk+vk0HQJjcgPrbEvk30utC7YMyUlH9AetYGuSvcU9MPr+tlENyf5f SSHzTG50Ji19m1cQxl7oLOTSeCFcjKIDJmu+83nD8AERnjRcgGNQdDmfqByUS+OiGYaz rwqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=ycoi4td43MhalPP9ez+KkigUFBrWFEhU6qfgrbIMAG0=; b=OAVZ8C5fxLMe8DLKfsqYKOT87mf+oDyclo45VJUxEV2djtiFstAhCDnMbhw+Eaehpu pClm6Hq7Dwu0M3FZqVwayYqaWnGt8st99p+OsL6uWf2sO3AF7nfXF6dnSrX0h0sMbxjH HgTFwDaMlkMURV0WcK898YgkguFlv+IwiLQyTEK4ilwa23/WwCMO93wchUiLrzLLRlQG TFL/giA3r/mqSaxX7Ms9KfJzm+Ffx1LY0mdy4rXLG5V/nPeE31TjvB0qEYsJDKl4U7Oc CfiYihodhtOSN7vWK/+QoPW/H+d/XxOMOkVhDttnjmg9NxZ0iyFibr5P368hyUODCdGN VPYA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=mTVFrA71; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u9-20020a170902e5c900b0019aa9c82c71si10589701plf.263.2023.03.06.08.37.42; Mon, 06 Mar 2023 08:37:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=mTVFrA71; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231642AbjCFQGq (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42472 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231533AbjCFQBK (ORCPT ); Mon, 6 Mar 2023 11:01:10 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5F7722FCEF; Mon, 6 Mar 2023 08:01:02 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id EAD252245C; Mon, 6 Mar 2023 16:01:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118460; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ycoi4td43MhalPP9ez+KkigUFBrWFEhU6qfgrbIMAG0=; b=mTVFrA71Y/lKqIayleCJsy7TiNv3hllchoXLngFUEk8al+vQdE7pKPjgELc5k7neotZaiR DEHJ4F5nXnql0FFRwGz6s2FtzOrb78g3feEGDhaY/vHxE6HZ9rgj6zFdemib0AvFWGebBM DSG79E0tIJ9OL14LtyE/18jRZIrCn+M= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118460; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ycoi4td43MhalPP9ez+KkigUFBrWFEhU6qfgrbIMAG0=; b=WqtHLrbbrM54fNxv9XHbii5NOEwV8YHpN5nWAUxfOXnJ95zppxmIVqShefTwT2NxRXy0UF tIkszX43AseTZ6CA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 9067D13A6A; Mon, 6 Mar 2023 16:01:00 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id OPpkIjwOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:01:00 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 94/99] fbdev/vfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 17:00:11 +0100 Message-Id: <20230306160016.4459-95-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759637064859543828?= X-GMAIL-MSGID: =?utf-8?q?1759637064859543828?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/vfb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c index 680c88267ef4..15a6a0896ab5 100644 --- a/drivers/video/fbdev/vfb.c +++ b/drivers/video/fbdev/vfb.c @@ -412,8 +412,17 @@ static int __init vfb_setup(char *options) /* Test disable for backwards compatibility */ if (!strcmp(this_opt, "disable")) vfb_enable = 0; - else - mode_option = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "vfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "vfb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 1; } From patchwork Mon Mar 6 16:00:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64893 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934782wrd; Mon, 6 Mar 2023 08:23:01 -0800 (PST) X-Google-Smtp-Source: AK7set/cKuFMz1fDZB9zoq+bopkbiJE8YCYgPWbbfq+BKRBKPv3SBmRZQd9kI3oZ0tJlzxd9y1Tn X-Received: by 2002:a17:903:187:b0:19d:16fa:ba48 with SMTP id z7-20020a170903018700b0019d16faba48mr13923860plg.28.1678119780838; Mon, 06 Mar 2023 08:23:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119780; cv=none; d=google.com; s=arc-20160816; b=Ug8Q8M3k2E7oP78TPTc+j19HwYzVNItOV+5/HiZyhUVCnyl/Yw6/19mwEj7v3nOhi/ yAHmcFs5uiT6GjhE/sfhVNTrR7GYLVvm5c+1070roQcQNIH1sEI7iKdm8tF0A/G0xWdn Rs6iKhZ5TSvVDXRBbj6LQbZX/1FxNodLhaxvbhm9XoLVlXF5lY92696jKZIfNL8p7dlN TQI9RzW2phi9rZvhwNmatjEGon9DFFZ38YAnyM0S8wsDcIY1Z9nGCFoXGXIA70zCk87g +f+mK79GP4P3gTjJII+oFSrDomMtyUVFm54FwPjBRPwkZ5Sx5IRVfD5q4/hZa6U7Mw2m vZoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=yHX8se/a6g2QABvUAuzQQZnhm45LSCTjkT4aQxcZgwg=; b=MytlkxMv43uTJ6BcKdohVDypSVySjF1SLVeNH57kB2+bFShVOmGbAJ5w+UV1DLkfur p/HNs/JS9yZMLjvjV4aQS5VKsVBWRhoIaY58WpFFY13VI1uY5RjUzdhFfJPaL0Z3RLWB Dv8G7UJsaTTfV88VC+ZdbgTmIEPDetaeRMRVy2Xd5FDHxMkGVOSleWSuFoToFsgTd0V3 pYTeLzy+c9DVQpGG3yECyBckidnZ0V5DWhTVcmiGJdIHVtDYIUcm2Lk6eBj4/haycVsN RF0EY/KsivZA7W9gWtuSBuvWjAAzNQF3rzBW43jS5OvVUwF8Uh3wg/2otkvIJFWn7yr4 CTGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=IO1wQ7s6; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v11-20020a63464b000000b005033552517bsi8585083pgk.281.2023.03.06.08.22.48; Mon, 06 Mar 2023 08:23:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=IO1wQ7s6; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231626AbjCFQGn (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42438 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231529AbjCFQBJ (ORCPT ); Mon, 6 Mar 2023 11:01:09 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2D922FCF8; Mon, 6 Mar 2023 08:01:02 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 5B49A22460; Mon, 6 Mar 2023 16:01:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118461; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yHX8se/a6g2QABvUAuzQQZnhm45LSCTjkT4aQxcZgwg=; b=IO1wQ7s6J51f7IGHE42mtkVSBcrzo6+KDsNJYhUTEDsyqxrZEPNsl1OP+jCGGj3EzzLUc3 XyZR1rytImeAn4HIA6EfC9OINCWP9QPc6im9N8cCCm5J+jKeUaudbAy6dytj0iJpF/O6h6 J4xTsMUmBJpZCWu2hkOE+CTLQlQrasM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118461; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yHX8se/a6g2QABvUAuzQQZnhm45LSCTjkT4aQxcZgwg=; b=jRT7I0wvGwJFHKoOvaHLkubbf/RB6iKsyZiAqxFyXlE35ZE2Q3265uqsjCZrEKXO9uvqzg yjBObXwHcb/0KEDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id EF81513513; Mon, 6 Mar 2023 16:01:00 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id uDFuOTwOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:01:00 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 95/99] fbdev/vfb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 17:00:12 +0100 Message-Id: <20230306160016.4459-96-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636127174270622?= X-GMAIL-MSGID: =?utf-8?q?1759636127174270622?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/vfb.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c index 15a6a0896ab5..ef22a6815e70 100644 --- a/drivers/video/fbdev/vfb.c +++ b/drivers/video/fbdev/vfb.c @@ -10,6 +10,7 @@ * more details. */ +#include #include #include #include @@ -392,9 +393,10 @@ static int vfb_mmap(struct fb_info *info, * The virtual framebuffer driver is only enabled if explicitly * requested by passing 'video=vfb:' (or any actual options). */ -static int __init vfb_setup(char *options) +static int __init vfb_setup(const char *options) { - char *this_opt; + struct option_iter iter; + const char *this_opt; vfb_enable = 0; @@ -403,12 +405,9 @@ static int __init vfb_setup(char *options) vfb_enable = 1; - if (!*options) - return 1; + option_iter_init(&iter, options); - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; + while (option_iter_next(&iter, this_opt)) { /* Test disable for backwards compatibility */ if (!strcmp(this_opt, "disable")) vfb_enable = 0; @@ -424,6 +423,9 @@ static int __init vfb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 1; } #endif /* MODULE */ From patchwork Mon Mar 6 16:00:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64897 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934914wrd; Mon, 6 Mar 2023 08:23:15 -0800 (PST) X-Google-Smtp-Source: AK7set9FFgdd0LrHa6o+9yTu91G5TiFVZXgQw6mURX/TaEs4axq5BtV5UWIh0dFbU26D+98R6Twh X-Received: by 2002:a17:90a:3e49:b0:237:9c41:de07 with SMTP id t9-20020a17090a3e4900b002379c41de07mr15195961pjm.5.1678119794666; Mon, 06 Mar 2023 08:23:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119794; cv=none; d=google.com; s=arc-20160816; b=yCHuyv2giR9H8tZcstM1rPHCvIEtJbq6CkoPoiD9awe0y1gyv/SyH1A6fJCy0W4wqp PxAttRRWKHyvnQt4w75wpwyP/JAsKTKbI3KIG709r8zJyHYjvASE/lcDmWdXeQghoY3c A+FAa6X8rfs8BoCYQZgz5ke/6omit/XCeueom0y/KT9VUyChPau1PDkWpQlLkfXXO/UI oINe+MAez+EYBsiYvsXqj1QWyQgEkIrf54ch+mJRhCKT5auOArNudFoR18UcVwG7QpSe lkQn0C85JGrCgrw/FZI/3ONpqX84x+s9jpXSb1uQb0ogPlH08hgSLzu2iTGcL4Fj1cad 6AGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=hBXQKYm2hwrIwZ4Y9UCOS67Q8TAQ+vGWXSDQRXHtNhc=; b=qKHOCDQpw3N/IqycLx+EgqOMM1eNofPv+XewP+sWK5NcTTO0J7vomsQNVuCZUPZc7E w7gR+itaUpWC7I0qNVBsU/DIve3NY6xwB5KQNmd4g2AY/6mUA/23evlB8fleYGqvSEij fzgEBDC+/IkDXi0fULNW0PyaCMK5bt5QwYZXxqMfyOF4XWifHlvuIehKgVwn2HbarGgQ tlff6/X6TcSSjhtbViUUtmpmOTOWwSnZxAsUI/Gvct2qJLZiMb418bHhuxMzDjbfew2p wmcf/k6upL7KbPmPoAGIgujNxAIBKj0E3bAOKNTX7KZcSmE4VOy0wJoGFOd9qQ6p3C+Q 6D6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="lJKTCD/W"; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q13-20020a632a0d000000b004fc39adf481si9237422pgq.381.2023.03.06.08.23.02; Mon, 06 Mar 2023 08:23:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="lJKTCD/W"; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231649AbjCFQGt (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231534AbjCFQBK (ORCPT ); Mon, 6 Mar 2023 11:01:10 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A8FD32E58; Mon, 6 Mar 2023 08:01:03 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id BB3BB22461; Mon, 6 Mar 2023 16:01:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118461; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hBXQKYm2hwrIwZ4Y9UCOS67Q8TAQ+vGWXSDQRXHtNhc=; b=lJKTCD/WkcNYmZcY9jTjFh4dh4nexnA6fZYSMd2FXhI8VEExrA31xcfu6sLhx0cbPbO5XC MT2x6Ay7AdH6Ig3Ok40g6nyOSzSVBBJm4A7DuIagaOeDwdnorjnsPWwfR/hXEyMkOHZCjD JKsjU5HN9urjGFivrJOIsujXg4OllaE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118461; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hBXQKYm2hwrIwZ4Y9UCOS67Q8TAQ+vGWXSDQRXHtNhc=; b=FWT2P+1YsMeg6ZH2ng/TlropyQSDKfG/VjgGc9g6/aefVAQF04kUk3tGoX2oF0tj0gwxPr w+4J3U1BCwIwfmCQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 5EC2813A6A; Mon, 6 Mar 2023 16:01:01 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id IMI5Fj0OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:01:01 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 96/99] fbdev/viafb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 17:00:13 +0100 Message-Id: <20230306160016.4459-97-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636141423205536?= X-GMAIL-MSGID: =?utf-8?q?1759636141423205536?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/via/viafbdev.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/via/viafbdev.c b/drivers/video/fbdev/via/viafbdev.c index 2d67c92c5774..4f39319e21f8 100644 --- a/drivers/video/fbdev/via/viafbdev.c +++ b/drivers/video/fbdev/via/viafbdev.c @@ -5,6 +5,7 @@ */ +#include #include #include #include @@ -1922,21 +1923,18 @@ void via_fb_pci_remove(struct pci_dev *pdev) #ifndef MODULE static int __init viafb_setup(void) { - char *this_opt; char *options; + struct option_iter iter; + const char *this_opt; DEBUG_MSG(KERN_INFO "viafb_setup!\n"); if (fb_get_options("viafb", &options)) return -ENODEV; - if (!options || !*options) - return 0; - - while ((this_opt = strsep(&options, ",")) != NULL) { - if (!*this_opt) - continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, this_opt)) { if (!strncmp(this_opt, "viafb_mode1=", 12)) { viafb_mode1 = kstrdup(this_opt + 12, GFP_KERNEL); if (!viafb_mode1) @@ -2009,6 +2007,9 @@ static int __init viafb_setup(void) return -ENOMEM; } } + + option_iter_release(&iter); + return 0; } #endif From patchwork Mon Mar 6 16:00:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64929 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1942366wrd; Mon, 6 Mar 2023 08:37:54 -0800 (PST) X-Google-Smtp-Source: AK7set/Kt1TSEhpHGW1Wtb3nM5uslpmZnZoupIHLlrCr672RRsvhZuBxVJho/heP5V1aHRdGFwtf X-Received: by 2002:a17:90a:e7c3:b0:237:d867:222c with SMTP id kb3-20020a17090ae7c300b00237d867222cmr11982941pjb.42.1678120674677; Mon, 06 Mar 2023 08:37:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678120674; cv=none; d=google.com; s=arc-20160816; b=SemTuET5QlMzPYsyXIqKX5U3oKmBoSvClQ18iR7FK3T3oAPgIb5z1v+9ESm1D4sjn6 mO0/LUQY5jp9w0T3MqvTPEUAfH9oama/4VwWbi8Dfdjs96vLuh5j1gOu+W05PFsnVjBb VcVzezd2KwEI3vt7km2hIeMrBN6Kas+fMgjJG7bwERePzsGwoZqbFsYatyVnkIXhL4ce iuIRkaNCQ190Prm8tVf7q0C0F4b/mJJZ1Dmez8skkwQVZB2jpF6bTlyfVZqx6e1M+O5T hYvsYr8nU3KsCyNiJAtHUqpH0OT45hQ1l47enJBLfedcvkG0r0thuUEOj/L3tQJY5XjJ J3/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=9jPw1gekX+dS3alKpIhYWuod0yFkaKVmgthd+u+9Q3I=; b=lUhFTsAjHn5vkheNtEEm+ELTbHXkvd2k2eBLgI2QTaC4DI/wmsvspxDmwjWQ0cP7ix 4OGNcs5CJ/pK/ikGPvzD1nnZzf/fNQrYhHY8z4txgjneC93aGrE4fRnSi23s4mGZmObQ vgmedWnWgnM04h92xU5I17gOlI5k1rTbGE98cMCDvUXIYFXn+SHOI+2s4amrNKwssR73 F6uXxs44ssBj7kw8BfDL24ui6NigxMnwA31NUutLgwOo+XsNJ0Iss80tlPWLSaaNpnTd p74Kyv3DYtBR2FxgU7GMOs+mlxda2Cx1xxbqlddF8g4rBqdxjKn35X6450EHOopoXNlE 6zpg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=BZCIBnjT; dkim=neutral (no key) header.i=@suse.de header.b=Xj87SiI0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y186-20020a638ac3000000b004fc1e4751dbsi9457449pgd.867.2023.03.06.08.37.42; Mon, 06 Mar 2023 08:37:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=BZCIBnjT; dkim=neutral (no key) header.i=@suse.de header.b=Xj87SiI0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231659AbjCFQG5 (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42418 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229796AbjCFQBK (ORCPT ); Mon, 6 Mar 2023 11:01:10 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 926702E0D3; Mon, 6 Mar 2023 08:01:03 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 3427B2245B; Mon, 6 Mar 2023 16:01:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118462; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9jPw1gekX+dS3alKpIhYWuod0yFkaKVmgthd+u+9Q3I=; b=BZCIBnjT4VG2watd8QiYGZnfT3gnTX0oWbbZ/wo0QDvu1fLYkpFx8+kzl197N8PW9XiMgK dK8wIAlA4l5TYEOwT3EpDASIhkF5Ain2/FyssDJ9BvNyQDHPqWHxxabnciQI9Fc0rDeOnm HRLN5ZIRHvdY51yTQDrtWsM6emHsZAI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118462; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9jPw1gekX+dS3alKpIhYWuod0yFkaKVmgthd+u+9Q3I=; b=Xj87SiI0F2lYajydSZ9VDJqbuHcFCbMfqbg59Q1PzPiAgepDEYeJTtbYJQUfEIF9IdLmBR wyl+8GbplWzpOLDQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id BF9B813513; Mon, 6 Mar 2023 16:01:01 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 2EfpLT0OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:01:01 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 97/99] fbdev/vt8623fb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 17:00:14 +0100 Message-Id: <20230306160016.4459-98-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759637064499317338?= X-GMAIL-MSGID: =?utf-8?q?1759637064499317338?= Assume that the driver does not own the option string or its substrings and hence duplicate the option string for the video mode. The driver only parses the option string once as part of module initialization, so use a static buffer to store the duplicated mode option. Linux automatically frees the memory upon releasing the module. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/vt8623fb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c index 034333ee6e45..cbdca42d1708 100644 --- a/drivers/video/fbdev/vt8623fb.c +++ b/drivers/video/fbdev/vt8623fb.c @@ -929,8 +929,17 @@ static int __init vt8623fb_init(void) if (fb_get_options("vt8623fb", &option)) return -ENODEV; - if (option && *option) - mode_option = option; + if (option && *option) { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", option); + if (WARN(ret < 0, "vt8623fb: ignoring invalid option, ret=%d\n", ret)) + break; + if (WARN(ret >= sizeof(mode_option_buf), "vt8623fb: option too long\n")) + break; + mode_option = mode_option_buf; + } #endif pr_debug("vt8623fb: initializing\n"); From patchwork Mon Mar 6 16:00:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64885 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1934040wrd; Mon, 6 Mar 2023 08:21:50 -0800 (PST) X-Google-Smtp-Source: AK7set/w3/7fU4qwtGhwPXA31cuwAZ1q1CtNZEKgRQh75Kx3aO0XlcdY8VQa+2XUICMnTkc24uCX X-Received: by 2002:aa7:9530:0:b0:5da:cbe6:a613 with SMTP id c16-20020aa79530000000b005dacbe6a613mr9504893pfp.22.1678119710118; Mon, 06 Mar 2023 08:21:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119710; cv=none; d=google.com; s=arc-20160816; b=Gd728Z7jeqxUvgxH0JjB8N1mH0+DRXfDVdhVqibayy22PwFS+dM6RxRuvNXyHPWlEG U8hyhkQ+wwmzop92sJw202p0sz46nYqJFCG5CVXWQmoemyGD7XVVddyVYLPwKnGSWQ94 LUlIKf6oBFIOOAvqqVNStkiPMAY03NN62wZWs8S37TCFW8YiY/6eTPWhG2MOZJ0lEvML 8Yy2bk6m3SGZG7sNxNjwyqY5QFvcmqkJyAA028BE3ylgFxYRLm/PL+yEeFM6DxfZT79O 7nP2fnk21ZA4kCm7C6pzioy9Soke4xWo+/5r+JnuHTP1WKgIwSEulxcpPToWVogn9v6G O0nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=9yTAZ+fWm46H8QqfoRrnwlZTk5mIqjHDcgi+SJhTWtw=; b=cYGT/7MsZlVeFpSCu62l7RqK4i9idpcoZpDpkbzcFl3IVm/xJ2yzCdYwkV+a5z62Gd TUGeJ0ZQKipIoPkI0mlqcvQMd+1jajVHA435uUg0K0kkQXmfHwxWpciPyi3F9V99+FEO ksZAuRzNwb7qDkjlkKYuiunNEtq4WMWJk96hitP6tKry4mtIgYMcP0yzaDso4WWGYu1i dDKx+Zdo/iH/nnGAW7VW+yR2NRplJ+NjGePSRyGeQg2HLkFVU+72z9YaYcQc89ScnIbU Eo39NeM9uiUPvjcpb+PCWhehkeRArTXnt5KjB3sIaamGG3IhtQQ+4UAQHOJJHC9y5hLI EzVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Br3YluVL; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=MLgmOCvB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b23-20020aa79517000000b005de484ca9d0si8907324pfp.342.2023.03.06.08.21.37; Mon, 06 Mar 2023 08:21:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Br3YluVL; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=MLgmOCvB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231548AbjCFQGw (ORCPT + 99 others); Mon, 6 Mar 2023 11:06:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230115AbjCFQBL (ORCPT ); Mon, 6 Mar 2023 11:01:11 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E14242410D; Mon, 6 Mar 2023 08:01:03 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 8513B22464; Mon, 6 Mar 2023 16:01:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118462; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9yTAZ+fWm46H8QqfoRrnwlZTk5mIqjHDcgi+SJhTWtw=; b=Br3YluVLuR6Ry7K8JR11i7Y6BwJ19Dy/SS6WvZZAGFao7VqxeQstljX9BKQYatqUH2U3rH axSSd2rIfWBlmyfaMa12nNRbc/B5dJqqSdy25DF0nC1nEAOXc9jMTwPnxZ1BSMYnR/T49x CPQiy+jEp9/hwLaVA9unYphnWPW5HHk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118462; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9yTAZ+fWm46H8QqfoRrnwlZTk5mIqjHDcgi+SJhTWtw=; b=MLgmOCvBzQ+4wPhXhi5GV8EsH1wxUxxiGUfGTH6NUSq1yo7nucXwNLckj5yvLlXfHg6gu2 1YwmvZcohBoEQVCg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 2C7AE13A6A; Mon, 6 Mar 2023 16:01:02 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id uHMGCj4OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:01:02 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 98/99] staging/sm750fb: Parse option string with struct option_iter Date: Mon, 6 Mar 2023 17:00:15 +0100 Message-Id: <20230306160016.4459-99-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636053064464604?= X-GMAIL-MSGID: =?utf-8?q?1759636053064464604?= Use struct option_iter to walk over the individual options in the driver's option string. Replaces the hand-written strsep() loop with a clean interface. The helpers for struct option_iter handle empty option strings and empty options transparently. The struct's _init and _release functions duplicate and release the option string's memory buffer as needed. Done in preparation of constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/staging/sm750fb/sm750.c | 43 +++++++++++++++++---------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index effc7fcc3703..2eb223f0631e 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 #include +#include #include #include #include @@ -867,9 +868,10 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index) } /* chip specific g_option configuration routine */ -static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src) +static void sm750fb_setup(struct sm750_dev *sm750_dev, const char *src) { - char *opt; + struct option_iter iter; + const char *opt; int swap; swap = 0; @@ -889,9 +891,12 @@ static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src) goto NO_PARAM; } - while ((opt = strsep(&src, ":")) != NULL && *opt != 0) { + dev_info(&sm750_dev->pdev->dev, "src=%s\n", src); + + option_iter_init(&iter, src); + + while (option_iter_next(&iter, opt)) { dev_info(&sm750_dev->pdev->dev, "opt=%s\n", opt); - dev_info(&sm750_dev->pdev->dev, "src=%s\n", src); if (!strncmp(opt, "swap", strlen("swap"))) { swap = 1; @@ -924,6 +929,8 @@ static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src) } } + option_iter_release(&iter); + NO_PARAM: if (sm750_dev->revid != SM750LE_REVISION_ID) { if (sm750_dev->fb_count > 1) { @@ -1096,10 +1103,12 @@ static void lynxfb_pci_remove(struct pci_dev *pdev) kfree(g_settings); } -static int __init lynxfb_setup(char *options) +static int __init lynxfb_setup(const char *options) { + struct option_iter iter; + const char *opt; int len; - char *opt, *tmp; + char *tmp; if (!options || !*options) { pr_warn("no options.\n"); @@ -1112,19 +1121,11 @@ static int __init lynxfb_setup(char *options) g_settings = kzalloc(len, GFP_KERNEL); if (!g_settings) return -ENOMEM; - tmp = g_settings; - /* - * Notes: - * char * strsep(char **s,const char * ct); - * @s: the string to be searched - * @ct :the characters to search for - * - * strsep() updates @options to pointer after the first found token - * it also returns the pointer ahead the token. - */ - while ((opt = strsep(&options, ":")) != NULL) { + option_iter_init(&iter, options); + + while (option_iter_next(&iter, opt)) { /* options that mean for any lynx chips are configured here */ if (!strncmp(opt, "noaccel", strlen("noaccel"))) { g_noaccel = 1; @@ -1133,15 +1134,15 @@ static int __init lynxfb_setup(char *options) } else if (!strncmp(opt, "dual", strlen("dual"))) { g_dualview = 1; } else { + if (tmp != g_settings) + *tmp++ = ':'; // add separator strcat(tmp, opt); tmp += strlen(opt); - if (options) - *tmp++ = ':'; - else - *tmp++ = 0; } } + option_iter_release(&iter); + /* misc g_settings are transport to chip specific routines */ pr_info("parameter left for chip specific analysis:%s\n", g_settings); return 0; From patchwork Mon Mar 6 16:00:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64904 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1935181wrd; Mon, 6 Mar 2023 08:23:45 -0800 (PST) X-Google-Smtp-Source: AK7set9T8ZsyhZWDdwerNlaHOdToOXydMy3bHZJk3C8jUjVxe+WJuMzsAavi/2auEVxfg2vG7GXZ X-Received: by 2002:a05:6a20:3b19:b0:cb:9afd:8ad0 with SMTP id c25-20020a056a203b1900b000cb9afd8ad0mr10127136pzh.19.1678119825534; Mon, 06 Mar 2023 08:23:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119825; cv=none; d=google.com; s=arc-20160816; b=gpR1QY2eluVNvPzoxtJWVaKoABBp1MbmCdF8e/QmGYoWIZ5UjDso6QG95lupKlY1pz N5jIszx9EsUgAytoTI7lt4IgUTq977IMo538rd89AsTAlAH39l9XGYK+TJ2WJ6juCJSY vLM+p6sK+m3BnSi/+99HUcTan+8DEnOvaZ5ny+ZfxI/SE+gXzq/25jOcGAa5Hgy90gaH mttwHY4Ja0+rs4iEa0VjjXMbeAQka3jGJUrsbMERqDXJaSIr2jzqQ1Mh9LdkgJx461Tb TorLujwnqEvnZ8Ct2a/v1WC2Fdx0QejfyD2qTvgjPuDt7eCMtaJO2gBsD9Isf8SF/GFP Xw/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=nXai0tXnhsrWHlNkhv/7Ht5WujOnGX+SqDiXb2FAn/g=; b=IYlG5HpeV00IrnIN3Cm9yDX9v2HfwicuzTh3ndZjYdhbVkrkUQp03ajPTXdRNINvDt Sr+rVxHADaZ/I7nslrYjyX3Fy4wah5zLPBVGzcKbzvh0K3viFrdZp4Hx8/A/oFKTp+8s NzIgkyDZaYbkQ4JkICthZF3FHbZViIdtxT2XQM3isimcfNPRhgv7+g2b7M25iGjJBS4a ga4rvztExiqCijxChTwq1gsSSKiMcdQaKi0zx0TbgQ8M5lu/SKHBn6rz4vFMd3XLFwLq dBuC1DFDAZGTacAtXimF9c8D+31/cPRvFkmBkedVLJ4hELPF9ixisbROV9J2x+Ff3cKQ P81w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=oqzz+Zx4; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n26-20020aa7985a000000b005e8a3dd45c3si9918751pfq.312.2023.03.06.08.23.32; Mon, 06 Mar 2023 08:23:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=oqzz+Zx4; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231665AbjCFQHA (ORCPT + 99 others); Mon, 6 Mar 2023 11:07:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42472 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231472AbjCFQBg (ORCPT ); Mon, 6 Mar 2023 11:01:36 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4409A30B34; Mon, 6 Mar 2023 08:01:04 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id F3FE01FF16; Mon, 6 Mar 2023 16:01:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118463; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nXai0tXnhsrWHlNkhv/7Ht5WujOnGX+SqDiXb2FAn/g=; b=oqzz+Zx4USaXLXCHHTejLyrlL6HmGFK4Sm8oby6z3kHEMNHVdXaSV1kOtvzXSbDmzIAKy1 T9R0F0u+zFeO+grBSvPEp2RNVvwPOmfP8o7p5WZQDHXcaneZyzH/8XB4rEQ8mxrJDHTiWV xC5QJGVHovj4oX1eP4DAP0KQT5A6918= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118463; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nXai0tXnhsrWHlNkhv/7Ht5WujOnGX+SqDiXb2FAn/g=; b=wu4mwcx+Ec2lfTeN+k0515s86k79yTS93XEJ4AX+k9kb1KwmhYscJNdqfHX7d3gBTAU1bj tfph8stTq8raF3Bg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8C11813513; Mon, 6 Mar 2023 16:01:02 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 2L1NIT4OBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:01:02 +0000 From: Thomas Zimmermann To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH 99/99] fbdev: Constify option strings Date: Mon, 6 Mar 2023 17:00:16 +0100 Message-Id: <20230306160016.4459-100-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-1-tzimmermann@suse.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759636174530610550?= X-GMAIL-MSGID: =?utf-8?q?1759636174530610550?= Return the option string as const char* from fb_get_options() to enforce fbdev's ownership of the memory region. Also avoids memory allocation within fb_get_options(). Callers that have to modify the option string must create their own copy. As most drivers use struct option_iter, this already happens transparently in many cases. Adapt all callers of fb_get_options(). Signed-off-by: Thomas Zimmermann --- drivers/staging/sm750fb/sm750.c | 2 +- drivers/video/fbdev/acornfb.c | 2 +- drivers/video/fbdev/amifb.c | 2 +- drivers/video/fbdev/arkfb.c | 2 +- drivers/video/fbdev/atafb.c | 2 +- drivers/video/fbdev/aty/aty128fb.c | 2 +- drivers/video/fbdev/aty/atyfb_base.c | 2 +- drivers/video/fbdev/aty/radeon_base.c | 2 +- drivers/video/fbdev/au1100fb.c | 2 +- drivers/video/fbdev/au1200fb.c | 2 +- drivers/video/fbdev/cirrusfb.c | 2 +- drivers/video/fbdev/controlfb.c | 2 +- drivers/video/fbdev/core/fb_cmdline.c | 13 +++---------- drivers/video/fbdev/core/modedb.c | 8 ++------ drivers/video/fbdev/cyber2000fb.c | 2 +- drivers/video/fbdev/efifb.c | 2 +- drivers/video/fbdev/ep93xx-fb.c | 2 +- drivers/video/fbdev/fm2fb.c | 2 +- drivers/video/fbdev/fsl-diu-fb.c | 2 +- drivers/video/fbdev/gbefb.c | 2 +- drivers/video/fbdev/geode/gx1fb_core.c | 2 +- drivers/video/fbdev/geode/gxfb_core.c | 2 +- drivers/video/fbdev/geode/lxfb_core.c | 2 +- drivers/video/fbdev/grvga.c | 3 ++- drivers/video/fbdev/gxt4500.c | 2 +- drivers/video/fbdev/hyperv_fb.c | 2 +- drivers/video/fbdev/i740fb.c | 2 +- drivers/video/fbdev/i810/i810_main.c | 2 +- drivers/video/fbdev/imsttfb.c | 2 +- drivers/video/fbdev/imxfb.c | 2 +- drivers/video/fbdev/intelfb/intelfbdrv.c | 2 +- drivers/video/fbdev/kyro/fbdev.c | 2 +- drivers/video/fbdev/macfb.c | 2 +- drivers/video/fbdev/matrox/matroxfb_base.c | 2 +- drivers/video/fbdev/mx3fb.c | 2 +- drivers/video/fbdev/neofb.c | 2 +- drivers/video/fbdev/nvidia/nvidia.c | 2 +- drivers/video/fbdev/ocfb.c | 2 +- drivers/video/fbdev/omap/omapfb_main.c | 2 +- drivers/video/fbdev/platinumfb.c | 2 +- drivers/video/fbdev/pm2fb.c | 2 +- drivers/video/fbdev/pm3fb.c | 2 +- drivers/video/fbdev/ps3fb.c | 2 +- drivers/video/fbdev/pvr2fb.c | 2 +- drivers/video/fbdev/pxafb.c | 2 +- drivers/video/fbdev/riva/fbdev.c | 2 +- drivers/video/fbdev/s3fb.c | 2 +- drivers/video/fbdev/savage/savagefb_driver.c | 2 +- drivers/video/fbdev/sis/sis_main.c | 2 +- drivers/video/fbdev/skeletonfb.c | 2 +- drivers/video/fbdev/sm712fb.c | 2 +- drivers/video/fbdev/sstfb.c | 2 +- drivers/video/fbdev/stifb.c | 2 +- drivers/video/fbdev/tdfxfb.c | 2 +- drivers/video/fbdev/tgafb.c | 2 +- drivers/video/fbdev/tridentfb.c | 2 +- drivers/video/fbdev/uvesafb.c | 2 +- drivers/video/fbdev/valkyriefb.c | 2 +- drivers/video/fbdev/vesafb.c | 2 +- drivers/video/fbdev/vfb.c | 2 +- drivers/video/fbdev/via/viafbdev.c | 2 +- drivers/video/fbdev/vt8623fb.c | 3 +-- include/linux/fb.h | 2 +- 63 files changed, 67 insertions(+), 78 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index 2eb223f0631e..fe5c18e00ac8 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -1167,7 +1167,7 @@ static struct pci_driver lynxfb_driver = { static int __init lynxfb_init(void) { - char *option; + const char *option; if (fb_modesetting_disabled("sm750fb")) return -ENODEV; diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c index 1d6dec45615c..be4aafb23a5c 100644 --- a/drivers/video/fbdev/acornfb.c +++ b/drivers/video/fbdev/acornfb.c @@ -926,7 +926,7 @@ static int acornfb_probe(struct platform_device *dev) unsigned long size; u_int h_sync, v_sync; int rc, i; - char *option = NULL; + const char *option = NULL; if (fb_get_options("acornfb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c index b968cf2c5f06..ef8518fd4fdc 100644 --- a/drivers/video/fbdev/amifb.c +++ b/drivers/video/fbdev/amifb.c @@ -3546,7 +3546,7 @@ static int __init amifb_probe(struct platform_device *pdev) u_int defmode; #ifndef MODULE - char *option = NULL; + const char *option = NULL; if (fb_get_options("amifb", &option)) { amifb_video_off(); diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c index f83fcdaec7a0..5c39b872e52d 100644 --- a/drivers/video/fbdev/arkfb.c +++ b/drivers/video/fbdev/arkfb.c @@ -1186,7 +1186,7 @@ static int __init arkfb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("arkfb")) diff --git a/drivers/video/fbdev/atafb.c b/drivers/video/fbdev/atafb.c index 82d5567f2ffb..a77794ad18a7 100644 --- a/drivers/video/fbdev/atafb.c +++ b/drivers/video/fbdev/atafb.c @@ -2999,7 +2999,7 @@ static int __init atafb_probe(struct platform_device *pdev) int pad, detected_mode, error; unsigned int defmode = 0; unsigned long mem_req; - char *option = NULL; + const char *option = NULL; if (fb_get_options("atafb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c index 4a200eabe80b..40b42dcd00bb 100644 --- a/drivers/video/fbdev/aty/aty128fb.c +++ b/drivers/video/fbdev/aty/aty128fb.c @@ -2514,7 +2514,7 @@ static int __maybe_unused aty128_pci_resume(struct device *dev) static int aty128fb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("aty128fb")) diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c index 1920ee5c9a2a..fe3742cf4eb8 100644 --- a/drivers/video/fbdev/aty/atyfb_base.c +++ b/drivers/video/fbdev/aty/atyfb_base.c @@ -3970,7 +3970,7 @@ static int __init atyfb_init(void) { int err1 = 1, err2 = 1; #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("atyfb")) diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c index 185cd98ad59d..1d19a4b664ab 100644 --- a/drivers/video/fbdev/aty/radeon_base.c +++ b/drivers/video/fbdev/aty/radeon_base.c @@ -2616,7 +2616,7 @@ static int __init radeonfb_setup (const char *options) static int __init radeonfb_init (void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("radeonfb")) diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c index 17dae92ac53f..6976b201a3aa 100644 --- a/drivers/video/fbdev/au1100fb.c +++ b/drivers/video/fbdev/au1100fb.c @@ -366,7 +366,7 @@ static const struct fb_ops au1100fb_ops = static int au1100fb_setup(struct au1100fb_device *fbdev) { - char *options; + const char *options; struct option_iter iter; const char *this_opt; int num_panels = ARRAY_SIZE(known_lcd_panels); diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c index 31a3f6afd8aa..c39bf715abad 100644 --- a/drivers/video/fbdev/au1200fb.c +++ b/drivers/video/fbdev/au1200fb.c @@ -1578,7 +1578,7 @@ static int au1200fb_init_fbinfo(struct au1200fb_device *fbdev) static int au1200fb_setup(struct au1200fb_platdata *pd) { - char *options = NULL; + const char *options = NULL; struct option_iter iter; const char *this_opt; char *endptr; diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c index c6882bff3862..28526af217c2 100644 --- a/drivers/video/fbdev/cirrusfb.c +++ b/drivers/video/fbdev/cirrusfb.c @@ -2369,7 +2369,7 @@ static int __init cirrusfb_init(void) int error = 0; #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("cirrusfb")) diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c index 3633e874ab2e..dc1d1c7ebeee 100644 --- a/drivers/video/fbdev/controlfb.c +++ b/drivers/video/fbdev/controlfb.c @@ -1004,7 +1004,7 @@ static int __init control_of_init(struct device_node *dp) static int __init control_init(void) { struct device_node *dp; - char *option = NULL; + const char *option = NULL; int ret = -ENXIO; if (fb_get_options("controlfb", &option)) diff --git a/drivers/video/fbdev/core/fb_cmdline.c b/drivers/video/fbdev/core/fb_cmdline.c index 4d1634c492ec..67f9df7096f1 100644 --- a/drivers/video/fbdev/core/fb_cmdline.c +++ b/drivers/video/fbdev/core/fb_cmdline.c @@ -28,12 +28,9 @@ * (video=:) * @option: the option will be stored here * - * The caller owns the string returned in @option and is - * responsible for releasing the memory. - * * NOTE: Needed to maintain backwards compatibility */ -int fb_get_options(const char *name, char **option) +int fb_get_options(const char *name, const char **option) { const char *options = NULL; bool is_of = false; @@ -49,12 +46,8 @@ int fb_get_options(const char *name, char **option) enabled = false; } - if (option) { - if (options) - *option = kstrdup(options, GFP_KERNEL); - else - *option = NULL; - } + if (option) + *option = options; return enabled ? 0 : 1; // 0 on success, 1 otherwise } diff --git a/drivers/video/fbdev/core/modedb.c b/drivers/video/fbdev/core/modedb.c index 23cf8eba785d..5ff5a56925cc 100644 --- a/drivers/video/fbdev/core/modedb.c +++ b/drivers/video/fbdev/core/modedb.c @@ -620,7 +620,6 @@ int fb_find_mode(struct fb_var_screeninfo *var, const struct fb_videomode *default_mode, unsigned int default_bpp) { - char *mode_option_buf = NULL; int i; /* Set up defaults */ @@ -636,10 +635,8 @@ int fb_find_mode(struct fb_var_screeninfo *var, default_bpp = 8; /* Did the user specify a video mode? */ - if (!mode_option) { - fb_get_options(NULL, &mode_option_buf); - mode_option = mode_option_buf; - } + if (!mode_option) + fb_get_options(NULL, &mode_option); if (mode_option) { const char *name = mode_option; unsigned int namelen = strlen(name); @@ -718,7 +715,6 @@ int fb_find_mode(struct fb_var_screeninfo *var, res_specified = 1; } done: - kfree(mode_option_buf); if (cvt) { struct fb_videomode cvt_mode; int ret; diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c index 939dde664b53..4c147d1500bc 100644 --- a/drivers/video/fbdev/cyber2000fb.c +++ b/drivers/video/fbdev/cyber2000fb.c @@ -1877,7 +1877,7 @@ static int __init cyber2000fb_init(void) int ret = -1, err; #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("CyberPro")) diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c index 1ae7574aaa82..669b259b78ab 100644 --- a/drivers/video/fbdev/efifb.c +++ b/drivers/video/fbdev/efifb.c @@ -366,7 +366,7 @@ static int efifb_probe(struct platform_device *dev) unsigned int size_vmode; unsigned int size_remap; unsigned int size_total; - char *option = NULL; + const char *option = NULL; efi_memory_desc_t md; if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI || pci_dev_disabled) diff --git a/drivers/video/fbdev/ep93xx-fb.c b/drivers/video/fbdev/ep93xx-fb.c index 305f1587bd89..33a9aa2ecc3b 100644 --- a/drivers/video/fbdev/ep93xx-fb.c +++ b/drivers/video/fbdev/ep93xx-fb.c @@ -464,7 +464,7 @@ static int ep93xxfb_probe(struct platform_device *pdev) struct fb_info *info; struct ep93xx_fbi *fbi; struct resource *res; - char *video_mode; + const char *video_mode; int err; if (!mach_info) diff --git a/drivers/video/fbdev/fm2fb.c b/drivers/video/fbdev/fm2fb.c index 4f17bc8e6c1d..a466e8ddfe8a 100644 --- a/drivers/video/fbdev/fm2fb.c +++ b/drivers/video/fbdev/fm2fb.c @@ -315,7 +315,7 @@ static int __init fm2fb_setup(const char *options) static int __init fm2fb_init(void) { - char *option = NULL; + const char *option = NULL; if (fb_get_options("fm2fb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c index c97a9c04e8e8..8341332b52a8 100644 --- a/drivers/video/fbdev/fsl-diu-fb.c +++ b/drivers/video/fbdev/fsl-diu-fb.c @@ -1908,7 +1908,7 @@ static int __init fsl_diu_init(void) #endif int ret; #ifndef MODULE - char *option; + const char *option; /* * For kernel boot options (in 'video=xxxfb:' format) diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c index 36651bb6006d..d7fd55405169 100644 --- a/drivers/video/fbdev/gbefb.c +++ b/drivers/video/fbdev/gbefb.c @@ -1125,7 +1125,7 @@ static int gbefb_probe(struct platform_device *p_dev) struct fb_info *info; struct gbefb_par *par; #ifndef MODULE - char *options = NULL; + const char *options = NULL; #endif info = framebuffer_alloc(sizeof(struct gbefb_par), &p_dev->dev); diff --git a/drivers/video/fbdev/geode/gx1fb_core.c b/drivers/video/fbdev/geode/gx1fb_core.c index dd1dc7ee7f83..174c0dd8f389 100644 --- a/drivers/video/fbdev/geode/gx1fb_core.c +++ b/drivers/video/fbdev/geode/gx1fb_core.c @@ -445,7 +445,7 @@ static struct pci_driver gx1fb_driver = { static int __init gx1fb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("gx1fb")) diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c index f5e88e92ba16..3d70e13e1f7a 100644 --- a/drivers/video/fbdev/geode/gxfb_core.c +++ b/drivers/video/fbdev/geode/gxfb_core.c @@ -517,7 +517,7 @@ static int __init gxfb_setup(const char *options) static int __init gxfb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("gxfb")) diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c index d687054cdb09..2d529ad6a391 100644 --- a/drivers/video/fbdev/geode/lxfb_core.c +++ b/drivers/video/fbdev/geode/lxfb_core.c @@ -653,7 +653,7 @@ static int __init lxfb_setup(const char *options) static int __init lxfb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("lxfb")) diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c index f803dc37c891..727a8f793877 100644 --- a/drivers/video/fbdev/grvga.c +++ b/drivers/video/fbdev/grvga.c @@ -334,7 +334,8 @@ static int grvga_probe(struct platform_device *dev) unsigned long physical_start = 0; unsigned long grvga_mem_size = 0; struct grvga_par *par = NULL; - char *options = NULL, *mode_opt = NULL; + const char *options = NULL; + const *mode_opt = NULL; struct option_iter iter; const char *this_opt; diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c index 61bc714693f5..d9c0aea36719 100644 --- a/drivers/video/fbdev/gxt4500.c +++ b/drivers/video/fbdev/gxt4500.c @@ -780,7 +780,7 @@ static struct pci_driver gxt4500_driver = { static int gxt4500_init(void) { #ifndef MODULE - char *options; + const char *options; #endif if (fb_modesetting_disabled("gxt4500")) diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c index edb0555239c6..c7956626eed0 100644 --- a/drivers/video/fbdev/hyperv_fb.c +++ b/drivers/video/fbdev/hyperv_fb.c @@ -903,7 +903,7 @@ static const struct fb_ops hvfb_ops = { static void hvfb_get_option(struct fb_info *info) { struct hvfb_par *par = info->par; - char *options = NULL; + const char *options = NULL; char *optbuf, *opt, *p; uint x = 0, y = 0; diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c index cf45d6280f38..89455ce69c41 100644 --- a/drivers/video/fbdev/i740fb.c +++ b/drivers/video/fbdev/i740fb.c @@ -1294,7 +1294,7 @@ static int __init i740fb_setup(const char *options) static int __init i740fb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("i740fb")) diff --git a/drivers/video/fbdev/i810/i810_main.c b/drivers/video/fbdev/i810/i810_main.c index 3e624522fe7a..77d784261c6a 100644 --- a/drivers/video/fbdev/i810/i810_main.c +++ b/drivers/video/fbdev/i810/i810_main.c @@ -2155,7 +2155,7 @@ static void i810fb_remove_pci(struct pci_dev *dev) #ifndef MODULE static int i810fb_init(void) { - char *option = NULL; + const char *option = NULL; if (fb_modesetting_disabled("i810fb")) return -ENODEV; diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c index fc046886599c..3edb7b752553 100644 --- a/drivers/video/fbdev/imsttfb.c +++ b/drivers/video/fbdev/imsttfb.c @@ -1620,7 +1620,7 @@ imsttfb_setup(const char *options) static int __init imsttfb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("imsttfb")) diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c index 950df484e5be..b62767553b29 100644 --- a/drivers/video/fbdev/imxfb.c +++ b/drivers/video/fbdev/imxfb.c @@ -846,7 +846,7 @@ static struct lcd_ops imxfb_lcd_ops = { static int imxfb_setup(void) { - char *options = NULL; + const char *options = NULL; struct option_iter iter; const char *opt; diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c index 2d4e03b9e7fd..bff36914b62f 100644 --- a/drivers/video/fbdev/intelfb/intelfbdrv.c +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c @@ -390,7 +390,7 @@ static int __init intelfb_setup(const char *options) static int __init intelfb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif DBG_MSG("intelfb_init\n"); diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c index c2c6e1bba3a0..eb15b26bdffc 100644 --- a/drivers/video/fbdev/kyro/fbdev.c +++ b/drivers/video/fbdev/kyro/fbdev.c @@ -797,7 +797,7 @@ static void kyrofb_remove(struct pci_dev *pdev) static int __init kyrofb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("kyrofb")) diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c index a72edb98b170..c05e790f223b 100644 --- a/drivers/video/fbdev/macfb.c +++ b/drivers/video/fbdev/macfb.c @@ -541,7 +541,7 @@ static int __init macfb_init(void) { int video_cmap_len, video_is_nubus = 0; struct nubus_rsrc *ndev = NULL; - char *option = NULL; + const char *option = NULL; int err; if (fb_get_options("macfb", &option)) diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c index f690ee0c9b1f..20d42ddc021f 100644 --- a/drivers/video/fbdev/matrox/matroxfb_base.c +++ b/drivers/video/fbdev/matrox/matroxfb_base.c @@ -2475,7 +2475,7 @@ static int __initdata initialized = 0; static int __init matroxfb_init(void) { - char *option = NULL; + const char *option = NULL; int err = 0; DBG(__func__) diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c index cb9f5ac69e79..9c561b3bb508 100644 --- a/drivers/video/fbdev/mx3fb.c +++ b/drivers/video/fbdev/mx3fb.c @@ -1654,7 +1654,7 @@ static struct platform_driver mx3fb_driver = { static int __init mx3fb_setup(void) { #ifndef MODULE - char *options = NULL; + const char *options = NULL; struct option_iter iter; const char *opt; diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c index e9b132d660ab..55b47961c03e 100644 --- a/drivers/video/fbdev/neofb.c +++ b/drivers/video/fbdev/neofb.c @@ -2218,7 +2218,7 @@ static int __init neofb_setup(const char *options) static int __init neofb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("neofb")) diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c index 58b1b13f09dd..9986e9f61458 100644 --- a/drivers/video/fbdev/nvidia/nvidia.c +++ b/drivers/video/fbdev/nvidia/nvidia.c @@ -1537,7 +1537,7 @@ static struct pci_driver nvidiafb_driver = { static int nvidiafb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("nvidiafb")) diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c index 546230483f53..26222e0c46ca 100644 --- a/drivers/video/fbdev/ocfb.c +++ b/drivers/video/fbdev/ocfb.c @@ -417,7 +417,7 @@ static struct platform_driver ocfb_driver = { static int __init ocfb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; if (fb_get_options("ocfb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/omap/omapfb_main.c b/drivers/video/fbdev/omap/omapfb_main.c index 464a667708db..b490fe342200 100644 --- a/drivers/video/fbdev/omap/omapfb_main.c +++ b/drivers/video/fbdev/omap/omapfb_main.c @@ -1905,7 +1905,7 @@ static int __init omapfb_setup(const char *options) static int __init omapfb_init(void) { #ifndef MODULE - char *option; + const char *option; if (fb_get_options("omapfb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c index 71d5b7c169e7..5840c6e385a5 100644 --- a/drivers/video/fbdev/platinumfb.c +++ b/drivers/video/fbdev/platinumfb.c @@ -683,7 +683,7 @@ static struct platform_driver platinum_driver = static int __init platinumfb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; if (fb_get_options("platinumfb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c index a6a793efb0fe..8e9b9c7b4787 100644 --- a/drivers/video/fbdev/pm2fb.c +++ b/drivers/video/fbdev/pm2fb.c @@ -1814,7 +1814,7 @@ static int __init pm2fb_setup(const char *options) static int __init pm2fb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("pm2fb")) diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c index 4eec0ad1e984..598200143a0d 100644 --- a/drivers/video/fbdev/pm3fb.c +++ b/drivers/video/fbdev/pm3fb.c @@ -1550,7 +1550,7 @@ static int __init pm3fb_init(void) * For kernel boot options (in 'video=pm3fb:' format) */ #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("pm3fb")) diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c index d7c287089c64..2b54460c5bfe 100644 --- a/drivers/video/fbdev/ps3fb.c +++ b/drivers/video/fbdev/ps3fb.c @@ -1256,7 +1256,7 @@ static struct ps3_system_bus_driver ps3fb_driver = { static int __init ps3fb_setup(void) { - char *options; + const char *options; struct option_iter iter; const char *this_opt; diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c index 9255b3506b81..7a62e5048703 100644 --- a/drivers/video/fbdev/pvr2fb.c +++ b/drivers/video/fbdev/pvr2fb.c @@ -1090,7 +1090,7 @@ static int __init pvr2fb_init(void) int i, ret = -ENODEV; #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("pvr2fb")) diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c index 1937a58e47a1..b856e268f3b2 100644 --- a/drivers/video/fbdev/pxafb.c +++ b/drivers/video/fbdev/pxafb.c @@ -2040,7 +2040,7 @@ static char g_options[256] = ""; #ifndef MODULE static int __init pxafb_setup_options(void) { - char *options = NULL; + const char *options = NULL; if (fb_get_options("pxafb", &options)) return -ENODEV; diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c index d95319bb93cc..0cbff9c43ca4 100644 --- a/drivers/video/fbdev/riva/fbdev.c +++ b/drivers/video/fbdev/riva/fbdev.c @@ -2172,7 +2172,7 @@ static struct pci_driver rivafb_driver = { static int rivafb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("rivafb")) diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c index f3bd7b1c2c9a..7745801b4ff4 100644 --- a/drivers/video/fbdev/s3fb.c +++ b/drivers/video/fbdev/s3fb.c @@ -1566,7 +1566,7 @@ static int __init s3fb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("s3fb")) diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c index 94026848d67d..e08ae210ad5c 100644 --- a/drivers/video/fbdev/savage/savagefb_driver.c +++ b/drivers/video/fbdev/savage/savagefb_driver.c @@ -2564,7 +2564,7 @@ static int __init savagefb_setup(const char *options) static int __init savagefb_init(void) { - char *option; + const char *option; DBG("savagefb_init"); diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c index 7e6e2251e62f..3ab07e6795cf 100644 --- a/drivers/video/fbdev/sis/sis_main.c +++ b/drivers/video/fbdev/sis/sis_main.c @@ -6587,7 +6587,7 @@ static struct pci_driver sisfb_driver = { static int __init sisfb_init(void) { #ifndef MODULE - char *options = NULL; + const char *options = NULL; #endif if (fb_modesetting_disabled("sisfb")) diff --git a/drivers/video/fbdev/skeletonfb.c b/drivers/video/fbdev/skeletonfb.c index 1e876ad2a261..0d24620836bf 100644 --- a/drivers/video/fbdev/skeletonfb.c +++ b/drivers/video/fbdev/skeletonfb.c @@ -899,7 +899,7 @@ static int __init xxxfb_init(void) * For kernel boot options (in 'video=xxxfb:' format) */ #ifndef MODULE - char *option = NULL; + const char *option = NULL; if (fb_get_options("xxxfb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/sm712fb.c b/drivers/video/fbdev/sm712fb.c index b0f3898125f4..19ebbf2b019d 100644 --- a/drivers/video/fbdev/sm712fb.c +++ b/drivers/video/fbdev/sm712fb.c @@ -1754,7 +1754,7 @@ static struct pci_driver smtcfb_driver = { static int __init sm712fb_init(void) { - char *option = NULL; + const char *option = NULL; if (fb_modesetting_disabled("sm712fb")) return -ENODEV; diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c index 6c3769062d50..d20dbd881133 100644 --- a/drivers/video/fbdev/sstfb.c +++ b/drivers/video/fbdev/sstfb.c @@ -1512,7 +1512,7 @@ static struct pci_driver sstfb_driver = { static int sstfb_init(void) { - char *option = NULL; + const char *option = NULL; if (fb_modesetting_disabled("sstfb")) return -ENODEV; diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c index 304ce8fcb9f8..c1f28bb046d3 100644 --- a/drivers/video/fbdev/stifb.c +++ b/drivers/video/fbdev/stifb.c @@ -1401,7 +1401,7 @@ static int __init stifb_init(void) int i; #ifndef MODULE - char *option = NULL; + const char *option = NULL; if (fb_get_options("stifb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c index 54b19ce40bff..96f8a511a24f 100644 --- a/drivers/video/fbdev/tdfxfb.c +++ b/drivers/video/fbdev/tdfxfb.c @@ -1640,7 +1640,7 @@ static void tdfxfb_remove(struct pci_dev *pdev) static int __init tdfxfb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("tdfxfb")) diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c index 704909edf89d..cf7e08c1523e 100644 --- a/drivers/video/fbdev/tgafb.c +++ b/drivers/video/fbdev/tgafb.c @@ -1605,7 +1605,7 @@ static int tgafb_init(void) { int status; #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("tgafb")) diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c index 0b8d4bc514e2..07ac9232a6ae 100644 --- a/drivers/video/fbdev/tridentfb.c +++ b/drivers/video/fbdev/tridentfb.c @@ -1823,7 +1823,7 @@ static int __init tridentfb_setup(const char *options) static int __init tridentfb_init(void) { #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("tridentfb")) diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c index aada6a44380c..a9ac1f111f37 100644 --- a/drivers/video/fbdev/uvesafb.c +++ b/drivers/video/fbdev/uvesafb.c @@ -1891,7 +1891,7 @@ static int uvesafb_init(void) int err; #ifndef MODULE - char *option = NULL; + const char *option = NULL; if (fb_get_options("uvesafb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c index a787b0142d00..8756f0690b09 100644 --- a/drivers/video/fbdev/valkyriefb.c +++ b/drivers/video/fbdev/valkyriefb.c @@ -304,7 +304,7 @@ static int __init valkyriefb_init(void) struct fb_info_valkyrie *p; unsigned long frame_buffer_phys, cmap_regs_phys; int err; - char *option = NULL; + const char *option = NULL; if (fb_get_options("valkyriefb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/vesafb.c b/drivers/video/fbdev/vesafb.c index 0310a3db2b10..6bba8759b9c4 100644 --- a/drivers/video/fbdev/vesafb.c +++ b/drivers/video/fbdev/vesafb.c @@ -253,7 +253,7 @@ static int vesafb_probe(struct platform_device *dev) unsigned int size_vmode; unsigned int size_remap; unsigned int size_total; - char *option = NULL; + const char *option = NULL; /* ignore error return of fb_get_options */ fb_get_options("vesafb", &option); diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c index ef22a6815e70..ddab307c4073 100644 --- a/drivers/video/fbdev/vfb.c +++ b/drivers/video/fbdev/vfb.c @@ -518,7 +518,7 @@ static int __init vfb_init(void) int ret = 0; #ifndef MODULE - char *option = NULL; + const char *option = NULL; if (fb_get_options("vfb", &option)) return -ENODEV; diff --git a/drivers/video/fbdev/via/viafbdev.c b/drivers/video/fbdev/via/viafbdev.c index 4f39319e21f8..3704dbfa21df 100644 --- a/drivers/video/fbdev/via/viafbdev.c +++ b/drivers/video/fbdev/via/viafbdev.c @@ -1923,7 +1923,7 @@ void via_fb_pci_remove(struct pci_dev *pdev) #ifndef MODULE static int __init viafb_setup(void) { - char *options; + const char *options; struct option_iter iter; const char *this_opt; diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c index cbdca42d1708..b68dc71e9791 100644 --- a/drivers/video/fbdev/vt8623fb.c +++ b/drivers/video/fbdev/vt8623fb.c @@ -917,9 +917,8 @@ static void __exit vt8623fb_cleanup(void) static int __init vt8623fb_init(void) { - #ifndef MODULE - char *option = NULL; + const char *option = NULL; #endif if (fb_modesetting_disabled("vt8623fb")) diff --git a/include/linux/fb.h b/include/linux/fb.h index d96529caa35e..0bebdd03f287 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -601,7 +601,7 @@ extern void fb_pad_aligned_buffer(u8 *dst, u32 d_pitch, u8 *src, u32 s_pitch, u3 extern void fb_set_suspend(struct fb_info *info, int state); extern int fb_get_color_depth(struct fb_var_screeninfo *var, struct fb_fix_screeninfo *fix); -extern int fb_get_options(const char *name, char **option); +extern int fb_get_options(const char *name, const char **option); extern int fb_new_modelist(struct fb_info *info); extern bool fb_center_logo;