From patchwork Thu Mar 9 16:00: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: 66966 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp386018wrd; Thu, 9 Mar 2023 08:28:29 -0800 (PST) X-Google-Smtp-Source: AK7set9gs0YVllhAmdE9WbgsKa7pSplKYcFH5B8QxMP/BuYcqZ2Dy0m4X2eB+d71FkIKtPXvvpOy X-Received: by 2002:a05:6a20:8f09:b0:cc:7faa:ae10 with SMTP id b9-20020a056a208f0900b000cc7faaae10mr28388523pzk.54.1678379309366; Thu, 09 Mar 2023 08:28:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379309; cv=none; d=google.com; s=arc-20160816; b=wA7R19I4yJli9+IApB73/v9P3eHP9EKKgiZocJlS77zDiPvfHbmUA84xHJE5IP17s3 Wbym+uniANKm8mE2XcQK0pzAUI2QwY/vxrBSeMQDnmfHvSTcI2lVvkWUe0S2Z8YvqIhJ Qung8lqiBSDyDISAtxieZozsF1tUYmj37Psld2lGtmIAfhG7Ahrknaxc0OVB/KTAS5AN ZdVBtqoN3Zgze4ZRzeQeDN0Gbubfi8nfK4aECZ6a85jXSdwaRfFxn5J2KfyWIW8G5kuD CZtM41TUdWoj5DjZUdCuA3/q200X2pfrewcJx4bUZxsGboNO0W8iCBO3lr+dnjJHoyju ZqXw== 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=6AMUD/BAuZ3/uSqv29KEQ12Je2fDNnYZyOW1M3To6s0=; b=ycjPcMnC6IObtCEVtcdflbrgHjlwuyl5KW/UoOVm16F6GHg/NV0XQxgtWmWJ9aETcN ZP9S1wsHzdC0Eoqhd5CwRdA6+RNNbJYthJEFKzxTI4JXoFD3o5skKfejpSqp32BPSc4x /siB+rgYTHLZXez5efeGQhPr3MnK1RLRmlAVPF9cR8ia4tYfgstYFLYo+goetDhW+fmL f8BIEMMJzAo9X16lINgNgxQ8KcmRn17y0oKsFArlQRBFZkpwIO5exYGBFfR4pl9zDsIT P2kaJXgCzJrrFI60wxc5Eh4BL1xcj6+DjfbT9reSk1WdknbcrtuOST0lG1nuEWLUOG8c u+8g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=wE4xX58Z; 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 q5-20020a632a05000000b004fd4f88fb33si17614597pgq.555.2023.03.09.08.28.14; Thu, 09 Mar 2023 08:28: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=wE4xX58Z; 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 S231674AbjCIQC1 (ORCPT + 99 others); Thu, 9 Mar 2023 11:02:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47226 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230184AbjCIQCJ (ORCPT ); Thu, 9 Mar 2023 11:02:09 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 70F74F3670; Thu, 9 Mar 2023 08:02:06 -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 D326022145; Thu, 9 Mar 2023 16:02:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377724; 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=6AMUD/BAuZ3/uSqv29KEQ12Je2fDNnYZyOW1M3To6s0=; b=wE4xX58Z5CXD6dYAmm+iqWbzxjWJCqFuU7QfOJOmNubsbrDL/cQUo8fGtlMA9m0EFllqW9 RGWOzzg2z10IEWTGY6jZF/pbhMwrUoHOqR5hCFymDREy52NrO2UqHbvribIJHMBtNBMBCf ldGf/ZbQxyoA94ysms+Xp1mbdn6rH9k= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377724; 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=6AMUD/BAuZ3/uSqv29KEQ12Je2fDNnYZyOW1M3To6s0=; b=HsNK6R2jZqi6S+bROf5OqWJTras+HUKrV8PkphRR4gTwFJOizG4IjDvCSgEfwgTX9Hz6N8 bmbOsYrlDrsXNFAQ== 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 7111513A73; Thu, 9 Mar 2023 16:02:04 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id OF3DGvwCCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:04 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 001/101] lib: Add option iterator Date: Thu, 9 Mar 2023 17:00:21 +0100 Message-Id: <20230309160201.5163-2-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908262909100674?= X-GMAIL-MSGID: =?utf-8?q?1759908262909100674?= 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. v2: * improve documentation (Randy) * implement option_iter_next() as function * allow modification of the returned options Signed-off-by: Thomas Zimmermann --- Documentation/core-api/kernel-api.rst | 9 +++ include/linux/cmdline.h | 36 +++++++++ lib/Makefile | 2 +- lib/cmdline_iter.c | 109 ++++++++++++++++++++++++++ 4 files changed, 155 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..e9e0eb68e176 --- /dev/null +++ b/include/linux/cmdline.h @@ -0,0 +1,36 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef LINUX_CMDLINE_H +#define LINUX_CMDLINE_H + +#include + +/** + * 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); +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. + * + * Return: + * True to continue the loop, or false if no further option has been found. + */ +static inline bool option_iter_next(struct option_iter *iter, char **opt) +{ + return ((*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..3e53aa8d8a3d --- /dev/null +++ b/lib/cmdline_iter.c @@ -0,0 +1,109 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#include +#include +#include + +/** + * DOC: overview + * + * A kernel parameter's option string can contain multiple comma-separated + * options. Struct &option_iter and its helpers parse the string and return + * the individual substrings. + * + * After obtaining the string from the kernel, initialize an instance of the + * option iterator and loop over its content as show below. + * + * .. code-block:: c + * + * const char *options = ...; // kernel-provided option string + * + * struct option_iter iter; + * 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 functions option_iter_init() and option_iter_release() enclose + * all code that uses struct &option_iter. The call to option_iter_init() + * initializes the iterator instance from the option string and sets it + * up to return the first contained substring. The iterator owns a copy + * of the option string, which is later freed by option_iter_release(). + * The state of an instance of struct &option_iter is undefined after the + * release function has returned. + * + * The loop walks over the individual options while option_iter_next() + * succeeds. In this case, the second argument returns a pointer to the + * contained substring. If the option string contains an empty option + * (i.e., two commas next to each other), option_iter_next() skips the + * empty option automatically. + * + * The parsing process does not modify the original option string that + * was used to initialize the iterator. The memory returned by + * option_iter_next() is owned by the iterator instance. Callers are + * allowed to modify its content but may not free it. References to the + * returned string become stale after option_iter_release() has returned. + */ + +/** + * 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 + * + * Return: + * The current option string, or NULL if there are no more options. + */ +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 Thu Mar 9 16:00: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: 66945 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp372387wrd; Thu, 9 Mar 2023 08:04:53 -0800 (PST) X-Google-Smtp-Source: AK7set9B7NMiOmw6jEuPbEPPVupKpdebfv7s6OZVqotnyDrz1Mq6ZtJjgo27QobboRZrxNhg8r+I X-Received: by 2002:a05:6a21:6da7:b0:cc:c69b:f7f1 with SMTP id wl39-20020a056a216da700b000ccc69bf7f1mr29827822pzb.15.1678377893697; Thu, 09 Mar 2023 08:04:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377893; cv=none; d=google.com; s=arc-20160816; b=ijD9OBMmZtG8o3OKo80Vdz9+wBwaCefCEWfdvwbncF1hnZT9ZcJjhXyhY9a/kSVLnA fP3MOisuY/7Cg519SUJZpbJ0XE73eRlebyfwhTuUgK8kmN8qvDRduOQfLmEGeMjpq3mP Tv4zshyA3b6zjz/mOfoEtppn8NCeTBGIDay2MVmpqk+pRYVB6nKl+Gq5F+RbiJXQYY62 iRqiVZggpRPXT1hDDxXB4TlqiYkyvojhyN4iDb0tx6H8Ze6Q92YK/xDCvkpB9qOeDWbo V2pqYGmDbxRJUtF7KWNzWsOwSfEN6x9T3eRUDhf4wq6VDFxp5F+DSx+K40i787SV/xsQ MCJg== 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=Xoe+SoY3mCq7SbMEntjKfjDq4K9lpzUPbUan1M/DKU2HShhy4DVQ5stGd+h7/pg4Gt dz87Cz/YVa6Y1rKcJv7iNJF7L1yOpPkozHSd0bf0tGM/vXeunfcFbNFvI+N604YBwZdU fChsEpDGym++ijPXrj6TfPwUiXoOMuIMpfYiVplTbp3wphKPxdEHx/Q9xiUQ1plrnFNg evV4jOn03gA2Pu+seSCxY3f8XPxoX4RpXdlIwzu3dkSwV0LuvpWpAkr0zxMLj6Xp2RSb 2xmRVa44VDnJYfmDSX3QDdTlg9msaYeOnI4HHIpZVpJy8emuDW5w3KJSxvuvdrlefcaA FOgw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=wUHZNCYo; 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 y184-20020a638ac1000000b004fb2685a0d4si18138187pgd.621.2023.03.09.08.04.31; Thu, 09 Mar 2023 08:04:53 -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=wUHZNCYo; 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 S231634AbjCIQCW (ORCPT + 99 others); Thu, 9 Mar 2023 11:02:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47206 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230063AbjCIQCI (ORCPT ); Thu, 9 Mar 2023 11:02:08 -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 E074EF5AA4; Thu, 9 Mar 2023 08:02:06 -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 46A7722146; Thu, 9 Mar 2023 16:02:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377725; 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=wUHZNCYoMsbJ3mTnwSWHOyd/Q7JcnrlOz3m8Af3LxaC8cQ+FHtBO4/CE+bLsegTKX9IWGT HqIEV7AuFFOrTdmersz2nNxeKzzas1FD4DEB1mIODP/wwOn7dUBFSajp2/DgiH4lt9JhVM l60Rbw8VYe9gEG9Vjln9r3rbtyVEY+k= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377725; 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=z2KN9D1vGDa+RWJlNGjXhDJrWkdw1OShlOpg8FPT5T7j2jQE3UFelAaNCvkplEQykIfSTM aUpGgoQb4AyS2MCw== 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 D8DD013A79; Thu, 9 Mar 2023 16:02:04 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id WOP0M/wCCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:04 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 002/101] fbdev/68328fb: Remove trailing whitespaces Date: Thu, 9 Mar 2023 17:00:22 +0100 Message-Id: <20230309160201.5163-3-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759906778249970462?= X-GMAIL-MSGID: =?utf-8?q?1759906778249970462?= 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 Thu Mar 9 16:00: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: 66983 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388142wrd; Thu, 9 Mar 2023 08:32:26 -0800 (PST) X-Google-Smtp-Source: AK7set8afgj4tKP+7yE415pshCtU7Ujk0d6QpAZpFnpNW7SwWyHEvrJomCzt4PiIlPthy4PwZEQ2 X-Received: by 2002:a05:6e02:218e:b0:316:f93f:6baa with SMTP id j14-20020a056e02218e00b00316f93f6baamr16250940ila.31.1678379545730; Thu, 09 Mar 2023 08:32:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379545; cv=none; d=google.com; s=arc-20160816; b=yfKSaPjzNz6mGZMeIjVAH5vCStkcH5R2Fds5XuQu19aHhed+MpONnsM3UWOOvU6k9N LCuNl0f2KcOf6/Js/M3wo17S/DH4yAZPFJr1zfaBgQ92R/FkGeA5YA4ifxaV8nwyjmIz eXQBp8xlUwEuP9pKUYxtkHDCkfRd2PZqQ5+J9FBNOhos70XsE/cols53hLr9/rKfNZpT 7xZuLPNXeKu1YvI7x+rji/CxYnN1AqNE0mCgM8uPYDL838fo+PVaKjBnJ71d1ZSwObjI H9KEo/XoX0aP1HnQWZ0jqBEnbbrSO/udR+THLAwixGlH1+eNISOUX8s9qOHolgR4jaDu DbOw== 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=Fd3tAw8GVCM4CDACGNGdw9mPQrLncZk9BnzzcPppKW+7QTpOgl2wdUaPb2O5XJutel QYvHh7wcGAMWDYyDRrfLhdP/NeLhyV0cX8ukGS5E7K4IX4/UidHfdBtJfJWAygZUUix1 VqYHLFsDIAbek+z2WMK9SVepsL3Scicw9hplSMhFBbkC0NDgNWBLORdKP8ltNqHYdqgi YUp7oXiZhFLvPSvJMNwPxeoleGXNmLuvJvZ9lQpJVhVwlJI8arzsBQZKmDSm9FPEowRu GpztN6heW7GavhbKb4N9GNCWnBagliVovVbV3vjsJZ1J5Z1qbZaNGX7S5DB8PYUtrDYs FSjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=w2M1ASgu; 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 f17-20020a056638023100b003c4e1a4de3asi19072149jaq.111.2023.03.09.08.32.10; Thu, 09 Mar 2023 08:32: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=w2M1ASgu; 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 S231383AbjCIQCL (ORCPT + 99 others); Thu, 9 Mar 2023 11:02:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47210 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230189AbjCIQCI (ORCPT ); Thu, 9 Mar 2023 11:02:08 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 45CCAF5AAA; Thu, 9 Mar 2023 08:02:07 -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 BA93B22142; Thu, 9 Mar 2023 16:02:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377725; 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=w2M1ASgu0lZrCMsHXHgnXvxWhi2LBlHQCDDLgWuIP0gFC5e6mu5hzpWJzazJOov2ElhEYC ulE40vpfEzs48sPfMh/R3esYMAiK47tSrCWDWDWSKGYbPSZ6QJZd1C4ZdtffnJKduHIGVx Q1EPOozEEYnFkboac+0B+vVedCm/SYY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377725; 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=IilZvr3APCBNyl1rJ4raIBeZJOQqVsdBC5cVa5NCgCiQiHv0KknIZilA6kKT3GZJkSEnLU FrMnow3H6WtNcrCA== 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 4A6A11391B; Thu, 9 Mar 2023 16:02:05 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id eDdJEf0CCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:05 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 003/101] fbdev/68328fb: Remove unused option string Date: Thu, 9 Mar 2023 17:00:23 +0100 Message-Id: <20230309160201.5163-4-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908510790339296?= X-GMAIL-MSGID: =?utf-8?q?1759908510790339296?= 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 Thu Mar 9 16:00: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: 66944 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp371660wrd; Thu, 9 Mar 2023 08:03:47 -0800 (PST) X-Google-Smtp-Source: AK7set9iS5j6iK9JAKBDJGNG3Fin6sW5bn2Ofpzv9UtF1IuI4g5RGpH8CtLD8wAkypIMPN+jL0Em X-Received: by 2002:a05:6a20:6993:b0:b0:3329:c395 with SMTP id t19-20020a056a20699300b000b03329c395mr16011445pzk.30.1678377826896; Thu, 09 Mar 2023 08:03:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377826; cv=none; d=google.com; s=arc-20160816; b=OwW61EtHeJ58C1ViWwoycQLYqGpBVED4yCB3WNs6js+ueXbef8tA5TYAvZv33eaXQC UJdSfeuyhVoRc69LBzGePP2CO/nHWLdgpm4uWlNRjp4WJhdQjctVz2YVKw5iY1NMNu+v VzqRNJF8sRMGVqFN+PpQdJNoyiGOIXWwo/LiiowJYQUg1ihLmJaOs2jNMQO8DtSr4kqA NzDhQRGfAxVsy72tqapPVq5/UgwkXVB20Gg5iIUGguYDD9xusiqFttyK5TGlEGElC1/M +niJ3/nBUpIJAqmHClZm6VOTHqj/xT2ms3GoKFJzIrXn17NKB7p70VGJqEkvfHX7prcM nEyw== 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=KvEqpSDesf2ed3/l+7WAWeANCfjqbvjWSRRLEJfNPy0TEBzWMYeMOov2GOEO4/wqlM 4DXBpE7KqrtqSM0zrI5RUzTuYwEP59uhrZW0pwR8RE9g5RsmnibMcITvtTF85wThO6bf hL3MqCurigaVNzsbZrwVIe/i/GqvwaOo1hRKK7uXuQ6ty/j04C+2R1Hf+K6jeWvjs73d p3WvaBjxKQiyCBTywd3UTUcQ8Z8i5TyWZiHs2RqMhdaiiKgLpeuy10ERukG5ngZHyrYT upul3vfW1qQXvxQUHfEd8v7Wrjsiz/u0alTZO2F3lDDaJsi5Rjpw4iOVZJIv7Mlea9yo rwjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=pTHEcIUk; 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 y28-20020aa79afc000000b005a9d0456018si17959609pfp.52.2023.03.09.08.03.30; Thu, 09 Mar 2023 08:03: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=pTHEcIUk; 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 S230214AbjCIQCT (ORCPT + 99 others); Thu, 9 Mar 2023 11:02:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47208 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230237AbjCIQCI (ORCPT ); Thu, 9 Mar 2023 11:02:08 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 694E3F5AAE; Thu, 9 Mar 2023 08:02:07 -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 240EC20178; Thu, 9 Mar 2023 16:02:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377726; 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=pTHEcIUkdO4RI5ksVY5B1WkUN4P012LmRqtrO58/N4kKDBnDCWa9oM29LMeCFurbgFl4Zf ZlNri4lJcHlRlaHn+bEVUmULumv/9LTsYKpXmhimbXL20VD1q7fM0mzTLivplERk0xqEN8 KcGf6hg5/SpVqncFC1gMCU3l42OU3G8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377726; 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=RTDEI9dmQRgy9k6aJ3HYKRujJ9aekExTA8pjDDMIHuVtJB+zt+BAbb4SJfWoDA0dJYAsAr QmBe2pzjY8kcHQAw== 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 B733F13A73; Thu, 9 Mar 2023 16:02:05 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id SCy/K/0CCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:05 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 004/101] fbdev/acornfb: Only init fb_info once Date: Thu, 9 Mar 2023 17:00:24 +0100 Message-Id: <20230309160201.5163-5-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759906708490731056?= X-GMAIL-MSGID: =?utf-8?q?1759906708490731056?= 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 Thu Mar 9 16:00: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: 67022 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389928wrd; Thu, 9 Mar 2023 08:35:54 -0800 (PST) X-Google-Smtp-Source: AK7set+CGjdmx8w/gY/8akAWlz0PbZ64nHgg+9FsWmxa7sQLfGxn9QyhE2Je7fr8KhDAruThjgqQ X-Received: by 2002:a92:8e0d:0:b0:318:d56e:9efa with SMTP id c13-20020a928e0d000000b00318d56e9efamr2141401ild.24.1678379753758; Thu, 09 Mar 2023 08:35:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379753; cv=none; d=google.com; s=arc-20160816; b=h17RewHaK5DLRuJ2CYWr/U97y0Cv8AmrIyNsKFA1CpADAX8ySC4nhiIYg7aN50916H mt7iZ7iZF6ST79nYauIlkXvLa/OmeUlSI5RIdOHBhcXkip/C7wzv5zsNfFhhubcfM5hZ HcBwiMwur+fCiWQQS4+2IHZtwZf7jniSREZRHxxsWqFo4FMHxijXyM8ODJk+wzqSXLgm AYPxmEatf7lEzPkv96ijTFGM3NEngUn96sbh+3HnTlrje9mkw94ogKNIdA3VZ557c6BY mgvyXFIJq9VJJe8gcz6x/cj+a8IUHgXGrLRBRxfLUHUTo/dS0PeGRXfke5APWXFDgt6O cUVg== 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=MA6x97k7aP7QRzZKpKQzdIkdDwykRU28DukMccXbTyw=; b=oqqfA+x5NncwP+CE6yifnMwZYSQI2HpsfQZy/WbV16ENk3P4MOuk0fUozN/wXQ0+GT ErRZqmfKsbMHxMl8bEstJX1MyvBP7GvgzkG/I6ea6eVvd8ic1eQvafwOTiAXpllUQ1Iy ZFuaz+Nv/XBy18sEaTFlbvusP8It7G0EF7PxLerETdCF/IHvF+QKOVXBrjfepfUbSH+0 snf9+QdJXLl9xVICquJMU3zHTy7g/NQv1/KmMjSIpkF9GY9aU45EmZeqgRCBQF3mXzNh 4qc5JigD4eadC6MneSlYussIfr1gsUngFHa+54wH7J2WkA7hu1i7rYp6Z4iC/4IDFLFm Mpwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=vSx80YLI; 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 j22-20020a02cc76000000b003c3efbcf077si18846406jaq.151.2023.03.09.08.35.39; Thu, 09 Mar 2023 08:35:53 -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=vSx80YLI; 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 S231807AbjCIQDF (ORCPT + 99 others); Thu, 9 Mar 2023 11:03:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47236 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231193AbjCIQCJ (ORCPT ); Thu, 9 Mar 2023 11:02: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 6C7A7F4002; Thu, 9 Mar 2023 08:02:08 -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 8D9EA20179; Thu, 9 Mar 2023 16:02:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377726; 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=MA6x97k7aP7QRzZKpKQzdIkdDwykRU28DukMccXbTyw=; b=vSx80YLIE+D2jM1cCMS/+8ygwlbFykEO6KrFcXuVzkXiu9kUO1tow2qtWn2dmIzpDg0NDM CcvgasHR9tf3WVBK4Lt/u0HkOq94BksvpDB3daCbqRM7oyGSigF0h6YYnjPgQ/DLPhU/I4 i32iGBhQaHOmk6+9264asGqdRM4P4b8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377726; 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=MA6x97k7aP7QRzZKpKQzdIkdDwykRU28DukMccXbTyw=; b=kWwyOmkQAc3/zuQ9YjPsTcffs0NoczG7MRwySa+PIUHqhwUS6t8NyTcYprHLCuKXHkEikw f8er8WNqYjf6asAA== 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 29EFF1391B; Thu, 9 Mar 2023 16:02:06 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id OD80Cf4CCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:06 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 005/101] fbdev/acornfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:25 +0100 Message-Id: <20230309160201.5163-6-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908728611615586?= X-GMAIL-MSGID: =?utf-8?q?1759908728611615586?= 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 | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c index 8642136a6bdc..3fed89e03554 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; + struct option_iter iter; 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 Thu Mar 9 16:00: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: 66992 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388477wrd; Thu, 9 Mar 2023 08:33:08 -0800 (PST) X-Google-Smtp-Source: AK7set9VtxwQaDcCku9aPn/llJn1LJ495RUJJOyzOfq0nC+PsbZjg1pPPPng3EW7n7HRU1641j6h X-Received: by 2002:a17:902:e80d:b0:19c:cb64:dacc with SMTP id u13-20020a170902e80d00b0019ccb64daccmr27366797plg.61.1678379587863; Thu, 09 Mar 2023 08:33:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379587; cv=none; d=google.com; s=arc-20160816; b=L3r8NX/XKvdVBZ5ecFQJPbzaejXKjzTIkFAQbJW0lZU1dySvduU59dUjotpVR4MhXf hrEorpGyfHO7tt4M4Hey1x9i4Rb0jKvTJsydKlj9yYzYwOO2Xso0Pi1EoOmWpYGZq9du Jh2yTaEyDwZ4969AfZqeHlDwHMpxeZouoKVjK7kzyrwwQNyfq1kxIPc92ndREn/zu9Ql zS37G3GiNlmFHhYoe47NM3faJpUYg+xYqgQroqHw8CHMMUWXUBKREkeYTjMvTn/cCL+f TRIig6OEeO17lK0e48OkmN3Z+hzff1RW+TjMyd6unWZ05A6eR4MtFA3i4aD8NX7gIrNR +qvQ== 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=lqqiwJisVH/SAzHfF2Z9EuhM1jnh+DNN6yoV0M1wteU=; b=l/PazC4uKZU2uR5NeKqOtfczT4F8vIpmR/jKxUltl6lLJk7R63Y919yDKOOp6gNdUG 4tp/uIPltVYlD1vQjdpfmD4XVuUuZJRJjStwFOa2MI/trsAatcSmDQt5oxRli0eR1xhw D+k6K/vLz32gN0ZKE+2sI2tqQGpe182PgdwMd2NzdHcIE7Vc20+HcyPwzscGz03YIUeH wEc2DttvE4g2UufVaWo+pcBfDWlsgzkiewk+zldJdNc2UiuI93FZRsAra+ohTyhf5oET wdiy9CbhgwEHwrB3+7xPWV/ihjhIXO7v6wAAegQ5gYDSk1jaUSRbwhX343NqkjDN3t/j Nx4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=xiFACuqr; 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 iy19-20020a170903131300b0017a0e7aaf6bsi16764554plb.128.2023.03.09.08.32.52; Thu, 09 Mar 2023 08:33: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=xiFACuqr; 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 S231784AbjCIQDA (ORCPT + 99 others); Thu, 9 Mar 2023 11:03:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47230 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230061AbjCIQCJ (ORCPT ); Thu, 9 Mar 2023 11:02:09 -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 6CBCCF6C4F; Thu, 9 Mar 2023 08:02:08 -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 EEFA822147; Thu, 9 Mar 2023 16:02:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377726; 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=lqqiwJisVH/SAzHfF2Z9EuhM1jnh+DNN6yoV0M1wteU=; b=xiFACuqremRu3gpC320ePcV8wZYe25+7E1u76jHQkErsmQu7yJlFnJNQGW5UYBZ9SQv5ot bOJU2ibthwLG/3GRKurnyiM+5pGzEzNNXleZRAo7u2koBtXCfSlz5rL7e9u2+FabOmsT/d A7lNPBm0yB0uEA2jxRkC1VxLlHOPhz4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377726; 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=lqqiwJisVH/SAzHfF2Z9EuhM1jnh+DNN6yoV0M1wteU=; b=c+5tBBtUF7Pe6+RmCA6axMVd3JFqEAs3odqujArmd2jPBkWAbsfx7CWjteAitmvohzjvmY RhvH9JTrpfkHYdBw== 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 92BC013A73; Thu, 9 Mar 2023 16:02:06 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CEgAI/4CCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:06 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 006/101] fbdev/amifb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:26 +0100 Message-Id: <20230309160201.5163-7-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908554814544763?= X-GMAIL-MSGID: =?utf-8?q?1759908554814544763?= 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/amifb.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c index d88265dbebf4..9517aa5bd2c0 100644 --- a/drivers/video/fbdev/amifb.c +++ b/drivers/video/fbdev/amifb.c @@ -2345,7 +2345,7 @@ static void __init amifb_setup_mcap(char *spec) amifb_vfmax = vmax; } -static int __init amifb_setup(char *options) +static int __init amifb_setup(char *options, struct platform_device *pdev) { char *this_opt; @@ -2363,8 +2363,10 @@ 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 { + // ignore errors + mode_option = devm_kstrdup(&pdev->dev, this_opt, GFP_KERNEL); + } } if (min_fstrt < 48) @@ -3542,7 +3544,7 @@ static int __init amifb_probe(struct platform_device *pdev) amifb_video_off(); return -ENODEV; } - amifb_setup(option); + amifb_setup(option, pdev); #endif custom.dmacon = DMAF_ALL | DMAF_MASTER; From patchwork Thu Mar 9 16:00: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: 66976 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp387457wrd; Thu, 9 Mar 2023 08:31:19 -0800 (PST) X-Google-Smtp-Source: AK7set+iJvxqk0oslFr57u2vPy0/rXdegBDGm8NXWxhpewZ5gNXIIo21s7SGJgjAdHSjFQYxEQ6+ X-Received: by 2002:a17:902:7007:b0:19d:47b:67c8 with SMTP id y7-20020a170902700700b0019d047b67c8mr18152748plk.48.1678379479207; Thu, 09 Mar 2023 08:31:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379479; cv=none; d=google.com; s=arc-20160816; b=fIhf4hj5oFQ20TqfMGOTMQN/TdNHlR6IU69fN9QY3amKUwCdDU5xEzOo+ASa3W39M8 mIkrxhMGpGIfYintaOyqIUDZqPbOrk9iFWOllmtEr6VtrF9H13KQdLp3y31vxQGx/JXf wN/5HaonVmuTCLSvCKAIazMqANlV/p6NQo9XLS71wzZhtmhxpkxyXfieEa5vwq9EvGGh bjzjGqxXFitaDmJUm1lOEiYq6J5bpenOPYmynY6ee7kzB45PouennsZVOyIXr5ls1al8 sC7H0zTec95MmeAcfKLh2SHSuQZ48a/aNun3guuFChkA3wQ6vGx4Lh9xAw3JaLCD0u42 lu0w== 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=fAKwWillpJMLRw6wMQPDlzuh9+KWUcuRQNAZe1IaSrQ=; b=JTbp/r378oOzyOIna42CdJQr2LZ214O6eHEqvD1CjpWVQOkhiQjtsBkWoj23mjpGUL mQqAsGAilE11r1qO7znMsQ1vHFA4wF/hPOC4KC3AzfTHdJwwb55q07XSEzIQrjsHio4t QkkZIFmYm3ZNHl3fwpEkJJVYBqy3VhxWriVTjuQBMlXxD1jLxOBA5DthJwOTJePBth09 C4GFgk1TQzJetboVU8OdO7VU0RQzBFT4ZD6/CM3TAtcr41hrRjIhdBtkq+x8olOhzIYo WtRgqmECbvZUfckmjYk2uduqMLPk1aLh9QEK2sAUz2qa5yR/XfXUAFELOCTiWv9VVfwP mHTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="RSlu/cjS"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=AMAKtOMD; 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 ji20-20020a170903325400b0019e6e61c3dfsi17144116plb.315.2023.03.09.08.31.06; Thu, 09 Mar 2023 08:31: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="RSlu/cjS"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=AMAKtOMD; 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 S231773AbjCIQCw (ORCPT + 99 others); Thu, 9 Mar 2023 11:02:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230496AbjCIQCJ (ORCPT ); Thu, 9 Mar 2023 11:02: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 DC32AF6C5E; Thu, 9 Mar 2023 08:02:08 -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 5CC402017A; Thu, 9 Mar 2023 16:02:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377727; 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=fAKwWillpJMLRw6wMQPDlzuh9+KWUcuRQNAZe1IaSrQ=; b=RSlu/cjSsyBJb0MNuFlWjDGlixOEHTWKfPF4CA+Rq/LSjRBhQiMJVX6fcb/RDWUtkmGaJN WxBFUszBc4pRI2i7IhFqOz7kntSHcGEOqd8h7jajUJqkFhvJfHTAbVYvHPu+OszvS03e1r uATh4kb07ZzFr8ryJzEhzb7B4hhjHxg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377727; 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=fAKwWillpJMLRw6wMQPDlzuh9+KWUcuRQNAZe1IaSrQ=; b=AMAKtOMDSze1CiWVcaaE9i5u9eSGfP91ts9jiKv2c+WvFiqtTHhXEtSSpMJBfV7138SSHC sERhL8+1fIr3VdDw== 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 F35161391B; Thu, 9 Mar 2023 16:02:06 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id gBB2Ov4CCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:06 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 007/101] fbdev/amifb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:27 +0100 Message-Id: <20230309160201.5163-8-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908440950689014?= X-GMAIL-MSGID: =?utf-8?q?1759908440950689014?= 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 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c index 9517aa5bd2c0..a09edc576437 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, struct platform_device *pdev) +static int __init amifb_setup(const char *options, struct platform_device *pdev) { + struct option_iter iter; 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")) @@ -2369,6 +2368,8 @@ static int __init amifb_setup(char *options, struct platform_device *pdev) } } + option_iter_release(&iter); + if (min_fstrt < 48) min_fstrt = 48; From patchwork Thu Mar 9 16:00: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: 66952 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp373581wrd; Thu, 9 Mar 2023 08:06:29 -0800 (PST) X-Google-Smtp-Source: AK7set/xpuqERuDxwWUddvZybngEclr5XEOWgUpG11ENVKyyi+SL+GAOrL5kOHx60yxLPeJxWUY1 X-Received: by 2002:a17:90b:3e8e:b0:236:99c4:6096 with SMTP id rj14-20020a17090b3e8e00b0023699c46096mr22925137pjb.35.1678377989386; Thu, 09 Mar 2023 08:06:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377989; cv=none; d=google.com; s=arc-20160816; b=JWH0WFuD1vK5qmu6M2jCmFm4qBMWTSv9gu7NGbb3IZy79+cnOvWYwekc0mj0j6MhLs UCpmoxtmSmxoQ04Zm84Ib1uAxzLtg7++lWfPZDXpUscvWsFQ8p9fcYojXp2mls8u4oZh y92UoUzodNeK84J93T2IpH3ObisHVICs8Yk3sucbfqNB+yZsq/KKZAsypWtkLNbELwzw Fw0O7c/aO9iIX881Cjr/UQWV71CzQaG+J78O6LyTfSWyFQbuohu7xEsPPPwuKxJQDZCh rOsBTZx9V76zyV15klqh0CnsTYRIcXqD63aRnKkBHYLusfztbPU3msWs/Q0XB6oTRpuD 8UcQ== 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=+o0nKnK7DSPy1Ib3Bv1R1mVbwQPH782fXsSg9TrWayg=; b=Rr3rfBqOtduZF8ALIh9GLWgG2rzIVZCg6Ljx5cTzzldniT1RkcYR7dkyTPMR1G3Qsv ekfP7kP+iwQiuxO7skH0Gk8vmgsgdozrusjR8LcIVBfgQJSe6Dm9e68def3OpTxnPIMc eFyBlYzWvDk2A2XJk36cU9BPaoT4+O+gjh9IAOTL4I0mJwyKtfIsfAfjGmldrtrMBscW UujV62kkrlg5gXb0f+SO00sYoL2saEZIYXZMYnWCqZuuTGk8P6JEVforltyA9qbBXPer FGZG9tYQ/gNIxX9gmPPhWOSSnX3L64vs88aTgmUUnKUysX9j+zXVS3SDUdXcuB4jSB4G 9v9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ds9BVXOX; 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 5-20020a630c45000000b004faeaf65ba0si15368769pgm.800.2023.03.09.08.06.14; Thu, 09 Mar 2023 08:06: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=ds9BVXOX; 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 S231915AbjCIQDZ (ORCPT + 99 others); Thu, 9 Mar 2023 11:03:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47264 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231224AbjCIQCK (ORCPT ); Thu, 9 Mar 2023 11:02:10 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BC633F4B43; Thu, 9 Mar 2023 08:02:09 -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 BFF1922148; Thu, 9 Mar 2023 16:02:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377727; 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=+o0nKnK7DSPy1Ib3Bv1R1mVbwQPH782fXsSg9TrWayg=; b=ds9BVXOXcsc0L1GpIOU5m5mEsLa2GZFmgjUEVW1kVdMlOc11Zz4N8EAov+7woqI7LF5+3C sq74CAdP0eh2oIhJBY/S+ftDm3zDFektGWxf5t6SBO+dvPbVX0pDSj82wnHpRt0M224YBN kJ9+VNHyI5Ewx5Dbkx2LfsAw983rHjA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377727; 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=+o0nKnK7DSPy1Ib3Bv1R1mVbwQPH782fXsSg9TrWayg=; b=cAXmDe1ZXcW9Oq/X5vQNlcBGtv2ULwaGXsQK4pBNgTlpeAJLp/70WKkMESVoPnTLdPQZtx sQ55D/b67gXXUwDQ== 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 611E013A73; Thu, 9 Mar 2023 16:02:07 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id UGDFFv8CCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:07 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 008/101] fbdev/arkfb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:28 +0100 Message-Id: <20230309160201.5163-9-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759906878694172682?= X-GMAIL-MSGID: =?utf-8?q?1759906878694172682?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/arkfb.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c index 60a96fdb5dd8..98c710cadaab 100644 --- a/drivers/video/fbdev/arkfb.c +++ b/drivers/video/fbdev/arkfb.c @@ -97,6 +97,7 @@ static const struct svga_timing_regs ark_timing_regs = { /* Module parameters */ +static char *mode_option_buf; static char *mode_option = "640x480-8@60"; MODULE_AUTHOR("(c) 2007 Ondrej Zajicek "); @@ -1178,6 +1179,7 @@ static void __exit arkfb_cleanup(void) { pr_debug("arkfb: cleaning up\n"); pci_unregister_driver(&arkfb_pci_driver); + kfree(mode_option_buf); } /* Driver Initialisation */ @@ -1196,8 +1198,10 @@ static int __init arkfb_init(void) if (fb_get_options("arkfb", &option)) return -ENODEV; - if (option && *option) - mode_option = option; + if (option && *option) { + mode_option_buf = kstrdup(option, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } #endif pr_debug("arkfb: initializing\n"); From patchwork Thu Mar 9 16:00: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: 66984 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388205wrd; Thu, 9 Mar 2023 08:32:33 -0800 (PST) X-Google-Smtp-Source: AK7set8Dah1XwCx0o45HUvI/UM2XaopdtAznTNHZ1BaoZiO9PsAcmJ/ZeP0PiOhZGsqrsB4x1/k6 X-Received: by 2002:a17:902:aa4a:b0:19e:3922:b7d8 with SMTP id c10-20020a170902aa4a00b0019e3922b7d8mr18128597plr.12.1678379552967; Thu, 09 Mar 2023 08:32:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379552; cv=none; d=google.com; s=arc-20160816; b=INBwsPlUJOZ8fnNSza84tHzGaqQKHdf9IxQEx1WnDlnanUrSwjR7BNTlYqjrX5Ak3h IXBucsQArvj6QeSrwhdKWNGzqnbmkIkKtFkbzC04JQ2xFG9O2iurbhwQxZ7x4Y2CIwrE sPjQFDk+uMvT8UMrdnkZUMULwDipzGjME3PkmMysCICRH/0UKkkMTFPe2LGqQ7OhU4dj gwrUSrdDL6GfXj22TYMsCw4MOJlWVu1ndfVNzw6wTNiMXa1totR8kTnRXPJnjH2bD32d EUmbabHZyctF8yPN6p7q2RSl+F/v/6HgylvLqbV+hYfpgm3d2Hp2BMkaVr5XbsAeQAN7 UeHg== 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=AJxf0lFvTB2HQ0JfmzXfmeLR3kXSn2VgL48irVHdc4o=; b=r+lU2ozkpg5H3yL2ysIFHaOnAT9KSHbWasw8KYtW361epfjR9mPW9dDlS/iyaRvVsE R2GaRvHKW8sSwLx5hYmmS2Gj0mDyeSAdyspSau7VXrgdnzr6mJrVZ3fQTe1wetFnmEXb 6AKj0C7CZzMZX59CWovdntZeQXfUDbL8P3oDA4QqvbGsX7Udufr2fPs2gYyrb5W/FTt8 M06jMpux8C8GpArAt5drmUbJHmq3UXKEoNbXOIkBZT3vQdQkyXMnGKmiL5Pjy0Mjg4hn vfJuGhSHlGhJLhzQCL4nM04Bt27cN0jFapYGJsAeMrVMPQ5tAMucQDrbDG+GDI4NeIA/ yEmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=OfP4AUqE; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=mooOxt9s; 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 kd11-20020a17090313cb00b001965a0fc34fsi16450745plb.139.2023.03.09.08.32.17; Thu, 09 Mar 2023 08:32:32 -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=OfP4AUqE; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=mooOxt9s; 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 S231863AbjCIQDT (ORCPT + 99 others); Thu, 9 Mar 2023 11:03:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47262 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231269AbjCIQCK (ORCPT ); Thu, 9 Mar 2023 11:02:10 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99D76F3670; Thu, 9 Mar 2023 08:02:09 -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 3403B2017B; Thu, 9 Mar 2023 16:02:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377728; 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=AJxf0lFvTB2HQ0JfmzXfmeLR3kXSn2VgL48irVHdc4o=; b=OfP4AUqE1G6wqcMwo+biFpyvRku0GsvDk2KcxTo82UkvW0KlMksgCFcaLvI42vcmAgHWvD T7c84ECqUxcqCDCJ9yfERGuWnFJ0FYvaN5wnBKkgUwu7wsWjBK5BwfSh7FoQj/bqIRFiAM fgmUGc47BupFlUJzKL+488arK+q9DK8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377728; 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=AJxf0lFvTB2HQ0JfmzXfmeLR3kXSn2VgL48irVHdc4o=; b=mooOxt9sv6gR3aoiuNS1J+h19T0EnHD1fByofsVZVu2Mq32B6Lujc/C6Li+smhWDqdvS1Q G3R5S4Th8NrjBkDA== 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 C47D51391B; Thu, 9 Mar 2023 16:02:07 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id kIcEL/8CCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:07 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 009/101] fbdev/atafb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:29 +0100 Message-Id: <20230309160201.5163-10-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908518247835228?= X-GMAIL-MSGID: =?utf-8?q?1759908518247835228?= 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/atafb.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/video/fbdev/atafb.c b/drivers/video/fbdev/atafb.c index 2bc4089865e6..f0cc7c992c88 100644 --- a/drivers/video/fbdev/atafb.c +++ b/drivers/video/fbdev/atafb.c @@ -2934,7 +2934,7 @@ static void __init atafb_setup_user(char *spec) } } -static int __init atafb_setup(char *options) +static int __init atafb_setup(char *options, struct platform_device *pdev) { char *this_opt; int temp; @@ -2946,8 +2946,9 @@ static int __init atafb_setup(char *options) if (!*this_opt) continue; if ((temp = get_video_mode(this_opt))) { + // ignore errors + mode_option = devm_kstrdup(&pdev->dev, this_opt, GFP_KERNEL); default_par = temp; - mode_option = this_opt; } else if (!strcmp(this_opt, "inverse")) fb_invert_cmaps(); else if (!strncmp(this_opt, "hwscroll_", 9)) { @@ -2992,7 +2993,7 @@ static int __init atafb_probe(struct platform_device *pdev) if (fb_get_options("atafb", &option)) return -ENODEV; - atafb_setup(option); + atafb_setup(option, pdev); dev_dbg(&pdev->dev, "%s: start\n", __func__); do { From patchwork Thu Mar 9 16:00: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: 66985 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388207wrd; Thu, 9 Mar 2023 08:32:33 -0800 (PST) X-Google-Smtp-Source: AK7set8rgSuqa1jL+N4qNcL4h58MszY0pd+zl4/7uakMPGELgZOo6yzpRiPHazlRr1DKdfehS+xK X-Received: by 2002:a62:1a8d:0:b0:5dc:ecea:fc8b with SMTP id a135-20020a621a8d000000b005dceceafc8bmr17100403pfa.29.1678379553145; Thu, 09 Mar 2023 08:32:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379553; cv=none; d=google.com; s=arc-20160816; b=KajLghM09wYpdsXjD672Tesc5iULH9Giz6rVjhzvZXI7Jtu0xWpNTQjFCTo9l044Ub zIqZ1QqamEaAE3w8rIXUEqDP1ED4iI6oigtxqCDhjxKKi7Icl1lVerd2kiihHO98nknE U9gssNeFZLtMpaEoeOR8FTK6zyg5Ef+DpuYWCHr7lzPrnN2LkRkBuDR7iZoGefCMxARx FrmBKKYuhRIEFBPbu+nTJwU9HxiLuFW4J0I4s1YAWFLyNX7HfpOf/q+yGxVHVZw5kScB F46RgNa231IBr3u6gOLZF2n4msBCUi2RxyMJpugSMvA3nZVRZ6jyyFLFreaR9hMY0t0t Uoag== 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=qPLL2nIMXVIbOX360ZiaSKuPOUXR3YFNZkhMEK9hl5o=; b=IBpMsAtKB40EHYPF5RVUjwM6PdOVJK4H2Wr2c8G+PyfGN6TPg7OnDV8qL43n4jTQi1 kZb8Gdkvjj0WvpMrpTWs6qqPBAW6obBLtOQtvAO2TZeAYvyeIzTAsmoXT8XgRJvqti8C 2UsVTD+t5IyL4yg4AX5A+mGOEke4pun5YJoGjuRyWDaooRqj6PB8eZdpmv8MY/pgXmyk lvHfVT8k6lGBPApGIvsn+FfP4GKm1FZdYT9vnuVIB7l/ywBIx6MutsQvdfXmmC409s0v MFUxAQiTXAdI63+rE046MtiiX2pXtYYPM+5YTAc6H6w+zwlxMsQFPama2QdNQEt9UFgo gDTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=trE7up6t; 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 n11-20020aa7984b000000b005a8c6714ffesi17296400pfq.96.2023.03.09.08.32.20; Thu, 09 Mar 2023 08:32:33 -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=trE7up6t; 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 S231822AbjCIQDP (ORCPT + 99 others); Thu, 9 Mar 2023 11:03:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231350AbjCIQCL (ORCPT ); Thu, 9 Mar 2023 11:02:11 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DFFDBF4B7A; Thu, 9 Mar 2023 08:02:09 -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 9D3A322149; Thu, 9 Mar 2023 16:02:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377728; 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=qPLL2nIMXVIbOX360ZiaSKuPOUXR3YFNZkhMEK9hl5o=; b=trE7up6tmAL8SM9RbL+ai1E5Cq3JpkvyWTc+J3fidroMRDQ4e2RJKpFjXU01wCryg/ONIP 0L+NcJvqQG5Hn1WbN5zu84UJjaBmnQQkCs05aIy/CNGn7O+atljpOQJwrVG6VHd95Ymumq ZoUwZGockmE47KlNWpBdmfnQGfvVJ94= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377728; 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=qPLL2nIMXVIbOX360ZiaSKuPOUXR3YFNZkhMEK9hl5o=; b=61DoR8i/KKWWcskabhK7cyMJ3KnsxiG6NbRhVV4D1pVyBP0r2ztvDjpLiMqUP5fBBZc5J/ qpDb4TCqn25oLIDg== 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 391291391B; Thu, 9 Mar 2023 16:02:08 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id mB4KDQADCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:08 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 010/101] fbdev/atafb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:30 +0100 Message-Id: <20230309160201.5163-11-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908518404601573?= X-GMAIL-MSGID: =?utf-8?q?1759908518404601573?= 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. v2: * add missing call to option_iter_init() Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/atafb.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/atafb.c b/drivers/video/fbdev/atafb.c index f0cc7c992c88..6e625ac020b5 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,15 @@ static void __init atafb_setup_user(char *spec) } } -static int __init atafb_setup(char *options, struct platform_device *pdev) +static int __init atafb_setup(const char *options, struct platform_device *pdev) { + struct option_iter iter; char *this_opt; int temp; - 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 ((temp = get_video_mode(this_opt))) { // ignore errors mode_option = devm_kstrdup(&pdev->dev, this_opt, GFP_KERNEL); @@ -2981,6 +2980,9 @@ static int __init atafb_setup(char *options, struct platform_device *pdev) else if (!strncmp(this_opt, "R", 1)) atafb_setup_user(this_opt + 1); } + + option_iter_release(&iter); + return 0; } From patchwork Thu Mar 9 16:00: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: 66980 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp387961wrd; Thu, 9 Mar 2023 08:32:04 -0800 (PST) X-Google-Smtp-Source: AK7set/Z5Nkp3F4xQG3Lkv4nfsambZPKKy8UvMko7wXv2PWRPNJCrNFGlVsnJV5hCjPhCHtGSm12 X-Received: by 2002:a17:902:ce90:b0:19a:9434:af30 with SMTP id f16-20020a170902ce9000b0019a9434af30mr25730432plg.18.1678379524532; Thu, 09 Mar 2023 08:32:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379524; cv=none; d=google.com; s=arc-20160816; b=KqgSR2oM51b2g4bRNJxAXAYb9ER+f8EM/zo0bi0R7ghgo1LD8YtlLnuJFGVBDhR73b aogpok46XeADVQEjmffeZvgqvmY2Fb/0lHHqr4m6Pq1rZnJ9fIrrP/xA4uRo5SepkIty CRU3UEjsFIUlw1nwP8FYXufzDIZi8ZrysOKKMRjRRu7R53aBtrCq68/ZxMCRRo5wknzA cmxGQlwEqwHcmi3DsheGeQ7CI0aTgJu58t7LADpgJmqT86xBIiToufYAX5g7hK0G1KwX WlcRC8sw/2NHRS2hrOFDz2PoGlka87pJh/XpUvjDhi03lWRR8P1nCMc7QTfGj92V6s0l aliw== 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=ym5HuZho+njp3rS/G6tDZ4qDsVBX7VtriAnydblKDT0=; b=XYv3v2VnUwR4uLnvLWL56EJNcPc0riN2aTb8A/hgscLD0kzwcqc27e97Ffc7jZd49L MmfM0DaqXDJrtf2yvuY+DmVapeQsTPWWIih4wqbF17gWHxGJXIZq10EmK12xaSYJd5Rh z7wDoVsmwXa1Tsfo+7uVHAJdJeaytcBIDMfDc+Wq41UFUkzUgOjZgHHd6ZMRINjRFA9h YPBwb90uGsEjGQdr+B25KudRWWODSdZl+EoZI4G+VjBhuG3+KSTZecLwt5oCCOqBXkSH b0kqNBoUItFsCIoiIXoGDXxt7cNj7eDmiC0CUjlppCwb7jwwAqrNm4+dQGizsUyxJUX6 JA0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=vf4a2GRs; dkim=neutral (no key) header.i=@suse.de header.b=R1sHxZf+; 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 b18-20020a170902e95200b0019d211fced4si19622961pll.187.2023.03.09.08.31.51; Thu, 09 Mar 2023 08:32: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=vf4a2GRs; dkim=neutral (no key) header.i=@suse.de header.b=R1sHxZf+; 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 S231954AbjCIQDe (ORCPT + 99 others); Thu, 9 Mar 2023 11:03:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47296 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231364AbjCIQCL (ORCPT ); Thu, 9 Mar 2023 11:02:11 -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 7B99FF7ECC; Thu, 9 Mar 2023 08:02:10 -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 0F0662017C; Thu, 9 Mar 2023 16:02:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377729; 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=ym5HuZho+njp3rS/G6tDZ4qDsVBX7VtriAnydblKDT0=; b=vf4a2GRs3xu4nDAXLU3y7QYwgfM4JjVf7Pi0P34wctrW7I/0ISZotE4hqOazqxK8OOSKKa GPGQOMfoMDk3jLHzl4ft5p/GoDD7xhUX7yxzUQfyQHDeBcMXbZmhPJZ5iYm7Y5H0ub34ir FSOL0DYmJPxbsN+u7df3vD3kmLswLmQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377729; 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=ym5HuZho+njp3rS/G6tDZ4qDsVBX7VtriAnydblKDT0=; b=R1sHxZf+v8isa6e5JoALDT9zwUOlMSuZCg9Iuc5fbLpMMJcoKCnxwZrNtJMB9Ri99eLxLA dvX1y91zRr0zv8BA== 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 A374A13A73; Thu, 9 Mar 2023 16:02:08 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id eO36JgADCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:08 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 011/101] fbdev/aty: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:31 +0100 Message-Id: <20230309160201.5163-12-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908488358159983?= X-GMAIL-MSGID: =?utf-8?q?1759908488358159983?= Assume that the drivers do not own the option string or its substrings and hence duplicate the option string for the video mode. Allocate the copy's memory with kstrdup() and free it in each module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/aty/aty128fb.c | 8 +++++++- drivers/video/fbdev/aty/atyfb_base.c | 9 +++++++-- drivers/video/fbdev/aty/radeon_base.c | 9 +++++++-- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c index 36a9ac05a340..0e725a6eb40b 100644 --- a/drivers/video/fbdev/aty/aty128fb.c +++ b/drivers/video/fbdev/aty/aty128fb.c @@ -383,6 +383,7 @@ static const struct fb_fix_screeninfo aty128fb_fix = { .accel = FB_ACCEL_ATI_RAGE128, }; +static char *mode_option_buf; static char *mode_option = NULL; #ifdef CONFIG_PPC_PMAC @@ -1723,7 +1724,11 @@ static int aty128fb_setup(char *options) continue; } #endif /* CONFIG_PPC_PMAC */ - mode_option = this_opt; + { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; } @@ -2518,6 +2523,7 @@ static int aty128fb_init(void) static void __exit aty128fb_exit(void) { pci_unregister_driver(&aty128fb_driver); + kfree(mode_option_buf); } module_init(aty128fb_init); diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c index b02e4e645035..d83b3dae795b 100644 --- a/drivers/video/fbdev/aty/atyfb_base.c +++ b/drivers/video/fbdev/aty/atyfb_base.c @@ -326,6 +326,7 @@ static int pll; static int mclk; static int xclk; static int comp_sync = -1; +static char *mode_buf; static char *mode; static int backlight = IS_BUILTIN(CONFIG_PMAC_BACKLIGHT); @@ -3896,8 +3897,11 @@ static int __init atyfb_setup(char *options) } } #endif - else - mode = this_opt; + else { + kfree(mode_buf); + mode_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode = mode_buf; + } } return 0; } @@ -3995,6 +3999,7 @@ static void __exit atyfb_exit(void) #ifdef CONFIG_PCI pci_unregister_driver(&atyfb_driver); #endif + kfree(mode_buf); } module_init(atyfb_init); diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c index 657064227de8..dc2657ae96f2 100644 --- a/drivers/video/fbdev/aty/radeon_base.c +++ b/drivers/video/fbdev/aty/radeon_base.c @@ -257,6 +257,7 @@ static reg_val common_regs[] = { * globals */ +static char *mode_option_buf; static char *mode_option; static char *monitor_layout; static bool noaccel = 0; @@ -2596,8 +2597,11 @@ 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 { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; } @@ -2624,6 +2628,7 @@ static int __init radeonfb_init (void) static void __exit radeonfb_exit (void) { pci_unregister_driver (&radeonfb_driver); + kfree(mode_option_buf); } module_init(radeonfb_init); From patchwork Thu Mar 9 16:00: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: 67039 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390481wrd; Thu, 9 Mar 2023 08:36:57 -0800 (PST) X-Google-Smtp-Source: AK7set/3J0BrqzBGLbpraArU0eTjgDo7snKAkdH0bMygBKRaHWIeUeZaix8UlRNOatncDMtcxJjk X-Received: by 2002:a17:90b:1b4a:b0:237:b5d4:c0df with SMTP id nv10-20020a17090b1b4a00b00237b5d4c0dfmr22486410pjb.6.1678379817516; Thu, 09 Mar 2023 08:36:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379817; cv=none; d=google.com; s=arc-20160816; b=BvEz6RdF79kQh7AdStdIKmkjFkRO2eEOTWCwM33+gCVq7Pr2zWRaqR42vIp7Mb/0jc 6bCnVzvblUJK+6nVxzsoaezUAOofAbc8XyFcE1HAjoS/15fD1zcNNQrq9PbW9KbngYDq 3/JtyfdFTns8rKgwnA9qeiJwUgOWQxytgnKiuiUG7ARKg8XQWK7BjaN0ql1reSn+4Rkf OfA1aGv+OewlFZVsFK+jxdVVImlNsM8ks65SBrChWmAlQKL9OsI+rvIahVtigf4flipZ /EkTDH4dDpjSd0qcnGn7g2SHi7V1Asr27SYPy6gGOzdbO3yo86CSTK3rbws2pv0s9BA6 3Csg== 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=+FUi3cC4ZbNfnVzDlRVuUkJNsL1SkMquCeIFMmvAC8o=; b=FOsrOwpUxkqn/+tgM7Nms8RgAAl8O79qCEE/BK+akCYTGm/OdTZG79+/0vrZIWjRk2 aM+P89P3YR/jKY+sORLeYfb09TysKtW2/jyw3g1DeNit55dxDjYUuGDgJV4evIgLNG0H pnVIQxVRHsyQbPjytJQnaipWd31p756BcVu3xIf3qqbc08LyUs2FMPabscoFrv5CFGyb UY5teBk/essP8HMUdILHfEO7aLRvzAv1DGNfCKyDebOnKmz9R4qtUk/JSW8H3QjLc9EL pi95HlPTkPzTz9P2t/gcsGGDF3Nt2l4ufZeN+ZcqMgZsnMDU7dd1KZkLxNnZInrLb9wC pWFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=IUPQEEYn; 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 e11-20020a65478b000000b004e5833b1fb8si18470401pgs.275.2023.03.09.08.36.44; Thu, 09 Mar 2023 08:36: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=IUPQEEYn; 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 S231972AbjCIQDk (ORCPT + 99 others); Thu, 9 Mar 2023 11:03:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231322AbjCIQCM (ORCPT ); Thu, 9 Mar 2023 11:02:12 -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 08299F7ED7; Thu, 9 Mar 2023 08:02:10 -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 73A842017D; Thu, 9 Mar 2023 16:02:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377729; 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=+FUi3cC4ZbNfnVzDlRVuUkJNsL1SkMquCeIFMmvAC8o=; b=IUPQEEYnXT7GyVhVVIVQfYM1bet8PDGuc1h2UDerjes0SxQAn2C/FlvGez6Ic/PqalEUDD 49x+fRHdnUJGSmwspY4kgfcCJcXJGr0qXuD+yvcfq5r4Co+jFz7McSNgO83mkT2+QqbQco clCYFpog5JZXedsiH8jEaZ+BSeBABa8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377729; 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=+FUi3cC4ZbNfnVzDlRVuUkJNsL1SkMquCeIFMmvAC8o=; b=04hFjl3HX3Hs4/ETS8p0/KG+5HcDpCm4C1v6z24G2Oa2NO/APnZuQK90gwFrwfZ40Y+tDF /0HyodwPVhZ2lgDg== 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 13C0C1391B; Thu, 9 Mar 2023 16:02:09 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id MJniAwEDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:09 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 012/101] fbdev/aty: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:32 +0100 Message-Id: <20230309160201.5163-13-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908795734149073?= X-GMAIL-MSGID: =?utf-8?q?1759908795734149073?= 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 | 12 ++++++++---- drivers/video/fbdev/aty/atyfb_base.c | 12 ++++++++---- drivers/video/fbdev/aty/radeon_base.c | 15 ++++++++------- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c index 0e725a6eb40b..ee2be122de2d 100644 --- a/drivers/video/fbdev/aty/aty128fb.c +++ b/drivers/video/fbdev/aty/aty128fb.c @@ -48,6 +48,7 @@ #include +#include #include #include #include @@ -1674,14 +1675,14 @@ static int aty128fb_sync(struct fb_info *info) } #ifndef MODULE -static int aty128fb_setup(char *options) +static int aty128fb_setup(const char *options) { + struct option_iter iter; 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; @@ -1730,6 +1731,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 d83b3dae795b..f4b22d2f0d3d 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 @@ -3832,14 +3833,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) { + struct option_iter iter; 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)) { @@ -3903,6 +3904,9 @@ static int __init atyfb_setup(char *options) mode = mode_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 dc2657ae96f2..975323e82f52 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 @@ -2562,17 +2563,14 @@ static struct pci_driver radeonfb_driver = { }; #ifndef MODULE -static int __init radeonfb_setup (char *options) +static int __init radeonfb_setup (const char *options) { + struct option_iter iter; 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)) { @@ -2603,6 +2601,9 @@ static int __init radeonfb_setup (char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif /* MODULE */ From patchwork Thu Mar 9 16:00: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: 67003 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389109wrd; Thu, 9 Mar 2023 08:34:22 -0800 (PST) X-Google-Smtp-Source: AK7set8ZMvlf4dSAUu2RnJciHniMayC5nzObaUnT4Z178SGr1+TkSECmmJGfRlusKZJXEN3+E2JL X-Received: by 2002:a05:6a20:1448:b0:c7:770a:557f with SMTP id a8-20020a056a20144800b000c7770a557fmr29198288pzi.50.1678379662237; Thu, 09 Mar 2023 08:34:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379662; cv=none; d=google.com; s=arc-20160816; b=namIJugneu7UPtKRS17XfZkvadzQIKpXmByGGPOsZF4ws2dXhbTxPQ/XoTgl5hZzqW eEXk25t9SPbMZ3xvcUSiVgaN7bmeLaBQfxXISClnla6+5BnqcI/hPQwezqRiOay+O6RJ SEWERVOU/LJWxgoBC6jLd5SQcSdpwYsNkY4+9WHTPpLTNZN9eJBjdY+tM/09Rl579MTu S+o5boPejnoO0DM+R/RjcdHPENo2HAFnYH3Sa9yB54HQF6NQOAug8tt/mx41AzDSISPL kyYUEzaOGQDjBWZugYopWwoaOP+6Ei7T4O6kv6QL0DUcA0S4KldKVzS12OHuKOkHCUJf i34g== 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=BakC+qpuW38aK0OvnJ1f/WEGdxh5L35SOezAYZ73eHU=; b=wJ3psa+QUz6MGbibBNwMEdhbgJuG7qOtYkaryGPAs6LYuUO4EjHp5RA5FU+QDovXkM gZJ2YV/vf5ab9/90+hpKRyvwK3XHIOVruRNi3TJ+Q5hQfBWPmXG1wk/jvx2Eyk78PZsp hMIDAEE1FZUyWKcfynZ8sA/fQY4KCU7aoBTo8oICkmyq4maTXskC0aB6BSCnfuIsg/7Z T7YpHhYBgxP9Eo/cC8+sCHpZZjrgmC9H/5DrYYPdJSMFqbZ9JFpPkHe1jmKDaDlN/Fei wts0o5NWH/yRQlxm3Cnlc/SBwGr6xDtvE860SoKO9gWRv31fAPK/1IidgE6vTTJ1Zn33 1tVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=XFi7a4C4; 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 g15-20020aa79dcf000000b005e8c9eb792fsi16980084pfq.221.2023.03.09.08.34.06; Thu, 09 Mar 2023 08:34: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=XFi7a4C4; 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 S231534AbjCIQDs (ORCPT + 99 others); Thu, 9 Mar 2023 11:03:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47314 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231437AbjCIQCM (ORCPT ); Thu, 9 Mar 2023 11:02:12 -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 2E6DBF4B43; Thu, 9 Mar 2023 08:02:11 -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 D9A1522140; Thu, 9 Mar 2023 16:02:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377729; 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=BakC+qpuW38aK0OvnJ1f/WEGdxh5L35SOezAYZ73eHU=; b=XFi7a4C45OfxOHx5jgZ+i0LKNg8gAwwfcG3ShZqKuRXRvUkqWivkW2ccfIGNTCXLYSoE4j qNBQORlM3eqc2qAnUBVeuPmN1TspI/Kgo2IxshP2Nx3bHhJKiDOlw7/c2LJZWBB4tXC/xB Ent68vf/FIDuj+AYJPa+IIcpSxHB0bM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377729; 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=BakC+qpuW38aK0OvnJ1f/WEGdxh5L35SOezAYZ73eHU=; b=Ef6P6ITBLVfSGVJO3NvkatljcdmXt75pT+KY1K9qlZnnXcUypKQX1VufQCoBjDUfpvNt9r pQ9vkEojb+plrEAA== 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 7840613A73; Thu, 9 Mar 2023 16:02:09 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id oNJwHAEDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:09 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 013/101] fbdev/au1100fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:33 +0100 Message-Id: <20230309160201.5163-14-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908632682264353?= X-GMAIL-MSGID: =?utf-8?q?1759908632682264353?= 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..0c063c8e6312 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; + 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 Thu Mar 9 16:00: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: 67018 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389754wrd; Thu, 9 Mar 2023 08:35:38 -0800 (PST) X-Google-Smtp-Source: AK7set/5ISnXkSBQY0omQryMkKZhS7ZwoI2Zuz/3iiX8F/RqEUOLeLBI5cMDdUnbr8iZJ5VJuRSZ X-Received: by 2002:a05:6a20:1a12:b0:cc:8e18:420f with SMTP id cj18-20020a056a201a1200b000cc8e18420fmr19541706pzb.35.1678379737806; Thu, 09 Mar 2023 08:35:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379737; cv=none; d=google.com; s=arc-20160816; b=kJzC4jHyNS5bhdYgLlUmx5S+ZF88yuRVnQImleS0nVm/bAjPSARFz4tBrxo46akO5+ auS1y0OakGYKn69pkdspCY03Q2F8AWRqnLtWnXWzZEnb8mizg4gRWK1HUutleWjuMwHh +hpo7UQLtfAly9c5qGlPC+59LjMm2ziKdton5Ayool+Orw0CEqJx2QyRmlIdIbFDzmrm uRiPu9lMWPP9WI+YHsvQWtpdPgxmbRCgs8ghNzJRNh2hwkEpVy21BnK6QICovwrPoRrP 4tCaVCzBpk5FbIhLoQlW2fx2nCwvvHYBvN0RGXvTOvXO0G1uCjgW+qEa3ZoDQW7pnsti X5GA== 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=Xqb9CgIoQGPm/XxyMitPmhdSDaGH79IsOOqR6TG8g1I=; b=sMUpP33UpDtgkPrihQL4eBZgKcrt1KyPjKsKw363dTD7Z1uzaLAmyuKC518UtBZU7c xGnaRLea8VYyGq2XBLwvfIEavQ7hzrzxe+qbdLGKdFCN3l0ydVMtQs2ivYiGaTnV0jKj 7LbtroLnmqOdt1QVD9BGHNm/lqBB31EzmatXOPf0/GWWCFLxvQJ8WsZbnvRk1TUwtgJ0 CZ6WcbPr3xDjThAD+mNyvDv5HYT52HwP8Pr6ArcxyN4tqfkcK+QrRhI7iVTmC3RO2g0D 73Ud15qjmp4lj3+ljYte8nNHl/gfvqullx22+U4ZE5xT5CETaPyEKDXW9SW0tiE8O67O 9BDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=CeFZiktd; 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 bc22-20020a656d96000000b004774a024588si17422502pgb.719.2023.03.09.08.35.25; Thu, 09 Mar 2023 08:35: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=CeFZiktd; 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 S232001AbjCIQD6 (ORCPT + 99 others); Thu, 9 Mar 2023 11:03:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231499AbjCIQCM (ORCPT ); Thu, 9 Mar 2023 11:02:12 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1AFDF4B7A; Thu, 9 Mar 2023 08:02:11 -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 5144920180; Thu, 9 Mar 2023 16:02:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377730; 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=Xqb9CgIoQGPm/XxyMitPmhdSDaGH79IsOOqR6TG8g1I=; b=CeFZiktdszGYTi/TFyAP/ldlwhwuYupWUIF8tFKc6aafQMfvB68x2fKK6RCTZ2dKq0yJFe PKiygqiGal7n0KWo4eMoRqzqq8uDvuKdTrrsqodbae/SHTXusnmBmasNUmYf5B9gRr/hCa +l7440uanYzdUVQVbOhZzu5inLDIDqo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377730; 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=Xqb9CgIoQGPm/XxyMitPmhdSDaGH79IsOOqR6TG8g1I=; b=2ZDnOM33w7luTv8IUcn8JfTZUfCM8NDRECPE/CedbN1GUmMeWxZ515kMbjBj1afytoFiPy SarN+ubFAu54ViDw== 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 DCA331391B; Thu, 9 Mar 2023 16:02:09 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id aDToNAEDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:09 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 014/101] fbdev/au1200fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:34 +0100 Message-Id: <20230309160201.5163-15-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908711946705551?= X-GMAIL-MSGID: =?utf-8?q?1759908711946705551?= 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..43b6a9dfeec4 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; + 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 Thu Mar 9 16:00: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: 66973 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp387095wrd; Thu, 9 Mar 2023 08:30:43 -0800 (PST) X-Google-Smtp-Source: AK7set+4f7dRmnBamzIaXl0h+icOxcMSQjPGauid7KjVBuHT4u3sTigRVRohEcRUXYtvlXwVn6A3 X-Received: by 2002:a05:6a21:3293:b0:cc:fa4b:3a78 with SMTP id yt19-20020a056a21329300b000ccfa4b3a78mr25304717pzb.19.1678379443408; Thu, 09 Mar 2023 08:30:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379443; cv=none; d=google.com; s=arc-20160816; b=NgzRtwSve0UZs8m72MYjjl/cQEYL+VsgGn5HAuYiI1Z8a76S2cpTSWQ5STBsGG1/BV ORmkEVsI8CakPiqt5+e6SB6aL2n1CI9KYoasb7QkqhNjJF+5vir8+g7zLl5tBOEmfepK RaBnJ0aW2ymr1SPld3q4O1jKdTbNokQU2DuWrIVI3ZfZqUsVtJ9Dk5kG+dTI8Abdf5At dg7HCEqkH3paAJEj1XMbR+Vib4joywLHLiSvjLEXa+nPewAe4Rkk8vVn0jE2Wl2nXVEf IkvhMZpgcSxPnBSQCGh8xNgyCogac1kx8H4sq2mtQQa4O1oR6igU9spgvA+6UPWr85sI RnXA== 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=dDLfWugx/oPOz6pILs/JXlPMBz5A3FDUfG3kXQPg+jE=; b=UdkdSF9afFilu4Iv+aJCJWjT7av6QhS1AoohlookuZWdAI0s9ykKrH22TPCKxfNTqc 8etw4nUQTFrgLYqOVa4fEee5Unj1CBxzAGchipLMDeMmQrq9HjYablbIdWT4U2DmC+Pe 03dOV8eJnrYoN8qeq2Jn+pMlPfYofv7K6Bp6PGqjPwlQ/nJhIpoMB1iJo2pf0Kxp9She jiUCClVLCqngBRM1LRVoCf89Ceb1PVww64t0e+9h2uMksyfjYJkpSPXeVBUK5j5gOhDs AFQz+/U4CU/h7AG7AFI0esXnSn1q64FxPdlnRgzgnZKex/64AfgvX7jYDKIXsvJLTZKn 43KA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=10+7N1Kx; 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 4-20020a630104000000b004fbaad02597si17097783pgb.457.2023.03.09.08.30.18; Thu, 09 Mar 2023 08:30:43 -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=10+7N1Kx; 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 S231793AbjCIQDy (ORCPT + 99 others); Thu, 9 Mar 2023 11:03:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47332 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230286AbjCIQCM (ORCPT ); Thu, 9 Mar 2023 11:02:12 -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 1EC5CF7EC6; Thu, 9 Mar 2023 08:02:12 -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 B6D902017E; Thu, 9 Mar 2023 16:02:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377730; 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=dDLfWugx/oPOz6pILs/JXlPMBz5A3FDUfG3kXQPg+jE=; b=10+7N1KxIlvvKdllrJbUahxa/LQ75ZbLFlZVVLr7VD9pJtlR073sO6rv7I/YqFMa6lB4Ok bIAY8IaxEgsaExB8N45YhTJ4oZLhdYKhrO80gW9ugwYYCXgn3bXNcVeV8bFwCvmZRQqLMS WNWxVj7CVPsE3vjYH7XZ6eW5xex3mD4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377730; 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=dDLfWugx/oPOz6pILs/JXlPMBz5A3FDUfG3kXQPg+jE=; b=ffHZR+Za2tyTYGAnEwADCX6f12QPIzo3WuhS/V+mV+h1tYUfmHyGDHFJ7YVHeQxV8FWUIt gJ/d4jgTaNNdRMDg== 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 552E913A73; Thu, 9 Mar 2023 16:02:10 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id SITtEwIDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:10 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 015/101] fbdev/cirrusfb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:35 +0100 Message-Id: <20230309160201.5163-16-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908403275772956?= X-GMAIL-MSGID: =?utf-8?q?1759908403275772956?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/cirrusfb.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c index ba45e2147c52..85b9442031b3 100644 --- a/drivers/video/fbdev/cirrusfb.c +++ b/drivers/video/fbdev/cirrusfb.c @@ -367,6 +367,7 @@ struct cirrusfb_info { }; static bool noaccel; +static char *mode_option_buf; static char *mode_option = "640x480@60"; /****************************************************************************/ @@ -2336,10 +2337,13 @@ 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 { + if (!strncmp(this_opt, "mode:", 5)) + this_opt += 5; + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; } @@ -2387,6 +2391,7 @@ static void __exit cirrusfb_exit(void) #ifdef CONFIG_ZORRO zorro_unregister_driver(&cirrusfb_zorro_driver); #endif + kfree(mode_option_buf); } module_init(cirrusfb_init); From patchwork Thu Mar 9 16:00: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: 67024 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389953wrd; Thu, 9 Mar 2023 08:36:00 -0800 (PST) X-Google-Smtp-Source: AK7set8PmWatdQoiZdqvzXFiF57HbRKoT+z7DLqA9Lsxg7PCWIZJX+SLvaxtY1SMG4mPDZ13xwu8 X-Received: by 2002:a17:90b:1e4f:b0:237:aed6:fff3 with SMTP id pi15-20020a17090b1e4f00b00237aed6fff3mr22862476pjb.44.1678379759813; Thu, 09 Mar 2023 08:35:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379759; cv=none; d=google.com; s=arc-20160816; b=IjqA71j/VJLSXyEnM4l21IMW1b5ok4lTX2+XIQ5ndOy0nqmRjVsQhIovfb7kkst+Gw wOvdJDe3+fMabkmQCgwTnFejheQmfsKxRpiyaRWnKss0qtiMevbfUPm3yG/gkngvqOEy Mr7OSBMTTaMZimEunGE9mMv4kf0X1VjK1xU2lmrcMmxu8ZaXBhGyzsb3C/0rEJFU8c8/ CHxjdEmT+HkL/WKVqGHQA4ukw0Fh21l0vBfDqtvrTHFMYA7gC/l2/EtB1aa4Tq0QK1+P Adfuop4HgnkPe3qhAqbukgkxTILSJpGn61PCYJGoGZ0k5mftPcAoxIC/apQ6rZS7OXU3 l86w== 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=SJYqvik/3Pi6dI1miyqZ08ohqvv4ZrpaT119P+hD1IU=; b=zS6jXKJnGF4SF1WZNwIsBGSdHnWkXd8krpz2HmqG2hstAIVP2rt3gqhO9KIvzWYuv+ +MewoGJXKHdEJc4e+bzNAtTpucCO6e6nGrAimAwCywQms8ozrCvkFcF5sB4EjXTrGeQL vxR07ZC3WlF2omccBZPIZMcqlbgwdEOGXiUNpLIwsg77eL6TtnHkwgnmbuLhiZTF8NQY DDS90s+R4jHCv60TCxSpv0ez7R26XmyynKvi/3e1QNGcmdSRY3CMX+EU6Bc0GaHXM3zA PBLC48RhleK1Ie1aK2R0XPZEZWsj6OBJEPyizGhiVZzD7YQnJwz1w1iX8gZedZkpStiX PpWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=gZYHkAGG; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b="ZQ/k/eGG"; 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 ca2-20020a17090af30200b00233773a522fsi200231pjb.141.2023.03.09.08.35.45; Thu, 09 Mar 2023 08:35:59 -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=gZYHkAGG; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b="ZQ/k/eGG"; 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 S232035AbjCIQEJ (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47430 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230401AbjCIQCP (ORCPT ); Thu, 9 Mar 2023 11:02:15 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 78606F7EC9; Thu, 9 Mar 2023 08:02:12 -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 2D88920181; Thu, 9 Mar 2023 16:02:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377731; 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=SJYqvik/3Pi6dI1miyqZ08ohqvv4ZrpaT119P+hD1IU=; b=gZYHkAGGCBpzucB+9DfvAz7g3V1UNyAxmXrngjZEG0L4g1gfYV7XA3QOJH5mbsOnKadlra GJUqh69NK1elgbJH/i1IBM9KQ90ZG0lYk79d5Lp0bYcoUd++JSItVK/TukQSdzNtI6t3c3 ILe/E6xdn7X/FHegdfzPAc4Jy2dxrDU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377731; 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=SJYqvik/3Pi6dI1miyqZ08ohqvv4ZrpaT119P+hD1IU=; b=ZQ/k/eGGYhinigMgOYX4ZC7cDP3vEqf1mMU5WFIp+4HmVyn5ftu8J6Yw/+ordqALw4zoJa Jr1gXN4EPyi4MQBA== 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 BA9591391B; Thu, 9 Mar 2023 16:02:10 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id UCGKLAIDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:10 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 016/101] fbdev/cirrusfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:36 +0100 Message-Id: <20230309160201.5163-17-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908734842599845?= X-GMAIL-MSGID: =?utf-8?q?1759908734842599845?= 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 | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c index 85b9442031b3..a5e99a8feadd 100644 --- a/drivers/video/fbdev/cirrusfb.c +++ b/drivers/video/fbdev/cirrusfb.c @@ -35,6 +35,7 @@ */ #include +#include #include #include #include @@ -2324,17 +2325,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) { + struct option_iter iter; 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 { @@ -2345,6 +2343,9 @@ static int __init cirrusfb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif From patchwork Thu Mar 9 16:00: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: 67001 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389062wrd; Thu, 9 Mar 2023 08:34:15 -0800 (PST) X-Google-Smtp-Source: AK7set9PR32ISKzKikDGYTxnsFO9QguBHQlc/KtefXKsDOzQyPTarUQVC5f4yHiDMDzmZH26gdLH X-Received: by 2002:a05:6e02:1bea:b0:316:e949:31e7 with SMTP id y10-20020a056e021bea00b00316e94931e7mr18239972ilv.22.1678379655273; Thu, 09 Mar 2023 08:34:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379655; cv=none; d=google.com; s=arc-20160816; b=oxiC0r/Z2DKm/zKR81RgQ0tHf9if9HomZ/WNf2XmlafrjVpEPLuAc7SEXFQx/tLvZX Q36v2RtnKJ8vsITcrhrs2EK+pReZf3DXXqRHSC1SV2S6nLR+9uUT8WQIqUGDG7Jw8d8v bf+vS2XOXvrdw4zwwIGl073bxhdj/tPWFb0tbV7RMFIsTDIri5zxhts5XYZ4aeWhOFeI n78b/5AvB1WeQKCuhwwsGvVK2z+sKhgbze2eujWUs8chKcBLiGPmRVtcJTcv99iXJIte cncmJJc4m6lEF3xOQhoEzt3nrBhP2n4HhjdLvJlOwsbiP2TBpDqB3zofimfe5sh9gOgf modA== 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=IBEKkPzrcC+wtDEG8d594jNvFYGarlz/vkHUOOjHQxjSexbujJvL/MEpLqjQ8pGLpz X0DeqeeIYYOSB7eGEl2urQG5TXUVTJgwnxLtgHEr1U9UMWuJRoNh0YQlk9aoVHq7fIEx CR1hRZKXUpTrtXpVJtr6pd0VD0N8rvb3zkHsMzT8WTM9sF0Fu6geZ+5aeog9fJaK6c6w lknwvnZkSLoVNWTjtARho6li4bK3OmhLEhB9zRLtlhH72OsI+ZanEZy/kYHsEolD4bEA lY4sw6oXebYv6JA8trA+OESz7or7bngO2Az6OjNz8Gd6G1elDKMoAbNYIAUZPzK+lEkc k1zg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=j1bUaZro; 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 f17-20020a056638023100b003c4e1a4de3asi19072149jaq.111.2023.03.09.08.34.00; Thu, 09 Mar 2023 08:34: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=j1bUaZro; 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 S232013AbjCIQEE (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229923AbjCIQCS (ORCPT ); Thu, 9 Mar 2023 11:02:18 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE0A0F7EE0; Thu, 9 Mar 2023 08:02:12 -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 8710522144; Thu, 9 Mar 2023 16:02:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377731; 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=j1bUaZro/GNGy+fk2Wz8LtwD3PwaoT3szr70HO9xRwywQmSvVc5n74ILV3zN+NPNlwkmfe niX/uSfACrRB2qjWrXSwhOh9PVFHWH1dwikt7bE4OJVnVIA5tGkgb0a2lZNDc0zOtqvI4i oIB6e6N/tEU1P6HHDnjfls8k6AW0qFQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377731; 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=O9zGDvNLBJIyGgz1z92xgWyFir304ZwIsysIm0XE7/mCdh754FeZI3iNEFYas34k3i/1km l9KMuOW3SqzIEJCw== 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 26E6A13A73; Thu, 9 Mar 2023 16:02:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id qP+GCAMDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:11 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 017/101] fbdev/controlfb: Remove trailing whitespaces Date: Thu, 9 Mar 2023 17:00:37 +0100 Message-Id: <20230309160201.5163-18-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908625722346688?= X-GMAIL-MSGID: =?utf-8?q?1759908625722346688?= 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 Thu Mar 9 16:00: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: 66977 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp387742wrd; Thu, 9 Mar 2023 08:31:42 -0800 (PST) X-Google-Smtp-Source: AK7set8KHWmJB2X3CjxNbTpWgSWPccg+URI7PTQWACyUBc+xFFjrftjMxsJj8wxwTq+Mr6AENcew X-Received: by 2002:a05:6a20:9386:b0:cc:d762:64a with SMTP id x6-20020a056a20938600b000ccd762064amr27617577pzh.8.1678379502468; Thu, 09 Mar 2023 08:31:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379502; cv=none; d=google.com; s=arc-20160816; b=svgcxxqY6yj8CQAPevVLiJVYcpWu/+My7Qumd6uABsbm9SzvUNYbKgbP4eAqRxDCU/ xqKnzFjHm43dzCqrDQP1QurH8A0tM9BFwudkEdAJWT6Ejf0eF2TgqaQNgS00Cc656nFC 1x1OLED8m5MtFddJya/rEHkLpQJ2caIfeZ5K2g7dRnNYe+nA2ILufkvrT5XDASVktFK9 S1BBWWeSu7AgrF2A7QqfXO+8/dUO7KnPinMpwigpdiFQTee8IkLw+RHZ2VW9U1o3QGWY fSdNCSyMGz2kMMPreSCQ4kre0W57XdeKEk3Kt59mP+2ZmTOVHBxmGJvhomZTDD3vdtJM 1abQ== 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=yiri3tc/a1MXdsd+j79tZAwP26XU744YZButEfhgQbE=; b=betu5Bh1oL+25rDCXi27iucEN4IFd1l66qDze3iB5lmeZLWNkiz2SWC2fcsny1NdNF 4U9E2VEcc6MScyOY2xqoLw5d3AfoBcqNe8s+Zr6Sf7loe9PjHmtDFdYTZxJSp4umoUj/ ThMOgzUSXjeYZSh35iGgzHx62gxBiHXkDZ4DymcZj5bzy0xZGdJn2RQS1XTFTo7XOBDZ uF4G2ysfRbETJ/sbltGsOfAkB+ebVvnRoAUkJPgTvJ0blobqiPhFFjJfR5tJYsscp1R1 Jy0Fy5PN2P/0hh9NlbjCAATH0ijgbQbBOWj7DAv9kWUU60+7Tqcb3LnTVoPK+ZnQCvyi Ht+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=070go3Ki; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=bmV9xsax; 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 t17-20020aa79471000000b005a910b0445fsi16634658pfq.28.2023.03.09.08.31.27; Thu, 09 Mar 2023 08:31: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=070go3Ki; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=bmV9xsax; 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 S231841AbjCIQEQ (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231538AbjCIQCS (ORCPT ); Thu, 9 Mar 2023 11:02:18 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BBD7F6C7A; Thu, 9 Mar 2023 08:02:13 -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 EC80A2214B; Thu, 9 Mar 2023 16:02:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377731; 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=yiri3tc/a1MXdsd+j79tZAwP26XU744YZButEfhgQbE=; b=070go3KipUxMIObSkyt1ar879i99/CaFVQa+B8/HlgVXaI5PIj5+RV5jgjrZfjZRDwt+Je ZOMRUVB0EvGdDZpRLn9DV0BNp4+e71kmvf7kV8QglGKDREyZ7UfD2dYh4jEuvUI1uI3syu 54KWh7ePUe630ooMf+Q2v4GlzhzNhn0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377731; 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=yiri3tc/a1MXdsd+j79tZAwP26XU744YZButEfhgQbE=; b=bmV9xsaxTmBlD4rVnIpNT+ss9CvC4ALPa0sCOYGgaIMlK7ZMQkkgWY/vrMx+aAFqnVNsxX hbjPh4XgwBi2uODw== 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 8CEA11391B; Thu, 9 Mar 2023 16:02:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id iC2DIQMDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:11 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 018/101] fbdev/controlfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:38 +0100 Message-Id: <20230309160201.5163-19-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908465092664675?= X-GMAIL-MSGID: =?utf-8?q?1759908465092664675?= 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 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c index 82eeb139c4eb..65e2f9949420 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) { + struct option_iter iter; 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 Thu Mar 9 16:00: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: 66946 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp372552wrd; Thu, 9 Mar 2023 08:05:06 -0800 (PST) X-Google-Smtp-Source: AK7set/a/M7r353WUvOUINA+4RsVjXTR5JzksRX7+9s9sWj/kBv3EZN6twUWV+I8dLeoAxCzC0/R X-Received: by 2002:a17:90a:498b:b0:236:84a:8d9d with SMTP id d11-20020a17090a498b00b00236084a8d9dmr23202166pjh.39.1678377906439; Thu, 09 Mar 2023 08:05:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377906; cv=none; d=google.com; s=arc-20160816; b=KnnY4f32x/4K9jfs9TQ5s3fuAmoD/zrpxF/JJgre6RZDvjW6plgMid1vtlznZmts+H WIs5Yv5na4Rq32bDarbkOw6nBSk3G1Jrkt9J4xKaSgTdTdcplk6uiT7wJezZk3sqV/8Q bLSB7lSYNf+GPTtjm+OBIP15gN3Oj4G8/YmsYgOI/8Kr/ze0N+PzTwnNSSt59WTr+MZS 7Ryvef1wdczQ0IwMSh27jcbH8yRNTX1lLk18Q9bSUb7bTrIGbhddliOHtWT3NafWByuw Fi71QdpW87J7hySVc87L8QHaPSLIOi2sjoPND13DsVIDABlYw0iBPbRBoNxF8IMJRft2 FG8g== 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=armA2RVjP0J+ugM2i/E2t8spkqjiPSbrGaAq9XUWPvU=; b=SS9BCS1ERPav/HDOSUdUlXXIBU4XLk4KVvIpW3+AdlWRdumneN6qTGvEKB4InyHeJ7 yrR+KtP6T8XTQZvknvZ02P5VWyL344lJhnkSk2W5Gg8MUcDkbzuVFoZanXEmjn8mgmo8 Tve01jcXyH6BiCnsGVhqynIZ8PJDvu4jvjWlRCBfcl73in0LF3micIHMY5HCxPGpyLpK Yk60dFhxgY5KfF5HfNRXDh6yiCwITIXE7BTLPG9QGDHcQ38uPyGmPnISIv30X6Gnv1gA RDABE8s8g581Tj/LHNAjLFHV5Tpg9wVsZ5zJoTtZiMWYVtNwYBl3mdrzKFywXKFbdypV GCRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="ryF/T115"; 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 o88-20020a17090a0a6100b00230a3b016fesi156402pjo.66.2023.03.09.08.04.52; Thu, 09 Mar 2023 08:05: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="ryF/T115"; 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 S232048AbjCIQEN (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47512 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231567AbjCIQCT (ORCPT ); Thu, 9 Mar 2023 11:02:19 -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 A51DEF7EE7; Thu, 9 Mar 2023 08:02:13 -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 5D44820182; Thu, 9 Mar 2023 16:02:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377732; 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=armA2RVjP0J+ugM2i/E2t8spkqjiPSbrGaAq9XUWPvU=; b=ryF/T115JDXa1uFGASX6UK1HG1fza/6drBaEOmioYeQn9KKVXgpgSpyGoYaSBhZhssTrOf qApRUfvU4k2yqTbanYsL1ubQB0oDFNXJ9xKE7XzsoJOG00V0mpKgdnTuBBNLqMiFkyRqPm BjubRDhc4vkZNe9Ywe3VlPdGe56eHJI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377732; 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=armA2RVjP0J+ugM2i/E2t8spkqjiPSbrGaAq9XUWPvU=; b=dC+nM6CuGsA4PcOJxaE5DvmTCXOaMIl3hitx8lFT7ahO/oCmUYIOAXnuQTAbNVo0ItX05y 0j3G/lB5NsWFD+CA== 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 F262E13A73; Thu, 9 Mar 2023 16:02:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CKAOOgMDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:11 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 019/101] fbdev/cyber2000fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:39 +0100 Message-Id: <20230309160201.5163-20-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759906791435803847?= X-GMAIL-MSGID: =?utf-8?q?1759906791435803847?= 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 | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c index 38c0a6866d76..f21d11a73455 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) { + struct option_iter iter; 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 Thu Mar 9 16:00: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: 66949 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp373244wrd; Thu, 9 Mar 2023 08:06:04 -0800 (PST) X-Google-Smtp-Source: AK7set8GjaF/xuHNOJkPfEl8BWL8CQFBdulBHneUa7jijGky02ukRQ93Vo6XBrgxl5Nk95PSsV5n X-Received: by 2002:a17:902:cec7:b0:19c:387c:bd65 with SMTP id d7-20020a170902cec700b0019c387cbd65mr26817855plg.10.1678377964686; Thu, 09 Mar 2023 08:06:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377964; cv=none; d=google.com; s=arc-20160816; b=DoPdIFG5HmSb75nz9YWs2lJhRtmD4k2EnI04fPhta+YsbDbuT+byNKEjgz+6/eizcR 4kwZ6ViCu8Edz97GMStJiRuaffB8X0b5xjyUz2iSB6/u2Skp2Henmwy6C3VU0KoXsP8Y h7/u9PhBjjxRevs1LiN2pzn7rKnUmqbWMldW+UGY3G1LTKppTG52S2VZm3MZQIG2j2rg Fwq6SiY8Z5Qe/dbE++4AqH5n1ULlIl2D3xpeZtVntqKIYz9S/Mt4Uw9G7HOY7NNia8W4 S/8rjW8TaLTq9uBSsD2l043VtJx2ovJG0t9Io4i4IoP0JjR94SYr2mySDxFMim/KHLzf Neuw== 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=PVdpUcThieHjdBQBTJhLTZp8YL7s1ZuPBMFCE/O3DfA=; b=tSbRk3mgdl8gv72zOqbkyep+ROfdYKOlTea1UwYUX7WfIXB/OGtPtQgYT6GtjdVsAN VqYvNADfzf2viQmtzuVb/jZgQXYBGLya9FLOvtj7MN2fzgXFk4GpAn8X/7VoiZXZ55xz /BkrK2XcDBeMLOeJJWj6vd4wqLW5N1K8sh046KFWeHpKMkigWSaNM2UpVFkn+arIMaiS 2uj/eycg7FNuyo21UzsNX0HqH+V0Mw8FlO4aDvDD5x54RC+YtBwZCX6c8R+RkwRjV2Ie 8Ac5TEwi3u0Sybcdk+DNyOTArxBN6sZpy66ZaOAgz6QLXXUsl+74MMu8bOTlbtc1cMNm xtTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=16Hw9Sfr; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=nlEd+LNV; 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 u13-20020a17090341cd00b0019a9834bb23si20247242ple.192.2023.03.09.08.05.46; Thu, 09 Mar 2023 08:06: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=16Hw9Sfr; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=nlEd+LNV; 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 S232130AbjCIQEt (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231571AbjCIQCT (ORCPT ); Thu, 9 Mar 2023 11:02:19 -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 225F0F7EDF; Thu, 9 Mar 2023 08:02:14 -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 C8DAA20183; Thu, 9 Mar 2023 16:02:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377732; 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=PVdpUcThieHjdBQBTJhLTZp8YL7s1ZuPBMFCE/O3DfA=; b=16Hw9Sfr6Z2pS0gL7MptHMWvTf11QUZOFD9jaXUqUcma/ijNYD6dWj95PKRUBgzn+4ROgT hv9vWl5weWTtTeR651/eU2I3Sh1mFmRJ9tBjByxuuJiPAliq0ThR5nlMC2LeKxSTFTtEeu z5iP0+h5DxNe+WXAyg3dQL1TgYHvL9g= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377732; 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=PVdpUcThieHjdBQBTJhLTZp8YL7s1ZuPBMFCE/O3DfA=; b=nlEd+LNVfDtgynpThxA8Ms6+nW6bkD4nYQo3XkK+bvgmVFMlPUzEig0NE/Q7QYPW1HY8Jf 3tVPZCAUwX8XNxAw== 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 62EFF1391B; Thu, 9 Mar 2023 16:02:12 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id aAomFwQDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:12 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 020/101] fbdev/efifb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:40 +0100 Message-Id: <20230309160201.5163-21-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759906852615537963?= X-GMAIL-MSGID: =?utf-8?q?1759906852615537963?= 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 | 42 +++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c index a5779fb453a2..be77a76f7d1d 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) { + struct option_iter iter; 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; - } + 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 Thu Mar 9 16:00: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: 66947 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp373192wrd; Thu, 9 Mar 2023 08:06:01 -0800 (PST) X-Google-Smtp-Source: AK7set9qiOqUEWf6DRrRCPN8n3sFh8MMeAOjmk3P+lM0dNPX7u6gqX2luE5PuL45S1WgRJUkFSxG X-Received: by 2002:aa7:9dd2:0:b0:60e:950c:7a5c with SMTP id g18-20020aa79dd2000000b0060e950c7a5cmr17797888pfq.10.1678377961043; Thu, 09 Mar 2023 08:06:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377961; cv=none; d=google.com; s=arc-20160816; b=NUHxNyIiyvlauW2fULhkCVAXodMzmJyQAkj98UEd/0xRWrrqha7y81bcHJfaTo1DpA itw2O3gj8e3RAZmjtnwreIANPGkC+rQ/tRyFb6E2ddAeXvDzkU4vsN5dm6wvXEb6O3QC u+WYr5RiVDmoGhsHMJDH18aggZrCNoD/k6i++qMeiOtdWI6kGryrZULPSsn2Nd4V0XN8 Gb8xgXVr2SGoNbgwZki2TWTqG+LLFtxaJkG/jBktQOF3fJ1g4/2Rw1fWQqj/0e7xcNPe UqLDh0j9DsXLwXKBOwRlsPo9mhAPa5hOoRv2Zf0w0o24J36G/ur6fVd4C1y/zGBpcN7s 2liw== 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=Np3KLwLTug/nY/Fdd85EALZxqT4po64Lr1C8Ggq6sKU=; b=ArDGhjTFLQEu/ouU81ootBziAa+QvYjIu2yb/ARP6hoxzNiTKXiVwTT2BOlu4yc67i YnUvj3fFJZip6DZnXwaZQM58LrJgOFsbdaxf3N8RZGb0yCzpqAK332qgMEHc+W7lqDgp EHaHDMZiiUnVZQzNRPDzWvjzQYOOHikPZdfFBjOz5fz/orOjQ9X/kE8dEhZG1NI9ZIIg FxeQMAk483Lv3Y3fMCHvR9upVc4pSEJB98993SaYLjgSh7dz/u48n+H2ZqIP+0QKBwXV I9SPoa/1j5+1d3OzytztK0s76KaHB6oPVuWwZ4XlKWeyAt88pwy6PMCuu9+zeSD2GdXZ s0Qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=qvbadaxK; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=pjO7IvuP; 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 a15-20020aa78e8f000000b0058d8e5bbbc2si9331483pfr.146.2023.03.09.08.05.45; Thu, 09 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=qvbadaxK; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=pjO7IvuP; 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 S232154AbjCIQEw (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47516 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231572AbjCIQCT (ORCPT ); Thu, 9 Mar 2023 11:02:19 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7804DF7EE8; Thu, 9 Mar 2023 08:02:14 -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 3814E2214D; Thu, 9 Mar 2023 16:02:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377733; 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=Np3KLwLTug/nY/Fdd85EALZxqT4po64Lr1C8Ggq6sKU=; b=qvbadaxKvp1noT6DoGvm+AwRmeC6+21r6LfXUfUDvwRu0mb/OxVeBXKEHcGHW6A+uaJ2NC XN586IeAxIbL/ffgerbQqAb//Ho1djkmuB1acbrdxBkaHCS5tQf4pSp6jRYEK8Xb5vc0E/ 9G3CLxpHuKhTO+u6SrCLAL4eniXryLE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377733; 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=Np3KLwLTug/nY/Fdd85EALZxqT4po64Lr1C8Ggq6sKU=; b=pjO7IvuP4Vs4aCtukvv53fpiuI2YNdDpNI5GArfbsx4voonpeNabkDl9wD8yP7pW1as614 gC5DNeizEYxJZfAg== 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 CC5FA13A73; Thu, 9 Mar 2023 16:02:12 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id YJv2MAQDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:12 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 021/101] fbdev/fm2fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:41 +0100 Message-Id: <20230309160201.5163-22-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759906848837222254?= X-GMAIL-MSGID: =?utf-8?q?1759906848837222254?= 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 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/fm2fb.c b/drivers/video/fbdev/fm2fb.c index 942e382cf1cf..a787884a6a7f 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) { + struct option_iter iter; 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 Thu Mar 9 16:00: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: 66948 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp373197wrd; Thu, 9 Mar 2023 08:06:01 -0800 (PST) X-Google-Smtp-Source: AK7set/leLj3guOOaNbdVIQCubh21LalydIZ2oz64fi2KDjRiHrcb8truntN2/2UjaI/p43yvX4n X-Received: by 2002:a17:90a:34c:b0:23a:baf:ffec with SMTP id 12-20020a17090a034c00b0023a0bafffecmr22869690pjf.22.1678377961280; Thu, 09 Mar 2023 08:06:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377961; cv=none; d=google.com; s=arc-20160816; b=Psx59UbsCPpvRafJf9dBUOce5uwTI2MFXzhJ0IjgHKLoBLNDTSHDzyoR3JpaagDoe9 jHKnXrHIA3w47r6PYRaspSu1Ileyykczyr3d0JEk589Y/1wQZmzoIhHRCXizQdMp/naS FR1Su6nvv1kb827995Oq7ZLO+8hppSXyjS+Eo+3W0Du/zNnm0H2rlwtkftM1LfrqQPiB KYrNsR+N0KpsewLR/NXadWwEqoy2E3qSAhlvdKWxN4H0WDRJnNtOvE1O7BCgLyo8tOzD ev/V6xdjeD439fnxHsY8BeXSWjSGkpuuJ4oZUH0MHMZHYVF3tiTiiozzX5xBc2T4eNwp YHSQ== 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=EaSo/FjIqDYQ8wz/hJX7q8fOkI//7V7PpDYHGeI1dog=; b=mXsebbyc3AecmfO3X47RRk5wmmY1zXljPWLgLJTkicrxJxDYsFDd9g+wSOFq9cH3IR VpniezL0JkqPn4VvKj5DcBSviwZvLX6t30xfC+3DNomrYlqdTKzLLrNcoQf/TFbkL1st 1n3cwpFza15OaV2aiGt/snoQtdxWMY7z0rrnow7pIOZD+6vqA/5CgUzJEKQbHAoXQK0u xP+k0/gc7PsU2LNBdPICP4XRXyFtXGgzJ/MeTmcsiCafezllCdgDX6EZ8Yj9yJpi2/uo UrfsYTBZOnxzmWy8bkxWVw3pFQ3pZiIoSTThYcl5rjg4yWGU0kojXBx86ps3ucre74qb SoiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Zl37TQUB; 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 o3-20020a17090aac0300b0023412ab58edsi159837pjq.90.2023.03.09.08.05.45; Thu, 09 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=Zl37TQUB; 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 S232101AbjCIQEo (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47430 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231516AbjCIQCT (ORCPT ); Thu, 9 Mar 2023 11:02:19 -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 EAEAEF7ECA; Thu, 9 Mar 2023 08:02:14 -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 A35C620184; Thu, 9 Mar 2023 16:02:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377733; 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=EaSo/FjIqDYQ8wz/hJX7q8fOkI//7V7PpDYHGeI1dog=; b=Zl37TQUBIFv35lY19n3nS3tLa2FFsxJiXyKu0ntn9OitQvN9qV64et55L5ncF8OcVjf1WG +XhohQK5UXH052azkgnzyxd2nz1Qkd2OpTkdSpPgCbdwQm66W2+1CxhiLiFNZG+6j0kYbB FCaopvk9eAADime7c/aNy05Dz1WxNs8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377733; 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=EaSo/FjIqDYQ8wz/hJX7q8fOkI//7V7PpDYHGeI1dog=; b=5Z9bcjxfst7+0FQNfLF+GH7Fj0qv2kRw4n2NnnA6eoV1qR3tPb9t9COkW0Qxg//N/8Sp1y VxZyjZLTaEHrOGCw== 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 3D4AF1391B; Thu, 9 Mar 2023 16:02:13 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id sJ7uDQUDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:13 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 022/101] fbdev/fsl-diu-fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:42 +0100 Message-Id: <20230309160201.5163-23-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759906849162003501?= X-GMAIL-MSGID: =?utf-8?q?1759906849162003501?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert, Timur) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/fsl-diu-fb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c index e332017c6af6..033bbf0c40b7 100644 --- a/drivers/video/fbdev/fsl-diu-fb.c +++ b/drivers/video/fbdev/fsl-diu-fb.c @@ -307,6 +307,7 @@ static struct fb_videomode fsl_diu_mode_db[] = { }, }; +static char *fb_mode_buf; static char *fb_mode; static unsigned long default_bpp = 32; static enum fsl_diu_monitor_port monitor_port; @@ -1858,8 +1859,11 @@ 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 { + kfree(fb_mode_buf); + fb_mode_buf = kstrdup(opt, GFP_KERNEL); // ignore errors + fb_mode = fb_mode_buf; + } } return 0; @@ -1978,6 +1982,7 @@ static void __exit fsl_diu_exit(void) #if defined(CONFIG_NOT_COHERENT_CACHE) vfree(coherence_data); #endif + kfree(fb_mode_buf); } module_init(fsl_diu_init); From patchwork Thu Mar 9 16:00: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: 67041 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390510wrd; Thu, 9 Mar 2023 08:37:03 -0800 (PST) X-Google-Smtp-Source: AK7set/IAudNs6sJLgKBTvrGog0tbCZ6KIf8E/cwAYF+gEkwHNNETroHoflR8CCKtvAchG4mi7Di X-Received: by 2002:a17:903:1d2:b0:19c:d97f:5d1a with SMTP id e18-20020a17090301d200b0019cd97f5d1amr29071818plh.55.1678379822704; Thu, 09 Mar 2023 08:37:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379822; cv=none; d=google.com; s=arc-20160816; b=n1CD/c5qdJQS6moSI2E1xIIlCq6QxDlW8MdiIpLfdHGo0HCmlrnOJCFsfJ7rvB2Osu 6xw3lAjBetn3pdvEHGtZEWsJThNhRIWZTum6kWektWRF5EmVRvzDS+ydMEmtnCyaxPfz 3g7IZjcmtCQq/BK16rzEJUZAw/dB9TMi+Cx6IgXHrzDIiVgEvHFgBIu0bsqdjG270wlA zzG4YfeNTdzTayBb/hf1EWv5IOHokx2gNVbhWSPSPjV9g4ZJXVR9lw6cTqpJ8s+6Ht/z VfgK3Xo1vaRJoNjolh2CCi8h2M0LbwZYaqjMemU2tL1u9XqgwZrAcmMundvr3/r9ivRZ lydA== 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=ThHqTav4uwh2rVs7lCpTQaurYmXorgnHNJfG5xnTYZU=; b=p3t69hY0+G18FdhpT1IaYQgW+UPBKDeE191UCtZslGV3dgIbx1U3gU4EFt6vPvB3gy bUgsJD4Am9KKbTGFXDDuuciQtVsJphzawSTtmzcxq5P8LWq6sjaW+kQkTgODYBV+I16w DUvieg+mFvn+Ci7A0Nx+vgpY1CJz9st/+kGZvH6EPgL9jlixVHoIArpU8qOnI+Kf5+f2 NZs66veaexmHWSVdsOzFXqtXcY5ohs6tWbqCI8FnW/CcwlisRTdN1yWcDtnxWcRbJrO+ FoClulJRLN8e7ro5tgjiJxcfQPppcn+uqeALl0UqsvkVkRbt73N+553iIbYBavgyZ60y bBTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="JI/MM8UO"; dkim=neutral (no key) header.i=@suse.de header.b="v4AQH/id"; 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 e4-20020a170902b78400b0019a5ba5c5ffsi17087539pls.437.2023.03.09.08.36.47; Thu, 09 Mar 2023 08:37: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="JI/MM8UO"; dkim=neutral (no key) header.i=@suse.de header.b="v4AQH/id"; 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 S232085AbjCIQEg (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47522 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231583AbjCIQCT (ORCPT ); Thu, 9 Mar 2023 11:02:19 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 58CFBF7EEB; Thu, 9 Mar 2023 08:02:15 -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 130A922146; Thu, 9 Mar 2023 16:02:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377734; 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=ThHqTav4uwh2rVs7lCpTQaurYmXorgnHNJfG5xnTYZU=; b=JI/MM8UOj3mttyyvNxQT55J/DxrPlDbv/0caRtrtlq8Jc0peUKF8xVYKT2FaC1z4WrWpnU vOiGRr6uyQzJmVzrMBXtTq1loGz9P5ib1QR66nxFPW5EPvfOU2RpqzEqvPKP+o0FTO+M5T nQM5DVwKaki7iMgitGDhenysoa2oZrw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377734; 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=ThHqTav4uwh2rVs7lCpTQaurYmXorgnHNJfG5xnTYZU=; b=v4AQH/idjIDBITGE+v54gw4Arl0gq7SNLszKCyHqthcol/GcusstzRAfHdaE7J9qA+5p1k XL5jStaexJg5AqDQ== 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 A799D13A73; Thu, 9 Mar 2023 16:02:13 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id YAPyJwUDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:13 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 023/101] fbdev/fsl-diu-fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:43 +0100 Message-Id: <20230309160201.5163-24-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908800861393599?= X-GMAIL-MSGID: =?utf-8?q?1759908800861393599?= 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 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c index 033bbf0c40b7..78996995568c 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 @@ -1843,17 +1844,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) { + struct option_iter iter; 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)) { @@ -1866,6 +1865,8 @@ static int __init fsl_diu_setup(char *options) } } + option_iter_release(&iter); + return 0; } #endif From patchwork Thu Mar 9 16:00: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: 66999 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388894wrd; Thu, 9 Mar 2023 08:33:55 -0800 (PST) X-Google-Smtp-Source: AK7set82D4ZZCdLks4DKk56PnilDjwYDns5hf6nB/8CFd7UiEtl5BP+rbu7ldjJIZAvrfqoIZGFI X-Received: by 2002:a62:3346:0:b0:5dc:6ddd:878f with SMTP id z67-20020a623346000000b005dc6ddd878fmr5031508pfz.2.1678379635094; Thu, 09 Mar 2023 08:33:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379635; cv=none; d=google.com; s=arc-20160816; b=ivg/nrCxTjywcd2I1WNr+gklQwW1rsWwTL5SOn9vg/ZHCaHu0nLZiUR8SphsNP9dp5 GsDofKhOFLMP+UzUYaahLGZezpS0jH0dze5qBlZ6S9a2f8k604lQKlcnsb5zRSWCkmIF zodM+lmH3uM92mCyShDEw9pWLDC4bXHL8hxmv6ZGGHIkarhaXbJWxRIaJ68ACORdUwV+ R2FgBSV7lb/wOS5Gkx1ov58eFF2hHDozKw6vfNXVxYPpKBcAMFzegvzrnlln7CMS/wvL 7mmokomHJf5Vza7qdpcRlAjB8YRm9y4q/bzhGx4BwUxvrnvwnfKn+rXJrukYDIUSQ9Vy sAUg== 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=5JMjEoQogcrjmsqu51HKwpFrv2iLEJJ/Oo/4GHoGRws=; b=ZYZSg5Eqy817ZTcNX1peSDMiTSZdBICKEyBTcBdRwwkGXODE7Xs8CycfvDnPMZvGyK LPqUK4Y+2dy4hy2x5AZxca2w3ESc8rCWd7nrk2i0UIkjUa7nh+PNIJjtPGFIQX/j68Yj KYOZ2LR3jMM+ziqL4wpAHkZPR75qzu3vLLww1GUdHrx/bDfzXGLpQ2Ez4Cq6I/ZayDGS hCr074gSOG205a3NGqUKi1qiIE8GRqEX767jWWQ68plW4csuUFOKgHQmc3kEbqflVOIN yjoi6n3n5Ihaz++jx6Fdi9KNjKpTThCLtGDHp4UmVuvHIG64R/4yQ/UOiTG6JR+Buqyg UGkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=sNBIHSrL; 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 e11-20020a65478b000000b004e5833b1fb8si18470401pgs.275.2023.03.09.08.33.42; Thu, 09 Mar 2023 08:33: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=sNBIHSrL; 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 S231878AbjCIQEd (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231205AbjCIQCU (ORCPT ); Thu, 9 Mar 2023 11:02:20 -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 E629EF7EF5; Thu, 9 Mar 2023 08:02:15 -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 789972214C; Thu, 9 Mar 2023 16:02:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377734; 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=5JMjEoQogcrjmsqu51HKwpFrv2iLEJJ/Oo/4GHoGRws=; b=sNBIHSrLX9UvltrCxEcNhqallLDoo+9VXOnZec4nZMBSLwzlfl2c3nz7lONy+VXn9VMXMI U5e+3ktrbB6Qlbel+eXxH3jkO2I8TQXYdu6X0LIBqQAUtQDpKCW9vookqY/06OI9mC3aCl eS1ru2OwhdknbFgbq2x1o/haR1PVf1I= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377734; 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=5JMjEoQogcrjmsqu51HKwpFrv2iLEJJ/Oo/4GHoGRws=; b=4P9Op4fI40mAiOVLUlkOpvDux7d9MlcMnN8FO/CPJMtW+wvKHIVh+dcEAPZ04A3kieV2XL vdrX+cBk3qouBODQ== 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 188A21391B; Thu, 9 Mar 2023 16:02:14 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cCEKBQYDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:14 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 024/101] fbdev/gbefb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:44 +0100 Message-Id: <20230309160201.5163-25-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908604134756436?= X-GMAIL-MSGID: =?utf-8?q?1759908604134756436?= 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..6afccd4ef0a8 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); // ignore errors + } } 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 Thu Mar 9 16:00: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: 66991 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388467wrd; Thu, 9 Mar 2023 08:33:07 -0800 (PST) X-Google-Smtp-Source: AK7set9LkbmW8XN3sWu5BHJF+yuE7Xx950ms59brqMkBHLHNc+r3HI65fX6H7EekjuJf1LIgpneW X-Received: by 2002:a17:902:dad0:b0:19e:baa1:26bd with SMTP id q16-20020a170902dad000b0019ebaa126bdmr18294731plx.13.1678379586866; Thu, 09 Mar 2023 08:33:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379586; cv=none; d=google.com; s=arc-20160816; b=Jup/jfeFTOy0UMFKv2e1ICAAaUhl6s5AsKJ0W/8c2kKmQADckgucN0WdiTyz14Pkgf gvzv8eO/Ch3pj2zAvQ64wFqaOrSxPO2SSYpzLiURIIjp4ENM842zy9ZiEEcm/ngDeHGr NuUBzfl278FPE2bCOFy+J8X0p7h6UwOIEqlMjynYoYoaqroof1r7oIndOU+B1RdrZ63d hTEpTqN3iDN1dzoWPq9oNVwKYMiOkC60oaVrpve7alBJC/hYF1KP9/26tFfOa3+EL73T FsBm4HEurTLou4X13WFKSsSN9VxdCvSJRW6iV4e35HFR3W6zGBKnXHX1M7MTV9BpZ2i8 tYcw== 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=TLAbF/IxrYzQxfqgNl+fEpo2kh27uLHCXxP09jiRWPw=; b=rmPFH46qGbFU0pmCoFZK00RF6CeTF0/d3K4CiGssobWFhbtjQ/0eW3Me1iJWxoAJPh udD1/zYaXrzAlDb3iykWdO4IWdvMR5pFVyvR5A8snF8JsHA6SdWaAHmLNZ9WfrDw2+HT 1DcI1/D3VmYx2UiU4i0bPvLjJwMRQFH9gAStqmrEQeG5tghRT3+q/0QACl6HU1cxkpcg QlVOlkK7bofVdnkkRJhf7PulGI9NmIxENuiinP0hiGKqdOImyyGlEZ4Bwh+y6bVs0Tbh BL+rUfPQ7sF7AB/j51rkLa+46aYeOTmcIGEmtSK8k7dkWDT3nuUI/T+Ph3F4TZPKQMKD pCUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=kj2x0IHO; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=e2yv93Pw; 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 kv13-20020a17090328cd00b0019e3ff97af3si16631861plb.338.2023.03.09.08.32.51; Thu, 09 Mar 2023 08:33: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=kj2x0IHO; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=e2yv93Pw; 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 S231271AbjCIQEY (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231599AbjCIQCU (ORCPT ); Thu, 9 Mar 2023 11:02:20 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 62BFDF7EF8; Thu, 9 Mar 2023 08:02:16 -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 DF52F20185; Thu, 9 Mar 2023 16:02:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377734; 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=TLAbF/IxrYzQxfqgNl+fEpo2kh27uLHCXxP09jiRWPw=; b=kj2x0IHOwQcNEXkOXVMEVAYq0EewgaGYxEERzn/eUbv3dzSYiIwsdTCp8d3VJPgZrl7NNB Qw/yTygda3ZtiOgJ+5cD/md3t5yrORSJ2RH03DZaphZ9rWEPO2Tyff73AvkubvHTUITkC1 TVfM6Kf1/lomVGt9sGU8Q/UCRmzXfUk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377734; 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=TLAbF/IxrYzQxfqgNl+fEpo2kh27uLHCXxP09jiRWPw=; b=e2yv93PwS/2CiePmwpZz9ZSeF+8FyK/MqZwOhx/1thcc4CLcKfEXMIIF7PZqCAAHSRtMqB H6wSXe69c+C35SBQ== 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 7E2CF1391B; Thu, 9 Mar 2023 16:02:14 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 8GzaHQYDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:14 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 025/101] fbdev/gbefb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:45 +0100 Message-Id: <20230309160201.5163-26-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908553488876578?= X-GMAIL-MSGID: =?utf-8?q?1759908553488876578?= 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 | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c index 6afccd4ef0a8..d20ef48263f3 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) { + struct option_iter iter; 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); // ignore errors } } + + option_iter_release(&iter); + return 0; } From patchwork Thu Mar 9 16:00: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: 67038 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390474wrd; Thu, 9 Mar 2023 08:36:56 -0800 (PST) X-Google-Smtp-Source: AK7set9MOpv77O0mBC4ixJi9W81DYYtWDrqFdPnsGvTgQ0afmWYDHGaXkktSAV5oliKL6Xej978Q X-Received: by 2002:a17:90a:1a49:b0:23a:6f7e:c0b5 with SMTP id 9-20020a17090a1a4900b0023a6f7ec0b5mr23415423pjl.18.1678379816643; Thu, 09 Mar 2023 08:36:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379816; cv=none; d=google.com; s=arc-20160816; b=MiW2F+KzddWEISypEwBmFhIi+fzau4jqQUoAZ2ABJiV2vsXgxmby4zJilE5SZkCR/i 0p45AkCCNlUdvetx0a0HgVlD7U+s4yQ7COkcy3yMb7p6CZJfC0n5e5uZENMWU8lBwCLd JfNlQDdn90Hb24Cl8OXqvk3L/IC+9mKvOoSuNM0/jUXdtdyIODlf7gaRok+28VypiwRA l5wnVNgBY9e0QT9t2s9jrueArrJmJ2Wo0rdO4cfcUJ0GK+X98K+vpZ8DEDCEOl7K+PJj 2YwhYjoYSosLXWGvQPkXI/U998O2OluQMDy9KmlpawrvFnkTtohUp97KQdzoeMPAcgTD xbwg== 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=beRjODUzm3MKJbdpk2tBhf5WWDQY92luTF+R5dqwPjA=; b=LYkQr/nKIjy5mVGzjVIskj0dnzr5AZSKGp3lnFl/itw0lL701raMTI8aVT3mrbYvsB Qxs5GkBaUY6tm3/KyB5MGoze77Y3JU4h+HNNPqehkh/QHIPrwFThmOyX3LXWqKsHwUlH /gzodylzRIFGo+qyqsacQ0M8+QofYHe6UiznoqJudcoMYFxb8dYM+1OZgqAEjoS+Ae1Z id+3Ug3WzrRlTRUQJDK/BITTog1S+PVI16Ewj5SgmlU/gdE6SgSEQM06FonU3vITXx+s OU0G2/hOWAa9A1dJNgcNaM8j1I+X76ARM1s4+71HhqxqNkgDgI+/jN0+KCucI19IMlyx mSCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=pUwW8HBJ; 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 lk8-20020a17090b33c800b00233ce76f19dsi249215pjb.11.2023.03.09.08.36.41; Thu, 09 Mar 2023 08:36: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=pUwW8HBJ; 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 S232172AbjCIQE7 (ORCPT + 99 others); Thu, 9 Mar 2023 11:04:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231605AbjCIQCU (ORCPT ); Thu, 9 Mar 2023 11:02:20 -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 A89ABF63A3; Thu, 9 Mar 2023 08:02:16 -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 51F312214E; Thu, 9 Mar 2023 16:02:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377735; 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=beRjODUzm3MKJbdpk2tBhf5WWDQY92luTF+R5dqwPjA=; b=pUwW8HBJkF2ocJX9qli2ulpDhWr2ssZMvfQASEOr7bslcgCqmt5rDyF3SwAaxwQXObPchh VZHCfyivOK0DJPNrnkgiUuDJawuRJQurJ35rCJoCq3jVMvDTI7vFpFgdqmlM3qrhdbETtv 7tsuJiCJyOOcsegB/oLGrVZpGyEIB7g= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377735; 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=beRjODUzm3MKJbdpk2tBhf5WWDQY92luTF+R5dqwPjA=; b=A2hAg8tHxO+4wrA5qr2HRyoVQc3FWQZz70HH0NzdlGLnr94vmvgD36NUurqW0Nxg/G6x6S BjZBRq81pUDC6zAQ== 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 E5A901391B; Thu, 9 Mar 2023 16:02:14 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id qNQFNwYDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:14 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 026/101] fbdev/geode: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:46 +0100 Message-Id: <20230309160201.5163-27-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908794744076165?= X-GMAIL-MSGID: =?utf-8?q?1759908794744076165?= Assume that the drivers do not own the option string or its substrings and hence duplicate the option string for the video mode. Allocate the copy's memory with kstrdup() and free it in each module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/geode/gxfb_core.c | 6 +++++- drivers/video/fbdev/geode/lxfb_core.c | 9 +++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c index 8e05e76de075..491de0ac5876 100644 --- a/drivers/video/fbdev/geode/gxfb_core.c +++ b/drivers/video/fbdev/geode/gxfb_core.c @@ -33,6 +33,7 @@ #include "gxfb.h" +static char *mode_option_buf; static char *mode_option; static int vram; static int vt_switch; @@ -500,7 +501,9 @@ static int __init gxfb_setup(char *options) if (!*opt) continue; - mode_option = opt; + kfree(mode_option_buf); + mode_option_buf = kstrdup(opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; } return 0; @@ -528,6 +531,7 @@ static int __init gxfb_init(void) static void __exit gxfb_cleanup(void) { pci_unregister_driver(&gxfb_driver); + kfree(mode_option_buf); } module_init(gxfb_init); diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c index 8130e9eee2b4..6863ee858d8d 100644 --- a/drivers/video/fbdev/geode/lxfb_core.c +++ b/drivers/video/fbdev/geode/lxfb_core.c @@ -24,6 +24,7 @@ #include "lxfb.h" +static char *mode_option_buf; static char *mode_option; static int noclear, nopanel, nocrt; static int vram; @@ -635,8 +636,11 @@ static int __init lxfb_setup(char *options) nopanel = 1; else if (!strcmp(opt, "nocrt")) nocrt = 1; - else - mode_option = opt; + else { + kfree(mode_option_buf); + mode_option_buf = kstrdup(opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; @@ -663,6 +667,7 @@ static int __init lxfb_init(void) static void __exit lxfb_cleanup(void) { pci_unregister_driver(&lxfb_driver); + kfree(mode_option_buf); } module_init(lxfb_init); From patchwork Thu Mar 9 16:00: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: 66994 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388603wrd; Thu, 9 Mar 2023 08:33:22 -0800 (PST) X-Google-Smtp-Source: AK7set+L9O05bjAlHSD15CoGEmg7ANhDydIbWxTaDqMmqpoZLebpyXD4pLowWv6hv42DEzabIaf5 X-Received: by 2002:a17:90b:4c88:b0:237:7acf:8649 with SMTP id my8-20020a17090b4c8800b002377acf8649mr23395337pjb.13.1678379602492; Thu, 09 Mar 2023 08:33:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379602; cv=none; d=google.com; s=arc-20160816; b=BWsTZ6IGjb3puWCSLK3I5PW3+DzrlIMn0QpAuFchILBa+tdROmsjQ22azBOss2mCzg uvIe+q4uY0ohj2OXiySpJL527CMU9wMBShzltICuDK+7feHU0He2dqbqBZVDNRi/4y6A X7bbFWHPwrDd/lp9kr2gdmSYmzJLA0Em72GC30qIfSeUCqPSUzvqfOd2V+HaeOnaYc0x 1KH/4DwxfY5XTdSJGwkCUIuedu+BH0N8nHNpdDIDp4gSKN4M4CVVdDlB/mJDUKVZmXFK NMO5Gft9DArC+ojHqM4BCz0MT7sU51ly4SM3KTQ7TZ5d6rU+SVrWMHr6DwM+T0fLbrpw LTmw== 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=+LCPnE0PvSg4ksW4Mbo0BTVzmnwiVhW4dlBlf8qPj4I=; b=EMf49GbJouFywZgdWMtLng3VwC+ivtiB7btNFOzilJcXoUsSHZH0er8DPcIRqYVRRb wS8Vao6NyMMIFMI7DThFlufd1tWq7TOyNvAYL/Zr0YF+sECTnAzVD+vmH8mhC9fpR+0j CHENCavA1xPcTZfM4qHAdkcy39AZTx9Ory20YIPeWCdTuASQ25wOxBDI5cnzAF65/8Ro kL96kuyGV/0RXy0iMnMIL0WdolA71Mn14t90AI3dM7JzEkkrc8pLNpe4NOEc3VPGG3W6 g152XxU0y9DUol8Wp8flnTMu+MIyv9VRzQB8HL/ozO/ZWJOVYTPon+p6SQxNisSNmK/p AjGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=PqRrBXh0; dkim=neutral (no key) header.i=@suse.de header.b=c6PsjnI3; 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 lk8-20020a17090b33c800b00233ce76f19dsi250949pjb.11.2023.03.09.08.33.07; Thu, 09 Mar 2023 08:33: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=PqRrBXh0; dkim=neutral (no key) header.i=@suse.de header.b=c6PsjnI3; 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 S232212AbjCIQFD (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47542 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231600AbjCIQCU (ORCPT ); Thu, 9 Mar 2023 11:02:20 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 18893F7EFC; Thu, 9 Mar 2023 08:02:17 -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 B7B0D2214F; Thu, 9 Mar 2023 16:02:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377735; 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=+LCPnE0PvSg4ksW4Mbo0BTVzmnwiVhW4dlBlf8qPj4I=; b=PqRrBXh01Cg3q8TTHIOI/uhfGA5xwgkQR0vRfXOCnUpdoMS6hfu04lU+LExJu06pbfdsTy YudHFIQEjsnmgVR2fSH1C+yP65HXPMmndxOYNtsXNs1jQtbjAx804V5aGF5uXTbZXEqe4r rq4pQthY6+rcQObIDye+/gPOJ6ZPAyc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377735; 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=+LCPnE0PvSg4ksW4Mbo0BTVzmnwiVhW4dlBlf8qPj4I=; b=c6PsjnI3bYIAosToN9XB+TlFNL/q0KEHpA2Rio+iVK9q7QwDZ2+u2l4sN91dqweSe0BQar G9cTAZuEUnp+6EDg== 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 55C4313A73; Thu, 9 Mar 2023 16:02:15 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id +Nf9EwcDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:15 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 027/101] fbdev/geode: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:47 +0100 Message-Id: <20230309160201.5163-28-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908570042642708?= X-GMAIL-MSGID: =?utf-8?q?1759908570042642708?= 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. v2: * add missing call to option_iter_release() Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/geode/gx1fb_core.c | 14 +++++++------- drivers/video/fbdev/geode/gxfb_core.c | 15 +++++++-------- drivers/video/fbdev/geode/lxfb_core.c | 14 +++++++------- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/drivers/video/fbdev/geode/gx1fb_core.c b/drivers/video/fbdev/geode/gx1fb_core.c index 9c942001ac10..6f1e9aadc192 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) { + struct option_iter iter; 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 491de0ac5876..aede22566775 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 @@ -489,23 +490,21 @@ 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; 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)) { kfree(mode_option_buf); mode_option_buf = kstrdup(opt, GFP_KERNEL); // ignore errors 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 6863ee858d8d..855dc96b5669 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 @@ -619,17 +620,14 @@ static struct pci_driver lxfb_driver = { }; #ifndef MODULE -static int __init lxfb_setup(char *options) +static int __init lxfb_setup(const char *options) { + struct option_iter iter; 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")) @@ -643,6 +641,8 @@ static int __init lxfb_setup(char *options) } } + option_iter_release(&iter); + return 0; } #endif From patchwork Thu Mar 9 16:00: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: 67016 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389674wrd; Thu, 9 Mar 2023 08:35:28 -0800 (PST) X-Google-Smtp-Source: AK7set/8lyPBdjXncsy6p8Fa+cJXIwboVOAb/1COSwcUzn4O89IvA/uAbeMG6lMKnOJC7KqHIIX8 X-Received: by 2002:a17:90b:38c3:b0:239:fd9b:85bd with SMTP id nn3-20020a17090b38c300b00239fd9b85bdmr23192994pjb.27.1678379727669; Thu, 09 Mar 2023 08:35:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379727; cv=none; d=google.com; s=arc-20160816; b=qevfYI97TGiN0kbejKzPODnr247ga6HHwXUnbcKJsl4v/nA8rLGd3LM1V5Lw3ud8X4 DjajypBthVBKXQOr8B/BhWaI8cibxZdHsXbCV/tU7vSF4UaDzxlzagpsS96FrG/vEUWy uwIVhpKDO+WhJPPJHLHT5/ZMb42Put0myGBPfHHXuY8UDPhOMJ2wg+Mf0tiVJp0pkWFy FOgKpb6RF31UurQhblPWvpJHnI7VkmVR75J1gnjHSo5OL7+Vlys58g/CgrKa9nnQYQoX MCL9aTgI3ispfGGZgYmuUEaN9bNh4MQanGTh5R6b/Qlm5CdCEKFJhCjXfB77j9OpR3ay ENSg== 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=79twlirOUmPL24Yx299EScp7mDUr++Nf+Ag16S4Xxjs=; b=QzczoM7aTMZWMkbwUv+kDPZUlsvcNGTuoQTNsaTLppU3At3OKOGN216vsKBItVf1mF V4oSqrsozLO4bwXSElH89iyIjy9bVtE7y4a0muk5OIQmIkuj1KRT24UeMQRs9F9isDAv jovE3AFQ1Ee5C9EDJFYY03SS2q6Zzzp+U+F69n/zk1gW1oB8/y1u7ldEJXkKdqLiKkbR dZe9Zv/hGktL2c+D2f05LOFvy+CjAEuctUoW4OpUmjT+rCOPxmTom4UVouS3s357Laqb kBzg/pZ5es7QPaZ8iSRhjF9YGiM4RF2F/fmJBaVihZaJkWnw/62fdzYy1tj3D8PyFPTg f1VQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="J8/6/7EE"; 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 l190-20020a6391c7000000b0050323873b64si16595093pge.514.2023.03.09.08.35.12; Thu, 09 Mar 2023 08:35: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="J8/6/7EE"; 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 S232251AbjCIQFI (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47546 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231608AbjCIQCU (ORCPT ); Thu, 9 Mar 2023 11:02:20 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB759F7EFE; Thu, 9 Mar 2023 08:02:17 -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 2A09820186; Thu, 9 Mar 2023 16:02:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377736; 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=79twlirOUmPL24Yx299EScp7mDUr++Nf+Ag16S4Xxjs=; b=J8/6/7EEKDakmOzjuqFZ+wJphKc8bmbN8uy81393+ZynnFwzLZQD1dOhcO2PNr4o877mX1 Ia2b9IHWAPHVVmBtaNcZQFHNcEY2T3j13kyfRIrVYsD4ldyscl1OxHI8F6KJ+gdXWhghZP m9AIHZYMmWqx/hOTBqmxPRh+JA92IfA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377736; 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=79twlirOUmPL24Yx299EScp7mDUr++Nf+Ag16S4Xxjs=; b=ysXUn8HbMlNrgNIfgiTqsz4EOHt+nWtL9fHeP6kDN6Cff9+KI5dfv41EtZS0h0lwn/TTgq sbxm4h5lYYBZDXCA== 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 BBDC91391B; Thu, 9 Mar 2023 16:02:15 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id EAnxLAcDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:15 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 028/101] fbdev/grvga: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:48 +0100 Message-Id: <20230309160201.5163-29-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908701080780829?= X-GMAIL-MSGID: =?utf-8?q?1759908701080780829?= 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/grvga.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c index 24818b276241..28c2e0e0763a 100644 --- a/drivers/video/fbdev/grvga.c +++ b/drivers/video/fbdev/grvga.c @@ -370,7 +370,7 @@ static int grvga_probe(struct platform_device *dev) else if (!strncmp(this_opt, "size", 4)) grvga_mem_size = simple_strtoul(this_opt + 5, NULL, 0); else - mode_opt = this_opt; + mode_opt = devm_kstrdup(&dev->dev, opt, GFP_KERNEL); // ignore errors } par = info->par; From patchwork Thu Mar 9 16:00: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: 66950 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp373395wrd; Thu, 9 Mar 2023 08:06:16 -0800 (PST) X-Google-Smtp-Source: AK7set/RizRBEKIj8Rrea9MfFF8mmhNzwUct+V/02QT+3QOreqU4D33assCloQpHKoeocImw09kr X-Received: by 2002:a17:902:ea0d:b0:19a:f9b5:2f2f with SMTP id s13-20020a170902ea0d00b0019af9b52f2fmr28538808plg.55.1678377976390; Thu, 09 Mar 2023 08:06:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377976; cv=none; d=google.com; s=arc-20160816; b=PMCLHcgzzVnSs4ptfyLBaDhaYx6/0uVjgaFmF5blOPno7e2M7gaGHsDLeUFIimaWza c24mgp0nBN2geQzocLb7RY5nWJ9mULqtRiySavznRtIsRtQyW5TO372vS2JX4vppdXtD skjRoU3S1duPocrNhpIEnCCH9cMhOmI7iBugVxG3fTnX/YEueVnqlGAfbgqxQyH9bblB Xbn1HhJ/ONQ7Lym6bTpIyVZBj+ZqCibuTEP3b75t2tXJu66ph8B3P27wEWiENreSz1r8 VQQbLJlP/EdHVcubBu1/lwWYJUxFPJc9jD63Rk8O4nnjWEwYJEIpNxksBpvM4C4kENEA 0BuA== 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=+Fvb4dPXHzZD/13C8edGQz9gQl5cXDYn4iOfZr+To1w=; b=sbIfPoamUOsUxEsYfO4ahmB6r1X1ZX0pkOkMQ0y2kENA28j5kJcScci2OsPI7RLJXg aWgn6rJaDVhpu9wvVyM0yslXr3PQF7j6MtioOOVlgnRy48JtKVMAgBOzwaOT8f8SGeXn WZ+dy5aJhINj8VY/kPOn94l2WHag25imFAzrGIfdWaB94izg62lEuapShNulzr5NjfPD vxr9U1XHOFrbg0atXp+FK+6p4U+7IEwRY9IFHeRRaie0Onsvnq5JYX5CF/xGKgBgMpXF IPKyfZkGkuwme7zerBotN8fdcDPOGNb7a1hOBS5bsT39HV84f2tdGTeadpEynUCca2ra O1Qg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=pm629shn; 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 d7-20020a170902cec700b0019e6763b110si19949833plg.232.2023.03.09.08.05.56; Thu, 09 Mar 2023 08:06: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=pm629shn; 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 S232285AbjCIQFP (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47548 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231610AbjCIQCU (ORCPT ); Thu, 9 Mar 2023 11:02:20 -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 DEABCF8A48; Thu, 9 Mar 2023 08:02:17 -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 91F6020187; Thu, 9 Mar 2023 16:02:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377736; 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=+Fvb4dPXHzZD/13C8edGQz9gQl5cXDYn4iOfZr+To1w=; b=pm629shnQGKiBBzrb5+svkmSoJF+pNnls41PQ/vMQxKfkhV3DvoddGC87F2oTKavt6j+zN 8cuw0qj8h167xmuDD1saIJ4SB+ScJxIpnBuFm+DdsWeh/UgpJ6Dlv6fg8kVtxNG4iEFTFv bncU6vSQJft37xWHdbIUKU9ZZIiqmTA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377736; 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=+Fvb4dPXHzZD/13C8edGQz9gQl5cXDYn4iOfZr+To1w=; b=9LVYwwmbreLK0qJ6oYY8OIE07dDgcNSwoV8BwX3bZbTbHofzMoswL4EnI2dsAQwqNFx6lH vAYXKckuD1SFU8Ag== 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 2E8B013A73; Thu, 9 Mar 2023 16:02:16 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id gL9qCggDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:16 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 029/101] fbdev/grvga: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:49 +0100 Message-Id: <20230309160201.5163-30-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759906865292817826?= X-GMAIL-MSGID: =?utf-8?q?1759906865292817826?= 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 28c2e0e0763a..742331d0f08b 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; + 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; } @@ -373,6 +374,8 @@ static int grvga_probe(struct platform_device *dev) mode_opt = devm_kstrdup(&dev->dev, opt, GFP_KERNEL); // ignore errors } + option_iter_release(&iter); + par = info->par; info->fbops = &grvga_ops; info->fix = grvga_fix; From patchwork Thu Mar 9 16:00: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: 66967 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp386061wrd; Thu, 9 Mar 2023 08:28:35 -0800 (PST) X-Google-Smtp-Source: AK7set/Rtnoa+aoTua9R7dcDKdJs0gLxRlx/EkX9FUMuY1g9ZhsS/mV9zYQ8qwchCpQyX1NXbTRi X-Received: by 2002:aa7:968f:0:b0:5aa:3ce6:3763 with SMTP id f15-20020aa7968f000000b005aa3ce63763mr19122174pfk.10.1678379315095; Thu, 09 Mar 2023 08:28:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379315; cv=none; d=google.com; s=arc-20160816; b=anD2BAt3C6jSljAee9Q7ISfCTqRv/aSIT4fyWVzvZBuPkRWjGid3mUUDiAv7GvLFDH gad9457PYcMuflnUz0omwyYxR7ddhp3/oGoz5mrgoQpY9vbgwFSdK0ATuRRtASTu3kKU LBVWGpCTxRErjkr3g1KxwNmwoyJ4RRc02zHZy9ENz5+5TSyQH2T2kk17ffQyDMHn2Vss m5dDwn8Q0Kz/zAEsx54sWL1g9LIZbx9hx0s7Luz3hpgMQDXTor86z/egUuTPMspxIoWX OPphcYnwPLv1VgKYqqsrP8WgHfwKHpZkxyBK7EG8lXHBfRaQmqRcz1KvgF1Z0y66zUsW ThoA== 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=mOJRS9DbzwjJAtDnq9gbzKlqhGtP/9e84GLDpJD2PAc=; b=L/LOH4Oodn8Zj6+liUJ7kBBv03dSvbcHbwnNOOyIFZRPoGpLV9sYOysaQWXpy1+Ew1 L5ZpGFp9k2EW3Sys9kYb2FpRZS5+BPD2UqoiMDWvcTJWKJN23qfJbWBWiZ1MZBVNjoYA MuUFPS97EFq1asNZGAKZ73jGJNm7g1nt89jg75MAu0h39JJU2kF3GXPQx+aCxlBhlwzH Qrj6RETqfy1caHe3hmRLQWvabp6+f2Ikz88TyGeFemAglVbsTOJdvbLIAcrl27LSzgbx p+QuNpsnqDAVB7zY5Xhb9D5y0hTGZTBa25eLbp1n0p2T7qSCrCX7OeIdnUv+yCJUBwvG dSIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=dmbO1My0; dkim=neutral (no key) header.i=@suse.de header.b=v8Ul8UMo; 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 n11-20020aa7984b000000b005a8c6714ffesi17296400pfq.96.2023.03.09.08.28.22; Thu, 09 Mar 2023 08:28: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=dmbO1My0; dkim=neutral (no key) header.i=@suse.de header.b=v8Ul8UMo; 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 S232322AbjCIQFT (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230237AbjCIQCU (ORCPT ); Thu, 9 Mar 2023 11:02:20 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 47E73F7ED7; Thu, 9 Mar 2023 08:02:18 -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 0690B22151; Thu, 9 Mar 2023 16:02:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377737; 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=mOJRS9DbzwjJAtDnq9gbzKlqhGtP/9e84GLDpJD2PAc=; b=dmbO1My0VEsrfehWJQphCmuDLEDRyugyo2oCtg6Om48efhz6TaciAkI2te+daozi6/4UYp ZqydCAlg2Xw2FPV+Mh+jldMrnbz2UouxENxa3ayhkFCdCNbQQEZRf2xJ9dhb8ABiKo8UCY aIRnsnaoVBxc8eKmKA2b1T7owKmKftc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377737; 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=mOJRS9DbzwjJAtDnq9gbzKlqhGtP/9e84GLDpJD2PAc=; b=v8Ul8UMoXoBnv7XJVeXlR9wlvfT/Lkfi/hSq34WjrzCIHulVpmtEHu3YOZljjamfIjzFhg 9EipOjM8Ib+//bDA== 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 973811391B; Thu, 9 Mar 2023 16:02:16 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id WMTxIwgDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:16 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 030/101] fbdev/gxt4500: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:50 +0100 Message-Id: <20230309160201.5163-31-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908268520455398?= X-GMAIL-MSGID: =?utf-8?q?1759908268520455398?= 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 kstrdup() and free it in the module's exit function. Done in preparation of constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/gxt4500.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c index 5f42d3d9d6ce..65cb44c281c1 100644 --- a/drivers/video/fbdev/gxt4500.c +++ b/drivers/video/fbdev/gxt4500.c @@ -158,6 +158,7 @@ struct gxt4500_par { }; /* mode requested by user */ +static char *mode_option_buf; static char *mode_option; /* default mode: 1280x1024 @ 60 Hz, 8 bpp */ @@ -779,12 +780,21 @@ 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; + + if (options && *options) { + mode_option_buf = kstrdup(options, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } #endif return pci_register_driver(&gxt4500_driver); @@ -794,6 +804,7 @@ module_init(gxt4500_init); static void __exit gxt4500_exit(void) { pci_unregister_driver(&gxt4500_driver); + kfree(mode_option_buf); } module_exit(gxt4500_exit); From patchwork Thu Mar 9 16:00: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: 66997 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388802wrd; Thu, 9 Mar 2023 08:33:45 -0800 (PST) X-Google-Smtp-Source: AK7set/LfhVC1UfqIf7/130+7YPdi4ypYFp4e2CLNMyENssNc8ANKQ2qrA3h82im0iMKFeyTBYh4 X-Received: by 2002:a17:902:e882:b0:19d:1720:3873 with SMTP id w2-20020a170902e88200b0019d17203873mr28885022plg.57.1678379625519; Thu, 09 Mar 2023 08:33:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379625; cv=none; d=google.com; s=arc-20160816; b=hLUsyRPQGR0xwef93d9Si9Boh0VWt/2WhK3zscml9tae8k74lxMrKaS+2OHULFxsTH Z+UuSQRIWtVxZV3F2SePcwX61QX7e60AGr5z4ndn2j20FxAClEJPl7UlBP4pH04Pgsyw Dt3UmLsQnIwgokF1MJsr2LB+PJA4m3t+NcF1DK81l9Ngp6YrA0oDIPzivLGwwN5yV70b AXgoi0Eoi18muloFj3iQA9Nmtvx1xW6eQcEZF7Wf4kuVkOte70u6sRTvb4O4l80UtGca JabmQ7Ti2cmFzojMv94deWyFuqq1YhSDJCl2j9kLcfY0Fem2v/bRBly1Pn7I+aH/rtrd uT8g== 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=ltt0ubWtVRxSqQUyUU8OAHC0TDAHmqcAbvJoU2I6fBpMZpqRsExcew08kJ9ISLTRM/ kxH44SFR1eROBTSTI/n+r/0bEZyFb2djoaAPtqvQCKPvUYUY59CXa9HXW7EoxFAGSCIU /7gPTpod6mUt64GfpAQQEdEmM5vivTDZf5BdiBqgWtjAy7rTuZSHKbDoAPAWwX/hJGkL pFrghSPx8sR+3gojZdVsz4wlmOQgVPg1PWMm6h98/PIWdtP4fYhpNYGQDmdwBGEpdchw U1fHgL1korvhLhVwqgNEMCz4seWAiQXYW93i0baKrNni0qBBsvT2pDhM67jGbFcWDjr+ WXVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jBhUeHAi; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=5lKnZxp2; 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 ks12-20020a170903084c00b0019ca3bea4d4si16557656plb.507.2023.03.09.08.33.29; Thu, 09 Mar 2023 08:33: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=jBhUeHAi; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=5lKnZxp2; 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 S230326AbjCIQF1 (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230462AbjCIQCU (ORCPT ); Thu, 9 Mar 2023 11:02:20 -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 BBCD1F3670; Thu, 9 Mar 2023 08:02:18 -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 6ED1722152; Thu, 9 Mar 2023 16:02:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377737; 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=jBhUeHAiZtHj5w0OHCClBUsdhGNNr/Mpx36csnTC1VjalZbz/ujMyeQStVoWpcvitGc1p8 ywHU2HzIR2NcHa+P60b2S71DlryhFt0IrY0GderO0YUjbAICm9w593P5E6EVkzdZbWQjmf 4tNJ0CXzhbEQ5idJV7fZ1Dd0FltqjCo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377737; 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=5lKnZxp2h7vlv0rHhmQcFlwWIUCOfpYmAYE3sc99d60+piWXHA9tnj6cR2/qUVaj1MeK/G UTteoFXco8iT5BDA== 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 0C16213A73; Thu, 9 Mar 2023 16:02:17 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id QBn1AQkDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:17 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 031/101] fbdev/hyperv_fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:51 +0100 Message-Id: <20230309160201.5163-32-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908594231997553?= X-GMAIL-MSGID: =?utf-8?q?1759908594231997553?= 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 Reviewed-by: Michael Kelley --- 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 Thu Mar 9 16:00: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: 67030 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390257wrd; Thu, 9 Mar 2023 08:36:32 -0800 (PST) X-Google-Smtp-Source: AK7set+jMkkx8MJtDA/3tLum5Cz6Zhihi99hQih/yV9dLKgod8vgPbs2ZGzyKvB2E541e9qGM5SQ X-Received: by 2002:a17:903:2450:b0:19c:e484:b45 with SMTP id l16-20020a170903245000b0019ce4840b45mr24642689pls.27.1678379791920; Thu, 09 Mar 2023 08:36:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379791; cv=none; d=google.com; s=arc-20160816; b=NrWUX8P5XEpNNVAJkZMm7S6pN9SnYlux+wro6+4TXtOy8uglK6/LGpetzXS5G1sGkz y4IiT5N9qTUcMSYCmW5/f7P2gIYDo+RbIrMMKWk2nt5W90YzIREzegBYFgEOwE7tTOum 9Uuu1homfhxPs+PKOIcW03ZKQiyvtSYBPN8pZj2qBFGn6J7KWDCAPIoIuyM7ftGbXed0 VPswVBk/pU7/nKITseCYCW4SW3w+XtdXmol7k10oCeDskb6vJi/kk0jVXyentHCbzAJG 1Vge8rF+23rK1480itJHam2e7SYY0ffoSy+TjczIoct4oYx5IA6OKn/gw79pB5mK332B eZjw== 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=c/RxdU96+Et0kzCkk2iYUxqvPXUD67Kvpv1fXm/8kdc=; b=O/1g5fwb2uiKzadg39X5NoKJlbx+YbI7MTMe7b++Ok80BPqkdwjMpA4duMvUgnvXud XyQXOlD637X903kQf+3QtZAfWDX3r+US9DkRtpZghY9oo7wTP+HlQnd/rKF3tofbsbDj Y3DZFvomzpVTHi4lS+HuzZ2bQV55ZHr5E04AUuGonik04BCB3kWQ1Eqe9p8JejLHLaId IjdRSINxvKxXHF3hm/arUTB7mDenf5/4SRxkHybss2jnKsljnG3rpSAhiZVJWUT7oUdo QoFd7HGYm8eXFP9hv475N/b6ExYaivo1sqTntBawVpQuFtVvOfNxecHz02MW5vLm0xtX wIjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=mfnholkj; 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 kv13-20020a17090328cd00b0019e3ff97af3si16631861plb.338.2023.03.09.08.36.16; Thu, 09 Mar 2023 08:36: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=mfnholkj; 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 S231893AbjCIQFq (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231612AbjCIQCV (ORCPT ); Thu, 9 Mar 2023 11:02:21 -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 31BBAF4B7A; Thu, 9 Mar 2023 08:02:19 -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 D0CB020179; Thu, 9 Mar 2023 16:02:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377737; 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=c/RxdU96+Et0kzCkk2iYUxqvPXUD67Kvpv1fXm/8kdc=; b=mfnholkjsMEQvpK82mVARspwIIfUUYeOFssQ09i02V6sLrf/qO41Jfj6e585c7gBPyoull dhQBuCYg7Hb2mbaazaJ8z0cuyXmEoIlVTRMNSgs27zJ72mDU7bdVMzxPEXgkI6jIPEhbhD squjRb32eWRLLEM1w29gCulbq+jbMsA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377737; 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=c/RxdU96+Et0kzCkk2iYUxqvPXUD67Kvpv1fXm/8kdc=; b=Puy71ZT0dgYe9nmL3wzhzAklO8doO12DACnGbhg9wZXEfQQpN4ejuRSV1kY5sakar8RV81 W5sYnqsQz0BSykBw== 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 72EE11391B; Thu, 9 Mar 2023 16:02:17 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id IJgiGwkDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:17 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 032/101] fbdev/i740fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:52 +0100 Message-Id: <20230309160201.5163-33-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908769160914468?= X-GMAIL-MSGID: =?utf-8?q?1759908769160914468?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/i740fb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c index 3860b137b86a..61c022b8d5de 100644 --- a/drivers/video/fbdev/i740fb.c +++ b/drivers/video/fbdev/i740fb.c @@ -31,6 +31,7 @@ #include "i740_reg.h" +static char *mode_option_buf; static char *mode_option; static int mtrr = 1; @@ -1273,8 +1274,11 @@ 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 { + kfree(mode_option_buf); + mode_option_buf = kstrdup(opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; @@ -1302,6 +1306,7 @@ static int __init i740fb_init(void) static void __exit i740fb_exit(void) { pci_unregister_driver(&i740fb_driver); + kfree(mode_option_buf); } module_init(i740fb_init); From patchwork Thu Mar 9 16:00: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: 66951 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp373411wrd; Thu, 9 Mar 2023 08:06:17 -0800 (PST) X-Google-Smtp-Source: AK7set+kRYVcX7EpuvyGccsRDI0mYYfl/HQnZv0zNxyjvaS2ASCfiZJHuMUONRsEE4El02SefYEe X-Received: by 2002:a17:90b:3841:b0:234:31f3:e00f with SMTP id nl1-20020a17090b384100b0023431f3e00fmr23214955pjb.43.1678377977561; Thu, 09 Mar 2023 08:06:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377977; cv=none; d=google.com; s=arc-20160816; b=xLjnPtJ6i2m40rvlaGi/tbKwbs3LhskZ64d/dXMJrYCgeukQuX3DB3XUd1ycJHZ+XD RLMw2AHJqaq38PLaIiH/0yR70aJLYe9s3mKK0iBmBocX5saBE+GajbLQ90aw7I0Jmqgl KdLVLAvYAsI9Z5SRwsjYl0z7CoGgCDLMrFh+b6otxktkMEyDstI0TkcZ8fVM5Gg9DQ0T qkmSTI1nDOPJuV4KS9FoN4XiTckwxIwjXH4jrMIk4S6pT8viJs8RbXXt2Swsgsn0DQfV A/dfRKoAEyzwj3jCeXEI66GN2LKroKVGxACvAkr6wqAt3nIcNDDVtN3i+R0DLuEpvtlm v8Qw== 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=3kZX8EmQe3IAEU0LH1oxMIvRcDm5wiAbtU7Jk+5Zv3U=; b=VboBk/OHN/T92DbdGx5G9fyiGYhfwBdi8EIed3xsTOt4IQTpjCHWUzrFCz+mGOv8X4 XLSHBbbNsTLVjWvR7LeJfOfgfenFNUZissDGzeJyxogEc956mpRCwIOVTgQLjYShNv/z rwoPhxPX0HuBa2H7CnFEaJpmp5OcPGfizYgd/kIHXWOrz0EFfzKFwvX1xRSsNRMd77+J f0aCjwSVyW2jAi+6dhoQ44VkIL7r07JW3YI9iCjECL65+quHsR1oNH6SCt2Bnc7Hnb8M e/eshUvRDd3PJktXSlmn/l0l4Ywn1TzdFFy4U8pG4e939rUP4ViGVG6JUZiDqjhUZIqI 2p3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=gti5ZhgR; 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 e3-20020a17090a6f8300b0023361862115si148402pjk.129.2023.03.09.08.05.56; Thu, 09 Mar 2023 08:06:17 -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=gti5ZhgR; 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 S232353AbjCIQFX (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47512 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231613AbjCIQCV (ORCPT ); Thu, 9 Mar 2023 11:02:21 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A89EDF7EC0; Thu, 9 Mar 2023 08:02:19 -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 3EB1920188; Thu, 9 Mar 2023 16:02:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377738; 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=3kZX8EmQe3IAEU0LH1oxMIvRcDm5wiAbtU7Jk+5Zv3U=; b=gti5ZhgRVsHxsNxkdlXALqaCbMRiaTHS0TRUzri2radJZ/SfVaDFK9XPwpb6WPPcKfE5EZ BvlFkTZR4WYS+PmVybjuBzDW42WBqTaac51zYkwJr11j/dCqGKwxecOw29eukQcpmif3Vq WqWbQKKszxYt7KRCLZC9BTEhr0wSlms= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377738; 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=3kZX8EmQe3IAEU0LH1oxMIvRcDm5wiAbtU7Jk+5Zv3U=; b=InBj3RHeVLA4P9g9rV4Lf4l+c5fbol1a3uFH8jZRP49oUktbeaTjpaK3cWysqd9Y7XAKll MptlT9eKu/3m6yCw== 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 D551B13A73; Thu, 9 Mar 2023 16:02:17 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id OJkjMwkDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:17 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 033/101] fbdev/i740fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:53 +0100 Message-Id: <20230309160201.5163-34-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759906866132955856?= X-GMAIL-MSGID: =?utf-8?q?1759906866132955856?= 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 | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c index 61c022b8d5de..6da2f3b7846d 100644 --- a/drivers/video/fbdev/i740fb.c +++ b/drivers/video/fbdev/i740fb.c @@ -13,6 +13,7 @@ */ #include +#include #include #include #include @@ -1262,17 +1263,15 @@ static struct pci_driver i740fb_driver = { }; #ifndef MODULE -static int __init i740fb_setup(char *options) +static int __init i740fb_setup(const char *options) { + struct option_iter iter; 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 { kfree(mode_option_buf); @@ -1281,6 +1280,8 @@ static int __init i740fb_setup(char *options) } } + option_iter_release(&iter); + return 0; } #endif From patchwork Thu Mar 9 16:00: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: 66961 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp385462wrd; Thu, 9 Mar 2023 08:27:19 -0800 (PST) X-Google-Smtp-Source: AK7set91CI3/OdKXtuql55dBpEK8nG/kdGTQa14SuOS843HCIJZfLoSl+yG/7VjxyQi//jktonvw X-Received: by 2002:a17:903:260a:b0:19e:6bd5:7ab6 with SMTP id jd10-20020a170903260a00b0019e6bd57ab6mr19360387plb.14.1678379239185; Thu, 09 Mar 2023 08:27:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379239; cv=none; d=google.com; s=arc-20160816; b=SX/Zjh5bQOCvwDm9HwBAGtrTkg3rNOVgmPQRrDAKGJsSKwUvzl/Htf0CDiXZeLSW8b 6oUlDHA3Kolyvm/Pf/xzKWXS7mC1ql30nU0OouSlm5Ncr8F7uJ8YVqK/EUkHpHGACYLX XkRxBMd2enbC7IlZOOYezgczl4RVz3HpAo6WXHmfc8I679ORw1ntmF2NTZrioHzqxmem Ak22KPtuFLiDiI5z2bA5BtptfzPPIZUSUbE2dmADA1H7cSm186lcHPzTxf0ekHCucGGF nQ+Ldo7D5cSwx12y0dNn+G+G6kUWEhL3b7TwEgNMuWFL2iZDQ46baMbX+txCB6QsnGkg q+SQ== 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=nwl3kz4xEfi+kFr4X5T9B5f4fwGq1KRCd8RDOfDQzo0=; b=kMNQdpw9reVd3AxpE2wWAttsqkOQwuRo+YtUbMYs0JkBMKmafYOO8QBWCF9qs2+wHj TbDlI3ejFlWPbN1DX1hulrnA/CW8XoAFwj1ZUAt0rhy1k+Cc26bLgv6Poo4IhdDlnTtf F3bvF9tcfxygtUo/mt49XCLHIIhlcp0kwqLFMS28wS+QTQOzidr0TC7lkGcp9ApITDWP v1/MOE9FctdJH/cFbXFP6J8uPqiBs6Dx5H4G/UD2JD64OlvaAhdYEV9T202uaRZZ9udX LX4WIosI9OztHSXiH/7a21BrD1V5H+LcDLzdyMFZ9pI17SjCgL1gd2XQXSNw/3J63oZE 8CCw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=gOeZatVx; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=T9b4Udg7; 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 w22-20020a170902d71600b0019e8928c1efsi16897427ply.456.2023.03.09.08.27.02; Thu, 09 Mar 2023 08:27: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=gOeZatVx; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=T9b4Udg7; 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 S231882AbjCIQFl (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231624AbjCIQCV (ORCPT ); Thu, 9 Mar 2023 11:02:21 -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 E61E7F7EC5; Thu, 9 Mar 2023 08:02:19 -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 9F04B22153; Thu, 9 Mar 2023 16:02:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377738; 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=nwl3kz4xEfi+kFr4X5T9B5f4fwGq1KRCd8RDOfDQzo0=; b=gOeZatVxgGe+cpIIeFougES1zofL+NlEHV/eOudyX3AW6ZYPG8X334bEP/YXuHXsqb6LAX 84ExTInSVUfqUbBpwCTAOAELJAgmwBzE/+RU/Xf4XZG82gNj5MsGLvcXsBXxaSLP1dklFU BUZzpsH8kYRJKTson7H+Z0BzMYF9ZBE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377738; 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=nwl3kz4xEfi+kFr4X5T9B5f4fwGq1KRCd8RDOfDQzo0=; b=T9b4Udg7bSqvRnNiAbt/Q1dQX9lDrOCkFSkTATVk9OJnn9HjeajpneLD/8CgcDJ2w6nZ/Z lJMIzTMBeewWAABA== 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 434ED1391B; Thu, 9 Mar 2023 16:02:18 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id kPWIDwoDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:18 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 034/101] fbdev/i810: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:54 +0100 Message-Id: <20230309160201.5163-35-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908189036350113?= X-GMAIL-MSGID: =?utf-8?q?1759908189036350113?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/i810/i810_main.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/i810/i810_main.c b/drivers/video/fbdev/i810/i810_main.c index 85abb65f07d7..3b2648a2de29 100644 --- a/drivers/video/fbdev/i810/i810_main.c +++ b/drivers/video/fbdev/i810/i810_main.c @@ -134,6 +134,7 @@ static struct pci_driver i810fb_driver = { .resume = i810fb_resume, }; +static char *mode_option_buf; static char *mode_option = NULL; static int vram = 4; static int bpp = 8; @@ -2002,8 +2003,11 @@ static int i810fb_setup(char *options) dcolor = true; else if (!strncmp(this_opt, "ddc3", 4)) ddc3 = true; - else - mode_option = this_opt; + else { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; } @@ -2224,6 +2228,7 @@ MODULE_LICENSE("GPL"); static void __exit i810fb_exit(void) { pci_unregister_driver(&i810fb_driver); + kfree(mode_option_buf); } module_exit(i810fb_exit); From patchwork Thu Mar 9 16:00: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: 66963 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp385680wrd; Thu, 9 Mar 2023 08:27:50 -0800 (PST) X-Google-Smtp-Source: AK7set+UMpoHp+P+fNRvAZ1Ao3hQTT1lthxDa8fovDuMt9SoYW8DfJHKCUgMMkr0jhw+/M9F2l7q X-Received: by 2002:a17:902:720b:b0:19c:171a:d346 with SMTP id ba11-20020a170902720b00b0019c171ad346mr19159958plb.44.1678379269902; Thu, 09 Mar 2023 08:27:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379269; cv=none; d=google.com; s=arc-20160816; b=sHVcctRNqCA2c3qI2EDK5HW7kgXbY9lAJem85eGdbLTyWtu/Z9PaceB8bgujQGn+Md f9TkLfljG3C7wUoWlBd3SrsfOGj5GiGj0mbgNEvfU3GQJK3fnfi3ZrlJnrjbpjXSTTlw f/oQSSdY34jtZiI2fg0lbU6rDCsVgxzdpgdskAGDx5Dd/n4/vVbAKR13lRBR41uE7ITf /qHk9WCY4ZBVFqsAP42ll4T4C0/obnVh6x/Dg7JucZ/bRaqwVesMqO8/N2TVVgQiIi1A sIr7EFa9283+MKbRat/j1OE0JXJALHcdoA4+sTEx4vwS+aA2Z8BNPvyKXFFoJpHEibGu 83vw== 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=5/1yjZdCEsHswl6kWyLnnij2E1O9wtb/V5OB2pojQL4=; b=NJOl9bWt8jf9Wy7N3ht9nGNoCGVo8op8CX/14MpbHEKbkBi80sulOBBzOkL2zftLpv jwDH5EfyQIpRRrsIjIIsk5qnfqoKKk9fILJtGP09OOJWOZexfk6RQW0foXC+MfQvI0C0 ao/ZX+TGgwmy7dac7XZYOQ7CoDzXZGOrN/cbw41TNlvOgYLi6tSet8nLxP9w/X9BYQSX yEfWszJdobrzu0iApGRLmUbPgF/bhbvd6TdlGa8Pwa8pujEa1CRppMwDTl9Ggkjv0iDU CR5E8JiG0AW5awBvIu6KUKBp1Fj/YvHZvkjSJNUoEXIW6V1oKPpB802DVR2UgbcxvUTk 8PAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="X/pcj17s"; 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 kt16-20020a170903089000b0019cd4cc77bbsi16358799plb.557.2023.03.09.08.27.37; Thu, 09 Mar 2023 08:27: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="X/pcj17s"; 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 S231843AbjCIQFi (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47516 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231627AbjCIQCV (ORCPT ); Thu, 9 Mar 2023 11:02:21 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5535DF7EC6; Thu, 9 Mar 2023 08:02:20 -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 0BF2820178; Thu, 9 Mar 2023 16:02:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377739; 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=5/1yjZdCEsHswl6kWyLnnij2E1O9wtb/V5OB2pojQL4=; b=X/pcj17sHz1d67F+ltpqRe9XbF/MOV+VikOqacWgq7S/uIsyrDSMgC5pSdenr1E32vQPU9 TiuyHK9MJnyZsuf80hLyb2o51qN2Y9mG4/Jxb5DsGCWNG5U5+4/VuG5rkSYqkOldjlh6c4 pHZD+V7VQeIOlKQpGw2GOB7jLmeBfvg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377739; 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=5/1yjZdCEsHswl6kWyLnnij2E1O9wtb/V5OB2pojQL4=; b=KRRPqvM9ciI6IaH9/wmLdsbsmrBPUIoG3R5Z7hxF71yTTrJwx0W174eDvVKjVsMlL41H9W NMlDg6cRC1cqHPAg== 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 A48701391B; Thu, 9 Mar 2023 16:02:18 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id UEARJwoDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:18 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 035/101] fbdev/i810: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:55 +0100 Message-Id: <20230309160201.5163-36-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908221202235509?= X-GMAIL-MSGID: =?utf-8?q?1759908221202235509?= 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 3b2648a2de29..952d1a69dfb9 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 @@ -1959,14 +1960,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; + 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)) @@ -2009,6 +2011,9 @@ static int i810fb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif From patchwork Thu Mar 9 16:00: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: 67012 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389461wrd; Thu, 9 Mar 2023 08:35:06 -0800 (PST) X-Google-Smtp-Source: AK7set+J98uPw7a+DPUO7YrrSzPIvTtKyBrPe1s+h2YMLAAVH0ogDzG9H1fTpmQ4tu8IeTObSv+J X-Received: by 2002:a17:903:120b:b0:19e:786f:4cac with SMTP id l11-20020a170903120b00b0019e786f4cacmr25554371plh.53.1678379705964; Thu, 09 Mar 2023 08:35:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379705; cv=none; d=google.com; s=arc-20160816; b=f9AIkMRhCcyCy70NbFYOMJYjten9vKTjYWq/WJ+LQp3ojwe83h6oL1c9sk6xMzd12l fb7azDON2UGbLIJ21mANh4WpjqRVKPR0o4bGMxugIAp0KQZAntFq97InwnVt9FhQ6GHx ilxuaWSfh8lpUShPgElXwYiXeUyFllsfiv76YmMPvs5Ic9p5zFhsffsW0hEGS+OhJn8n RVAqTGPJPxA1MirckwsoxwZlRYqqQBpo7GpiDM6h6ur+HT3ltrbtQtyeFaYF+V8oG8zi kFznkaEh3ENOrtZ4k5Hb+SkmR9s/PbkhzLL+ONZBsiKhT7t4ISEdxzdYKWmJMtZ1wlD0 Gosw== 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=AL2Wq5/miOGD6TwZBTlJlNXJ3vVAo4s/zJwjQWmdvKM=; b=iApABReyqQEa5IYjwBZMg0W3ja+AhfgQihgzOX06307QrGkYRAlWJoYFcDPKzzMbtp xQgDG7gl06PP1CLsy+FzHwpLLnUE/IFHDOfm+DbuhbyGTxLOn/TCu9/VyblK1BPT0Bw2 ahre51tmzVicjstALEGCbOqDnNP061RQGDmy3iMvxeIerur5Tnr3y0Xksrwp/jbPEKIB ljU3+yPimFCD5T2+xF3dHasgbbKDt6sfDn2rNq1ezdtdT8dEDYcdaQ8sB8vFZvRTB1rO /tEmPfudKbjkYweFs3+L8GJ1ZWinHbi3XNMRuYKbbQ5afggDgRMcEPJYo5KVU1PSoSjF /SZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="On41eD//"; 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 p21-20020a63fe15000000b004fa0cf58e12si16480311pgh.630.2023.03.09.08.34.50; Thu, 09 Mar 2023 08:35: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="On41eD//"; 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 S231775AbjCIQFd (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47430 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231629AbjCIQCV (ORCPT ); Thu, 9 Mar 2023 11:02:21 -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 BA8B8F4002; Thu, 9 Mar 2023 08:02:20 -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 6E17722154; Thu, 9 Mar 2023 16:02:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377739; 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=AL2Wq5/miOGD6TwZBTlJlNXJ3vVAo4s/zJwjQWmdvKM=; b=On41eD//q+Cf4q8tc82zPn6aQu87CEx5+0wW6oNOs4HOjNtYjvy116UWmzG6xJiYg3YKQ/ SCLSG7Qv8AyjVwZZM5YHLQx5s7KvJ+4DhHUxe0RIxDmZwYoomR3z714q/dcDIZoF5IN10R /6fSPNoI0zVUtxZSJZw0QdN7c6TQ9Kw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377739; 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=AL2Wq5/miOGD6TwZBTlJlNXJ3vVAo4s/zJwjQWmdvKM=; b=usZ/URghjqA2NS/XJEW99fqSmd7LRgtp/k2eMSWn60TBvu/R3JRY6dhcw0jan9lmhTizwO l/DJ6ZOoDT2xryDg== 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 1160113A73; Thu, 9 Mar 2023 16:02:19 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id MHZWAwsDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:19 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 036/101] fbdev/imsttfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:56 +0100 Message-Id: <20230309160201.5163-37-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908678501144615?= X-GMAIL-MSGID: =?utf-8?q?1759908678501144615?= 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 | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c index bea45647184e..1e2b45faa26b 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) { + struct option_iter iter; 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 Thu Mar 9 16:00: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: 67015 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389673wrd; Thu, 9 Mar 2023 08:35:27 -0800 (PST) X-Google-Smtp-Source: AK7set8hXMj98wItUnfBgb24TXeAbbbgawuYdQZ5kYvA8v42CW+1B3TYwo5gmrjrZ8geul87sugN X-Received: by 2002:a17:902:c94f:b0:19e:73df:b0e9 with SMTP id i15-20020a170902c94f00b0019e73dfb0e9mr28316648pla.21.1678379727648; Thu, 09 Mar 2023 08:35:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379727; cv=none; d=google.com; s=arc-20160816; b=TNOsJINr/12sxv3WMAbO03xJsCr5HP9Y7NfQi1YS/S8cd5loPcSIcdERTYK972Fwqo zcuM1Nr1KXP/LKHEeGAyALC1zW0PfCjQqzC05EnB7AClAU1qJp6anIdAbAJlGuQLRHKg eZ4TXdWEPmBPddT2Cy3rnSo8oG1UpEbArjX+t0rnnjqV9/Rd4lQdByLdL1k2ri78zlda 6O/ACxNZqJRmLWaBKLePPzpYrYZVIXKgPw8mGXKFSAv3vuDwZ7ERR9NgsIUnfhTrek1D QmVaFpE1uDmEUWwcbaxWt9LgEqfsxAfaCTq3r8kDpdALRTHD4f4PCClAj3/5suUWlbEk TLTg== 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=TSIv++fYLAZmyWwx814uxi5mIIjCM/vEYMYPw331r64=; b=gYh4NC1CANdLHlSl0cz/9k/D0oEjU/9oW77i60tgfJY0rBzY76KQVY2Dv6NtHHHXM3 EPCDaKFujqO10pTejM9bKLPUwgepQgh7fBDG5+cjTkyBNt9QbSo/uQjsWlWAOg9GsjGa q9SFfoX/f8sos4gr69r979UOhMqRmwa+M0XyX4HFxS4HbvEag77tsqSipFY+6ax70fNs j4aJXJnsXPQLoOwhg1oPE9HZ1I/b4bLgytdlaaomyDUw1NEAT5Ies+JnT1OtfDKyjdJO V81G7fbuqzqAflo7myww9Rqt8Bg2aGHUpnm1rTHn/dq7xEUi1MoT5j/nAxLIowCb5ZWo OQuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=MmLKPkY1; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=ebrXzHEf; 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 e4-20020a170902b78400b0019a5ba5c5ffsi17087539pls.437.2023.03.09.08.35.12; Thu, 09 Mar 2023 08:35: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=MmLKPkY1; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=ebrXzHEf; 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 S231920AbjCIQFy (ORCPT + 99 others); Thu, 9 Mar 2023 11:05:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47522 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231633AbjCIQCW (ORCPT ); Thu, 9 Mar 2023 11:02:22 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5FA9CF6C7A; Thu, 9 Mar 2023 08:02:21 -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 D30E422145; Thu, 9 Mar 2023 16:02:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377739; 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=TSIv++fYLAZmyWwx814uxi5mIIjCM/vEYMYPw331r64=; b=MmLKPkY1yv1R9ubNRxdVcxU5Z69SKIvXV0NQZSNRQqAstGoY6/oDxM0GIqwDDjc7BxI6ir AEOOJcHXlnT1NEFEsJmWsFsX7nmmKZbCqWwUW0CrOw7ZjT/15R652gWnofCiGVYGc+6zX5 4zaYLbj5G8+s1rx/8TMvo3t6WUnBqK4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377739; 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=TSIv++fYLAZmyWwx814uxi5mIIjCM/vEYMYPw331r64=; b=ebrXzHEfrnbTluV/lK74Ja0CsRQJZhCCwrtNtuQS8EMGjLOcEwBBX4Ye0CAUXKS9hTTwSJ o4sktccX0nM33nDA== 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 721351391B; Thu, 9 Mar 2023 16:02:19 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id wHvWGgsDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:19 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 037/101] fbdev/intelfb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:57 +0100 Message-Id: <20230309160201.5163-38-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908701034923908?= X-GMAIL-MSGID: =?utf-8?q?1759908701034923908?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/intelfb/intelfbdrv.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c index 0a9e5067b201..8368c3601cdb 100644 --- a/drivers/video/fbdev/intelfb/intelfbdrv.c +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c @@ -238,6 +238,7 @@ static bool probeonly = 0; static bool idonly = 0; static int bailearly = 0; static int voffset = 48; +static char *mode_buf; static char *mode = NULL; module_param(accel, bool, S_IRUGO); @@ -365,8 +366,11 @@ 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 { + kfree(mode_buf); + mode_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode = mode_buf; + } } return 0; @@ -405,6 +409,7 @@ static void __exit intelfb_exit(void) { DBG_MSG("intelfb_exit\n"); pci_unregister_driver(&intelfb_driver); + kfree(mode_buf); } module_init(intelfb_init); From patchwork Thu Mar 9 16:00: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: 66996 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388768wrd; Thu, 9 Mar 2023 08:33:42 -0800 (PST) X-Google-Smtp-Source: AK7set+8Ktt/gBw3W82iUWsfQNUSVznDgaHCdheDGm3+wXMe7nhPbc4prmHa0/thbBknX9xAhrJ6 X-Received: by 2002:a62:7b58:0:b0:5a8:d364:62ab with SMTP id w85-20020a627b58000000b005a8d36462abmr18511578pfc.17.1678379622367; Thu, 09 Mar 2023 08:33:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379622; cv=none; d=google.com; s=arc-20160816; b=xj85af4NsVktadureGgPkDRljxoakGmqIBERxoB5bsvyqPLrLiXBPxUAIZz+NbRQwf iazU2D4jBsJAnpvvE3PGdN3CcV5eO3aERHC6kS7E5CkQm3lWrz96HPbfoqAHtIxS+1ar lmZipgW3bC/mOs+CZNRqPjhiklKB2471saakcON6b1yJ3pjjf6+Fa9Ifi8nBByCYKZI/ ammq6ExZnA0QI1if1d4miVIn6vE07GI66eVFBG2X5hWvWRNX0lUIXTuT4ywdEvT7bLvn w6ImRZNz7KMjMOEFqYb1fA+S9ZX1VyZRWPq1WFiVLDzqKgyHyIfd58n38GYwFSMvFV7e k3AQ== 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=UUhTX6veO6KsY0Dpn+In+/O3oAyGJ8vyl1FETD8qkzA=; b=hnL0F6pZfSC5dnf97LEyPIr8sRYFi0WoecGL0iUrHZN4K4FRpq2Zex/76vdpko2K54 5C5/YeeGk3FUlCO1YrIcwPPVRK8ZTO+Fb5Nj/KiXqoA8UU5XVmZ43iIdslnxsnBbVEmq PA8xrI/jaHWzCLyYfpz+F2unjdYP/FRRuQiwHzTBzFYs7oGK2yMMB8gKLubQeTH3whw9 hWWo9fvNX3k2xpn6k1MQhUc0mOHJBkpLGheuukfflcTtYuIwG5Zj/ciM+uG9phAeUgtN iyIfVdc//VUhSntFSjZJtlTrWPnY66ms2KmALYvbgHuFObEyLcor9cdMXHT73/Fg/9m5 Ck2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=idWhZvv1; 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 d75-20020a621d4e000000b0058bbe6710absi16210906pfd.261.2023.03.09.08.33.26; Thu, 09 Mar 2023 08:33: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=idWhZvv1; 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 S231931AbjCIQGF (ORCPT + 99 others); Thu, 9 Mar 2023 11:06:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231638AbjCIQCW (ORCPT ); Thu, 9 Mar 2023 11:02:22 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BC09DF7EC9; Thu, 9 Mar 2023 08:02:21 -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 41F5722156; Thu, 9 Mar 2023 16:02:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377740; 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=UUhTX6veO6KsY0Dpn+In+/O3oAyGJ8vyl1FETD8qkzA=; b=idWhZvv1OFds5xjRkPCJSk7FUrp/5Q+5yONgyOkRk74bgyQR6l2Hu1Ldh9Czwafi2kvpb6 JDE3IVHFJZrlPfSrHcLWwMYl8CDKEspqus0mb+eN629cWYmF0Zk+nIGUN/tliQTK7hS+di ivOD/T7z7BxIyuDXhRtIuPEYTj0nTmg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377740; 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=UUhTX6veO6KsY0Dpn+In+/O3oAyGJ8vyl1FETD8qkzA=; b=VW4393UvuEQyXD1vy0JgI3/62OjzOgpoo3xaehvYjXVrFZMzeUR8iwtJTX7uevpydCf5bf +ZIXjKbN08MUscCA== 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 D7A931391B; Thu, 9 Mar 2023 16:02:19 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id qITRMwsDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:19 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 038/101] fbdev/intelfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:00:58 +0100 Message-Id: <20230309160201.5163-39-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908590545764573?= X-GMAIL-MSGID: =?utf-8?q?1759908590545764573?= 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 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c index 8368c3601cdb..43d677897392 100644 --- a/drivers/video/fbdev/intelfb/intelfbdrv.c +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c @@ -108,6 +108,7 @@ */ #include +#include #include #include #include @@ -324,8 +325,9 @@ 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) { + struct option_iter iter; char *this_opt; DBG_MSG("intelfb_setup\n"); @@ -349,9 +351,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)) @@ -373,6 +375,8 @@ static int __init intelfb_setup(char *options) } } + option_iter_release(&iter); + return 0; } From patchwork Thu Mar 9 16:00: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: 66995 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388738wrd; Thu, 9 Mar 2023 08:33:40 -0800 (PST) X-Google-Smtp-Source: AK7set8RHBchgbhLjG0k0fObTC+iIn7i6XYLlxNHNcUsiBoPFXDV71HA/YMTjjwCis+RucQk/k6k X-Received: by 2002:a05:6a20:b71d:b0:cd:929d:27ea with SMTP id fg29-20020a056a20b71d00b000cd929d27eamr17832128pzb.52.1678379620063; Thu, 09 Mar 2023 08:33:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379620; cv=none; d=google.com; s=arc-20160816; b=h/bgjjUVy2ps55uvb7VTayDmpFEoRp477YO6u/OVSnTvB6cn5eH+ECMbgStPKa6znu Dy/64Y2xNuewiFrUBw2byMEguax1yZprmtInmgZPqjyyBRL1ae1dAAGNzyJa4usuxLkt loXo7FbKQNND2+kzeAetSDjXH1+Ogb8FatgmXAJ1OJI3Uu8xT+XIf05WH3LgMD87gxRw yyyEB5abY9wEYzIY089VqANl1EiTC4gf0O068FvH6HRs7EsRQGC4iTu/KZ2w+sbFhtqn CX8gm/ciVEQ99dO7X7C7/HhJj47OU4YZRlc/FIaclcGc2E7+xhf+rEG7cUniwsj/df2c Nj7A== 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=MrW7pYFX5R5J7fTSEP6NHJNhtqFQ7aaj+PBS3SvPTGg=; b=FUjaBR38Qd9s0EggmixJovc7/kYyff7/Cf6wiOSLcVUFnwfCjp9LMDzS1AsML0AIgB UjotZk75SSIcIPZndukFra5KDtguGhT9azXyL1CYOgKBl0bGRqvm1nU+asY9e5LhtCmo 0bUPw7MPKKIVkFrq0gjfqwS1dH8k3iOxCo3w6BgSKTrL7YNQBxm7wf0z+PTDJx8Bf91+ EMlwuFgz2q9FDuFO1AJwbLa8hyxdPW/9cq6ED8UsAtHGcCCdKI1AqBEN1Yi7BbOHEfcv FhZKccoJOD5fEAnVzr/4h14fC4TbtO8TIxuQg3DZWpLQrxbzNJhWgVj4RHRJm5OaqlnR JrFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=KMyi1ArS; 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 c12-20020aa7952c000000b005a8ee84ba02si17989217pfp.310.2023.03.09.08.33.26; Thu, 09 Mar 2023 08:33: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=KMyi1ArS; 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 S231923AbjCIQGA (ORCPT + 99 others); Thu, 9 Mar 2023 11:06:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231639AbjCIQCX (ORCPT ); Thu, 9 Mar 2023 11:02:23 -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 F1F49F7ECC; Thu, 9 Mar 2023 08:02:21 -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 A14712017B; Thu, 9 Mar 2023 16:02:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377740; 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=MrW7pYFX5R5J7fTSEP6NHJNhtqFQ7aaj+PBS3SvPTGg=; b=KMyi1ArSofl/bsuzaDcxSPA6St3dbkNeQtu4GG/uXz+mB3OSzgwPJRG/SVapYXPcoZudSI F7o/npDk+E29i4ursyWn9ajqDmAW8KzUMZ5sl21zEJ+MJfjD2rNMX/sDmkl4m8npxWvwT+ 86BW9xhw7Q2fbROUtPyJ1oSOxlM9pec= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377740; 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=MrW7pYFX5R5J7fTSEP6NHJNhtqFQ7aaj+PBS3SvPTGg=; b=lf0QPjtylGKlpjax3PSZ8yyUW9A+oDhATNg9XPu1acJ5HWImpCm+MTnRl0ICzIJB+Uv0s8 PgCWdEKJOhB0P4CA== 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 4509513A73; Thu, 9 Mar 2023 16:02:20 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id iCHxDwwDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:20 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 039/101] fbdev/imxfb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:59 +0100 Message-Id: <20230309160201.5163-40-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908588454377318?= X-GMAIL-MSGID: =?utf-8?q?1759908588454377318?= 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/imxfb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c index 51fde1b2a793..aad7d447385c 100644 --- a/drivers/video/fbdev/imxfb.c +++ b/drivers/video/fbdev/imxfb.c @@ -843,7 +843,7 @@ static struct lcd_ops imxfb_lcd_ops = { .set_power = imxfb_lcd_set_power, }; -static int imxfb_setup(void) +static int imxfb_setup(struct platform_device *pdev) { char *opt, *options = NULL; @@ -856,8 +856,8 @@ static int imxfb_setup(void) while ((opt = strsep(&options, ",")) != NULL) { if (!*opt) continue; - else - fb_mode = opt; + + fb_mode = devm_kstrdup(&pdev->dev, opt, GFP_KERNEL); // ignore errors } return 0; @@ -877,7 +877,7 @@ static int imxfb_probe(struct platform_device *pdev) dev_info(&pdev->dev, "i.MX Framebuffer driver\n"); - ret = imxfb_setup(); + ret = imxfb_setup(pdev); if (ret < 0) return ret; From patchwork Thu Mar 9 16:01: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: 67007 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389296wrd; Thu, 9 Mar 2023 08:34:47 -0800 (PST) X-Google-Smtp-Source: AK7set/U9UdNHq/Y2dxb1gZcVMNQI0bu9QBHDjWoCQZ2Q6xnsAOveXeTd7ilnKWZX8dqSVXLq5uc X-Received: by 2002:a05:6e02:156d:b0:316:5625:242 with SMTP id k13-20020a056e02156d00b0031656250242mr18354004ilu.3.1678379686746; Thu, 09 Mar 2023 08:34:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379686; cv=none; d=google.com; s=arc-20160816; b=swnlTezW4q9Yzu67fYcD1xj4brFqfB1pUhNQnLCQA1Vh+5fDErprX1Y+IPCF80sP2I Xga41M21/Qs3OLJwzp/s4AtOdU3/NyWCD8a7IZT7IwmQwR3HH6vYSRT0qSupPWrmxEnm KUKrSxk7UQq1bXtDI5/g6hrNO3V9R6nk8nk6hUonKW6NmW+tcfNPNkIFul4/Pp7YA0eD 3+zBPTJvmWtm6iQeNNuhRVSpkChojIB3VG9m1Vd6/GJ65MKMMrSTtBZDW/ff6qsjOs9z fvPLIDYhstSilLIc9u0HEeH7vINRK+AtZwPx04Q7exaAsut1l4GcHhHu+eYEwVoJyPKn T9cw== 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=c7fzbHMZo/4t6EopunsYCvjOPtf7sTkieu2cfrSqxh4=; b=fHVH0KTZkxF46rAFM4xwcJwNWu4kTUXSTpd3vTeuHmI971A2eqhOKJbTOfppnr+CqS AgJYtL6MR4sMxRkoNZwCrLLIwsMD2ctaqIrtp+SmHW2rtIrR6SPK4a3fUowNKiH9V9la fKTYn0CCYOTkhSrMrIrYlRl4EYeoXojSLAg2H+zWCvmSrgZl3107hdDV+r73mzAOIQwG 37q+6DuaCsz66mwwwW5GYmcE18VDCJ9QcNFo6NmrqotBIprBBpAXWLdwN28Fh+65vLO7 skNU3MORy78UTk0kqxOWiV8m0HlCaw5Z45+lrRmC9QsTmxGJlG3YreUPaujYQD81McWD ZHuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=AcjpdxWm; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=zXFSwT+R; 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 f17-20020a056638023100b003c4e1a4de3asi19072149jaq.111.2023.03.09.08.34.32; Thu, 09 Mar 2023 08:34: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=AcjpdxWm; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=zXFSwT+R; 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 S229521AbjCIQGg (ORCPT + 99 others); Thu, 9 Mar 2023 11:06:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47502 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231644AbjCIQCX (ORCPT ); Thu, 9 Mar 2023 11:02:23 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6CD83F4B43; Thu, 9 Mar 2023 08:02:22 -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 0E85422144; Thu, 9 Mar 2023 16:02:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377741; 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=c7fzbHMZo/4t6EopunsYCvjOPtf7sTkieu2cfrSqxh4=; b=AcjpdxWm5zvGSYbFoeuEUnP4boRb5za5KSjPBQem5PqUCIGbTC1YQyR0bzLfnSXfEcfp9S vWozmmoOveM6DUzJIicy12AOaBWeCqhkuylaJ1kIHgqynt7NsGG5AeIERZ5raI1UEhL72P wPGK+lXTR1+AXZKJkrDaAmewHFLLSfQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377741; 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=c7fzbHMZo/4t6EopunsYCvjOPtf7sTkieu2cfrSqxh4=; b=zXFSwT+RVObgE93n73DBA0+4VkgBUJV055XbmNaTwRb7OgJFPKZRLUApY764qMPHJl8HXL cL0gZLXVd47G5BAQ== 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 A79A01391B; Thu, 9 Mar 2023 16:02:20 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id AJoaKAwDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:20 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 040/101] fbdev/imxfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:00 +0100 Message-Id: <20230309160201.5163-41-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908658287942681?= X-GMAIL-MSGID: =?utf-8?q?1759908658287942681?= 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 aad7d447385c..d4e347aca0b0 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,21 @@ static struct lcd_ops imxfb_lcd_ops = { static int imxfb_setup(struct platform_device *pdev) { - char *opt, *options = NULL; + char *options = NULL; + struct option_iter iter; + char *opt; if (fb_get_options("imxfb", &options)) return -ENODEV; - if (!options || !*options) - return 0; - - while ((opt = strsep(&options, ",")) != NULL) { - if (!*opt) - continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, &opt)) { fb_mode = devm_kstrdup(&pdev->dev, opt, GFP_KERNEL); // ignore errors } + option_iter_release(&iter); + return 0; } From patchwork Thu Mar 9 16:01: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: 67020 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389846wrd; Thu, 9 Mar 2023 08:35:46 -0800 (PST) X-Google-Smtp-Source: AK7set+q8qy6p8UDnOFVUA7heHGWtUIzy9agY+GwvN5EEg444b8cOTfHud3oFoMB5z+7Ogzt1kBM X-Received: by 2002:a05:6a20:3941:b0:cc:7c25:2e1c with SMTP id r1-20020a056a20394100b000cc7c252e1cmr5720392pzg.13.1678379746281; Thu, 09 Mar 2023 08:35:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379746; cv=none; d=google.com; s=arc-20160816; b=Bq2YsbMHF9TZic9nDUZqOUnnINgQ69ex+HuUk/lJvwYcYqObweUZ8DE5cD6sbae3fW fSs0CG4QBJblKftQXc1A5nCJ61kl9rrn2LI5sephcb6jOTBh8YMuNfb0Onn4lxV0FoQP THAxHt+gzmBIpi1Sz2aBDh3Hf6KSZxyTuZTyTUqLO6WoqkJH7DZ9H6ygr6bTD3Xh6dv5 Yifu1f2mD+ECom2D6o1ZMTB4j+sxKc1y0gTsA/6F+jlXJ8ger12y5e5mHB2wzNeaInEG o7MkcmE+vVvXshKo7Ewz4N28rJpFH2MdX0UHEGh05B8oXqWQMMhSnfduPEGh8dDPvu1f 0PwA== 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=i5PgfaO6hx580hMewU4zouv2NIVdCtMZiQTH6Xeh3Y0=; b=jgPRFpR/GNF4AyXmCf7dBh3ZjOtkET3b8Hu8CEwrQEXLv72nasjYZ0lVKamPagnniX TfK8+jjTBP1oNHfCiYBzNcfFqbp5HNaLQfw57FffRyRLW+qSgrCQxDUBN1/Tar/x6XQv J424Wmk/U1o7PSGM6wS458e3CHK4GZd6pn+NXYDFS5clUaNkqPv+hcXK24Ba4An0o99s 0JUg9z2xsiBIfply7tE07DgiUzUopZnjaJ3kG28kEggAlPMai5V9ghfQQiUZBs4XIyQS cIMtwiT9XuTxOUO4lJ3T+Fn8q7Zq+dikjMSWldmAYJXuH0XDOkSPU6xBnej9MkaVLYfm khEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=OxplyLZ8; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=4s08p0a2; 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 c12-20020aa7952c000000b005a8ee84ba02si17989217pfp.310.2023.03.09.08.35.33; Thu, 09 Mar 2023 08:35: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=OxplyLZ8; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=4s08p0a2; 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 S231340AbjCIQGU (ORCPT + 99 others); Thu, 9 Mar 2023 11:06:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231649AbjCIQCX (ORCPT ); Thu, 9 Mar 2023 11:02:23 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C90D2F786F; Thu, 9 Mar 2023 08:02:22 -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 6E20322155; Thu, 9 Mar 2023 16:02:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377741; 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=i5PgfaO6hx580hMewU4zouv2NIVdCtMZiQTH6Xeh3Y0=; b=OxplyLZ8PZLhwMHdW9CSfy3+3/6UPfg4V0ga+qxHNiA+/tEAib/yIpRxC9NncZ3bI9EHok 3KkgvPls3saHo/wvZrG1YKCkendDAjEIlUBmN9gdGVqjsb5vAyxBtN/LpOwja2NkboYzbh 7na0S+K24HgdL1DpMBNn8MhFdGrMxJc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377741; 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=i5PgfaO6hx580hMewU4zouv2NIVdCtMZiQTH6Xeh3Y0=; b=4s08p0a2T6+MyG/KDAuw9YiK+s+lyGGLLBa9SNu/Ciee0vTt9foheCqlwknCIBVOBnvYem 1V1zhtFa9nZfoFAg== 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 1262D13A73; Thu, 9 Mar 2023 16:02:21 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id qIInAw0DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:21 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 041/101] fbdev/kyrofb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:01 +0100 Message-Id: <20230309160201.5163-42-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908720408202347?= X-GMAIL-MSGID: =?utf-8?q?1759908720408202347?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/kyro/fbdev.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c index 0596573ef140..97f4d8995e36 100644 --- a/drivers/video/fbdev/kyro/fbdev.c +++ b/drivers/video/fbdev/kyro/fbdev.c @@ -79,6 +79,7 @@ typedef struct { /* global graphics card info structure (one per card) */ static device_info_t deviceInfo; +static char *mode_option_buf; static char *mode_option = NULL; static int nopan = 0; static int nowrap = 1; @@ -579,7 +580,9 @@ static int __init kyrofb_setup(char *options) } else if (strcmp(this_opt, "nomtrr") == 0) { nomtrr = 1; } else { - mode_option = this_opt; + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; } } @@ -805,6 +808,7 @@ static int __init kyrofb_init(void) static void __exit kyrofb_exit(void) { pci_unregister_driver(&kyrofb_pci_driver); + kfree(mode_option_buf); } module_init(kyrofb_init); From patchwork Thu Mar 9 16:01: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: 67005 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389239wrd; Thu, 9 Mar 2023 08:34:38 -0800 (PST) X-Google-Smtp-Source: AK7set/aR/uHVTzTD2OwHcYV772lx8wrgkYlG8HetkOAlqrWMc2snJb8xwwof3hWw9gw5RgquAyx X-Received: by 2002:a17:90b:4f45:b0:233:eba7:10c0 with SMTP id pj5-20020a17090b4f4500b00233eba710c0mr23623701pjb.1.1678379678409; Thu, 09 Mar 2023 08:34:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379678; cv=none; d=google.com; s=arc-20160816; b=eRt2tJ1G81ZhDgqWLbaPPtfeIOaFSCJg8dEaVbiWhJcwH6OXlQc44EA1+ZtaktEOTE Bl3/UvvXDMR+RUTAvTtBELRmGVdxryrkhpBniHpsuj1Vrc1NO2etEFSKQ5A7uRQwPz2l eLmwN3rDiZLvscAtDVclGG3v2cDssAqZiK3AcbRigHYs8oearh5wcAPi8FedXhGk0K3h dx8N04eH6J/i5Zhv4exaOTU3FnrGuoyGoWMDg8hTNnofyCSVDRhvFg8g6C1oI39HudZJ /BmbPqvjZnqHZ5NeiGkubvRCAxTkIdUHU2Ivy/P1gH8n2muD+Z65ardRxk+JvC37A7k+ fX4g== 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=f7/w5Q61x+4mYCVkBoPT/boR5xsta3AhSkrJ0HBOQOk=; b=R/+qkVdKJzbQwslhTepb+RYrS18PIyxAgAJ2SlSZUVOyZNBIzTzK/0x8OxsOBu7a/E RrBkHgSDnGFp5dgN7y46Op3HlWpCNTF+k5uv7yumD703lG4oWbxyEcfdYzixKMlgd2B9 6Lp9sY5z38/C8pvqNUvXwJ0WqBa3w6Ix+DvqvMkqaWBdhnj1obFYvr9FlypBVf30YlCg Su197f1q4GeUeZPFx0QzV7VNJCkFqOFOIRbf3RtJFnfs+d0uoZkHKuy7pgbU9VGiOls0 O+ey3WCRXI/Ij3gbgpZ3g8kNM++Yf5MQo5zFt+dyDmexYWOHKj/5XzW3vVLl4HT5tope q6Bg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ZYzcqN+D; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b="p8/kuaWc"; 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 ca2-20020a17090af30200b00233773a522fsi200231pjb.141.2023.03.09.08.34.23; Thu, 09 Mar 2023 08:34: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=ZYzcqN+D; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b="p8/kuaWc"; 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 S232065AbjCIQG3 (ORCPT + 99 others); Thu, 9 Mar 2023 11:06:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231653AbjCIQCY (ORCPT ); Thu, 9 Mar 2023 11:02:24 -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 412E4F63A3; Thu, 9 Mar 2023 08:02:23 -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 D28C622148; Thu, 9 Mar 2023 16:02:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377741; 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=f7/w5Q61x+4mYCVkBoPT/boR5xsta3AhSkrJ0HBOQOk=; b=ZYzcqN+DteNaiTPy/Sd2Ez4lpvoB7nNdQHMa+VGZ2FIVbrvaAjz+8bK0VBpxp1Fc4AoEfh 8r5Lv13OagNfktx+oqDsn1M/KGGADarW8SQ6X5FKxsyx4Uf1pxhQTZoSeUCVe6e8KFNvpt oIhaTNuz18xbohURjmj9/rFkLgv7XFM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377741; 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=f7/w5Q61x+4mYCVkBoPT/boR5xsta3AhSkrJ0HBOQOk=; b=p8/kuaWc4uPtZEFrF6v3k+t808YmOdHgDk0LOkZOfMkdh/dSY3Q9KtWH+/MPYQBA4LPR9b yFN9UU+P+NF6KNDA== 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 71CED1391B; Thu, 9 Mar 2023 16:02:21 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id YPDaGg0DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:21 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 042/101] fbdev/kyrofb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:02 +0100 Message-Id: <20230309160201.5163-43-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908649768681026?= X-GMAIL-MSGID: =?utf-8?q?1759908649768681026?= 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 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c index 97f4d8995e36..ccfec4e55ecf 100644 --- a/drivers/video/fbdev/kyro/fbdev.c +++ b/drivers/video/fbdev/kyro/fbdev.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include @@ -563,16 +564,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) { + struct option_iter iter; 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) { @@ -586,6 +585,8 @@ static int __init kyrofb_setup(char *options) } } + option_iter_release(&iter); + return 0; } #endif From patchwork Thu Mar 9 16:01: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: 66989 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388378wrd; Thu, 9 Mar 2023 08:32:56 -0800 (PST) X-Google-Smtp-Source: AK7set/RSMr9WIXCHDQJamK/cNTu5bAbnpqAnPItOe4vRmIaL3kmnYDs9V4YeeoEYQePjZP3QwOQ X-Received: by 2002:a05:6a20:3d04:b0:cc:6d4d:57ae with SMTP id y4-20020a056a203d0400b000cc6d4d57aemr29066489pzi.42.1678379576107; Thu, 09 Mar 2023 08:32:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379576; cv=none; d=google.com; s=arc-20160816; b=DyDLJ3ABxy/R5CGaHsLDMAwrOd2oLgQf0P8XXusSvIo2EV8Ch5jYJZ1si1tSyDTxdV HC9pwAhxeHJwZw64fgpzfEoC+lOxtdKlaHoY1Mv5TinST66irHD5FQIydL1Kkl0pQPgh ENM8yAP9sgZxAvZPnarWyBXb5XoCzDxZufz3v7PY8jpR7Yz2xRsF4w7ugpCJg9GeWvB2 dsPOFKf0FjD90SRPb6T5x8O0AcK01EdfrMc+uNWK2FGUS3PKYlTv0CYV0SFYuB+OZBLD HwbVfPdCoVMNYgeMPKtjXtHUmV3Ru0ni5XdvJVesdmNaSidrAG40vLv4QmcWD+f572Ak AanQ== 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=MhQ0fC8VI1oCVuFBz/d32+SfOxbeDjX91tXHkaHG+3nqJw4kGgcr2YqMdASNx5mqIJ gg3rALix3s+eD+QVx4A4u+BrosprACJ9w3/Avi6TQgBqaiuGEZGgVuS7shpGa9flDkKL xFB9s4tyY1Y+TBVcDh4nHMCs1LneNHI1Wf079Q731FczyrwPWndGrbkuRdgJXHTipAup h6E6k27sEvmB0xzzYdYFx+9PY3wWvRgR8EFdb6iGqN5IQ5/n/0f31MRZCCUN8wE6uxjY pYtSFzUySAKMwoXVawUDLNVLyLAWGiK9cK1v2lyhAsUsTgcvhfXCD6a3uyBKqtXWa7Tk XB8w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=1GOpxKfr; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=9xjIyggr; 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 c196-20020a624ecd000000b005dc75487137si19107037pfb.299.2023.03.09.08.32.41; Thu, 09 Mar 2023 08:32: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=1GOpxKfr; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=9xjIyggr; 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 S231971AbjCIQGZ (ORCPT + 99 others); Thu, 9 Mar 2023 11:06:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231657AbjCIQCY (ORCPT ); Thu, 9 Mar 2023 11:02:24 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B3AC1F7EDF; Thu, 9 Mar 2023 08:02:23 -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 3EDDB2214D; Thu, 9 Mar 2023 16:02:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377742; 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=1GOpxKfrjjGckfdWBckK8lTMMWjUiFaD2WxMxiMLn7VPCW+agT5PZwDUfFtXgQUXgYP8qR 39pNiP/D9YTBFcwtQsh/i8ws+abIYU5huxxDLLtqovGZFa5bhLdVgKks57abtUZdbPsC8u oeRrrPseEbzJaCXGsr7VBwTtSMxWmXc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377742; 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=9xjIyggr5kkLYDs+dyPnBfcVfnq0cuhQlKupTXSl2bzzfa99inGZUg3TUx4BhAPXNIVmzz LOlvRmwdNDI6/mAw== 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 D704713A73; Thu, 9 Mar 2023 16:02:21 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id SFucMw0DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:21 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 043/101] fbdev/macfb: Remove trailing whitespaces Date: Thu, 9 Mar 2023 17:01:03 +0100 Message-Id: <20230309160201.5163-44-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908542141081209?= X-GMAIL-MSGID: =?utf-8?q?1759908542141081209?= 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 Thu Mar 9 16:01: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: 67000 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389018wrd; Thu, 9 Mar 2023 08:34:08 -0800 (PST) X-Google-Smtp-Source: AK7set9i8xusJukoTzmlPjxxoqJ1Cd0ppMw9IHxKmGvfeqDhgmjI2wXEK0KmvWKmJgeUPCKBuGak X-Received: by 2002:a17:902:e84b:b0:19c:b7da:fc44 with SMTP id t11-20020a170902e84b00b0019cb7dafc44mr26847478plg.34.1678379648097; Thu, 09 Mar 2023 08:34:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379648; cv=none; d=google.com; s=arc-20160816; b=WHyBN2ZEzMeTnS9ulTi2DNog/5oSuYYOq+4Sf/h4juDrXSP9CRkYsJdZ9gXOFs9aAj HzFBKZs90KuoYBPsD/mYCwSodPgquxA7matl4E4C0DMKVliPE3FfdPNlWrtqJmv+LgTv H+2rxLj7yJmVXEaaPoTkcIPQ+m59CYPgsiysIE0VAbat16LMpbPM97aVhtGOnNrRM3DI by6JEUzycluWNh1EOrns4hsUNrOr+8UcQotcT6a85W22kghZUvPeF/IFQdnJtHLQqDLM KAhUA58JpqfEUQyOdPjdhv0FwvuL82+mJJQm+I0rruAQYtJiRQ1XTTXDnLc01zLO2XUO hCog== 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=CsLXoWVq0oVkycpG6cywKJmSZDW0W9mttSoEkq92BAA=; b=iPsTjxgJgzA9S7jHjVTOeadJi7kNbHUXzhT75ITMvi4xSDkcCy75Up71hsqesx813+ TNJzx+V9SJ+M2OfRQJjbBBraYu1s+P2U+1e8rG8EOXZPY7dSRThPjgmLE0HLbVmm+dts VCYePjEnc1toa+aia9wKhxXZFwTVPGAoGyvUcM4vLrlw0qfcz0w1SwcEziCOdbZuLcBE IxQG27hjucFcF2s2J4E6dhyBi/DsV0TABUqQlNWNyUmfkiHio0yqrontqNddUFBvRJsl Dr6ox/7RdfKE1qBjAF23ep2U99ziah5WQe3NJia6dutBHhyWM5lYAnG8GQLMxTHTJm+x k7fQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=VqJgOkH8; 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 lf6-20020a170902fb4600b0019edb734770si8058333plb.635.2023.03.09.08.33.52; Thu, 09 Mar 2023 08:34: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=VqJgOkH8; 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 S231610AbjCIQHd (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47692 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231667AbjCIQC0 (ORCPT ); Thu, 9 Mar 2023 11:02:26 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 34844F7ED7; Thu, 9 Mar 2023 08:02:24 -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 9829222157; Thu, 9 Mar 2023 16:02:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377742; 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=CsLXoWVq0oVkycpG6cywKJmSZDW0W9mttSoEkq92BAA=; b=VqJgOkH85wpepK8t/nG/myX7s+/stYVpojzuzc5YsN7/c9HgpiuimUpvtwIT3AQAlPPzZ7 nuRStiAxj+utM8o4scM/oviLSkAtx388ZVR8Afhfye44Va1CDjEgmM7rfQ/tYqMTfyASkw wMmop9TyGQPU+5i6VN8U4m61I0PRGqM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377742; 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=CsLXoWVq0oVkycpG6cywKJmSZDW0W9mttSoEkq92BAA=; b=a1ZNaaHEc5m7bOfGZxxqdIVgcWq6fcePeDHAj20hxoGD/xUVmPHGR1CnHGuDIaHlmw0GuN ldwEx6ZXTyIBMfDQ== 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 431511391B; Thu, 9 Mar 2023 16:02:22 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CAFvDw4DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:22 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 044/101] fbdev/macfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:04 +0100 Message-Id: <20230309160201.5163-45-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908618066629331?= X-GMAIL-MSGID: =?utf-8?q?1759908618066629331?= 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 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c index 44ff860a3f37..c7e17a14daf1 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) { + struct option_iter iter; 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 Thu Mar 9 16:01: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: 66988 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388348wrd; Thu, 9 Mar 2023 08:32:53 -0800 (PST) X-Google-Smtp-Source: AK7set/AdOtetXKXyZgYFSvG53f7E1JvhkFd2/9wUMdAnbLxK9y7ydGluDysaughpIJCICyJc38T X-Received: by 2002:a05:6a21:998b:b0:cd:7d01:7654 with SMTP id ve11-20020a056a21998b00b000cd7d017654mr24307261pzb.14.1678379573136; Thu, 09 Mar 2023 08:32:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379573; cv=none; d=google.com; s=arc-20160816; b=kjpJ4ADdRsOjqQ7o+BdElp+qSWmvAZEXyhQ3rHHOgX9XUvwFzZH8BkWBYx+dk6JU/m JIbf9gCXWMXMAISfPQfsAX5CYO0xesAdHZ0MtBfNuBa6P1NxLMq6ruFfIUrQJ2hmeDzh 2XlgPFT36q+L71wdMd0nYZfnYYTxYvgS/JdY2K0kK4GMKTDA5xemMzuQKJebv6bKhVYo +aSCvEXAz2FkyHrWcy2H00UqoxmDasTzkwOQ6AQdZOOROG47nrKaCTCCo0lNFLY/ybEx yT1fjaskVjlczCXGqlr1iKGoJVaYPCAGGl0GG5nUDwxSaTLVaPUy167sUMFV5aDImDcz vEZw== 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=L8sTlmFAIEYjGf/xMWjBdmdvaz1qIS9TL0x1Z8/8ESg=; b=VXSd7V6nIV9wnvx9RQZEvgDeBurfE3MqQafEMscUil3iL5hUAi+/gFnQ+pM+AQDsk3 U59JFS3ZsMVSFYRhW7t69s1RM04atZDv7T7PTAU5lT3lYoKcT1sFwNkkz/30hqN9IGLz FlvWFndglirJCHTh+kYmrNjaiwFd1G2Va1Kd5VoYX5JH2PCazowoVVIFI2vFLcEhwOiG dp6SjwKTOJ20iArRH4HwZ+TzCJajONxXz0iG3HrSAbwEPFUqXhRCcAWoqwqkVCCckaZW ILWd7XJBtrdOc0j99tAWDXz74nFVKa3ihSdWArhN1+1AXzRe8CoL9SO6hlujdix4i6T5 Favw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="Jx/cdr4s"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=E1tv0ydM; 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 w38-20020a634926000000b00502e3a1e8bdsi16504127pga.280.2023.03.09.08.32.38; Thu, 09 Mar 2023 08:32:53 -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="Jx/cdr4s"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=E1tv0ydM; 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 S231941AbjCIQGN (ORCPT + 99 others); Thu, 9 Mar 2023 11:06:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231659AbjCIQCZ (ORCPT ); Thu, 9 Mar 2023 11:02:25 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 41AA3F7EE2; Thu, 9 Mar 2023 08:02:24 -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 F3CC920189; Thu, 9 Mar 2023 16:02:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377743; 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=L8sTlmFAIEYjGf/xMWjBdmdvaz1qIS9TL0x1Z8/8ESg=; b=Jx/cdr4saXpUkoi5xNEm0dH6/pc+Nm9w1N47Q9Y3wj24Jvq3WZreC8KxOjqGHI5eFbAdj8 4Wa0rwhaMD5EK2UBDyUdldSUPkMMqs0rjJPd0LLIjS3VrMtXKeaTeejRZly8Ky7/biDATh KWLiIirbeCcla0AwDz5x7Xknw1Mqi2I= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377743; 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=L8sTlmFAIEYjGf/xMWjBdmdvaz1qIS9TL0x1Z8/8ESg=; b=E1tv0ydMgl1akO+Ymzgw1Y15ff7EzGNdKqau/hDrgJ6hrLZi/oqdhH/safjC1XW0/PdrPC cjAGhE2wOkqzL1Dw== 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 9BDD013A73; Thu, 9 Mar 2023 16:02:22 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id AF42JQ4DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:22 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 045/101] fbdev/matroxfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:05 +0100 Message-Id: <20230309160201.5163-46-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908539137229838?= X-GMAIL-MSGID: =?utf-8?q?1759908539137229838?= 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 | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c index a043a737ea9f..4c2086136e9b 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) { +static int __init matroxfb_setup(const char *options) +{ + struct option_iter iter; char *this_opt; - DBG(__func__) - - 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)) { 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 Thu Mar 9 16:01: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: 67044 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390957wrd; Thu, 9 Mar 2023 08:37:55 -0800 (PST) X-Google-Smtp-Source: AK7set9xy418DMJHpCg/KkEYVHAng0msQCFKSPh/wTfu+wrI/gx575mkWpQ31q3Op16NjuZoxJd3 X-Received: by 2002:a05:6a21:3392:b0:cb:7e8b:d4e4 with SMTP id yy18-20020a056a21339200b000cb7e8bd4e4mr22977600pzb.20.1678379875362; Thu, 09 Mar 2023 08:37:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379875; cv=none; d=google.com; s=arc-20160816; b=y1DNuS0OLJdXQB/Z/4QctKeCF8PRqeHRJxkHMlwBLpn7iFgyJOrgIfh+RV3Lzji9ax 2UmScg2pRcNIDYzXw4YMyAzQl/9nWEmgIs3JKvR0EIQhnVi/UNrrefaTD7ZTHlbcCeWa DuKm5iezIv9ecBLFewmPZ1BzVcwsM/6LaJh1tluQlF8gzlJWXBELpOE/EWzpl3tGqPES hZ4/8Uah5BYqAUwX9skFa7nGHrD8v/lHORW9wSsc1Tsgf0oh2ZcQhw7Gd24BtFaaWGka 763mAxtl8r/PTW3l1/8Ewhm3ax207Ca2xDObqyCIgIvoObEFJzSCR1NezjgStLOee1uT gHSA== 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=ai+UeCW+AhsoKfqWG5QFx6U/VSD9FuiIhsYKiqWB00A=; b=ZPndFGVcx7itO1+009PnUyG3X/YIr8BZ6S744KKVIuC42bBBcrk5ovuyssf6Zoacr+ dDm0z9M+RlYbCAqdoia2ZRQXdtqJ7W+QIt/GGnvvDgD14WUI5YSmh1Whp0kXT0gdA/3K nt5GRrWbkus7/oNsN4/AnptxBlUcmyNSIXW/aAOFfbD/x35mVEU6iuUP/VrPidwkd+3U Fdhz+Aj7s5CmL1oBzLpGwAgKIMSJsFBW2oa6jFn9kPi8Sta0caxD3/NLk8QyJQ1fvqKU PGhLcl0R1smsEarrg5lh0bFDSobk1HMP5k9JyXMC4v6ZzrOFy4tGaiGJ53kHfesC4SFc g/Rg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=nxteKXOc; 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 c28-20020a631c5c000000b00502fdd175f3si17356945pgm.148.2023.03.09.08.37.40; Thu, 09 Mar 2023 08:37: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=nxteKXOc; 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 S232139AbjCIQGn (ORCPT + 99 others); Thu, 9 Mar 2023 11:06:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231660AbjCIQCZ (ORCPT ); Thu, 9 Mar 2023 11:02:25 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EB5B2F7EE7; Thu, 9 Mar 2023 08:02:24 -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 5754A22158; Thu, 9 Mar 2023 16:02:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377743; 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=ai+UeCW+AhsoKfqWG5QFx6U/VSD9FuiIhsYKiqWB00A=; b=nxteKXOcJTnmZ+AfjBKZCbhwRbte4JILVsUC4GnBe5KlaPlLHXmTuGtVu+ViN+ECW+44P/ Ly+dus4n/DRJHs2ySjeVVOF6Tzz5e/rNNJvysuW1h7tYti59rXT29y7lqTHHM/3enOOUIW a7CI5LbqIYbCVSYm1UGD3ocJMpq/un8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377743; 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=ai+UeCW+AhsoKfqWG5QFx6U/VSD9FuiIhsYKiqWB00A=; b=qCR2hPQslBhn94hWgs9F4HlXq7ylQCuN35HGlZHqBA5tV8/mpI6q/xgjZg6Utr/YKiGfc/ /zofyFiq7pUsA0Dw== 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 03F3C1391B; Thu, 9 Mar 2023 16:02:23 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CKobAA8DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:23 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 046/101] fbdev/mx3fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:06 +0100 Message-Id: <20230309160201.5163-47-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908856490523141?= X-GMAIL-MSGID: =?utf-8?q?1759908856490523141?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/mx3fb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c index 76771e126d0a..e33ad125318f 100644 --- a/drivers/video/fbdev/mx3fb.c +++ b/drivers/video/fbdev/mx3fb.c @@ -332,6 +332,7 @@ static void mx3fb_exit_backlight(struct mx3fb_data *fbd) static void mx3fb_dma_done(void *); /* Used fb-mode and bpp. Can be set on kernel command line, therefore file-static. */ +static const char *fb_mode_buf; static const char *fb_mode; static unsigned long default_bpp = 16; @@ -1666,8 +1667,11 @@ 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 { + kfree(fb_mode_buf); + fb_mode_buf = kstrdup(opt, GFP_KERNEL); // ignore errors + fb_mode = fb_mode_buf; + } } #endif @@ -1688,6 +1692,7 @@ static int __init mx3fb_init(void) static void __exit mx3fb_exit(void) { platform_driver_unregister(&mx3fb_driver); + kfree(fb_mode_buf); } module_init(mx3fb_init); From patchwork Thu Mar 9 16:01: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: 67023 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389948wrd; Thu, 9 Mar 2023 08:35:59 -0800 (PST) X-Google-Smtp-Source: AK7set9x1J+T6RMvuUnKkU8nphzMPjL9reWsPM8LmHncPibrhFck3qp5EDbZB6r7eD2SBw3l4nsG X-Received: by 2002:a05:6a20:3d05:b0:cc:5917:c4e3 with SMTP id y5-20020a056a203d0500b000cc5917c4e3mr27354705pzi.48.1678379758889; Thu, 09 Mar 2023 08:35:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379758; cv=none; d=google.com; s=arc-20160816; b=DZo1aAwR2h3Y19n3m9I6G6YxxXRU3HLkYKr4/1mPuR37aTwwLrJIlERkvDl1vN2Dvk vI6J1DM0BCH/ADnBqVMl3UUJhUQXEMXAhGYT/GcGEbimDKisAMXg2EHXj06aEwugykhn 5Br1QvV1D3/Qe4ezFkCEFtD2CJqxL0HcpopPk8rxlZMTdl5xeLVZ+7brxUkhlL61Fo2z 7NWfi5EhYb9B4iwFNORngAcEi6yQWYY9YtVCK22fW9BO+RgrQw/Gj5yOvlhdo64cFSC5 0UA9VAu9NuwWktHrQGE55YqyNhcvzLLIPVfIawE/405XBQ08uQWSwKRuBGqbb4vCzCyz GvwA== 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=A4w8kD6lS+dFzIR63p5dUUwf4D44kkwhnZ/hkW7PWvQ=; b=GncgRtaTe9M8wa4Li5hXS/I6Cz3MkaK5ZJmf6hIEyG/zq3a7wFHlmlDDEUu7cRKee8 ULwiRzrMiCtTNOFRJPU1+aDm2/Ds/lGpmHN0QDFsE79ErO5qSg1YwDmcIBtvKoGeSWEw OM7xO8ct19UZ+lJgJAENq2GdcnOUv3VIb3MkQ3JkZOYqlNRu666OcNoX22MJcDHnYrbH HS/KphzKVzb5XEmQFmLe4dCURn6+/gbR2v6YFaEkPIk33aElTa8IDfaVgutSH8X6YrnN 8e2sch0v6sm5BsIwvE68uYHxDC/DteLs7PlW6a19hDKnRmgj6go2poLExhyFz6XP+gFg bpEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=iDXxHErh; 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 y203-20020a6264d4000000b005a8f207d174si17857331pfb.248.2023.03.09.08.35.43; Thu, 09 Mar 2023 08:35: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=iDXxHErh; 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 S232118AbjCIQGk (ORCPT + 99 others); Thu, 9 Mar 2023 11:06:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47688 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231666AbjCIQC0 (ORCPT ); Thu, 9 Mar 2023 11:02:26 -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 576F4F7EEF; Thu, 9 Mar 2023 08:02:25 -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 B475222159; Thu, 9 Mar 2023 16:02:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377743; 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=A4w8kD6lS+dFzIR63p5dUUwf4D44kkwhnZ/hkW7PWvQ=; b=iDXxHErhFvLptDDcHlghTmcBvSp1EOtHjXWV9z7c4sMdO0MmTcmFUZba4t8Tgko6jidwvf 7izSf1/V7pekx7B33M3cKNXsdppS5eHTOtSB4LGfgDAlC9AX6713Pv7Ulilr/lwLYry5Cq tppXhFt4Jdw44vRZnVJ2W2Nn0TvWcoc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377743; 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=A4w8kD6lS+dFzIR63p5dUUwf4D44kkwhnZ/hkW7PWvQ=; b=x0I9OXLcL+NnyqJYs6yQHXgnjh0C8YZXabB8ASmWG/y2Fyeu7R+tvqHtbYVpxQWyZaBOwF Zx/7CPvfEv66pBBA== 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 5C3BA13A73; Thu, 9 Mar 2023 16:02:23 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id GB6gFQ8DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:23 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 047/101] fbdev/mx3fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:07 +0100 Message-Id: <20230309160201.5163-48-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908734071160898?= X-GMAIL-MSGID: =?utf-8?q?1759908734071160898?= 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 e33ad125318f..ca58afe366b4 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 @@ -1654,17 +1655,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; + 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 { @@ -1673,6 +1673,8 @@ static int __init mx3fb_setup(void) fb_mode = fb_mode_buf; } } + + option_iter_release(&iter); #endif return 0; From patchwork Thu Mar 9 16:01: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: 66998 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388890wrd; Thu, 9 Mar 2023 08:33:54 -0800 (PST) X-Google-Smtp-Source: AK7set+Sf0k/nDgsXrwKUIJ+UKASqBBt6rmphh+mUJIJPEIHif7hlZrdfoMPPCk8wmH6gOtBtrzk X-Received: by 2002:a05:6a20:7f9c:b0:cc:aa7b:84e1 with SMTP id d28-20020a056a207f9c00b000ccaa7b84e1mr31129616pzj.21.1678379634650; Thu, 09 Mar 2023 08:33:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379634; cv=none; d=google.com; s=arc-20160816; b=0xU/5hRFba06Kr7sL0NHbrE79w3R+xsRR+LIu8KLQuvfsp9P0vpGUejA10dWgDEhfs 1JRHsDzv4Pz6IWJgztcrgdPPbqGO7M71HCUi/20a7Rry7Gn0e8CZ2dbeHBlglMNV+5a3 wMA/BLzs97f0CDb3ML8EY3UIpJFNEvM2YgLKeRXWQdTTz2WQ3MSn1pEBeOulTB0BeEEI AtYcFUjp7BkBzTTfXmBXWbvmPKEn3GUAascJCVc2Y6tJLvxU+pSPYXyr6GLNaWqadQTP tpv5OEWLykpjdVy5iA+nDNczcWeT+j+EBfrZT6TBc77JsraLSFjsy8H7S++AmhddTJZq Z8cw== 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=oiht1Q677qYpu9/3uJW+gjpB4dNDmWpMrYhgfn9g2bY=; b=yVEhhtUOAnb4/11GnQ6cNL4uoQnIZwlqFonDJ5UO0L1BSuwwum6ERNyR+EmASiOI/k 0tApX2e4grN9ygCAunKoncAjUo/PinuaVcwfVIpKXQtinq07Vd1eoOcjtE01FcvmTANK CqOrFpX6/MX2mHdGmIpRM/wlDqQltVKZofNA6rEAFcv35eY6zDGHx1vAww+m4RRJkNPl R+RyNWNm09hTwKbkcx6k3XbEa/n8O6kIoewUi8EqJpOnYnLsfQdDSxzywdjdaIJyqqFN pExJLDM48/FG6bWF/X3PyZcHWE6U2avpmPm4PO5/pDq0slrh0x0+W9tqTha3F6V1nmF0 jqcw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=DxMk3p9p; 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 m3-20020a632603000000b00502f0ccbcc0si1687346pgm.233.2023.03.09.08.33.36; Thu, 09 Mar 2023 08:33: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=DxMk3p9p; 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 S232277AbjCIQH0 (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231670AbjCIQC1 (ORCPT ); Thu, 9 Mar 2023 11:02:27 -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 F0533F7EF5; Thu, 9 Mar 2023 08:02:25 -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 25DDE2214C; Thu, 9 Mar 2023 16:02:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377744; 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=oiht1Q677qYpu9/3uJW+gjpB4dNDmWpMrYhgfn9g2bY=; b=DxMk3p9pHKgXUCXSS9Kql+DZLobewJ5VeFW2S3TV7oTkGJbY95wtdOCPVMj7KBU8TDSSn0 jj913Ar5Psna5Ck6IhBstQTcKktCdX0kTxmq6ssOSjp0sE+kln31aSLeafAQHhlJy7IASM oOqfk0BYxACG9UVMKmcJElhzndt2XEM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377744; 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=oiht1Q677qYpu9/3uJW+gjpB4dNDmWpMrYhgfn9g2bY=; b=4BMvzee+Y7GQI119psWkGbS3oWLO9HQ6S8ktySDte0nmC3x32D4oZtQHAaJB00NzzF6pDi EZG1tCBuTByvxaCg== 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 B82951391B; Thu, 9 Mar 2023 16:02:23 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id uJIaLA8DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:23 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 048/101] fbdev/neofb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:08 +0100 Message-Id: <20230309160201.5163-49-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908603295610079?= X-GMAIL-MSGID: =?utf-8?q?1759908603295610079?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/neofb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c index 39d8cdef5c97..98edb6822832 100644 --- a/drivers/video/fbdev/neofb.c +++ b/drivers/video/fbdev/neofb.c @@ -83,6 +83,7 @@ static bool external; static bool libretto; static bool nostretch; static bool nopciburst; +static char *mode_option_buf; static char *mode_option = NULL; #ifdef MODULE @@ -2198,8 +2199,11 @@ static int __init neofb_setup(char *options) nopciburst = 1; else if (!strncmp(this_opt, "libretto", 8)) libretto = 1; - else - mode_option = this_opt; + else { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; } @@ -2228,6 +2232,7 @@ module_init(neofb_init); static void __exit neofb_exit(void) { pci_unregister_driver(&neofb_driver); + kfree(mode_option_buf); } module_exit(neofb_exit); From patchwork Thu Mar 9 16:01: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: 67037 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390466wrd; Thu, 9 Mar 2023 08:36:55 -0800 (PST) X-Google-Smtp-Source: AK7set+TfY6hjjXzlrFjmQCuTDMgWcwnpeC2XTlIzHHH5/k1seeUazanncyiLLkCA8vekeuuYbU0 X-Received: by 2002:a17:902:e5d2:b0:19a:75b8:f50c with SMTP id u18-20020a170902e5d200b0019a75b8f50cmr28092313plf.31.1678379815641; Thu, 09 Mar 2023 08:36:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379815; cv=none; d=google.com; s=arc-20160816; b=wUCSThnpve3juTsgalcvq+DOpTA428o9NLO2c9ZIxP2+xpki1dhAjNDNLvsFLtXtrs RCVbfG+EsLfY5U0r715kql4TgUTo2jFYAHdquKGEAoJtzNZ9pI+5tiCqxGL0rZyNtF28 TS+H072/i/w8gel2M3jcf1o2g4/0JDKJZ2BC2VFuXTEN1aJ99Gb+7pIK5xOyGxkWKL+D ZDl2WNpXnMfLcpoYzqrEMLrG4MDr5NCAJxdobVhPzQsLMpZkRHt6dNR9i6FNRShChVBJ icxg5MYsEjaNL3wStwDxJ+PLjYJZs3N484tuYMcRKfnkIcOZtr2zeaC8ZQ9MLzoZUtN4 Y+mA== 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=cQ2DtNxZR8mSDNCzRs15eZzz4O2bOn4Fr0rdTgKspbY=; b=zZFGbwMcRbFdo7YeIHDROSykz5GfXYEUR/9Nvz8TP/s4p6UUeKF0/kLHh2F3CsJmSd dLPtTcGeE1kixExJ70Ub3SFI5a3C8Io7JED5LDkV93wEuuyGoUBgawhz8jDdsKQapcdn 8TCIf6WL9Bh05OUixLjcMdO8aqdhfd1Cx9NQ0HudBNH7frxGFgW7At+UcxGbuyPzLagj QC/1hISNM1vxvHmfjMaS0O5DniocVCj0QovhB5iWotjlWzRdOE7P0azDDn7PcwwbcIDi TjuXehO2TGP48p+XTNxt1CWnxH5KYmEmNB2KhJ9IZi1rWh+H1JlCUKfeXNF8NeEmzFb4 IeTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=MDEOKQAF; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=R7Ettlbk; 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 lf6-20020a170902fb4600b0019edb734770si8058333plb.635.2023.03.09.08.36.41; Thu, 09 Mar 2023 08:36: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=MDEOKQAF; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=R7Ettlbk; 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 S232249AbjCIQHT (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47696 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231669AbjCIQC0 (ORCPT ); Thu, 9 Mar 2023 11:02:26 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F04A1F7EF4; Thu, 9 Mar 2023 08:02:25 -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 8B8212018B; Thu, 9 Mar 2023 16:02:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377744; 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=cQ2DtNxZR8mSDNCzRs15eZzz4O2bOn4Fr0rdTgKspbY=; b=MDEOKQAFmFxywtO/cuCUTf6WSof184UY1L/JcPHoY6AnQHaz4P04j+qt0+1FMKfypbhVUY DqjeMhDAnO0Q/XivvkvT4C0VJq6tRQ2N0oz3OfYgcmnG2a8ugFT5RU4JHx25BM32JCYJqg 0Z3X8WjLBUb5FBjko5pFSH2sRxm4OmY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377744; 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=cQ2DtNxZR8mSDNCzRs15eZzz4O2bOn4Fr0rdTgKspbY=; b=R7EttlbkGLw1fZ3h390/UUsW76PaNqYjD6OOyF8T+gRSAP0BCIOVrQUoyvwJXiycn/jrzx HyE7bEZVnmLFJQDQ== 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 271B113A73; Thu, 9 Mar 2023 16:02:24 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id UFWJCBADCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:24 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 049/101] fbdev/neofb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:09 +0100 Message-Id: <20230309160201.5163-50-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908793500979039?= X-GMAIL-MSGID: =?utf-8?q?1759908793500979039?= 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 | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c index 98edb6822832..01ed78d987b1 100644 --- a/drivers/video/fbdev/neofb.c +++ b/drivers/video/fbdev/neofb.c @@ -55,6 +55,7 @@ */ #include +#include #include #include #include @@ -2176,19 +2177,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) { + struct option_iter iter; 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)) @@ -2205,6 +2203,9 @@ static int __init neofb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif /* MODULE */ From patchwork Thu Mar 9 16:01: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: 66975 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp387408wrd; Thu, 9 Mar 2023 08:31:15 -0800 (PST) X-Google-Smtp-Source: AK7set8t7iQp13OsV/cDYQgecVKX78GYW6kJ6rcM8e8WXWDbFv4lHC7yVTlYss2rkUq+yLbR08JC X-Received: by 2002:a05:6a20:3949:b0:cc:f9f2:3039 with SMTP id r9-20020a056a20394900b000ccf9f23039mr27917319pzg.60.1678379475365; Thu, 09 Mar 2023 08:31:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379475; cv=none; d=google.com; s=arc-20160816; b=W666x1dOte4lE45ivWht+KLcEeSYvZt9M7zJo59w0TNvplCuBMFftsBvUrlPbD/EL/ XbQyPmySYZBNIphZlTDRw263pavS7AydrPvjS5FWrE763pPgXTrAR0M44d+sxuGQU/bn 0LHopwfJlgssLT9jj/GOa2Ti7ycwwzvzX+3zs2SjRCcToLMd8yH7aOfI0j9/1336cVHD ZpkxAiyU/L9RrMfX16a8rWBpovrqM5cA2Vk7xtuTfi3OBuu8cT/gVszGPmb2en3tFd4u nf19gMGGtCc0yP8A0K1byB7XNetA4UvHV5XxEbQPAICLLPzueD3RnAS3efvJs52BmPid IyNg== 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=AEmjb0U5MuWqCkAOg6DDslP0tiDJ52eRVcjJgkB7ll8=; b=I2jt57ojRv++UZuE2Ua/B3jHrksNLI+oj6yfEW1akn3Gck2lMG/BRVihWmD6bH2yBd sFJpoLLgRpRCdhE7uTCgqFRlg+K2c9Hvdz72QUI08hnWV4o/KBa1dRofQEpGWchZs80W cGKY/NqZ6wk5KM8r3jTcEkF3pvW+YCT+q6kAtjErtWMcLie0iYaidQhnQjL8zKT19QFR a57Gm7AyV9vmqQZKGWQjbx5i5CSglMol5L52etd76SWzYxEjnQzfp/Wbn1Yl/UKTSPwR Zx4QRwTh8APqvmGupaU1b448IhpwVFOYn9Y2UNtHU9tLVmXKIYhSDmrI6tycekK3/GIj G/Iw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=JMxEG6FC; dkim=neutral (no key) header.i=@suse.de header.b="2upOe/xQ"; 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 4-20020a630104000000b004fbaad02597si17097783pgb.457.2023.03.09.08.31.02; Thu, 09 Mar 2023 08:31: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=JMxEG6FC; dkim=neutral (no key) header.i=@suse.de header.b="2upOe/xQ"; 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 S231670AbjCIQHa (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47712 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231672AbjCIQC1 (ORCPT ); Thu, 9 Mar 2023 11:02:27 -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 7EC6DF7EE0; Thu, 9 Mar 2023 08:02: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 EAF752215C; Thu, 9 Mar 2023 16:02:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377744; 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=AEmjb0U5MuWqCkAOg6DDslP0tiDJ52eRVcjJgkB7ll8=; b=JMxEG6FCTf6enGWwT1TPrS4+ts8GsZgGOwWGh3JfpppPZ80S9Fgn2+LA7srFwU2uDJhyl4 dMRgs6qUYLCMg1NwjmfVCNpm6dQi/pAMPk/8TAz8m8H0i+Np3Yj1eLXt/nx+jyZvoPFTfm MxlO4bIxQXfd3eWsvyp/9a8Lfbw9B84= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377744; 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=AEmjb0U5MuWqCkAOg6DDslP0tiDJ52eRVcjJgkB7ll8=; b=2upOe/xQ6PSzZfw4H5ESkUIDirwNOxL9JcIZRVLqsPWEO2dzYBBo0U8F7h7EySBb1iLg+4 Gu3a2LXpv0460BDg== 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 8FA691391B; Thu, 9 Mar 2023 16:02:24 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id +Mo9IhADCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:24 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 050/101] fbdev/nvidiafb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:10 +0100 Message-Id: <20230309160201.5163-51-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908436642871601?= X-GMAIL-MSGID: =?utf-8?q?1759908436642871601?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/nvidia/nvidia.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c index e60a276b4855..8ad4bcff84df 100644 --- a/drivers/video/fbdev/nvidia/nvidia.c +++ b/drivers/video/fbdev/nvidia/nvidia.c @@ -77,6 +77,7 @@ static int reverse_i2c; static bool nomtrr = false; static int backlight = IS_BUILTIN(CONFIG_PMAC_BACKLIGHT); +static char *mode_option_buf; static char *mode_option = NULL; static struct fb_fix_screeninfo nvidiafb_fix = { @@ -1498,8 +1499,11 @@ 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 { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } NVTRACE_LEAVE(); return 0; @@ -1542,6 +1546,7 @@ module_init(nvidiafb_init); static void __exit nvidiafb_exit(void) { pci_unregister_driver(&nvidiafb_driver); + kfree(mode_option_buf); } module_exit(nvidiafb_exit); From patchwork Thu Mar 9 16:01: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: 67021 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389867wrd; Thu, 9 Mar 2023 08:35:49 -0800 (PST) X-Google-Smtp-Source: AK7set9ZH/yN7RqkILJEz4oYh1A1PAOYeYW1gkOBuoZMCluriz5+9rRy2G1DZUxoj4g4A64vPadJ X-Received: by 2002:a05:6a20:918a:b0:c7:249:cd8c with SMTP id v10-20020a056a20918a00b000c70249cd8cmr22988067pzd.5.1678379748812; Thu, 09 Mar 2023 08:35:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379748; cv=none; d=google.com; s=arc-20160816; b=0kPUbG7nzBRw3zOBVk2Tfq+e69tnCAGSlQkDahdjdHNv0mqI4cGwiyoViV+9/MaKaP qrQPXH8eqwWd/WMxMa6H/ATJUaysVBTAo1Zpkad9NqZJsu3AIppRJ8i5EtmDjhe7AcjT p/C1Hcnz8eQpcPqVv+40vzsVWcGac/EXWuxNhcKTelOBz4MNKTVAv0FOWL826iVFcBpc YYUjW/qNrUbg7FDlFytRM1hXx85vRNN2Aal2G/oLOg0mrTeA8OHcWqwXTS5W1U7rG9xs ziF3v7yWfS6IEGNR6k2tLJ8W0O3G7VBp1rCVF6wZpsEGo0NNJA9phbwUfp3RQn9OVu9+ OM+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=ivKIUtt4Tv/ceojYymrkPyms/2b1cDfnVVV/f9m3J8k=; b=n2nwqb5wKtnVIEtn8WV3m8QAnifwQ5NbYq1EvPF3m30BuTFBs/QNdaeGWyikYAqul1 6gqZ/+F7+f8MUP389PQv6fuM4RFO16OFadbBKTVAv9/EP5W1m7c2d/0o7eeB217Ubah6 3IfkKJiluPP8wNv24fPv749G3FZqSLRY+KrY0VtLGy3JfzPC/QfYU9O/WwTh1BzGPoBM z/7KHsgTapam+HrXQrYoNoqVdGgu4YHyPh2PsYBlUh/Fylh4J+p3aAzqkFnLwhbhI0P4 Vy3v23tby6ETZRgCjAtapBFw8jWZ/Mxs1bLGKOa8M/7jEEtHH+uV0ns42KPwIHKqouV4 ZlgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=mL4MJv0b; 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 e15-20020a63f54f000000b00502f13f32c5si8362470pgk.862.2023.03.09.08.35.34; Thu, 09 Mar 2023 08:35: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=mL4MJv0b; 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 S232224AbjCIQHK (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47714 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231675AbjCIQC1 (ORCPT ); Thu, 9 Mar 2023 11:02:27 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADB3FF3670; Thu, 9 Mar 2023 08:02: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-out2.suse.de (Postfix) with ESMTPS id 5C1EC2018C; Thu, 9 Mar 2023 16:02:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377745; 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=ivKIUtt4Tv/ceojYymrkPyms/2b1cDfnVVV/f9m3J8k=; b=mL4MJv0b9/9cWbQh2Huq3UG4Eo8alb8Jxflikg/rrO/UqgSji9yPWjJySPlJFuLdfDcCBe TwSj/ZUNlkCxNtQg1hM8tUeuQKwjENbt7ZYYPi5B/ArbYchVv/YcwJd9f591P7oX3ou1w4 Z/IERGkenK/o/YjIIS/fN+Y153in8f8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377745; 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=ivKIUtt4Tv/ceojYymrkPyms/2b1cDfnVVV/f9m3J8k=; b=FBGV+v9pvuBtm0W5ZqsIb7iUwxFCOIG14ZQyJaHqa0MgrEIKaTZ/CGyqNpwvX8nM/GomTx s8dAJpiRsreFunBg== 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 F12661391B; Thu, 9 Mar 2023 16:02:24 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id AETmORADCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:24 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 051/101] fbdev/nvidiafb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:11 +0100 Message-Id: <20230309160201.5163-52-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908723223505533?= X-GMAIL-MSGID: =?utf-8?q?1759908723223505533?= 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 | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c index 8ad4bcff84df..d779163f919a 100644 --- a/drivers/video/fbdev/nvidia/nvidia.c +++ b/drivers/video/fbdev/nvidia/nvidia.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include @@ -1459,17 +1460,18 @@ static void nvidiafb_remove(struct pci_dev *pd) * ------------------------------------------------------------------------- */ #ifndef MODULE -static int nvidiafb_setup(char *options) +static int nvidiafb_setup(const char *options) { + struct option_iter iter; 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)) @@ -1505,6 +1507,9 @@ static int nvidiafb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + NVTRACE_LEAVE(); return 0; } From patchwork Thu Mar 9 16:01: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: 67027 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390094wrd; Thu, 9 Mar 2023 08:36:17 -0800 (PST) X-Google-Smtp-Source: AK7set8sGiqmW/cfrbzhHnP7g2b1oQvd4Z/JSf6gEYbWQHDx5zOZwacxrhTvW4KPuF62ai7dmQ4Z X-Received: by 2002:a17:90b:4b81:b0:237:d5de:5e6f with SMTP id lr1-20020a17090b4b8100b00237d5de5e6fmr22820286pjb.25.1678379776818; Thu, 09 Mar 2023 08:36:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379776; cv=none; d=google.com; s=arc-20160816; b=x3EZ8Gu4jNOpEbKqruGz36QBr01oTfq8RbNQ5CTxM6Q/nXgzgItymzKpnpJ4CAZp1u QJP5HvnpPony+Bpz/BvgTieihj8LV36RZHvht6rC2vt+lupTq/cKFDke71JN6e74qSVN 3JZY3ye4K4t5Lela0bk5Dvb5iAD+/KEkqlEaJilFTNK+6o7SsNzvme+ET7sqvqPf0YDH JJoCBWeCXf7tia5A2jwyrt5NXjRA5B33M9wBhExfCPGmE2NyJi4EntZKAbLrADiGbFWf yyeWlVrvsLDT+Lp9311ULkSy/8c/2pZkPgy4hlSG/8tFEW6+hFgT5aNDrMHib0egxMVp wITw== 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=IF7qw7uSWJcZb5FaybgvSCxkEvHFzuPQ1jc0G69w/cE=; b=UlJg8Z3LY6c6DpVqFMcUfFUIvj8rF9e5LQ81274qm2Q53QkGG/jfVulxuTz90jX+79 rjnyrY+iYC3mhaaMauUCHrZyzPE5rTKIiw7FfX8c4RnxqqcxLrawba/l97FvCbPAzUpY 6SUb3HE9F2Eb0kOF04E48m/C9pZHtbRG8cH+g92ZoT1IEaYAsBy3H9vlYSK92vmUCeYM bsbSp/oC6unj3MoVPdklFN+Z2/c8ZNM/gz/FT87+jfBfxJbmLgT8Oh3fT6jcyooC3Vz3 +enCcoJkVOqWiW0COgdNNblPIICTj6/wVDzmT9hciaXvZRx5P8BtvrNpEVmLR8RJnM/r Iw7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=vyel0prk; 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 i21-20020a17090a7e1500b00233ee88058asi190061pjl.162.2023.03.09.08.36.02; Thu, 09 Mar 2023 08:36: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=vyel0prk; 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 S230456AbjCIQIM (ORCPT + 99 others); Thu, 9 Mar 2023 11:08:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47512 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231676AbjCIQC1 (ORCPT ); Thu, 9 Mar 2023 11:02:27 -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 0BD51F7EE1; Thu, 9 Mar 2023 08:02: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 B800E2017D; Thu, 9 Mar 2023 16:02:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377745; 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=IF7qw7uSWJcZb5FaybgvSCxkEvHFzuPQ1jc0G69w/cE=; b=vyel0prki1EuPSH1Aur9iWt58AApZgQdYoDnK+7lawNbPMnd6gizRh8aAQuZvVUPzjLW3x ar480W7CDYfdPZEHdE3I3MLa+i+M5zNvsRc93qYFTzbFgGUvyIl83m85AozAgmg54qT2R8 BQJWohSIRBusBBa0bGa3OYq3Zr59okE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377745; 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=IF7qw7uSWJcZb5FaybgvSCxkEvHFzuPQ1jc0G69w/cE=; b=tFG2udPAxdaB+v6HFkVOi+IphiHjOGhCN5vhAn3XQAS3fmG/ZAJKRZwyNVtjr2Ck3t1SdK bxtgTyssrE6x3lBA== 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 601C113A73; Thu, 9 Mar 2023 16:02:25 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id kFeiFhEDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:25 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 052/101] fbdev/ocfb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:12 +0100 Message-Id: <20230309160201.5163-53-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908752811846149?= X-GMAIL-MSGID: =?utf-8?q?1759908752811846149?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/ocfb.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c index da7e1457e58f..9786c3641448 100644 --- a/drivers/video/fbdev/ocfb.c +++ b/drivers/video/fbdev/ocfb.c @@ -47,6 +47,7 @@ #define OCFB_NAME "OC VGA/LCD" +static char *mode_option_buf; static char *mode_option; static const struct fb_videomode default_mode = { @@ -77,7 +78,10 @@ static int __init ocfb_setup(char *options) while ((curr_opt = strsep(&options, ",")) != NULL) { if (!*curr_opt) continue; - mode_option = curr_opt; + + kfree(mode_option_buf); + mode_option_buf = kstrdup(curr_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; } return 0; @@ -420,6 +424,7 @@ static int __init ocfb_init(void) static void __exit ocfb_exit(void) { platform_driver_unregister(&ocfb_driver); + kfree(mode_option_buf); } module_init(ocfb_init); From patchwork Thu Mar 9 16:01: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: 66965 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp385785wrd; Thu, 9 Mar 2023 08:28:02 -0800 (PST) X-Google-Smtp-Source: AK7set/gTBqVE+Sa3zoiu8blbLS5vM7dzV+G8VBRIWpV1fEBPRGRGCD7GkW6723T/+cuL2t16HF7 X-Received: by 2002:a17:902:c20d:b0:19e:839f:ef5a with SMTP id 13-20020a170902c20d00b0019e839fef5amr20382405pll.60.1678379282034; Thu, 09 Mar 2023 08:28:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379281; cv=none; d=google.com; s=arc-20160816; b=Ke00P6hPRX62HLmFPJWUkqLZw/7Ddva+63EWRtUc5IkO/s5Ca5cYnY4FzRyIxfYnzU G0ZxjhjcD/g4sFvB7La5DsIjeM2qBbUe3PxU65O7vC5clH3bF+243BgKkxUV9uwKmJfY 8Zdk3n/lhF6+YFG749qOkO9cxGfAD4LygsA8TECe1OookS+rrWwL6jy2L6tOp7CgmRPE /V2kA9khZHl8lZ3xAj9M7PX5XqT/SAGWvViI+rJ2O0I3iTeOLTZ7m/roCPtGC0aBLdwD xHEM2Q+fiR4XKGfjRaQMNHgLooQnFAH2jjL6IdJeKbQv8DJRCkB32oSgn8M0dg6rYbDC xafg== 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=0qu+C7a1d7Q6FMdCh/jaUiqGd0/V74XGNJzxH1lrkhI=; b=IQwL8J5B2xcXrM2v6Fi03wjE9QiKOG+vqO6RobyqWGN3n+sCSjD3nl4FftRbyprdrC FnoMbs2J2Etq2ZaXeqUyCilPsZdaP72rAeMo3zHujN/M/SniPNeI6Fj/fEj7ZvHPh8US WPKZp4BMmE1uoHlJ5b85IHdUunspq3I0b+UqZIPIoq2tf6bNXBDVD2WVDRZDAwQcuD/t /C5AfrQNb6q0lvG3yYcu4BkO23hBUPxYN0cnWNGTIEjMQIAT1HK/4meudsYnYPTvrr9w SUrumn3Zdd5syO2/0OPWb2XG4nRrHP3Cf3hjtLU7OVdS/pNyAWQBFpH4EWIq56T1KR6D jhCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=I3LLaTHc; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=oBd+AsXD; 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 x13-20020a170902a38d00b0019e68e44d59si17326565pla.561.2023.03.09.08.27.48; Thu, 09 Mar 2023 08:28: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=I3LLaTHc; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=oBd+AsXD; 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 S232215AbjCIQIT (ORCPT + 99 others); Thu, 9 Mar 2023 11:08:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47748 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231682AbjCIQC2 (ORCPT ); Thu, 9 Mar 2023 11:02:28 -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 82377F7EEA; Thu, 9 Mar 2023 08:02: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 209942018A; Thu, 9 Mar 2023 16:02:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377746; 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=0qu+C7a1d7Q6FMdCh/jaUiqGd0/V74XGNJzxH1lrkhI=; b=I3LLaTHcoFcV15bZl8c57EAjhZqy+fwPXsIZ/Uc6at1tyf+QWfUvdEjQPUA2tISrUnUrFB LRlxxoHBUxgfijNG3Rb/178vAQgR7aNZk5DWUiHm6u5jXYGoetob27gG9cs+nnUfUfP7nW Lvjbwz11PXtm2qLQNLN6JEMGR0MZn1g= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377746; 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=0qu+C7a1d7Q6FMdCh/jaUiqGd0/V74XGNJzxH1lrkhI=; b=oBd+AsXDparAk0XMGi3Y6EPLeIeP1ZOz2A+oRaJ1Z7LvPFow8UCpPjMLjnWzNN8yQydqSg v/BsrO+rKo4QnCDw== 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 BCA4C1391B; Thu, 9 Mar 2023 16:02:25 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 0LEjLREDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:25 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 053/101] fbdev/ocfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:13 +0100 Message-Id: <20230309160201.5163-54-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908233929115665?= X-GMAIL-MSGID: =?utf-8?q?1759908233929115665?= 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 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c index 9786c3641448..fa15b932b323 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 @@ -68,22 +69,21 @@ struct ocfb_dev { }; #ifndef MODULE -static int __init ocfb_setup(char *options) +static int __init ocfb_setup(const char *options) { + struct option_iter iter; char *curr_opt; - if (!options || !*options) - return 0; - - while ((curr_opt = strsep(&options, ",")) != NULL) { - if (!*curr_opt) - continue; + option_iter_init(&iter, options); + while (option_iter_next(&iter, &curr_opt)) { kfree(mode_option_buf); mode_option_buf = kstrdup(curr_opt, GFP_KERNEL); // ignore errors mode_option = mode_option_buf; } + option_iter_release(&iter); + return 0; } #endif From patchwork Thu Mar 9 16:01: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: 66972 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp387055wrd; Thu, 9 Mar 2023 08:30:40 -0800 (PST) X-Google-Smtp-Source: AK7set/FUlWQ6yKtYhqfDgmUfriK862f1C/F2oAlo3iXaW2DIhBYumTW/gvV76WBC9Ccgd7v4xsr X-Received: by 2002:a17:902:bb8c:b0:19b:c498:fd01 with SMTP id m12-20020a170902bb8c00b0019bc498fd01mr17281679pls.11.1678379439963; Thu, 09 Mar 2023 08:30:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379439; cv=none; d=google.com; s=arc-20160816; b=fTzzCK9Ynvu7kyEL6xaMEW09H3da7Dv4hJY72wPOPkNJYwMDQAYVQjKWjw0nQFfk5b 98iYyJ58dRjpCqdgIIo5M+qqyuVkbCOShC7K1hoBUw2qqWtxhDKqc4jjsahkKTS4refY jtwPnLTxNhixYPdaGG5aIYmq1+eVdAI5hhWTgE8ZtX+uP1X63x0REALswF0nyThVu2X4 R3cV2AXmwy3mGCoEKryXRv/qcc30lqIBQMFnZzwpx5bwdjUVGp6eEC7HS1SdCG98OFo2 9r0V0nGK5Q9WtHDJCqMw36zCKPoCH/7fmAp1FwwBpebkG1eVeC16CtZcQ07gVH39Y79E 7osA== 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=W/0ZjJnUahwB+uDTmK6gOidiMLdF9SLqHErBxx1LZFA=; b=MkngcOUoEzj1vaLDLh2zraTeItEAjOPPsFAcraG3xcfmiyf6PpwAjT1RmKdHlFJG1x BUoUM1pvw6qv6DFtVHfcxzyYWQLnA0iIZxZe3VayEmbxuJO3srtxNUhRLNCxoC8QPZH5 NIruBsmq2JNg107yXLkDbaR5yZt7rX7+3L+VL5O1YKVQNSrQTipaNhTcILTFRaEI3xga jPjSYyhY8HUibn/eM8k+4CY1yntz5a7cqPoKtATU80IuGzBO8Or8X29rfxWWP0b/4k6/ 5P470fPfeKWr2PCT+qbbAkQHtq0AmPmAvpWRzR2I9y1pCqMAn0NjFfQ8/ogYFedOOT3h ugsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="sde/W8mk"; 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 ji20-20020a170903325400b0019e6e61c3dfsi17144116plb.315.2023.03.09.08.30.26; Thu, 09 Mar 2023 08:30: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="sde/W8mk"; 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 S232135AbjCIQIC (ORCPT + 99 others); Thu, 9 Mar 2023 11:08:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231683AbjCIQC2 (ORCPT ); Thu, 9 Mar 2023 11:02:28 -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 02E08F7EC0; Thu, 9 Mar 2023 08:02: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 7C59D2018D; Thu, 9 Mar 2023 16:02:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377746; 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=W/0ZjJnUahwB+uDTmK6gOidiMLdF9SLqHErBxx1LZFA=; b=sde/W8mkq20pfs9Lu23oerLWqFKCK7Ve6Z3emOo1rc8iQ5dtAT5rrBIuQ8EEsScc2Cq1tW etL7jJDPhJju0rI0zknbepYz4yQspUtRn6D6Sgwi+OkpxYOwpV0LPTipZND1bxrvgtK0// 3bblfF5ajVNFkOBL7h8EVvgbEXgD8Qo= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377746; 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=W/0ZjJnUahwB+uDTmK6gOidiMLdF9SLqHErBxx1LZFA=; b=k75q3gjqGTjoy7fOj98md7bjeSqPMrPYUc0TVTkEo46OIhA4k8TsIhpdCt1MtBd7R9bguu vB4z8fBtKXQfkRAw== 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 25DD213A73; Thu, 9 Mar 2023 16:02:26 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cAtPCBIDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:26 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 054/101] fbdev/omapfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:14 +0100 Message-Id: <20230309160201.5163-55-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908399323746871?= X-GMAIL-MSGID: =?utf-8?q?1759908399323746871?= 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..db5256c71f5b 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; + 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 Thu Mar 9 16:01: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: 67043 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390564wrd; Thu, 9 Mar 2023 08:37:09 -0800 (PST) X-Google-Smtp-Source: AK7set+TUVEDrX06wAxCuWtCPREeHUHmBRMm7nRyPPVhdXYJMDMxYso7JOwkzO2GpBslcPj7RiIg X-Received: by 2002:a17:903:32cb:b0:19e:7f89:b3a7 with SMTP id i11-20020a17090332cb00b0019e7f89b3a7mr26085604plr.31.1678379829656; Thu, 09 Mar 2023 08:37:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379829; cv=none; d=google.com; s=arc-20160816; b=cxFYO2fUXx4sPxiofeUsIcLeLZw6cLIXPNGLc7jN5vUqpGVClRPwr8GH8K9MviuYgN ark9X7XpxiREoA1hFJzOEG8kEbfERUopvgYPPu9Lt55QXlIOu/MuoA722CgYIrSEGI74 fBQGkhfYgH1UNgA46HZZFYjzsxMtAEE5duGmJtPNZwDzuON6bOg/z7j1J7txtOEpi7qX sgXes36rlzsO5HbOII1IM2wbLAQG5AXH8cYL7E4bjrboUV2alTSoEwoCo1KQNsFU08de CFO0jSUVH31Io1WR2EAcD20DJYuIZmSaf6fyVVFKyDKC3FfidnlvR3W2tsIQu5ml/aL3 7e6A== 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=Oq5ui8by2HDpubI3bTi457K9fAhV82PUqbX1kAow+aKZ6QsJXDig4TYaG+NdvEYSzy sgJktBxjNQkM3SfqDLR2aaWoowvMI9r2wWjYFDmKYcvYf1K2LWmMjNaNY7v4OMXlVG9S EmwHIdVlZu2uVdtzZkSe9B6yBIGnGBStUFdV+Td3ZT6FPkzQwZs6vYt5NnD4iaEK2694 zkNhUzIjfAhxT+S0YmE6rDLdPo4o89ubHxaJpbgn1dYoALvl0R0MiOCPCm87Av1GKno2 Vy3vhEB5BIQSmGYiyzsYkv/aGeBbLoegl1pybOE9Q5kyPFSYppU7EiZ0gquMNYf23VUJ X4dQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=DVKSKncJ; 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 t8-20020a170902bc4800b0019a9d97c6d6si17166424plz.468.2023.03.09.08.36.54; Thu, 09 Mar 2023 08:37: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=DVKSKncJ; 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 S232240AbjCIQHP (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230184AbjCIQC3 (ORCPT ); Thu, 9 Mar 2023 11:02:29 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 48DC4F7EEB; Thu, 9 Mar 2023 08:02: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 D57122018E; Thu, 9 Mar 2023 16:02:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377746; 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=DVKSKncJpzS1v2ei+mT1NVs9sZ9KzWGbHpOfs6YjLReK629huuuiPXaKzgjncXEJo6MBfl cSDFBRCsvbDdvjHE7bAc48tkcsbW29N8r3ecj/PniZhkM7ynug2mSqmxe7dNf1ba+CfQU6 ScvpfixiFisQD3PHBgc6zdXiCXoW3UA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377746; 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=46kl+HIqC9g5ujQujVCmmmYWHp/U6HJfMXpBKfI1LGWOMWuSgaeyvZRXYIIBaw9EHLWX+M CxCEV8zbYXkYcnDQ== 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 813ED1391B; Thu, 9 Mar 2023 16:02:26 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id aJC2HhIDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:26 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 055/101] fbdev/platinumfb: Remove trailing whitespaces Date: Thu, 9 Mar 2023 17:01:15 +0100 Message-Id: <20230309160201.5163-56-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908808278362615?= X-GMAIL-MSGID: =?utf-8?q?1759908808278362615?= 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 Thu Mar 9 16:01: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: 66960 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp385452wrd; Thu, 9 Mar 2023 08:27:17 -0800 (PST) X-Google-Smtp-Source: AK7set9bNoAEYHOY1JH7YwUwv4mz+gHuPqccLCVVw2bjQyzNXWt1h9LgF+TSZsTe3N+cZr6Gl0WB X-Received: by 2002:a17:902:a511:b0:19c:fd9e:f88c with SMTP id s17-20020a170902a51100b0019cfd9ef88cmr1723547plq.18.1678379237637; Thu, 09 Mar 2023 08:27:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379237; cv=none; d=google.com; s=arc-20160816; b=CXTz51jmrgTWIRJ+gpTOKZ3K5d4JayeE1/A6DDE5lEERAMPsmR7fy7BuVf8g5IsvQM DxibDilpBMiKUSdxzKCxoobMJ7ywewuGLDkw/nNZjGhxwHbXRIPeBbVnkmVdABKLEI7j 3473oTIKDLwoMVu3Vmrm2c4d39uYkTsWJfj74u6BlMtBmQWosr0sFzELEc2N9W/GeaPs CkpgZz453SyHPWH+CF0WJMPGFtxdvEIR8xgr7iAuC43F0DaSjoBA2uSRqHP1OO90+GAX epwkewuOjj3E4ezOj7j5rt6umAGiOaO2iI7INsr0OuyCe/xPElJbbU5JDhbO51j+/v/c i5GQ== 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=bdheHRRXPtj0yTkibiJ2+U48OpRbRtaMNPl40pFJdHw=; b=rRJuMm6FJv8zWsf3DuxUdouoT8KNRSli5DL9zDnWjtzd6qDq9Z3hqNkC6Fp12LDQO2 hCh92mxVBw8dbG0wzx7qWQ/xDpyKi34rrZYHK3rxQ3ziMye65lTdHuptbg4/LpRUPz1R 1dzlOlra/HZ3LHd7w9W/D33IoGElEmYOUiUXt4YXHSwWk+XBUM2AiWaUnxUejI0mDFJg IYcuglLbxOvlMNvLy82ffRE74mWjUWGbJynX+pyjmxiphfydraZsbwHtwt3x3EnEZFcM vlDDzDON9JZWoFL/NugaJOfCfSDtMCZXhSKm9xP+ULiwuOaOUU7z6ZMAB2Dv/q57ahPA UTSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=LULnSu1W; dkim=neutral (no key) header.i=@suse.de header.b=CkX4Hr4v; 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 u1-20020a17090282c100b0019905ccbcc1si17362654plz.317.2023.03.09.08.27.04; Thu, 09 Mar 2023 08:27:17 -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=LULnSu1W; dkim=neutral (no key) header.i=@suse.de header.b=CkX4Hr4v; 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 S231928AbjCIQHm (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47516 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231686AbjCIQC3 (ORCPT ); Thu, 9 Mar 2023 11:02:29 -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 87025F7EF2; Thu, 9 Mar 2023 08:02: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-out1.suse.de (Postfix) with ESMTPS id 40F8E2215B; Thu, 9 Mar 2023 16:02:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377747; 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=bdheHRRXPtj0yTkibiJ2+U48OpRbRtaMNPl40pFJdHw=; b=LULnSu1WQFER6Ed8rvQ/Bi2/QoM2WGNwzBn6+btAxjSyTr5mIX1CLupgOAqnSmumryoUQt DQHCzkpQeOS4KuagxjaEamyqM8ogLda290xtwFRWLR57fgZyFZVd+/a1PCGe8QRir5G9fF fkjBlfbUzHDYH25/6k2NSjGggWJHZiU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377747; 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=bdheHRRXPtj0yTkibiJ2+U48OpRbRtaMNPl40pFJdHw=; b=CkX4Hr4vitl7H8PIT1SJljwAoToekrnCbjMBjIWNGLi/kNNo195pC0gFZ3gy2rI1X3hNKZ cI72xTaKNEsXbMCg== 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 DA49813A73; Thu, 9 Mar 2023 16:02:26 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id OH11NBIDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:26 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 056/101] fbdev/platinumfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:16 +0100 Message-Id: <20230309160201.5163-57-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908187445143260?= X-GMAIL-MSGID: =?utf-8?q?1759908187445143260?= 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 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c index c7172174c1b7..33bf75309815 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) { + struct option_iter iter; 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 Thu Mar 9 16:01: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: 66969 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp386493wrd; Thu, 9 Mar 2023 08:29:31 -0800 (PST) X-Google-Smtp-Source: AK7set/GtvWHb7lIieb80JNUWOvK+7COwKcsUQBoCO5hft7TwjnVDLqD4Abpd+fKniHKx0sbg8Se X-Received: by 2002:a17:903:1c1:b0:19e:6700:174 with SMTP id e1-20020a17090301c100b0019e67000174mr27554156plh.25.1678379371554; Thu, 09 Mar 2023 08:29:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379371; cv=none; d=google.com; s=arc-20160816; b=rHD3RQp1T+4dR2fbQSbrFHp8xJvHl8JSuH3ZVmweJ9H2poS4OWfLP0G+D1xIl3BLXL bz008cr02pCrXmfwDSg6VxN9MsfAtStTVcLrgSyXgzJxjtg4aJvw9t1uy7p8/ybdWkb5 bCoBCBiZQ4vNSsHFDjXjKvigrWWPJIn5NVqNmMcIWF1FyxCRUlIeipil6kruIkHYCfYk /HVGFIif2dSjZswncclunMCX+Bxw1cSn8UD7UoJAkkqFRaIGPvt6VZO9n4tzGbky8UP/ 8I16vgqE6w1zv1033yQssWnn3SfTW8W8EFZYQqVKYyxvs59yCvGfKfDNY7JRqTRAqQUZ QRxw== 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=JrTWZ35A8KxaVoBf2I0MCmqaACOIQrBJsCXoiqqjOIA=; b=hz3MA+DfHFnnwDlZu5Gwycnrc8H+vFc7PBGwMk94K/AepAMq+BzJC28ZJ0FMBSJoWY fWuwg0CuzCYhUzDZaSUAdqFf9E6emQL5TX8dXQxC0bUMDrmKELSQNIZuLNcGgISyK1WY 1TTu0wmpGXjDSM/AtlNlrMA/cvltwZE5uyWeyDWsXqSZZh/OptYX5dCK9aU45wXd4jou r/XDT82FDMsaH8Mqnrqs0yyqa20yEhK84D1zAssh6O/4J02uXSxIlD361XmGdhpAEb+I 7hBtTbtz2Gk59J2+r/3yhK8ae5ctY4XStQIkrx07XhGsao1PbARMWrnt0S65ys6bXKFL uWSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jS0ssRuC; dkim=neutral (no key) header.i=@suse.de header.b=2edF2x5b; 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 ji20-20020a170903325400b0019e6e61c3dfsi17144116plb.315.2023.03.09.08.29.18; Thu, 09 Mar 2023 08:29: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=jS0ssRuC; dkim=neutral (no key) header.i=@suse.de header.b=2edF2x5b; 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 S232196AbjCIQHF (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47430 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231696AbjCIQC3 (ORCPT ); Thu, 9 Mar 2023 11:02:29 -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 E944FF4B7A; Thu, 9 Mar 2023 08:02: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-out1.suse.de (Postfix) with ESMTPS id A20712215D; Thu, 9 Mar 2023 16:02:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377747; 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=JrTWZ35A8KxaVoBf2I0MCmqaACOIQrBJsCXoiqqjOIA=; b=jS0ssRuCETelh7ixW7TzhRrWWiUInqyfgqWQeYCgO9RNtbERztNuozpHaAMoWgl8npDobz 5y5FeFw9/wSwZBbVV8ga82Whtu9q0orO7y60gRBTE9sm+paDV0gGPqtbWrY2kVMv6MelVo nXhYZ9q5UPoc5R3G9HKCVBIFofxskvU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377747; 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=JrTWZ35A8KxaVoBf2I0MCmqaACOIQrBJsCXoiqqjOIA=; b=2edF2x5brkFqa+DmyZWXVmjoNOy+6kv0RKfqRxrbUk+Za1jSvWMtiQ81zvUCgCGJhblwix XzdXKe0+xVf67bDg== 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 4386B1391B; Thu, 9 Mar 2023 16:02:27 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id SIOdDxMDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:27 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 057/101] fbdev/pm2fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:17 +0100 Message-Id: <20230309160201.5163-58-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908327940008560?= X-GMAIL-MSGID: =?utf-8?q?1759908327940008560?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/pm2fb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c index 47d212944f30..69a0b2216a86 100644 --- a/drivers/video/fbdev/pm2fb.c +++ b/drivers/video/fbdev/pm2fb.c @@ -64,6 +64,7 @@ * Driver data */ static int hwcursor = 1; +static char *mode_option_buf; static char *mode_option; /* @@ -1792,8 +1793,11 @@ static int __init pm2fb_setup(char *options) nomtrr = 1; else if (!strncmp(this_opt, "noaccel", 7)) noaccel = 1; - else - mode_option = this_opt; + else { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; } @@ -1828,6 +1832,7 @@ module_init(pm2fb_init); static void __exit pm2fb_exit(void) { pci_unregister_driver(&pm2fb_driver); + kfree(mode_option_buf); } #endif From patchwork Thu Mar 9 16:01: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: 66959 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp385188wrd; Thu, 9 Mar 2023 08:26:48 -0800 (PST) X-Google-Smtp-Source: AK7set/6L9cSpbo8ZrNVlJQTtsafNLMcgIhfhYSUL0RYnlzshbfCxv+tDThao8Z0B7ZgwQ2Pkh2D X-Received: by 2002:a17:902:ab0c:b0:19b:c491:21be with SMTP id ik12-20020a170902ab0c00b0019bc49121bemr20250271plb.64.1678379208164; Thu, 09 Mar 2023 08:26:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379208; cv=none; d=google.com; s=arc-20160816; b=dgCKO2jGjSvW//OSVI/oA2CSzC2z/2cf8ogkJJy2DE4vClozgiLZ/7m4fitqVloIvo N5Y/Y7yGtGDOD6MwI+KFfifYnbPOQuWlU4BhytuHSsEA6VXJeQJsBcTWa5EROVM0kfOy RIJF9IP9Xr8J7J68aNRW/bPVFkvzeMg6ADcpSPVd+cDPxyosrJnWDJj5C2kVezzQfEOE lr7tFfRUnPvSvLNwGZ1hOWWx8rcJzhjU0Or+2/fNLskTSYqaVFDpzK20mkvhMnCXfZwq iYDH2qlmw1tPxA9pF4qlJpW6T4DEvZkB7sN1hQAfsitavDqj53fWx2uljaVPFkbC6Pot 00Aw== 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=71NPoACrbZYXzx2EVEDFYpfxXoR5Lt0/br1gYRvJZ1s=; b=h1vXI0sGkjAwBCR2j8u4HnKsh7RUP9y9j+Gj1nMHCCCpVWPqjsBG0CAik6NUfQAY7l zwfMVzFmHnAjnNLTCbj0fk21/9ItHQSmqryjX6bT+3WpwbQ69w1i+cagU0hvzq+OTgvf 9LUhsWYwJaOWDSPoQX3fzKVJIpwJEVs4ZvalmqVsoA9h6StlRvZAU6S4tTrXwQY5j8nh 0ObcTEJ0jXiJythUuF/vyV0aWDHkv80//iOPmbxfK6sAyJ8mgznL7j2jI7p1rSdNs3kU jE80it7TuLJxSLcfDTdFB0mBnXrJpVVpI34esjLehntBUVoVpdbkwbNsG/BiEonJiZfe 6ltg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=PDSYamFA; dkim=neutral (no key) header.i=@suse.de header.b="0USMu/YO"; 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-20020a63195d000000b004ec148c7e05si16176123pgz.844.2023.03.09.08.26.35; Thu, 09 Mar 2023 08:26: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=PDSYamFA; dkim=neutral (no key) header.i=@suse.de header.b="0USMu/YO"; 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 S232187AbjCIQHA (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231697AbjCIQCa (ORCPT ); Thu, 9 Mar 2023 11:02:30 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 46A6EF4002; Thu, 9 Mar 2023 08:02: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 05FA02215E; Thu, 9 Mar 2023 16:02:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377748; 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=71NPoACrbZYXzx2EVEDFYpfxXoR5Lt0/br1gYRvJZ1s=; b=PDSYamFAvdpsNxkYPQ7q4E07996MFmALIasY9cH5+bB0WndN84+0CsLzZqlw5POoAZUNOT 4izLv7YUOTl4GTE9RjOz68tyNINfWJfBSm5mHn7xE+Q6DSCN8baSitNYtH/3IC/WsXstf1 iwISlhDWxLOg9hBAyWWE8NQ6gCYRjuU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377748; 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=71NPoACrbZYXzx2EVEDFYpfxXoR5Lt0/br1gYRvJZ1s=; b=0USMu/YO6c75D4K5oEn9YSfTlN+2GxrlMl5ooCR6NMrPf4lDq+s/Scxr+sdA+Mgj67VN4j ZSXGJvb0I/v23/Dw== 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 A266513A73; Thu, 9 Mar 2023 16:02:27 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id mMbPJhMDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:27 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 058/101] fbdev/pm2fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:18 +0100 Message-Id: <20230309160201.5163-59-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908156256837761?= X-GMAIL-MSGID: =?utf-8?q?1759908156256837761?= 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 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c index 69a0b2216a86..38c5c57ce2b0 100644 --- a/drivers/video/fbdev/pm2fb.c +++ b/drivers/video/fbdev/pm2fb.c @@ -28,6 +28,7 @@ */ #include +#include #include #include #include @@ -1773,16 +1774,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) { + struct option_iter iter; 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")) @@ -1799,6 +1798,9 @@ static int __init pm2fb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif From patchwork Thu Mar 9 16:01: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: 66958 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp384234wrd; Thu, 9 Mar 2023 08:24:41 -0800 (PST) X-Google-Smtp-Source: AK7set/h/D0xEI60DHdYQM87rvjdPNove4DhYQ8cvaSKSSzjgEvOS60ulnQyTLWZEbqR0bK4WkKt X-Received: by 2002:a17:90a:305:b0:233:d3ac:5dc2 with SMTP id 5-20020a17090a030500b00233d3ac5dc2mr23388995pje.18.1678379081603; Thu, 09 Mar 2023 08:24:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379081; cv=none; d=google.com; s=arc-20160816; b=tffTFUZKWLPK6TuV6UlcR3hyFNdeHYhTHLpLWO3GrLqZsTbALJCmY64wZSE1F3aagS 8lFMPGNCuVsdameYTe9w9rAPv7bxL7PHqIS3mEhxvHUNSWFrjOFO+1VuEUqzUU4HxT4Q wZHa9Ep7v8+F48BLRT1GtoUoviwWERaRDeGVkOadLsL7wG8uO2Nb7RCVi43T1qSeFQ0A GGiyJgx9wmcAa0Ret2S+yBpwKycmDHvgOWP0z+1acOURw2oAOKitqo+ghBZxs23z+qp5 kQOOHdR6algLqEf8Ws9u7OWVbW844Vs8deRzcy7mrLfNuGVKL2k4jiXhKK0gFObrPnMu Surw== 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=U+Wv5+2Mg/OOpac2b+Kt6VAraiPSH3rcxItITwlujo0=; b=h0dtpSjr+NRS9AbsLBqvtvxND0gKq4pXFiWuSge49bFDUEtvpHE2gQRO/fQMDukwvM wVM2fc/TBHyXLavCf6jNsZxyo05Jvy7L8anrUXFCA+9xrgHCskC1jd0IhYyM4+Ixblu2 I2Suk9Ai2SofAqlGa6Pte4TMKNdsLieW/bEg9sea5xSqc+4vGExAnQRGsq2e89PmTBDr ipfnpon7pWsOzEI+V1mIJ+VbtQ/2ZlkWx+TII2g21uvd/Zu91KLwjWFNfEM5MuSneePT ooR3i1kgF3cAPnwZtm+0rFsegasR3vyOLFR+CfX2d1irPI/bD90xoQ7Jx4NV5G1yLlZM tKUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=2MNMPBZY; 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 c6-20020a17090a674600b002347f0bd43csi209640pjm.27.2023.03.09.08.24.28; Thu, 09 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=2MNMPBZY; 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 S231667AbjCIQHi (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47522 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231702AbjCIQCa (ORCPT ); Thu, 9 Mar 2023 11:02:30 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A3593F7EC5; Thu, 9 Mar 2023 08:02: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 628AD2215A; Thu, 9 Mar 2023 16:02:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377748; 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=U+Wv5+2Mg/OOpac2b+Kt6VAraiPSH3rcxItITwlujo0=; b=2MNMPBZYCIIHTJ2a9JkvDWsYV8evjucSV74au32ruPU/hzE/mOYrSxmf61i7KgGaAYkliZ DWu+fI20MDJORKJm3G1h6mvegZdTJ5/Fl91EZGDPqh1Goif9fF/ROHx893iPmOCjMZAniT IRpWPGDs9DVrRLU/zkJD4qSX+cGhguI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377748; 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=U+Wv5+2Mg/OOpac2b+Kt6VAraiPSH3rcxItITwlujo0=; b=IYkv7jGmizkWRSS1WbdG2KFhNI5g5MrC25KLR887jQRD8KgRS6cMUcN2U/skNhJzjD0g2k SMKmJL+ohR28VlCg== 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 09A8C1391B; Thu, 9 Mar 2023 16:02:28 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 0CqGARQDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:28 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 059/101] fbdev/pm3fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:19 +0100 Message-Id: <20230309160201.5163-60-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908023503716470?= X-GMAIL-MSGID: =?utf-8?q?1759908023503716470?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/pm3fb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c index b46a471df9ae..b6b378e7554d 100644 --- a/drivers/video/fbdev/pm3fb.c +++ b/drivers/video/fbdev/pm3fb.c @@ -54,6 +54,7 @@ * Driver data */ static int hwcursor = 1; +static char *mode_option_buf; static char *mode_option; static bool noaccel; static bool nomtrr; @@ -1526,8 +1527,11 @@ 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 { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; } @@ -1558,6 +1562,7 @@ static int __init pm3fb_init(void) static void __exit pm3fb_exit(void) { pci_unregister_driver(&pm3fb_driver); + kfree(mode_option_buf); } module_exit(pm3fb_exit); From patchwork Thu Mar 9 16:01: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: 67045 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp391079wrd; Thu, 9 Mar 2023 08:38:10 -0800 (PST) X-Google-Smtp-Source: AK7set+XYlLrTRxg8qJw1jxgTrqHsSxd8kH74xpxQqG1gTMfTnzlmKpVg6RmhHLMoSUmQlZTUmH3 X-Received: by 2002:a17:90b:4c85:b0:237:97fd:e3ac with SMTP id my5-20020a17090b4c8500b0023797fde3acmr22409331pjb.48.1678379890651; Thu, 09 Mar 2023 08:38:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379890; cv=none; d=google.com; s=arc-20160816; b=P2r3i8dIms0BgXl4mQb2DtW7TdqP5Bdlwin2yYNhhN4eboHD8++gfSic6IrAX7P3bg +NF5fhkYc1zDkKzfSmz5p0xRwAm/iwNNca/VKeipv0NCdSoB8XfnIIKDza0XKWQHP+rf 5fhcAGDv8yLyd/bOlO9UQNZOhPmkb9oovwXa6lFrM6UmOv6rdUox3w7YVn3tN7ufwiPx bfcPViRG7wAhfiTUxJNXiL2hrqLMn09vsAs+X4jZ/G7DhSbF07mXxJ9HpM8N2Dl/+Jnt v5NBoP78tJ8QZQR36bdmEPcOQAgrlzu6b3xmY2XJnh4A55WzUbKytDQSaIyAgmIOhG3r SG8Q== 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=K8bkfkzbWNgSDb6UtVHWjSzMDHH7LhwKp4EFJ55njm8=; b=MzPOuwx6cU8f36cpL2R1bcAuUbum8zDUG/SqwcJhs4lOntuqaePuPE2rh0nUDoGUQC Y0suguLp4aKqKPD1/AkjPOLMlIRZLGDjWwWOYSnqoVE9dRxAZAPxlgOA4ZremuvsRagR hVTPv+BGaHUdut8Nfe0aooIPp6UmKOhnAsfJkP9bn20ldM8/KyjGV5u9x4XExnPmQ8Sx e26v3gfj7bH8BnEwrZu5jGIdrP17w7rH/5gCG27KjPme8LI0b0fMc6qptNXeCHpqRg2z fJYqWBeur7iDDfEJjzMzeEBqsfTGrPTaeY5OQmflnArC+a/uKdK6bFXC87yFfBShsgUb WVYA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=w4EIuTVB; 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 y5-20020a17090a86c500b0023082ccac58si246923pjv.7.2023.03.09.08.37.55; Thu, 09 Mar 2023 08:38: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=w4EIuTVB; 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 S229628AbjCIQGx (ORCPT + 99 others); Thu, 9 Mar 2023 11:06:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47502 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231705AbjCIQCb (ORCPT ); Thu, 9 Mar 2023 11:02: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 10186F6C7A; Thu, 9 Mar 2023 08:02: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-out2.suse.de (Postfix) with ESMTPS id BCD8420187; Thu, 9 Mar 2023 16:02:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377748; 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=K8bkfkzbWNgSDb6UtVHWjSzMDHH7LhwKp4EFJ55njm8=; b=w4EIuTVBeN0feJKOOtNEj5vGW/wAZ+fU4ZpvjQMPvYoul6LP+doggvYb5Iie4fyBYmPZ1g uZk2b/+YBRkClHSL+nK1+PryPFUi8JIXCJ4r5xPKGMc2sKz4rxq5FbgqY4yoBpxyztfUvs toGZvC+a66chNsYFTtVL9ioCEtfuvnY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377748; 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=K8bkfkzbWNgSDb6UtVHWjSzMDHH7LhwKp4EFJ55njm8=; b=HwoRzadflSA9cICi6RZ2cgaMT22CIUrMkxkbxlmG4cqeCclu1b5QGcK585lZS0NI83UA3S gxUBdX8kUW0yYgBQ== 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 669C213A73; Thu, 9 Mar 2023 16:02:28 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 2CA1GBQDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:28 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 060/101] fbdev/pm3fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:20 +0100 Message-Id: <20230309160201.5163-61-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908872016592828?= X-GMAIL-MSGID: =?utf-8?q?1759908872016592828?= 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 | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c index b6b378e7554d..c4d4f08b4114 100644 --- a/drivers/video/fbdev/pm3fb.c +++ b/drivers/video/fbdev/pm3fb.c @@ -23,6 +23,7 @@ */ #include +#include #include #include #include @@ -1510,18 +1511,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) { + struct option_iter iter; 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); @@ -1533,6 +1532,9 @@ static int __init pm3fb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif /* MODULE */ From patchwork Thu Mar 9 16:01: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: 66978 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp387805wrd; Thu, 9 Mar 2023 08:31:49 -0800 (PST) X-Google-Smtp-Source: AK7set/9y1AtfMNLRiOwCx4LaSLYkr9tWsWe5My2gIKJ4L5YfnSIyElYcCMnzjY2Cr96ANbuu+EJ X-Received: by 2002:a05:6e02:1447:b0:318:cda9:c60c with SMTP id p7-20020a056e02144700b00318cda9c60cmr17613628ilo.2.1678379509596; Thu, 09 Mar 2023 08:31:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379509; cv=none; d=google.com; s=arc-20160816; b=dVIyfG6RKPMWvdJ1WWzZtk0bdHgkfLY0Vb9g5m4jSP8jEH7seuGrgpxiTD4gdoIqqw a5lVMcmSJxoBEVvkbEp7ZE7NVKPTrS9czLJvUvTIG1/OXfokWK9KAf06srzLiHxMIk6P CoyWksfk/xY+Fo15NVSqxp1NTpURpLuydOjKiFiuWgSDYJJlPDV6lIy92spBeynZDMln Inaz4fe0WB4TbIpV71FQGf5X0erEMPScwZFFpAo8j6xBiWeoqLThhJ3fNYG1CatnUxqB Ls5Ur7WftXp1fVNi1yRl2bIjr8R7WKCEqlDjr+ygoGMkjI09tQmKqj9vHuu9/376eG4D QBcA== 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=0OUYBLEIZcEGaUUIng7YnnYmnpc0Gk2LmDknjSg1lT8=; b=VUzHI3DmR/VVD0JxRAxeAOiC+gN9CRKjmY+QGPHDdx8wFQG4fx2uoxCC2Fn8a5QECP gHj1PfY+QCi2zdDq7KdykOgndIVWR/GQ2LyIMlokOzoxYFedn0dgIL3/GSv6u7S+4WtD JM6CW3QTqHK4t6GarxFCvaoGMBgrYSi4tS70plEgqYg73Ufk4s+dtDUXh14vrrKKyFgM lVjcxxm+U7Hi5Aa4ZY6aMQhjLl62W2km9lcxcSFSs/RL/WQYqLRvFybC5GviXWfq/kSP 4KsSYo1f4fe9t+T6xbN+JluVqsFpDhpHlFd8d9liXwF4HJzd0OEmc1bzCnSXli2/vpXw lOhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=HHyh9U+3; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=R8KA2keg; 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 j22-20020a02cc76000000b003c3efbcf077si18846406jaq.151.2023.03.09.08.31.34; Thu, 09 Mar 2023 08:31: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=HHyh9U+3; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=R8KA2keg; 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 S232324AbjCIQI2 (ORCPT + 99 others); Thu, 9 Mar 2023 11:08:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231708AbjCIQCb (ORCPT ); Thu, 9 Mar 2023 11:02:31 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 626B5F7EC6; Thu, 9 Mar 2023 08:02: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 2389322160; Thu, 9 Mar 2023 16:02:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377749; 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=0OUYBLEIZcEGaUUIng7YnnYmnpc0Gk2LmDknjSg1lT8=; b=HHyh9U+3DSvAJPIq2fS/7MfoeTzd9ObdeJFQMqxok1yiU1rJWTiLvkXevHpyQbRRwFO96x 0NkhHnyZ+E5GlKDN6rl9vjIMXHGaW6suVHsS2OlvEnSS+b9KEh40L1smvlgHvzhYSQ/yD1 aOebOveTWnG6osC9mFLo5t2nNZ0/GFA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377749; 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=0OUYBLEIZcEGaUUIng7YnnYmnpc0Gk2LmDknjSg1lT8=; b=R8KA2keggD95kmGethWRsJYpX9jmMj2Y1uKN3FdxDP9nIhNjdO2/O4nVZhvn1pRybcyAJj 3IHbjBH38DmiLYAA== 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 C14891391B; Thu, 9 Mar 2023 16:02:28 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 6PhPLhQDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:28 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 061/101] fbdev/ps3fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:21 +0100 Message-Id: <20230309160201.5163-62-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908472299710801?= X-GMAIL-MSGID: =?utf-8?q?1759908472299710801?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/ps3fb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c index 2fe08b67eda7..d67ef2701b18 100644 --- a/drivers/video/fbdev/ps3fb.c +++ b/drivers/video/fbdev/ps3fb.c @@ -260,6 +260,7 @@ static const struct fb_videomode ps3fb_modedb[] = { static int ps3fb_mode; module_param(ps3fb_mode, int, 0); +static char *mode_option_buf; static char *mode_option; static int ps3fb_cmp_mode(const struct fb_videomode *vmode, @@ -1276,8 +1277,11 @@ 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 { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; } @@ -1294,6 +1298,7 @@ static void __exit ps3fb_exit(void) { pr_debug(" -> %s:%d\n", __func__, __LINE__); ps3_system_bus_driver_unregister(&ps3fb_driver); + kfree(mode_option_buf); pr_debug(" <- %s:%d\n", __func__, __LINE__); } From patchwork Thu Mar 9 16:01: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: 67028 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390157wrd; Thu, 9 Mar 2023 08:36:23 -0800 (PST) X-Google-Smtp-Source: AK7set8ahYnbZyS4giIFEG7Us+8wQatOu+R0x8HTGU041gGOcrZrA+GWx0Fnt/aEFpkApm6As7AM X-Received: by 2002:a17:902:720b:b0:19c:171a:d346 with SMTP id ba11-20020a170902720b00b0019c171ad346mr19180301plb.44.1678379782989; Thu, 09 Mar 2023 08:36:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379782; cv=none; d=google.com; s=arc-20160816; b=hgV80mvn0YJa0b9OltK3ZTAfy05cEzlPHWV1huENAKynBqbHhjg0IEx85a09gyCMwF 70siDly+gdsOEQvXOsTexkWK5ykm1qIQv9dqdU5rsc4wnXZLFLZGy/1wqZTnWBooUnMe AVcKcFu6O2N8AnszdvO3pOvP2a4H43p8To04VaRnf7MQXJtywh3pcZITviUCC9GFIL5F 7Hlsaxi/1zRWKMahXVOMmEuj4KCHrEBkBAckjugEg+zaUchVQhbEPscOWHEkjnYFRZGg YxyB3j1kl0hUZGGW0rqJAMNTgEM5ttyOKTsa0gU84oT7RSMR/xcy3oMrRyfcLv5JNBd7 ssRw== 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=uyi0fNSRbdaL+ECiynmB37t7h6m4wxRWWhsvx+mW63E=; b=EPQDTVx0nhyy1kUankVlKaarYYc+IfMVnjIwqYDYT/k9nocPYRj5a2aT93DFt0wtY1 o4vnQLqNJk1qyrydru20lpdAIBM8UlvNw5J6Qip4JYWWrzCnblb6STNOvpVPcB+TkLLk kUhqUnrGmtvC323TKXXA/It+P2+5gODpR2t+XC4JzashImup1CCNjKv/cHBCfORcpQd+ soEJEHqOUTJ4OV18ZGrmSNTVF4FEYjuyPr++DKIPbFHhNzFRJL1d3Xd7Kqf7JqC0EA7d NjCaMaTlzAhHKApjcHbM0X/PPVrmzWUtCqR4hGezwfVQRA18M9+RPCFKch0aF5kqEozN k9NA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=rbkjCdES; 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 b13-20020a170902d50d00b0019e698b3cefsi6942962plg.311.2023.03.09.08.36.08; Thu, 09 Mar 2023 08:36: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=rbkjCdES; 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 S231840AbjCIQHw (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231712AbjCIQCb (ORCPT ); Thu, 9 Mar 2023 11:02:31 -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 04E02F4B43; Thu, 9 Mar 2023 08:02: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 7D07122142; Thu, 9 Mar 2023 16:02:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377749; 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=uyi0fNSRbdaL+ECiynmB37t7h6m4wxRWWhsvx+mW63E=; b=rbkjCdES6w3axNa/kmEE3QcczxQ/m9Sedz13V8dhYK33E5RzIZhlqVlN0uosCDWlJ5hvDF 6/3L/Wwu4pAQgcj/1Hgm9T6oExh65xwUtR0B2lxFodk68ON8Enj0l+w9RbVjkQE1Aw7Sl2 UbJs/Jx4vMcxWD3gOo2gLpIA4KyQwkI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377749; 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=uyi0fNSRbdaL+ECiynmB37t7h6m4wxRWWhsvx+mW63E=; b=SuticJtoh7v0eDYCOnlvxfOZE6ACagzZS7r7ckcyaySDRQfszV8CkFcgLM4Cg3fwRdn8Da OpfHWsiSCgEUR6DA== 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 285CC1391B; Thu, 9 Mar 2023 16:02:29 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id mPfpCBUDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:29 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 062/101] fbdev/ps3fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:22 +0100 Message-Id: <20230309160201.5163-63-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908759265465872?= X-GMAIL-MSGID: =?utf-8?q?1759908759265465872?= 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 d67ef2701b18..575b2911977a 100644 --- a/drivers/video/fbdev/ps3fb.c +++ b/drivers/video/fbdev/ps3fb.c @@ -17,6 +17,7 @@ * more details. */ +#include #include #include #include @@ -1257,6 +1258,8 @@ static struct ps3_system_bus_driver ps3fb_driver = { static int __init ps3fb_setup(void) { char *options; + struct option_iter iter; + char *this_opt; #ifdef MODULE return 0; @@ -1265,16 +1268,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 { @@ -1283,6 +1279,9 @@ static int __init ps3fb_setup(void) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } From patchwork Thu Mar 9 16:01: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: 66968 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp386389wrd; Thu, 9 Mar 2023 08:29:18 -0800 (PST) X-Google-Smtp-Source: AK7set+yDZvSzIqodYPAL7w7iEMygamvEro2p6ObjPxai8zNad+nOm2yimgxb9YClBeh9iOymJP3 X-Received: by 2002:a17:902:ce8f:b0:19e:2495:20d2 with SMTP id f15-20020a170902ce8f00b0019e249520d2mr27237417plg.30.1678379357813; Thu, 09 Mar 2023 08:29:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379357; cv=none; d=google.com; s=arc-20160816; b=RDo1StJh33szQC3Y8ECwtD4B+9A54GtwcLqx/dy0WMOtXGW3ctIXqbKkUNqt0DRjQ/ eiPEFZuHPa4vpGmUTxGGJ+AMqmDoK7nsY0CEAJuvtlhI6r5JAv+ZmfHu/rCpsCND+Wud 12zPYG7TXysovms40H5Wf14fRdGUci3s2wk2qw1NBxnvfQ+fNuS4zuHQ8h7M1E109INJ 1Np0IbdWc27Ej6VhGEHTOK2j4YnMdbJjCrBHW/AtRlqVyp5JRKaWe9vtFtRPD7H35agv VBex87ZsahkD87zi91oYLeDcy5zUakx0Nxz01epKk9Qvew4eURllVwdiJR09dzIZfmc/ Bnnw== 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=QjJ38kmNT4VpiL0XGaIUsP41fKqpOphAgyzqkf5KhKA=; b=C71FydFJDeFLujm1bEA1Rs9ms9SNXJxOBacwvQ+K6keh9+9ah6zpWeuY+4gAUVZsbb OAzQvHodZ2DMYdLklMbQwjn+sSId3vZuWHXr+rFthuKd2g6DwgLInrUxMNjFSrtAHznI M5/9H7LZEeOhH0jmRBrqhifhKfooAnM7jjQe2M7nOYgA/A0nkXW3FbnJJuwzy5BTIQ1+ 5/CWLnl9qbD/bsCOWHxHtEQ0OjJBFPbTnVR6a1jguPJlmApeNbeETaqigC+AtT8z6Cwv 9n+kGRF4Ts1FEqAWuOZMAXC5sDpnryjJT4/FwO1Q9Yq0n4FmLXszZBhRTBzdTGDlfND8 6pHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=JLe11LJE; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=bz5poN1C; 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 lb7-20020a170902fa4700b0017ae43612d9si2320432plb.324.2023.03.09.08.29.05; Thu, 09 Mar 2023 08:29:17 -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=JLe11LJE; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=bz5poN1C; 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 S230437AbjCIQIq (ORCPT + 99 others); Thu, 9 Mar 2023 11:08:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231715AbjCIQCc (ORCPT ); Thu, 9 Mar 2023 11:02:32 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 335B2F63A3; Thu, 9 Mar 2023 08:02: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 D940A2018F; Thu, 9 Mar 2023 16:02:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377749; 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=QjJ38kmNT4VpiL0XGaIUsP41fKqpOphAgyzqkf5KhKA=; b=JLe11LJEmiD4nLl8O7epakDml/E/WNFxS8XYIxOcUyoCg3JN580rEa+XFFqIuJ01mwt/pq jbY9KoIsTr78epKZ8bw0X6sdPaS16SEqEvp4pJ/00qWTCkD7INw9UYOQuzLeNO5g8zYHhG 4Qi/RVEwLUZBux2CjvrnfsbBZkhS+yA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377749; 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=QjJ38kmNT4VpiL0XGaIUsP41fKqpOphAgyzqkf5KhKA=; b=bz5poN1CD5ySwXlFVjpP3CyHkn8fTspT1RxOz5lCIW1I2NIbHe6SrgZ8As5oiHQSjSsubf MF73NTrD34lgu6Bw== 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 825E01391B; Thu, 9 Mar 2023 16:02:29 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id sGn5HhUDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:29 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 063/101] fbdev/pvr2fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:23 +0100 Message-Id: <20230309160201.5163-64-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908313841759039?= X-GMAIL-MSGID: =?utf-8?q?1759908313841759039?= 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 kstrdup() and free it in the module's exit function, as well as the init function's error handling. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/pvr2fb.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c index 6888127a5eb8..f6be2649840d 100644 --- a/drivers/video/fbdev/pvr2fb.c +++ b/drivers/video/fbdev/pvr2fb.c @@ -225,6 +225,7 @@ static struct fb_videomode pvr2_modedb[] = { #define DEFMODE_VGA 2 static int defmode = DEFMODE_NTSC; +static char *mode_option_buf; static char *mode_option = NULL; static inline void pvr2fb_set_pal_type(unsigned int type) @@ -1049,7 +1050,9 @@ static int __init pvr2fb_setup(char *options) } else if (!strncmp(this_opt, "nowrap", 6)) { nowrap = 1; } else { - mode_option = this_opt; + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; } } @@ -1094,8 +1097,11 @@ static int __init pvr2fb_init(void) #endif fb_info = framebuffer_alloc(sizeof(struct pvr2fb_par), NULL); - if (!fb_info) + if (!fb_info) { + kfree(mode_option_buf); + mode_option_buf = NULL; return -ENOMEM; + } currentpar = fb_info->par; @@ -1111,6 +1117,8 @@ static int __init pvr2fb_init(void) printk(KERN_ERR "pvr2fb: Failed init of %s device\n", pvr_board->name); framebuffer_release(fb_info); + kfree(mode_option_buf); + mode_option_buf = NULL; break; } } @@ -1135,6 +1143,7 @@ static void __exit pvr2fb_exit(void) unregister_framebuffer(fb_info); framebuffer_release(fb_info); + kfree(mode_option_buf); } module_init(pvr2fb_init); From patchwork Thu Mar 9 16:01: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: 67006 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389254wrd; Thu, 9 Mar 2023 08:34:41 -0800 (PST) X-Google-Smtp-Source: AK7set+gi62JhqJe5FjKf9XaTSKpAMymPT3iO9ABAKZejDK9k+PzUu1RAmlysXb05QaPMuYOQXMG X-Received: by 2002:a17:902:8f91:b0:19e:2631:7c01 with SMTP id z17-20020a1709028f9100b0019e26317c01mr18598310plo.37.1678379681108; Thu, 09 Mar 2023 08:34:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379681; cv=none; d=google.com; s=arc-20160816; b=sDmqaiRREB32vHomoeuXw7N/0Ru/A42LmoLTUKYQQJiiGPxtk+jTfk0wKjxRj+Q42d TzJvDZLxQ4xgdDVBIAgpIN57cZHeBV4oHgYsyPoNqAzFlLVqccdCTpYRnFklKN1MsZLp lZlydU4iF5pqwm2KlVu84/kZFeiikB7kuJiexMhGJekA6Q4gX4Y5N3VC29C+OX2hRR3r xa+yIn2vutPOSkDMupTl3bCrmIL5Y1XyI7o90J+80XHlo8ey/brqT3tHJEnl+t10GY6W wkBYpnCCf1lkkMZrqtWt00Bf4Qg9frrp3KP8TFbQzC2aOe+2Gd5TDrTaQuTOncvq462G kwKA== 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=wUduy0AuOjKoirEH3M4ZgQWRTKWt0MXYaCWhrGLsjaw=; b=DjdukFmM5BVWlhwmE8zCy8uReXsIVxmTl8TOByfFXDy6hNL+4mMnHlpJAaqeciX2V4 m8jaqH1ncmPUKo0Ogp+qk4EXIRgY6kmPMDhhKJBYVjTEC6yPlYF7oAYerNj6VKwtoEtJ hVkyzgX3gaNpYdlbZf9O3d58hul0rT9qaJTyoGxLyebFenFcd2Wx7Jv9jxgMIephkVDG HZbVdafI2JyAXI4WVFnxvktrV1/gEOKSCKomkqtGaEZUQQabk4HV3+WCI+x8KTqXlwKI Rn/Mu/VrCR2ocRMdXb7v9dk7Sc9h3lyE/Gw2dW2wTY039R2FkbMQt/tnXBapc3vMNPgC M93g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=tvjhW16W; 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 b10-20020a170902b60a00b0019cd7c780a9si17910221pls.48.2023.03.09.08.34.25; Thu, 09 Mar 2023 08:34: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=tvjhW16W; 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 S231985AbjCIQHs (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231717AbjCIQCc (ORCPT ); Thu, 9 Mar 2023 11:02:32 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD06FF5AAA; Thu, 9 Mar 2023 08:02: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 423EF20191; Thu, 9 Mar 2023 16:02:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377750; 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=wUduy0AuOjKoirEH3M4ZgQWRTKWt0MXYaCWhrGLsjaw=; b=tvjhW16Wva/AA4h26PDcnH3qVIk7m64jqixdJMYwVnvZhbr+HoV8r8MvvgoiLUD4ZU8jgO Hw6YKrCXDrrasvxTHac2Z7n6KCkmM5/wY5vzZlHBLORr/DqkeaadTp+8VGNfkxVbR4il59 YcmPUm5WT8xLjNrtVkDtT3VaBWTpMig= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377750; 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=wUduy0AuOjKoirEH3M4ZgQWRTKWt0MXYaCWhrGLsjaw=; b=L0zcwibam7U69C5b9SNulUE2ace4gMAgny98/CFfo6soy3LxgN2bPxaZT0dV5MXhTs718V BENdEmvFEJf6izDg== 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 DC3E313A73; Thu, 9 Mar 2023 16:02:29 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id SKXdNBUDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:29 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 064/101] fbdev/pvr2fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:24 +0100 Message-Id: <20230309160201.5163-65-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908652386203231?= X-GMAIL-MSGID: =?utf-8?q?1759908652386203231?= 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 f6be2649840d..c332f2c38114 100644 --- a/drivers/video/fbdev/pvr2fb.c +++ b/drivers/video/fbdev/pvr2fb.c @@ -46,6 +46,7 @@ #undef DEBUG #include +#include #include #include #include @@ -1025,20 +1026,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; + 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)) { @@ -1056,6 +1055,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 Thu Mar 9 16:01: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: 66956 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp380859wrd; Thu, 9 Mar 2023 08:18:05 -0800 (PST) X-Google-Smtp-Source: AK7set8c4lB2yCQm82zdJb5zNa/4gCyZafmXCI/rvP6Ja9ZqQeS6ohuDe/EZWW6SNfEEpwvqyDGQ X-Received: by 2002:a17:90b:1c88:b0:233:f98a:8513 with SMTP id oo8-20020a17090b1c8800b00233f98a8513mr24942807pjb.8.1678378685685; Thu, 09 Mar 2023 08:18:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678378685; cv=none; d=google.com; s=arc-20160816; b=aF3yVDIBnarL36gDtolLKfkdmSYIInCKE5AJIE29sn51Y6WFI7QaaEdMzHCIM9N3Y4 Lvv3LgbBynlyMjQ7IMSB5/fKrMw2dsUTPfoaV7nb/wfIyMObmr3KvU8Ek7SP2J/QXNDF DDPHeGeG9+Zat4jBAaWxf8k3tQC7VaHZ6+RtcY7ZJ6p0MsPPTFXpvC2ZzdulKC7loaHl tSi1OVUU6C3f7sFES6d7i8NNRejqceDXM/o3cjjaSPLtC7eQqlCHPt9B263mGWp/sRUc JvlCanddRrHT2Bz7VLgZqin1GIXjvq46eWU97NAUgZiSWuRTOmIJuijbwJg7cDQZeIkT n49Q== 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=i9kXMRzl84QLn/fJf6kdz3b+HhhBrJcv0BrlgL/PbEg=; b=RYMEs8GNc36VuyZ1mB86NxTehheAKDeOhCsxXhRQrV2XWiizoTh/Ew7JKXGcQFupnE fEcUoKumhcEGgry0YnRCKorvqdXmchs0Ow/hGW1S3XxhgDvdIUqT58DLVE/0ywmK4dfo 5ekJDeD+7NcQScBHcQp4rl2L3+NnA7rN4fdu8xODe5OJeKRwYMIbXnaJNn03hxMTW8YR E/CIaAopZJWnjs8AWzXhlhuwmU+mJXAA1eHTuBhLhul/AgyyDloyqYkLC/7MJX6MKf2y maNQsOF4n7+3wH1rsDOgcM0p7us3Yu7bMrYg8kuX/Z9aSRY8hHh5c0CcPZDDrY7bBKNc SpaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=lcW5jkLq; 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 f21-20020a63de15000000b004de7c3add77si16880892pgg.262.2023.03.09.08.17.52; Thu, 09 Mar 2023 08:18: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=lcW5jkLq; 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 S232303AbjCIQHo (ORCPT + 99 others); Thu, 9 Mar 2023 11:07:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47676 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231720AbjCIQCc (ORCPT ); Thu, 9 Mar 2023 11:02:32 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DF96CF786F; Thu, 9 Mar 2023 08:02: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 9D54C20192; Thu, 9 Mar 2023 16:02:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377750; 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=i9kXMRzl84QLn/fJf6kdz3b+HhhBrJcv0BrlgL/PbEg=; b=lcW5jkLqcuR67+A4lDjPzUQmUXrC1v0MNNCKRJEl+PUF2DjZ1Z5p8aI59In8NRD2grpFi8 L3x+183urkgRk2mUMZ2d/Vofzua7YVUSrMEXHIVzMj1wN8mGAsbqxI4v+XDe2zjM2URfb9 e0zsFsbXMNLaAJJ9tkn/YHbBj961978= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377750; 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=i9kXMRzl84QLn/fJf6kdz3b+HhhBrJcv0BrlgL/PbEg=; b=3He5Ygju0enbSqJS3GobyTos5rFr008eOHgqKgbqqs3295oCQSSiLg15pj8L5QjzPxotmw AMejKys/mzYKzkAQ== 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 45B561391B; Thu, 9 Mar 2023 16:02:30 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id QHc4EBYDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:30 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 065/101] fbdev/pxafb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:25 +0100 Message-Id: <20230309160201.5163-66-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759907608841028093?= X-GMAIL-MSGID: =?utf-8?q?1759907608841028093?= 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 | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c index c46ed78298ae..d2db9c20d515 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) { + struct option_iter iter; 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 Thu Mar 9 16:01: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: 67025 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389962wrd; Thu, 9 Mar 2023 08:36:01 -0800 (PST) X-Google-Smtp-Source: AK7set9dyO7YGOv4siEGNz0k8LB6VBpubJJgz2MNcD2/Gm1z1mrjvMwcFnSw27bFyGVkH/fi2qSO X-Received: by 2002:a05:6a20:7b22:b0:cf:71ee:6328 with SMTP id s34-20020a056a207b2200b000cf71ee6328mr12649582pzh.8.1678379760976; Thu, 09 Mar 2023 08:36:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379760; cv=none; d=google.com; s=arc-20160816; b=0N4s/OycDb+KH1yEm/BUGPPbZOpeaayPGTi0L01TIAIFB+MwJ+yQDwV4xApT0z5s/B pyz79ejicwqlkIHtLXf/ikfmpalSrcFO8HwHO111Sg9CEcZFpPMK7M+VCgieOeyHNbL7 ScmrzYCKJ8MLxKz30AWtV14rqgDZip6KsGaxluHftupxif7QQFpUnU4pGgDxa2hS5Cfi pyn9f9OVpTdbgTa9bDkH140i1tO0VrA6jN/rkbgJVIzidkG1f5HLyLeP5A4wcFbw4FAX ABnZLQT81j8YC4tPbVv4RDi3TxkpKYBxhxo9i1WjM6s0Ft/qV46xEBWxh9Nm8jF4BB98 TGMw== 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=qhxzR92z1gnpV02wXcKkiw7ZsurBsIYnaSNVC8cfCP4=; b=kyhLD5aBTj90EgX5+vyXrPDan820o9q6H13yd5rdcXBQr74pKo5H46HHgnfhOUtt1G aLioBH3Cez4HCifabmslNcTOD66+fU1lZU6QoTBmoTjEWriN4jj0Hv5sZQOTJFcSrG/N HPIcYw60Q+c1cp8t6iIpGvDUVabu9b+IHbOA45uUNhtj63yWHMLlrmH8n2H3zodM9gJx YgVddNNA50czAwkvB0HBWecbhrMNGMt6tlGkH96y11KEhFheQ/9yrEvT/Fo30brKsHv9 989haAXvztWyNZpJv4jQwmWEO2M8eBdAGAL43s8sTn9kYnNZoqBZArxmuC6neNR9Ib2G 5svg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=uYsfoW4E; 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 k189-20020a6384c6000000b005074d6754e3si9646090pgd.255.2023.03.09.08.35.45; Thu, 09 Mar 2023 08:36: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=uYsfoW4E; 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 S230332AbjCIQIw (ORCPT + 99 others); Thu, 9 Mar 2023 11:08:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47692 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231726AbjCIQCd (ORCPT ); Thu, 9 Mar 2023 11:02:33 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6369CF7ECC; Thu, 9 Mar 2023 08:02: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 0F68020193; Thu, 9 Mar 2023 16:02:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377751; 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=qhxzR92z1gnpV02wXcKkiw7ZsurBsIYnaSNVC8cfCP4=; b=uYsfoW4ECejLPwttGFBGUGD4gLEdEd80fTWe3UzEOX3btCFwFsTktATnfUBAiCquJWj+/G g4P50AJ7UpL1l371Y04zZ16W+uoetlO9JPUxY2hwW7zq6uZijLpU/PJsn2N7b8vFEDoxcw Y+v2J5rvfziaChputQXngTNqx7vsU/U= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377751; 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=qhxzR92z1gnpV02wXcKkiw7ZsurBsIYnaSNVC8cfCP4=; b=/OwuWGoJQQin7zgG2uk571pfTIalbBa+hAtKlVQp3pCJudT+zkV8PPOp7e+5EPgkNv6juH 8pq28SOkm/ibFpAw== 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 9FF2213A73; Thu, 9 Mar 2023 16:02:30 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id iL44JhYDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:30 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 066/101] fbdev/rivafb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:26 +0100 Message-Id: <20230309160201.5163-67-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908736162045687?= X-GMAIL-MSGID: =?utf-8?q?1759908736162045687?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/riva/fbdev.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c index 41edc6e79460..8a7dc7452938 100644 --- a/drivers/video/fbdev/riva/fbdev.c +++ b/drivers/video/fbdev/riva/fbdev.c @@ -205,6 +205,7 @@ static bool noaccel = 0; static bool nomtrr = 0; static int backlight = IS_BUILTIN(CONFIG_PMAC_BACKLIGHT); +static char *mode_option_buf; static char *mode_option = NULL; static bool strictmode = 0; @@ -2132,8 +2133,11 @@ static int rivafb_setup(char *options) strictmode = 1; } else if (!strncmp(this_opt, "noaccel", 7)) { noaccel = 1; - } else - mode_option = this_opt; + } else { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } NVTRACE_LEAVE(); return 0; @@ -2178,6 +2182,7 @@ module_init(rivafb_init); static void __exit rivafb_exit(void) { pci_unregister_driver(&rivafb_driver); + kfree(mode_option_buf); } module_exit(rivafb_exit); From patchwork Thu Mar 9 16:01: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: 67014 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389666wrd; Thu, 9 Mar 2023 08:35:27 -0800 (PST) X-Google-Smtp-Source: AK7set+VOLnHx2gTdeJ0oReKouRlaEaQyIJZJZjOKmv4MY5PGyZB5TLFK5g4xNL9DLDmiOEwLOaj X-Received: by 2002:a17:90b:4c49:b0:237:99b9:c415 with SMTP id np9-20020a17090b4c4900b0023799b9c415mr23883249pjb.38.1678379727309; Thu, 09 Mar 2023 08:35:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379727; cv=none; d=google.com; s=arc-20160816; b=s44wQND7BA1h8VMxbzLsiOABBdqXKwxQ6Ru8r0LeaY0Bei0XeVpENlNIWm4ffvEmiH eM6kVQ5VGJ518LjocxCHlbbZQOKLSHtsdFP6sd6HxUsw6x2wkE1KxnDh7yX1uw25GC3Z abt/KNT90JGR1S6jbcHaY0XhNMmicYiDV3W7+IrxQruo6uLig7RkxbmblwM2b9UHtZQZ qWibN76SJEc7ggE8vQZ/tiEKnTFVpLTOy338hwly0eobnxE0Wl8YXij27pGBx0z8oVJf aBQcn42jRluXCOUlkz0WyqZ3CGz8XsSW6va2nNu78cU+9vdJ4hRCRFnuVUBES4LRcrnF ZWTg== 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=zBQBNruRFSNZlolPcBWrGJ3VsKzDOc5MQ8RhK9SMylU=; b=ebPLaGAvGB9w25RSPFr5E+/RtjLz83qsExEf7Gu4M+zMLwWyVXIRTfxJlaYW8fUxhi aBO8PJFJevoB8TT8zgq+AYNKwnOn2jOIxYz91AYxNTEJ3AQHPh2tx5/Dw8h6jcZr1mhZ Q4kMZVEVTiN8sKlS0pAb1kmwuJF6Ji9IMdPE12HDwaoryPNTY7P8S54j9Z2m4uUX/6Cu UIABLpKm9lCnuA1ooCq5fbu81L+Hor3NToddqS4zGlifA8YKvF4f0H8cv34L6hGplSN1 hdeUjUuEMhrm4fMrZuwS7dhTOxHIelHy6jfUln4rVcYoDtq+2Q2kEnBW1tjlB56HkcmD gFTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=TGhSUeAz; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=J9Rm0NBD; 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 ca2-20020a17090af30200b00233773a522fsi200231pjb.141.2023.03.09.08.35.12; Thu, 09 Mar 2023 08:35: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=TGhSUeAz; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=J9Rm0NBD; 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 S231389AbjCIQI4 (ORCPT + 99 others); Thu, 9 Mar 2023 11:08:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47696 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231728AbjCIQCd (ORCPT ); Thu, 9 Mar 2023 11:02:33 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED377F7ED7; Thu, 9 Mar 2023 08:02: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 69DA320190; Thu, 9 Mar 2023 16:02:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377751; 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=zBQBNruRFSNZlolPcBWrGJ3VsKzDOc5MQ8RhK9SMylU=; b=TGhSUeAz++JXt77WCiLYR+LnHm9NTwtouH57PfcrnypMafHbIMYvZ3j1t3pgOskxp8BZC4 GrDAqDsOARGADkhF9XQ7ByB8mFanj71S2MGXf32LTNjalW/QS/2DCK+FvDCST9oRi2UKEY hUhz0jrJznh+WJS2lVI5qa98IbI//kM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377751; 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=zBQBNruRFSNZlolPcBWrGJ3VsKzDOc5MQ8RhK9SMylU=; b=J9Rm0NBDh4ETa4lT0gih7jpI9Z4JH5I7yt4ZY1k5h8IQaaCdRuAqbDD1odTkr9TuW8me5n 0M8rrLC4hFVAL0CQ== 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 13DB31391B; Thu, 9 Mar 2023 16:02:31 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id oN4EBBcDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:31 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 067/101] fbdev/rivafb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:27 +0100 Message-Id: <20230309160201.5163-68-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908700522148262?= X-GMAIL-MSGID: =?utf-8?q?1759908700522148262?= 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 | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c index 8a7dc7452938..7f35edad249e 100644 --- a/drivers/video/fbdev/riva/fbdev.c +++ b/drivers/video/fbdev/riva/fbdev.c @@ -30,6 +30,7 @@ */ #include +#include #include #include #include @@ -2106,17 +2107,18 @@ static void rivafb_remove(struct pci_dev *pd) * ------------------------------------------------------------------------- */ #ifndef MODULE -static int rivafb_setup(char *options) +static int rivafb_setup(const char *options) { + struct option_iter iter; 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; @@ -2139,6 +2141,9 @@ static int rivafb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + NVTRACE_LEAVE(); return 0; } From patchwork Thu Mar 9 16:01: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: 66971 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp386971wrd; Thu, 9 Mar 2023 08:30:31 -0800 (PST) X-Google-Smtp-Source: AK7set9f1gc8Za3YlVSiwQNxqD1W2fy4LQSZQsv5S5aNMw/Mvv3YU9D7zNzFLTOp2TRdeMCb3ZBe X-Received: by 2002:a17:903:11c9:b0:19e:cfbf:dcbb with SMTP id q9-20020a17090311c900b0019ecfbfdcbbmr13080918plh.66.1678379431286; Thu, 09 Mar 2023 08:30:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379431; cv=none; d=google.com; s=arc-20160816; b=MygXDRnEzsSPm9VrxfkX6DzRYZ8zpYxk4Oi+mXYzFn/ysKFjxIDI2nynzMQZZVoChe ph7TmIxrbGhVxtuD7Jpvi63keXT38YqnGgDW1RVH5axdKTn/2hXMJFXXAin42Ztpqn9O Ni0Bk0sp4Q0GBhAh7U99EVzTbGxAF9edWrRDHRzx86Y57TaF2albL3e7QXB5I1xtiphg uk9h0EOMcTyCVgVFyfAUT28gww9f9L9Sx+tdTRxSBQTo7gR/T4gHqS+YXSmBux+fWaUj dgXF0A4EkgfajgNvnqLlw+103mQ8ZcTc4B9v3+vSK47w034AfzQodSsvwMO+I+XXSFXs 1h1w== 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=2NH6+VMOHM5Bo+HTdsXwHkuMcnMRmvfOynxZTybH+bo=; b=y12l7yrZ4T4pM8TLf2IIt2LkRmInWt8fWtRO/k527C05TNOhikDHNSME4d9hfL06VH GtnQN5n79CvgHuLFOz9GSpgwAo8SAgiiFcchHMYMbkd/q+qRUEemFd00kPduGzdduipK 4nVOeMvw2KyYkMdZO0vCxPEOi7q7eHEluC+za0342qG4eHwc8q+ogomVOmZAc8qtxytN tjM7B916PRmukWfFrrdZMs+YUIwaPZajx6/uWt8+IpIjK5rAMWos2+kO9vz75yVOfX0g IUGDR5T6TmP57p8TsenLgf9nC+Qng1T9q/HMILrN6BnAz5oue+APbWYgaBhgc5UvCf0u J4cw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=go1Eo7rs; dkim=neutral (no key) header.i=@suse.de header.b=E2S+X322; 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 kh6-20020a170903064600b0019e29ce6975si16607001plb.202.2023.03.09.08.30.18; Thu, 09 Mar 2023 08:30: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=go1Eo7rs; dkim=neutral (no key) header.i=@suse.de header.b=E2S+X322; 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 S231708AbjCIQIf (ORCPT + 99 others); Thu, 9 Mar 2023 11:08:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47714 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231730AbjCIQCe (ORCPT ); Thu, 9 Mar 2023 11:02:34 -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 77733F7EDF; Thu, 9 Mar 2023 08:02: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 C832E20194; Thu, 9 Mar 2023 16:02:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377751; 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=2NH6+VMOHM5Bo+HTdsXwHkuMcnMRmvfOynxZTybH+bo=; b=go1Eo7rsPRB5BTU6t1uZeaY1P9a+UShfP9tySZW6muM3zfoSxWuJ0JgsuNBQ23dT9Avu82 vMyTTtUhQoqe513nmX0H/WS6nKOdeXIx4OFmD+UGQZXCL1l+oY4OiLIrWOtouY02A85513 GEPk0Gg699Q4RykUQPURPtRxv2Nhs38= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377751; 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=2NH6+VMOHM5Bo+HTdsXwHkuMcnMRmvfOynxZTybH+bo=; b=E2S+X322wx/wHA2eX9UG4JiDR8pRg9/T2WXFXdRMBwmB1EvU4abjgoqd+RB6MO/AftXP+T XJzzO7fUrj/3LeCA== 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 6EE4A13A73; Thu, 9 Mar 2023 16:02:31 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id iNk9GhcDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:31 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 068/101] fbdev/s3fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:28 +0100 Message-Id: <20230309160201.5163-69-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908390669205672?= X-GMAIL-MSGID: =?utf-8?q?1759908390669205672?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/s3fb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c index 7d257489edcc..6bcedcde8aad 100644 --- a/drivers/video/fbdev/s3fb.c +++ b/drivers/video/fbdev/s3fb.c @@ -150,6 +150,7 @@ static const struct svga_timing_regs s3_timing_regs = { /* Module parameters */ +static char *mode_option_buf; static char *mode_option; static int mtrr = 1; static int fasttext = 1; @@ -1535,8 +1536,11 @@ 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 { + kfree(mode_option_buf); + mode_option_buf = kstrdup(opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; @@ -1549,6 +1553,7 @@ static void __exit s3fb_cleanup(void) { pr_debug("s3fb: cleaning up\n"); pci_unregister_driver(&s3fb_pci_driver); + kfree(mode_option_buf); } /* Driver Initialisation */ From patchwork Thu Mar 9 16:01: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: 67033 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390303wrd; Thu, 9 Mar 2023 08:36:37 -0800 (PST) X-Google-Smtp-Source: AK7set+lq9UFwr+Xc0LS/nt9B8NCW85Zf88ngrlbdibvk6Q7b11MgsyWLDJN8DgLTS2o8gsV6JOn X-Received: by 2002:a17:902:ce90:b0:198:9e29:cc4f with SMTP id f16-20020a170902ce9000b001989e29cc4fmr26931287plg.43.1678379797152; Thu, 09 Mar 2023 08:36:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379797; cv=none; d=google.com; s=arc-20160816; b=kjljlWrApDVD6TlDyo5CGL648q0xmJE1vF+9GWuGbjWdZRFSwZL5r6hoVIKd5CY1a5 Q8vTaSg1CrdryEihJt2o66iZoTP9sj4MJMXualeDzGI5G8RpSX8RxE5XKEycVlH0P7n7 Ha5SHJiIaUJI76B6pCwgat4XVMx0i24OBZO6zCunJ1YMykZiUNbNPRX1+LDNsGzsjOns ag9cbbpxKHh3xI/tq+zNmwEpAkvB2FCygS+LLsP+FW96Tf9C63fh0ujzuayCgookaRZc QXiyKyGBfTvRTqj8hDaQTFA7rx2vf78Xl0NU6x34d1V+nEAnmwArsYdVQp22yEFlWInK Jb9g== 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=C0mdrdYY6WhTpvHBsfeX6P5OoEx5EyTBYrjtJOl3HBs=; b=Ob74v5C/Mps04NidwwlhFisp7dUa73w4CInslghD/NS5irUgGY5kWOgeOzPcVa49k1 wRgXdqvejbSeFwAHDxH9EiFwpAW1IeoNtanOuxULzkuToXK6yiMyT95CHPi8AMaHrZ1q r4YwGhsgyz4kWyKLHGRJrUDoKQCviK/VHz+gu1qZ1DgURPwmCIuZuTtnMKL55CiKDuKP 5xKp8i3ZW+mVmOMTiSDkyTnuTPg51K3F23eBq/0yFWn67S5hMb1hgj8bk6Myz9jZ9W74 rYAqiYysBBOfjw0b9iN9hOeTWIK6xygkWcETb4BiIvVg5FafLJZPNynVa1TbfLsikAAA 0WWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="BkCig/A7"; 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 t8-20020a170902bc4800b0019a9d97c6d6si17166424plz.468.2023.03.09.08.36.22; Thu, 09 Mar 2023 08:36: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="BkCig/A7"; 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 S232259AbjCIQIl (ORCPT + 99 others); Thu, 9 Mar 2023 11:08:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231733AbjCIQCe (ORCPT ); Thu, 9 Mar 2023 11:02:34 -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 12072F7EE2; Thu, 9 Mar 2023 08:02: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 3049F20196; Thu, 9 Mar 2023 16:02:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377752; 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=C0mdrdYY6WhTpvHBsfeX6P5OoEx5EyTBYrjtJOl3HBs=; b=BkCig/A7RfJH2OsuwyUFdvUqV0LXetnqBM+gUG1ZY4qlCG0XCIWf/pA9pzTy5+6yhGL16O X7OT1Eqw/NXmFNkuYs0ILD3KUO++5/kR5Qi6qUAut0jxeJYothELdeIJS+HcvCN1Xh0NDj ht7LSpnNY4GFjSelHUuKwU9NxLwos8o= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377752; 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=C0mdrdYY6WhTpvHBsfeX6P5OoEx5EyTBYrjtJOl3HBs=; b=eFqUwD3scQ6k2cl+QjN0flfozu+J92KahG9F15ISWAypw0XFoq2VISamfFI5ilBXhH1zdg LPk+/2l9iJ+YQgCg== 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 CD7451391B; Thu, 9 Mar 2023 16:02:31 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id GPZRMRcDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:31 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 069/101] fbdev/s3fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:29 +0100 Message-Id: <20230309160201.5163-70-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908774176477147?= X-GMAIL-MSGID: =?utf-8?q?1759908774176477147?= 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 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c index 6bcedcde8aad..37f5ea25efd6 100644 --- a/drivers/video/fbdev/s3fb.c +++ b/drivers/video/fbdev/s3fb.c @@ -12,6 +12,7 @@ */ #include +#include #include #include #include @@ -1521,18 +1522,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) { + struct option_iter iter; 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); @@ -1543,6 +1541,8 @@ static int __init s3fb_setup(char *options) } } + option_iter_release(&iter); + return 0; } #endif From patchwork Thu Mar 9 16:01: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: 66982 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388122wrd; Thu, 9 Mar 2023 08:32:24 -0800 (PST) X-Google-Smtp-Source: AK7set/jrmI33hP0Zoaexa2Lz/H47tSmimR98AWjTjyScMEcY28N0ck4pn7jQ7rvAKO77h7U6XJx X-Received: by 2002:a62:7983:0:b0:5a8:c90d:ab17 with SMTP id u125-20020a627983000000b005a8c90dab17mr20387940pfc.15.1678379544004; Thu, 09 Mar 2023 08:32:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379543; cv=none; d=google.com; s=arc-20160816; b=xKMpe9ZRyVSxGuIgQXJXLOjDz2KlDeXWydOYJcn3jX4f+IASJdW/GNCPJ+u1qOIbx1 aYM7mfoL5Rdp7gjB/bumSoi1kxIWclZ6/+K8p5nMvJENFPTcWesRxAgCjngIdt3sN09/ TLNwLjSq8z+iveBkvcItNUmAHcY7yqISGmG/QRJfsu3HUU0rtXrpqAQbkDaGG5fJtOlW SpQ9rLQ0QHgeM4q28vGRp8JFW9w6nqR+m4qKtes+zlBsa5jTVRrIrdCzOyROt1WGdmK+ /Qn9f+RHWg+RYUzxNzxEsVI9JQtzbzCjTocXuLJzeMDnCD11hmhWZVw+gXzY2jZetvMI ok/w== 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=yPzn7zXM7yj42koki0aANjXUDhnwLRtgpbH+HR/F9bc=; b=qgejCFg/jQQD+HlQNrpfbCczf1vzd5kGFcgpm/YBRH9Kv5QDZF0BlhdcMpm99CnBZ9 1f3zO+rVesVTU++1+GJmWNljuqJGKiAb3NeEEIIo11dfCPll229U4deqIPFjI4TiH6Rr kO6loql7twgenZOSCWDEcZV5JIFKX4Jm0qRoQC7E9XaMDfoUVrPYYtmsQsLW8s/98eTY eB6oaDk7Ia7VUf2tcgsPlRDtjwupXRsR6ywn82AI1LmRgRrSrtDMmIelSj2Aow6fWX5N Jone9KOi05TmQ2h0LgLNTPf8HzHnLSnTtmJ5bRiuoHHbpC36WF+vmkLgguBfO+dTcwwk +vFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=hVbhDNWR; 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 b2-20020aa78ec2000000b005a919052520si6113146pfr.317.2023.03.09.08.32.09; Thu, 09 Mar 2023 08:32: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=hVbhDNWR; 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 S231563AbjCIQJB (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47512 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230288AbjCIQCe (ORCPT ); Thu, 9 Mar 2023 11:02:34 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D86C1F7EE0; Thu, 9 Mar 2023 08:02: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 931CF22161; Thu, 9 Mar 2023 16:02:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377752; 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=yPzn7zXM7yj42koki0aANjXUDhnwLRtgpbH+HR/F9bc=; b=hVbhDNWRVOwus2xxkHmc/4gF3MymqYwK8KfEjd7hiO/1foTLysxr6pY3x9QTB21pfXhCrZ rL79SiO9dVnHM1kCiAn7XxEcVb1yf4DBn6GHi77/m1k8mX/Gi77Ylfz5i6VIQCBQY00Pqb pSeFzeEkGp/5b11SM/UeJiRKLMJ9U5s= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377752; 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=yPzn7zXM7yj42koki0aANjXUDhnwLRtgpbH+HR/F9bc=; b=lW6WAUz/SE0GTx65vIG2i/+fVrq2paAzGgiR4MR+B7LSQ8dSaU/fC3ywfoNIo0UDbYm1fX yvVg50kSj3KjGCCQ== 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 33C1213A73; Thu, 9 Mar 2023 16:02:32 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id EH/TCxgDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:32 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 070/101] fbdev/savagefb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:30 +0100 Message-Id: <20230309160201.5163-71-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908508632512941?= X-GMAIL-MSGID: =?utf-8?q?1759908508632512941?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/savage/savagefb_driver.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c index 4a27b68798bf..0ca5894114c9 100644 --- a/drivers/video/fbdev/savage/savagefb_driver.c +++ b/drivers/video/fbdev/savage/savagefb_driver.c @@ -65,6 +65,7 @@ /* --------------------------------------------------------------------- */ +static char *mode_option_buf; static char *mode_option = NULL; #ifdef MODULE @@ -2530,6 +2531,7 @@ static void __exit savage_done(void) { DBG("savage_done"); pci_unregister_driver(&savagefb_driver); + kfree(mode_option_buf); } @@ -2544,7 +2546,9 @@ static int __init savagefb_setup(char *options) return 0; while ((this_opt = strsep(&options, ",")) != NULL) { - mode_option = this_opt; + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; } #endif /* !MODULE */ return 0; From patchwork Thu Mar 9 16:01: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: 66986 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388242wrd; Thu, 9 Mar 2023 08:32:37 -0800 (PST) X-Google-Smtp-Source: AK7set/zSrlw2JTk40SafSaZdTn3+b+qBLYxuSpGR3TGAv1h/2kg/+fwzc8Anh4OnwmDaE0LvZ+v X-Received: by 2002:a05:6a20:1b01:b0:cc:3bf0:ed94 with SMTP id ch1-20020a056a201b0100b000cc3bf0ed94mr18739302pzb.20.1678379557445; Thu, 09 Mar 2023 08:32:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379557; cv=none; d=google.com; s=arc-20160816; b=siscUZ6HlX/7Zts/1ShuRRcCVHYtSqa1w+ycffzGYaVq3PvTJSbJOKxyZHKHI8boc9 RkktHYo6j5yeBq5gdn50L9uqo4IeK6hPtRYRkWAZl1E+zSfR1vrzAfmWDdptB2KfWRsd y7d/OsTnjmKPKRgSTNi68agO5/M9j7W0zfGKjG2znvfINTXhxDXK3CmGAgDyCf/xALoW /U26+tyTlVzzB1X1ofF3x85bcFNux5ZHSFMPWEZmYE8n6ICvDKbCRcJFdUuLdHukIgna d5NOH9VRFjWUlKk1jkwhT/SaGBrhpg2lFxM37TtuLQSKDzaxOVSPAXD19bsTZb4BAS1M ElDQ== 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=LrR4dEV8fvot4krXRpemBNzsGqKxI9Iidiw4W2qbfcs=; b=YzLs4jvj1qDYWba17Axy56Lg4oxLiL96Fe3KiVDsDuPGwI6RsResQO0OhdKjbquoh7 7aPV0quwmqAjFD4RweFh5+eIzSFqgbF1q0gVqTs5ubNzd5qLL1yGBlF0uT89B9x1dA7F HvjA0hV2fbmUJ4bG9lio32fDtPqoyyPnVOHwROlawJE/hhoxnpCsUjnXbUJjC944u/0W y8YCdMky3JClAZIJcgqzlU42fnCo2zDIkBIePQmiAeyZPyj3eZlMJ6GBkJMhVeulQQ5M wEYwzsJLlPRvv9grI3Q5iiRqarPTn9mgPZBDMmocUT9UlOVi9rCmUW7nzOnfslO9zhVt v30w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ae6f8RbI; 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 l9-20020a635709000000b00502f89f0d8dsi17888580pgb.167.2023.03.09.08.32.21; Thu, 09 Mar 2023 08:32: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=ae6f8RbI; 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 S229549AbjCIQJ2 (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231734AbjCIQCf (ORCPT ); Thu, 9 Mar 2023 11:02:35 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 44C8CF3670; Thu, 9 Mar 2023 08:02: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-out1.suse.de (Postfix) with ESMTPS id 02C5C22162; Thu, 9 Mar 2023 16:02:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377753; 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=LrR4dEV8fvot4krXRpemBNzsGqKxI9Iidiw4W2qbfcs=; b=ae6f8RbIy2Rv+yRmon5XxI4seRFmyMdyJOQsgGV+2HydP0zUWHk7HHsifkPYnKLIYZC9/0 Pyxr7sE69YfCOtNMuW3hi9Kxe8uBAQBHdNECFnYgbyAyaTHteLKJSALCLE/vVCHZC517Wj PdaCKJVkqobG0szMc/ZRUj2X4u7Abhg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377753; 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=LrR4dEV8fvot4krXRpemBNzsGqKxI9Iidiw4W2qbfcs=; b=QECZeFxqwtZvMCizXWX7OraDZ3sytS0NpgbSyW9YFP6OWcxicrmEQvBtHYvmh8ZO7P+JLl zZg/1Cbxo1k/GfDA== 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 985B61391B; Thu, 9 Mar 2023 16:02:32 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id KIZQJBgDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:32 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 071/101] fbdev/savagefb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:31 +0100 Message-Id: <20230309160201.5163-72-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908523179350191?= X-GMAIL-MSGID: =?utf-8?q?1759908523179350191?= 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 | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c index 0ca5894114c9..4650688fd23c 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 @@ -2537,19 +2538,22 @@ 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 + struct option_iter iter; 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)) { kfree(mode_option_buf); mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors mode_option = mode_option_buf; } + + option_iter_release(&iter); + #endif /* !MODULE */ return 0; } From patchwork Thu Mar 9 16:01: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: 67004 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389192wrd; Thu, 9 Mar 2023 08:34:33 -0800 (PST) X-Google-Smtp-Source: AK7set/uvoIlERAQusafb6XJ8l2KqKhS2Kn9cWri50lXaVJDTF69SpnQ3yKhaS8rhSR/TNakMajn X-Received: by 2002:a17:90b:1d88:b0:233:ccd2:40a5 with SMTP id pf8-20020a17090b1d8800b00233ccd240a5mr22962124pjb.32.1678379672762; Thu, 09 Mar 2023 08:34:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379672; cv=none; d=google.com; s=arc-20160816; b=Erg0LjUTjoXQ8K6cK8e5o+dy62FMRHwarV186EtrBW5yu/99N6RIksmxd2ggxw54DC ui9qaWO2XViE7YYZl4CrfMoArVZKV0c+V5MaswEoUksov5C8w1dzn9iRw+N4/iE2bA6B FUidreMC1D0HpHb3I1b2M2Ez2cGk5CgS+WtvvPPnx/koSLfJ7KSBi6v6Cz197n0/ATTN 6CXqRrSv+lj1XxOtwmOVxCM32Ag2DaJvV/HYCuFdOHzL3KbQ88i+W5PL3n99PSJDfS0G tKinjpMjU+9Y7kL07xA2kY6ibZWQX145zQGiWIfOVUx0kFdr/5O19CNPkLkVKt49sNZA 1oIQ== 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=Snw3Yf93VB0UIwteSMZkDFpepYglpr0bbLicQc74uichaJhHfBZFxOwhY1Hph81fRx zzgVfvVE/WYFlGhy5k0DcVfb1ILz3irjeyBIultiFOCuCyBEylZBRHu+GWlHKgG2RECZ vv2Zrs74aTjIno9WbumdH7UU+R/GxTdOiggy+jYy+mrsqwWcc0T5Fxr22owiTQeq30VN Gh+MGLZTDs0qpIeQDkCGCPhsOc6jgOShzKvf6ZLB5yAwjFj70uQiaMXtCS0zE/unlzGG 2C/OI711REI9ARb892t4vEC+eLpNSly1fHd+A9s/66zOGKaXEnF0Vc5K/c8XoViClKbC uNvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=B6Nvx8dk; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=U6ZELyDp; 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 p21-20020a63fe15000000b004fa0cf58e12si16480311pgh.630.2023.03.09.08.34.17; Thu, 09 Mar 2023 08:34:32 -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=B6Nvx8dk; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=U6ZELyDp; 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 S231338AbjCIQJc (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231736AbjCIQCg (ORCPT ); Thu, 9 Mar 2023 11:02:36 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B06F1F4002; Thu, 9 Mar 2023 08:02: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-out1.suse.de (Postfix) with ESMTPS id 6DA9522163; Thu, 9 Mar 2023 16:02:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377753; 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=B6Nvx8dkSj/OuX3zLARuzm8vSuXgcocSuJ64uOslQxtq5UrlzuVeuxSn1ErjZi3/1k1HPx Hl2QEF0xiXJvD044nqLxt6sXP6l5YM4rCR07kznwZ2T91F55Sfz77toaePc2oEQ5yLb0i9 J7yB4F0craiC8zEvcQP4oJzcfH/Q06A= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377753; 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=U6ZELyDp1F44OU7kM0Bc/rgo3cqI2drgIFZ4W2eywOt8CWDyHqIbljR/CH9s4oXdcfv6TA PpioaS121e3OYbAQ== 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 079B513A73; Thu, 9 Mar 2023 16:02:33 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id gHXcABkDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:33 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 072/101] fbdev/sisfb: Constify mode string Date: Thu, 9 Mar 2023 17:01:32 +0100 Message-Id: <20230309160201.5163-73-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908644073670907?= X-GMAIL-MSGID: =?utf-8?q?1759908644073670907?= 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 Thu Mar 9 16:01: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: 67029 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390179wrd; Thu, 9 Mar 2023 08:36:25 -0800 (PST) X-Google-Smtp-Source: AK7set8PlhppSGJcXWjMMFhddZEIfuLpeBpq+Jv2oCbkrBTbX0VqlPqy8a2XzHhOT3zj19QCpjlE X-Received: by 2002:a17:90b:4f84:b0:233:ca48:540b with SMTP id qe4-20020a17090b4f8400b00233ca48540bmr23732572pjb.3.1678379785461; Thu, 09 Mar 2023 08:36:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379785; cv=none; d=google.com; s=arc-20160816; b=jM8ZEqxiPT/FzENseFfuyKpI+XRzc3ItOwzDu8QgN9dFDL+HkBFUHHFwmir8RlMxVq aThHk8v31GxJbmSh8Qu2as1OUAmFk6E+oQ7z9q4JruZ1bA7CNprznh0jh53ZaiJk89+j k206m2vQwfMv/dIXXIIeZNLVC9pShbuJt7qe1m6EQ+9JySAKkofqGAulGJrMmu2NBOt2 aPu0vXJ7+4lzGkKG+tJlPxCKwFnpBf/0H71YI1kKNByPZtY6ejgYULCT28sQH25WIrTP QvHPgXGFCZaU3nJ4EUxKOz1fxqTD7tU0Pny03Q9u2ZuEm8pJg6+Rwk30u48Au462X5/8 gbUQ== 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=lTED/VgPHa5wOEvVPPDcN/pf/+4+mXP+rnXQB1MZTbI=; b=XKXSxPafI1mK1n2zVcnacnYDaXAdaOwlu2Rzmf9kQK+xMZEESLXPZl+m3z2FPM8SkZ 7iJ+uwQ7HKClnPWLQ71DoFZe/JY0yMwonx9i/17XOGiYkqjHADVVS5biOTvZcNnNhedh EKbrIrrdpOIZ7NfICN1WxE7t1p6GFvWp1TxJl/ODtCXVj+G1Y5AkkTRjSa8rn73RU5m1 7cjX6rnw4aSzTBNqAVt+DTrdzRlZPgF1M3hAuSm8a3gXCx6i1+XRMpzno0TqlRn6joW1 658KuAO5RYmWsQMYIVrzaEDtKnldUbkFL9a0PXfX38jstBj3YyUxjXj9enmjBPTXscK/ AtiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ivrPro47; dkim=neutral (no key) header.i=@suse.de header.b=TD+0JkuV; 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 u12-20020a63600c000000b005077fe6b943si4261608pgb.806.2023.03.09.08.36.10; Thu, 09 Mar 2023 08:36: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=ivrPro47; dkim=neutral (no key) header.i=@suse.de header.b=TD+0JkuV; 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 S229691AbjCIQJH (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231738AbjCIQCg (ORCPT ); Thu, 9 Mar 2023 11:02:36 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 23C92F4B7A; Thu, 9 Mar 2023 08:02: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-out1.suse.de (Postfix) with ESMTPS id D464322164; Thu, 9 Mar 2023 16:02:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377753; 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=lTED/VgPHa5wOEvVPPDcN/pf/+4+mXP+rnXQB1MZTbI=; b=ivrPro47qs/FUUYxTMSy9TTlxQwM6PjsxdmAQuR0jJqj+3eYk028UGvVMQLgWojig86pkz hlbUUYnGoPW6gBkRX1sjK9RDucyT264XOyNIkimtM9dNACDlQ3r7bPO3DXLjTYk0C0Fj6c FWyfND0mMLxLoFmDILdS1kWOn5COid4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377753; 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=lTED/VgPHa5wOEvVPPDcN/pf/+4+mXP+rnXQB1MZTbI=; b=TD+0JkuVOLoSVfrQvFdVZML9zV5qJRYVYV+7HFuBB1aUuMxo/VMpgRTScyuMuCD4FNi+l2 aIwqV+1tCxUACrCQ== 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 728F61391B; Thu, 9 Mar 2023 16:02:33 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 4G/lGhkDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:33 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 073/101] fbdev/sisfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:33 +0100 Message-Id: <20230309160201.5163-74-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908761675475498?= X-GMAIL-MSGID: =?utf-8?q?1759908761675475498?= 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 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c index c16493d3ac4f..9f63812a5f66 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) { + struct option_iter iter; 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 Thu Mar 9 16:01: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: 67034 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390314wrd; Thu, 9 Mar 2023 08:36:38 -0800 (PST) X-Google-Smtp-Source: AK7set9Es7zKimGmpceW0fBy/FG7Hs/tZ72Ajz4eQIFfaQ2aslbnYVOIU9HI+CENDaBtvhFSVeU8 X-Received: by 2002:a17:90b:4f49:b0:234:190d:e655 with SMTP id pj9-20020a17090b4f4900b00234190de655mr24040723pjb.44.1678379798430; Thu, 09 Mar 2023 08:36:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379798; cv=none; d=google.com; s=arc-20160816; b=OBbhOgSzXveJ4nRgSKBir2rnOm+OL0lS7cHRhnugypZ9sBwPOQ5gtVjwO8/ztnCZLT Yj7pLJhGgVDz/EwFRUhmT0AuMwzOkuW+bkDc+ETnO5FkSaZOP8f08Tf5OSI3bAc/cm58 sbcKeC19LBOB/METGoPtqmpjC7I2hJvTO6eD1YhpLWraliHKg0k59mIXVPttGNQbzO2q ESq4NAa157rpjFatQ+hcqR5zJCdl2nH5JbGMEB4Fef7vyuoInokpMVZ55TOnJzgnnXVz A71ix2SBDSa+BrrqpDTP/fLFFrMERWazleVZwqjJnxOln1P+vpL9BbV3K7ILItQlCXmp /DAQ== 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=k8XeD13siGTPg6ur3jYfV0pIQmZ74GbDCRGpLHT3KYY=; b=kN7TgO3RZcO0WTm3Rbq9ohiqc0llH5lQbx7REviaS3p9NuCXwibSGXBa/IVAxAgh5G 6y6DH72TUFJucl7k3bpCDGN5i25+riBMpqloHSDzHwFU0iZyh7L8HGAGB/nHmX+XmQKM 3i+5m1IH2oeXUldtBl8L+b6d5RxCYoxrqU4oym2jdnp5L0ZYKktGZq4gZ5JNqT2W6/ca x64K/vSHLk0zP7d0VuZsLNyXGS2CuaIAY6x/Y6MtLmpc/51VhBQ7f+/91GZRLn6D7r8E 9r3/JzuI5gEa6xHkjgosjzShSVpBRkfMb5Qw1KHZGfC1VIfVOJfd3459hA2mMkz4B2VL tuxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=usVstNaM; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b="/A7j3hhw"; 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 y5-20020a17090a86c500b0023082ccac58si246923pjv.7.2023.03.09.08.36.23; Thu, 09 Mar 2023 08:36: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=usVstNaM; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b="/A7j3hhw"; 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 S229956AbjCIQJM (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231739AbjCIQCg (ORCPT ); Thu, 9 Mar 2023 11:02:36 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83667F6C7A; Thu, 9 Mar 2023 08:02: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 44B6420179; Thu, 9 Mar 2023 16:02:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377754; 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=k8XeD13siGTPg6ur3jYfV0pIQmZ74GbDCRGpLHT3KYY=; b=usVstNaMvRiiNGybfSZtuWZwo3o9DGS90YmiNS0IerHlu++zx9+fuYsOeVk4z0EgLQTlP8 14EDFUpo8H9GZmISw0ir5bUUpescdqkii0CWQ9VMU9VZvUb4BxdVaAytuOV9oq0xdv0TOG uHSraghKEl2vhKBCAMaVsBA1wC6TXuA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377754; 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=k8XeD13siGTPg6ur3jYfV0pIQmZ74GbDCRGpLHT3KYY=; b=/A7j3hhwjwv8mVq2lH3pzqblM4RD5k5cYFw3kOjsSVifHYNdq7tqboxQQcrw+F+RpFjPDD OeM8vPaucJ9tCuBg== 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 D9D8613A73; Thu, 9 Mar 2023 16:02:33 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id SMUxNBkDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:33 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 074/101] fbdev/skeletonfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:34 +0100 Message-Id: <20230309160201.5163-75-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908775367928951?= X-GMAIL-MSGID: =?utf-8?q?1759908775367928951?= 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..ee6944d0ebc1 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; + char *this_opt; + + option_iter_init(&iter, options); + + while (option_iter_next(&iter, &this_opt)) { + } + + option_iter_release(&iter); } #endif /* MODULE */ From patchwork Thu Mar 9 16:01: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: 67032 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390268wrd; Thu, 9 Mar 2023 08:36:33 -0800 (PST) X-Google-Smtp-Source: AK7set8wrWfbqe2Vq2DQf1zQ6vpOmYABrBHkHzdP0KfCioaDSH+TdrpUkPk6KMjgZb+YVFFJJKm9 X-Received: by 2002:a05:6a20:a111:b0:cc:d386:ec1a with SMTP id q17-20020a056a20a11100b000ccd386ec1amr25057006pzk.2.1678379793190; Thu, 09 Mar 2023 08:36:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379793; cv=none; d=google.com; s=arc-20160816; b=VBGEcLh2+Lc3qpwCteZERmWDcFa4sBLSyjrDyJS/5y/iJaJOUFa/BHsrwwO/rwoOdj GZUVYHJ4GzDfSZ9VUM9XkKbkajgngMRNojecXb7cfnEg/10FAAIrV9vvGb3sUVjn2biR OzlAzgdcpqU4DzAn+NP+TinVoWfK58QBaV5+UeXQqFFYTjYRc2iHwMP0vLWUiOkzg1QW sHlAl57mIbQ+vR7+pdP8ubnj7OFjHeih0jLgUYvX6jna8FfKSPGF5+N0x9vpa2Rb+z11 i+RL/ix1BCPVWo5YjnkE4TlWSgfB/2PCR20oKZq3mXPTBgrru1VDxSqn/SUokwrUtUfN zI6Q== 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=0gZ1Tmm3JEgeMqN/NPKY8oH5C/7S9gy9JQ3mKL7gtCM=; b=CrCSjB9jzbjyEAQjjAvgnmPZpA/IxSjsBMRZQzE78bzLZsKYiJxA7iWCwXEAw7bn6g M31tpy1glkOden8uj9vTneyJLv3ZQlD1ez5tS01wVrz3SbTpfGhnerZhOGUErFWiR18W YrFjh+SIj9lKfqQWpbiMFinBhqSY8UIqWwfZDdX0QmgXl+M5iaV1ta6arUtmJVsG3c87 reBQMoW1gEqeG2xNbUNUqAf7j3rIVh+e0FiITg5SGdALI0JYsEJleaBlF3Zggk8JpDco Tx8ATdJJdU8NT3z56/9W6/dr0O9IeOHITJehPInSpFCv0sUpOgpDGIjy83dlK9voPcYM 7IPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=aClCiEjh; 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 69-20020a621948000000b005a8663221a0si16786651pfz.91.2023.03.09.08.36.17; Thu, 09 Mar 2023 08:36:33 -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=aClCiEjh; 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 S231438AbjCIQJW (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231741AbjCIQCg (ORCPT ); Thu, 9 Mar 2023 11:02:36 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EB30DF4B43; Thu, 9 Mar 2023 08:02: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-out1.suse.de (Postfix) with ESMTPS id A52DF22166; Thu, 9 Mar 2023 16:02:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377754; 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=0gZ1Tmm3JEgeMqN/NPKY8oH5C/7S9gy9JQ3mKL7gtCM=; b=aClCiEjhtEvWWtKnoezDVvFJ/0p8+II1/ANYf4pu5EiDL7XF2rdltVl0y85P+Ha4Dn4ZNH zwMyiHi4MWV1eiin5k+j/f+5rLop399Dwzr+Ch3RBWzELK6MsXeMNTcWo3Tk5STdrD/tFI 04JdiAGAHPMFYJ40iwVJCCMsxvqG+Eg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377754; 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=0gZ1Tmm3JEgeMqN/NPKY8oH5C/7S9gy9JQ3mKL7gtCM=; b=u2IBZGAN1hguKZ934fTSEqBEE8/y5bWBVazblvDiXW5m5qNf9v2Uth46VrOGnZkWdgS5qR m/u8q/ceCBwgOIBQ== 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 496031391B; Thu, 9 Mar 2023 16:02:34 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id OJ4JERoDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:34 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 075/101] fbdev/sm712fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:35 +0100 Message-Id: <20230309160201.5163-76-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908770078728715?= X-GMAIL-MSGID: =?utf-8?q?1759908770078728715?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/sm712fb.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/sm712fb.c b/drivers/video/fbdev/sm712fb.c index b528776c7612..a83f48fce5b1 100644 --- a/drivers/video/fbdev/sm712fb.c +++ b/drivers/video/fbdev/sm712fb.c @@ -831,6 +831,7 @@ static const struct modeinit vgamode[] = { static struct screen_info smtc_scr_info; +static char *mode_option_buf; static char *mode_option; /* process command line options, get vga parameter */ @@ -1761,8 +1762,12 @@ static int __init sm712fb_init(void) if (fb_get_options("sm712fb", &option)) return -ENODEV; - if (option && *option) - mode_option = option; + + if (option && *option) { + mode_option_buf = kstrdup(option, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } + sm7xx_vga_setup(mode_option); return pci_register_driver(&smtcfb_driver); @@ -1773,6 +1778,7 @@ module_init(sm712fb_init); static void __exit sm712fb_exit(void) { pci_unregister_driver(&smtcfb_driver); + kfree(mode_option_buf); } module_exit(sm712fb_exit); From patchwork Thu Mar 9 16:01: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: 66981 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp387943wrd; Thu, 9 Mar 2023 08:32:04 -0800 (PST) X-Google-Smtp-Source: AK7set9eAjgPRMAZtIemrzGZdhqJ2l8fQ/GKYsfNMw1dICblOXC1nJ+JJUmnzROuGzHAJ0dfxa9T X-Received: by 2002:a17:90b:1d0f:b0:237:752f:1af0 with SMTP id on15-20020a17090b1d0f00b00237752f1af0mr6359435pjb.29.1678379523767; Thu, 09 Mar 2023 08:32:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379523; cv=none; d=google.com; s=arc-20160816; b=IYrwjcfIJiX3pAY7vbeikMYXOIGtQth14GMR9V9E1g3IxvT5o6Gj5OPc3RteAcNLIF i9qVgWUTyK4msLb7JhJHUzPGSAI19hpD+Ce/1pxDX2catai5TxbEyVEU84AXr0dHQmN5 2h5qPHUpAJbM1U6d9fENGgg9ongHQWIjUNjlhxlKbaOAicqFc6OZoa01HQAV5ixLbfQl MA4bwopnVd4mXhO5/UtXnos2vtLRoldvWNVqLUy8DopDh62WvEmgBycloipNwtSM48+c sTwOAQCbhwRfcE/IQtGsm1D57f/gxkQhvT68vrQJB+u1GABZw/99tE6Vh+ef64muW3Nb bZfw== 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=JVZXeFOij00kRcHliLoRJrMyHyqeyRSXeS/4JiKw1+4=; b=vpY69FznBdYlIXNL53RCP83wG7aw8FHPSpuY84dkPU5qIU6Ng+NmUSEs8PRBh3XaEe BpSGgmFmmebg9JtcNC+j2Cc5JAsL0TowRsD6LwBTBog391Dc6fnpdgUAPIpNf7FT5Ehq QHfzkk0EPr5IWRQoTL5M2qGChmV2eibTQtiK9xe0rSkHcsJ8cEHwCt/BhDYn2BBqifXr WHKYlBOeTqq+4jSgsmIFHDcS8yngFUvz9R2JqSCZxpGIBQSCpeodGjhMwMkLnKb8LKpU pP4YLTBpZWKctWVDtdXmoR9+5AbXd/uaCWxxgzmey2oVopW6jj7rXlOjNZQ3A+EWmwEi DMjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=oycjPTqX; 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 q10-20020a17090a9f4a00b0023417d26e2asi208586pjv.113.2023.03.09.08.31.47; Thu, 09 Mar 2023 08:32: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=oycjPTqX; 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 S230164AbjCIQJS (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231742AbjCIQCh (ORCPT ); Thu, 9 Mar 2023 11:02: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 5EFA4F5AAA; Thu, 9 Mar 2023 08:02: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 14ED120188; Thu, 9 Mar 2023 16:02:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377755; 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=JVZXeFOij00kRcHliLoRJrMyHyqeyRSXeS/4JiKw1+4=; b=oycjPTqX0Nu9kVuARt5SyGrF4xBlSmhXVQTpgeM0jHtxkgEDQ9Sycw+FpNBC1aJYAc3B4g nTHE/VRCf+2lto6LOSXg9ylMDlKD1kB9rbdqJ6DxrJIRxd8RpHVyOGwx4s0N+U6c5vB4zs Q6g4PygtLOu6Ra/I7MEJPj/GMaGHm8Y= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377755; 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=JVZXeFOij00kRcHliLoRJrMyHyqeyRSXeS/4JiKw1+4=; b=iU9zauDRacbuOoy7KnMjtREgfUQLKh4m4lqK+t7ilZ2003HWOx3Zq+waNLG5fWMeFCu9kZ 9EWupGJkvHEIsmAQ== 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 A9F6613A73; Thu, 9 Mar 2023 16:02:34 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id cL2VKBoDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:34 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 076/101] fbdev/sstfb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:36 +0100 Message-Id: <20230309160201.5163-77-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908487333293513?= X-GMAIL-MSGID: =?utf-8?q?1759908487333293513?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/sstfb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c index da296b2ab54a..f422b1882950 100644 --- a/drivers/video/fbdev/sstfb.c +++ b/drivers/video/fbdev/sstfb.c @@ -106,6 +106,7 @@ static bool slowpci; /* slow PCI settings */ */ #define DEFAULT_VIDEO_MODE "640x480@60" +static char *mode_option_buf; static char *mode_option = DEFAULT_VIDEO_MODE; enum { @@ -1301,8 +1302,11 @@ 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 { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; } @@ -1516,6 +1520,7 @@ static int sstfb_init(void) static void sstfb_exit(void) { pci_unregister_driver(&sstfb_driver); + kfree(mode_option_buf); } From patchwork Thu Mar 9 16:01: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: 67013 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389650wrd; Thu, 9 Mar 2023 08:35:25 -0800 (PST) X-Google-Smtp-Source: AK7set9aN086AX32Lx7nFt7lWhdlbx7QM57e6AXJgz9qAMMExgf3Tf2PZDg4lFp+3ZDO3SOieq/Q X-Received: by 2002:a17:902:e890:b0:19c:a3be:d9de with SMTP id w16-20020a170902e89000b0019ca3bed9demr27170601plg.4.1678379725517; Thu, 09 Mar 2023 08:35:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379725; cv=none; d=google.com; s=arc-20160816; b=Oezx7fhBOlox9KMieTSHnQTQFWqUm5vyEOs80mR3N6EMKg8DU4E0iyBmhOOHFsIAii 3mKMSYjg4mqvqDrXvI7dFfFWMXAwO/3ej0sDZ4avB2b//8Wx+6dLcKsf++rHXQ7avWVw PxG14yEPjSircegFp6nGUzOyfejyJ5yhzmVK2Lxbnfxc17Ux4IXCFDMe6tbYnBjk5VGh kuFNs7cLyEg5jbkU3ZJCxEvdxwqxKZiUkT5ZeGmChUkbK5w11Qe6FOvXdHsSrmBo1NFJ ZPec3wdqY43dL/br/YhaIa6ex+o8+oFNuOVX/t/UcdTdE/Me0Tsku1lpz2EOpoe7rE4/ QtYA== 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=dGao4/+8v2Z8tcDrT7BpBJJdc9l6qPzCWFNHVL07Dog=; b=wZfrWTMbUuzocpeUJa9RPdvQOE3+tF905GWWWm6KrRurFVGYaA3ZXmlvPwZbgX6n4Z FeN12BNMYmNXMACNK3T9rQoHrRHbKRsgSgLh4OBAOszRXhPANwuXJ70W0qucJR16gQum CLp5He0qauLO83ngXlglGRMJ+x8H3SF/auOx8GMklf6fG2Ywrz5l+JJUQfectl8zmH8s +zkmGP/CVHMwhDGhIcauTBzVFW6zfN81tLe4kPEej/eK+5rAW67ODlD6JEjBhaEiqJlH RV+1AEcYRitorPUmW8KlVxYg+F8jNB/g7myQGpO1HRX07hM/ZrLxIWuy3Qql93BN9ovl wvQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=D48VvNxy; 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 q19-20020a631f53000000b005039c3a4139si17148450pgm.436.2023.03.09.08.35.12; Thu, 09 Mar 2023 08:35: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=D48VvNxy; 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 S232339AbjCIQJ7 (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47676 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231744AbjCIQCh (ORCPT ); Thu, 9 Mar 2023 11:02:37 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BDE4CF63A3; Thu, 9 Mar 2023 08:02: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 7CE4922165; Thu, 9 Mar 2023 16:02:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377755; 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=dGao4/+8v2Z8tcDrT7BpBJJdc9l6qPzCWFNHVL07Dog=; b=D48VvNxyqJC0+3C96A/gjn2QUSVi1/g6GhkIJcAn4n37t4cSXLG/Iui1Z0O2BIBcMKx1uy U2C1OzdbUo4rC+Z1apkhOzEFuzeD706Asp9LTwnYiIWjA+phTO7OweRyJMDlvIsFee8scQ 38FrRzcn3S51koKPqh1EMMjDmlGA/gw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377755; 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=dGao4/+8v2Z8tcDrT7BpBJJdc9l6qPzCWFNHVL07Dog=; b=KZkjQPv1Xu+J25KY5xlpJ830zCOjOREV3SPXtwhwc4i6xTueGcrfNcQe8DmtbcNH947aB2 fvHsjrXGWRD53XDQ== 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 193271391B; Thu, 9 Mar 2023 16:02:35 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 8DolBRsDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:35 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 077/101] fbdev/sstfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:37 +0100 Message-Id: <20230309160201.5163-78-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908699093525479?= X-GMAIL-MSGID: =?utf-8?q?1759908699093525479?= 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 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c index f422b1882950..b509020fed74 100644 --- a/drivers/video/fbdev/sstfb.c +++ b/drivers/video/fbdev/sstfb.c @@ -81,6 +81,7 @@ */ #include +#include #include #include #include @@ -1274,16 +1275,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) { + struct option_iter iter; 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")) @@ -1308,6 +1307,9 @@ static int sstfb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } From patchwork Thu Mar 9 16:01: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: 67002 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389089wrd; Thu, 9 Mar 2023 08:34:18 -0800 (PST) X-Google-Smtp-Source: AK7set+7jFOYb1lBeSaaqwUK44aSOnVT+TEW1S0zWVFLCzI0s/wYzjV7HvXO7guORUUwYT4082Il X-Received: by 2002:aa7:9f1a:0:b0:5a8:ae60:eb4a with SMTP id g26-20020aa79f1a000000b005a8ae60eb4amr17121683pfr.28.1678379658470; Thu, 09 Mar 2023 08:34:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379658; cv=none; d=google.com; s=arc-20160816; b=ZYFxUb/A8L9j8n+fzC9FQhoj1KbqFoYDOnEbCqCV2G9r6FuAVPqjQucBbG1bHazCHz xmMJSEZxGiLp6hzOpREe6BGBDeIQk7ErY+zxl9x6rzLFxlqMcHc3zN2q2LW8yt3pAtMJ 0QLF5ArIZm8ErSd3lm3BrNPs6aLb2KnPtP8E7bs+BAAEHzNSDLluboV1hD6lXyZyO7/s poDcOiUS4OAPvSIhTk58yh3gCpX8zy0DGuPOG1z6D9j3Wp/oYsEnWPOz4QMeetF2ZKte 69ahqOV9nUU7VOoXCMM477k8Id5ntmuSXgiBECTApA+wbipVE/ZG+Lx2b8Kfnxijvsuz XdMg== 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=mfLwUGJgnXGtPuo0ziR0TwFMvNX2EKeFSZs/DK6wB/6fCcucyUnNTJgJc9Flc6QXC2 4BuitxqNEUHz/bXRNWxWM607cV5hvkpjlpSxcbPPhSjE4DkxelUQgEob6Nbs7RldLQua SRka4tdmqHH+FwslVi1iIaYLYVmUSw9lYVbF/MiGoMrqKikM1t1qSg+QS0DSMnoH7nEF 2puapGGzTyQQsOJJDvqobA8+3FoRKvETzi8CAoBq1bLqKe4RLYEA4/22embcEoJAjJZf iP3u1pMpEk3bnNRaoNCThOMDtetNBcVV/YJMQjXxQICGv8mSbjKqXqJcrPA9WUs0bCSz XPZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Ky3ShGlx; 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 b2-20020aa78ec2000000b005a919052520si6113146pfr.317.2023.03.09.08.34.05; Thu, 09 Mar 2023 08:34: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=Ky3ShGlx; 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 S232363AbjCIQKE (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231752AbjCIQCj (ORCPT ); Thu, 9 Mar 2023 11:02:39 -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 47F90F3670; Thu, 9 Mar 2023 08:02: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 F1DEF20195; Thu, 9 Mar 2023 16:02:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377756; 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=Ky3ShGlxEanIrfpn7zZQyNxaIPMbvxly5yS2adKSlQKys6YXV6fi1OBRbWewTttGHIaOSu s2xuyBmwUuvG75Ivhf31MVNx3P94Ct+9tWD0ucSZR4n+xnZCqst19etrlG8HT9Td+2vZMR u+ITSIGP0nBZcNcAUSjPw2TZR+TYOFE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377756; 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=GnPNBRHENkhw4eDratWcLnPSDFkFWcxIxpeIQ/nVDZLY/KrCK7gb+iaKLgb9LhV2LtTgLM hU1xvk4Jj0vyWxAA== 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 83FEC1391B; Thu, 9 Mar 2023 16:02:35 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id GAFUHxsDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:35 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 078/101] fbdev/stifb: Remove trailing whitespaces Date: Thu, 9 Mar 2023 17:01:38 +0100 Message-Id: <20230309160201.5163-79-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908628678639668?= X-GMAIL-MSGID: =?utf-8?q?1759908628678639668?= 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 Thu Mar 9 16:01: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: 66987 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388306wrd; Thu, 9 Mar 2023 08:32:47 -0800 (PST) X-Google-Smtp-Source: AK7set/cPNbV17fw+zIFh5i8cqdfCDUS+5uBoZHCF6G1cyYBGgY2J/Z1GSjItiODfPbqQm7xXdNj X-Received: by 2002:a92:1a43:0:b0:316:d9fa:f31b with SMTP id z3-20020a921a43000000b00316d9faf31bmr15426637ill.32.1678379567494; Thu, 09 Mar 2023 08:32:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379567; cv=none; d=google.com; s=arc-20160816; b=ExvwysimqhwxoVs7LrgwwhARhvjt3mEk12zC9+LlTLSXXblDeKPTuZsPafk/z6CbXz 0tQRpPAd8X6ENectDGrMxEtL8MvL2NVHY5wOriu8iXJ4YZDhj4aw2pNDyxKnKjF52uAz Ipkm5Jtf7AcCnhE+5oz2t4JWrQYmTDVnsFMBlMFtkhSFEWkP+XWPX5NA7IpIqoluGqOy o0elqqJvw9plk/vQiEWWl4H6VnN2tZzWo+n3ySCWZ7Irxpxop4SiCefQ+LVpqCn3HydZ iG1p1TUdDKn/qXKWyFn5obB/X66wDDl8D4BXera+cA9mIfr55lggyNL3KGcG9N0fyz2u TeYg== 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=LTM3CGrNdrXHYDt3uvNdE9HVmQsT5bWUcDXgP42T3Vw=; b=X8UQZsIjc4dTJAbWiNYBt2NtiQZMx9NE7HcPLOfBo2pFKrq99LQ5SFwqA5ReuOdxGQ fn7TtWQzkkmtVwkUpIVCN5brZ3UhfugFpvUb41b63l+IgpZwxd7zsd26Rbx70ujxygsX 7ZzuOZXnscrIwuDuVxoxpwzbnD0UXSBskfzBl+e3d/JXgGTTiAtxA2cBLMVFdTtad6ni SLr90lD7aHS8YiySVTdLRr7UDVjOxjWjtbLI2pgWusEfmgHBZvGxsttJl5ZqtWkEBcRB T9y8I3PaDS2EOhRQ+FAck/Q3GNOx5ZITQ7eC04wE6A8CLduU6equJIywabyeUewuzsz+ pPeg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=aEwptXQd; 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 k7-20020a02ccc7000000b003c2b42c554asi17508553jaq.11.2023.03.09.08.32.32; Thu, 09 Mar 2023 08:32: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=aEwptXQd; 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 S232411AbjCIQKK (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231747AbjCIQCi (ORCPT ); Thu, 9 Mar 2023 11:02: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 A94B7F7EC0; Thu, 9 Mar 2023 08:02: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 624F322167; Thu, 9 Mar 2023 16:02:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377756; 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=LTM3CGrNdrXHYDt3uvNdE9HVmQsT5bWUcDXgP42T3Vw=; b=aEwptXQdCCH+AJ6u2L2xYdN2fF80ZjhX3VqQxgndG0KrIdZF76bRLH07xcfggmBfj+K8HX R5CIgQ3pkLkK+HaCIm8UbgRwSKMQvdAWI0xxPC625t6nY2jjWXS4XGhxRRGL0uRIdIp9C/ uFOSm+SYL+Nunq6xFZ5mX35ulJ/XGrg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377756; 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=LTM3CGrNdrXHYDt3uvNdE9HVmQsT5bWUcDXgP42T3Vw=; b=K7r4EOgkK1n3HkqGvnXwPSIxWAcooJM04yuU58O/ZH8Qm8g6hw+VEogus+YPrAqkcW3tFO e6Yk9g42vXUNnQCA== 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 0131613A73; Thu, 9 Mar 2023 16:02:35 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id OBb0OhsDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:35 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 079/101] fbdev/stifb: Constify option string Date: Thu, 9 Mar 2023 17:01:39 +0100 Message-Id: <20230309160201.5163-80-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908533236563749?= X-GMAIL-MSGID: =?utf-8?q?1759908533236563749?= Constify the internal 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. v2: * say 'stifb' and fix typos in commit message 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 Thu Mar 9 16:01: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: 67042 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390532wrd; Thu, 9 Mar 2023 08:37:05 -0800 (PST) X-Google-Smtp-Source: AK7set8tmibYWqk3UsrGABQR914n4A+uss+e2rJfOLtbsooZb0b8OEYzgzzlbSSxWmb2RXBXGQA1 X-Received: by 2002:a17:902:f689:b0:198:f8c9:7f4b with SMTP id l9-20020a170902f68900b00198f8c97f4bmr26413636plg.2.1678379824947; Thu, 09 Mar 2023 08:37:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379824; cv=none; d=google.com; s=arc-20160816; b=qyslKuoSd9B4/9edPWrr14fOYEDp8lwH1mz+kE2/0ZXt+DSDmNerx+NfrSuaqNs7fO hEXRONcvIYoNoi/GnCiTRhoM0p/J3vDvkmX1+kJbvKzRB0txlAEClqYPJoo7yxPvPG1h 0ajvbmhvstzGZzZDW/R53/Fb4F/gGl3z6gbuHgURp7/ftRvg/mn+Fk1B4gZdraxnfBda tuBW0gh0IiE/LWhkRyNC7G+Pxwrh4X39EY/UjvK/x9ojYCHa09vvhm9JDsSl3l85VHTJ fprAGjVOEwZ7it4STDBaCpM74er9dOV6bMu6Il3GBakO4VTW/nPjVh+NEkCXjKiK4mCN KxdA== 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=IEKnK2TGMp6xvHidEfAOl+l/D8RLHbl+ZLabvMskLSc=; b=xK8TYdGqQhc/975oqsmqr+4AoOfqg5QnzAJ5xAIb/ic8CWB6zAvc9tV5ZB7zJCl2VE dFXtPFw7AKFy2Jmf8qISx/VxyCm78f/ImwAAsVi4rPGgAmv34aCCyaHMYuIIctlroNBE eI5XusYYrrm270J7sSghiqiFknGtms67vQmCrHEwhjo59Uu7OmSdDeK65FQC+QaEaOIk IC4IqwKsLjOigCj8u4fmgLzJsXw4ZFcJiiDdwtSVeUQYuT6Y+zxOPO+oasZ1PfXmP6bR NmEGHIhdX1vGRX2DUCToOXNDaNj9PGzKESHqjkr5ezZWtnEbjVWNSRQwfBOE+vpDLl2d anFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=vi06xusi; 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 kv13-20020a17090328cd00b0019e3ff97af3si16631861plb.338.2023.03.09.08.36.49; Thu, 09 Mar 2023 08:37: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=vi06xusi; 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 S232279AbjCIQJw (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231749AbjCIQCi (ORCPT ); Thu, 9 Mar 2023 11:02:38 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1ADB7F7EC5; Thu, 9 Mar 2023 08:02: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 CD0EE20198; Thu, 9 Mar 2023 16:02:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377756; 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=IEKnK2TGMp6xvHidEfAOl+l/D8RLHbl+ZLabvMskLSc=; b=vi06xusirr6ldOsZy4e9GSl5XJsFNCPrbCstz+9i/fse4+a7GLHUhM4hAM8xv+uS9NES5C rqW1RIQOqpTv3wweoRWD9vm/shbKFmJBQaeReQmoQUYZOg5wlM9rR7tFyaXrxuusgiKdj1 YrdSYr/osBmi86JFP25HBEc8eOFz6ro= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377756; 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=IEKnK2TGMp6xvHidEfAOl+l/D8RLHbl+ZLabvMskLSc=; b=hpbkYxQ3m6mi8JnxXTD/wpfQlIxx2YgBaNdi9aBPaHSAiuL8cUhb152l6R3Ro7ah9NAgAf yCtePBDsdp7cqODg== 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 65FC91391B; Thu, 9 Mar 2023 16:02:36 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 6H4XGBwDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:36 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 080/101] fbdev/tdfxfb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:40 +0100 Message-Id: <20230309160201.5163-81-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908803285906229?= X-GMAIL-MSGID: =?utf-8?q?1759908803285906229?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/tdfxfb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c index d17e5e1472aa..ccce6dac443d 100644 --- a/drivers/video/fbdev/tdfxfb.c +++ b/drivers/video/fbdev/tdfxfb.c @@ -150,6 +150,7 @@ MODULE_DEVICE_TABLE(pci, tdfxfb_id_table); static int nopan; static int nowrap = 1; /* not implemented (yet) */ static int hwcursor = 1; +static char *mode_option_buf; static char *mode_option; static bool nomtrr; @@ -1589,7 +1590,9 @@ static void __init tdfxfb_setup(char *options) } else if (!strncmp(this_opt, "nomtrr", 6)) { nomtrr = 1; } else { - mode_option = this_opt; + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; } } } @@ -1649,6 +1652,7 @@ static int __init tdfxfb_init(void) static void __exit tdfxfb_exit(void) { pci_unregister_driver(&tdfxfb_driver); + kfree(mode_option_buf); } MODULE_AUTHOR("Hannu Mallat "); From patchwork Thu Mar 9 16:01: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: 67040 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390487wrd; Thu, 9 Mar 2023 08:36:59 -0800 (PST) X-Google-Smtp-Source: AK7set+9AXpAspNupka+8XjfcGg553UrZaHUE7kkoKOaJcVgS5DqGb6WYGHHviH+rrJK28M37NMK X-Received: by 2002:a17:902:e54a:b0:19e:8bfe:7d79 with SMTP id n10-20020a170902e54a00b0019e8bfe7d79mr25714389plf.1.1678379818809; Thu, 09 Mar 2023 08:36:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379818; cv=none; d=google.com; s=arc-20160816; b=ggGuoJMABNKNQVci0qQxQu3Ygq5XGi38I8C6xW5UhZUjugC5yxVpZBV1XcqkrOsWwo 6zicXiqu3Pyi7YO/ah37YtQdyYPDFGrfWywumfLOruAbPD6Z+jMa99SmrPJDZ7/DVPHB 99kjvzRMzL1nojwWHlJgke/eD0k/I7CP2qQY7wGpKHQjd0gVP7IrMIoXBH+nQlO/Bft1 HqCfw4h8ytsqhx6jFZaFi0jsa1xxtWiFp85kP9sqcRJ9EI7lJgpwGfbPZyLtzJOpGU/2 Q4/lesKbvMgBN5CII7YL7o3+Ckhhc5MPibh1LELMLoWDH853UZof1+mZJNEzPEawDJfu NyOQ== 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=A4ky75dPBFi9k/HE+Zb+n8M0fUvTx84PLGN/ySVqcxc=; b=qR0JkUSkXyg91iLJj2YGh0g8KW3XLrTKL/Ih2O0KGTf0slrpO8Iws5yrKRcW9ubcv8 ZQE+Qpu8iSmvPV/RfKfQ5SoDDtWDFCr/ZtW9NPYdgrV+JINgie+Y8tqA28zZezVPDuul klKjCB5DobR0Dx7kUpy0yKMYBnOsC2v1PDjYBhXRBQa6e8eP1KRsZwmvA1KwIgeXXWC3 NZINchMVute9oSkxIh5NBoIDR7DQMCSbNgj6DNUAitH0UXN8+GsUsxlVkdV2T+q6qD6s UCXSsBrQ+Vq18rKY4knJuRz9aW4KnFO427Uq7tGstD+ksAXNE+wnP1U3cre+Weg/0pfe em7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=NgeqLJjf; 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 kb14-20020a170903338e00b0019e5fc3c7f0si2056443plb.420.2023.03.09.08.36.43; Thu, 09 Mar 2023 08:36: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=NgeqLJjf; 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 S231374AbjCIQJf (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231755AbjCIQCj (ORCPT ); Thu, 9 Mar 2023 11:02:39 -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 8C519F4002; Thu, 9 Mar 2023 08:02: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 43F9220197; Thu, 9 Mar 2023 16:02:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377757; 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=A4ky75dPBFi9k/HE+Zb+n8M0fUvTx84PLGN/ySVqcxc=; b=NgeqLJjfybkxoTIRgBlxaLMWmKDaYSeF1X7pU8jY1vhCqU8zo9XQ/YcgZKJhBzV2mXyjoK g19QGerRWAYQJJuXVU+C54zaRVyNlbwEplU0wVZJBxbHOTcCDgAQSx0I76q5KeTSNZoCMu +2RIIrd2OqQsUu3Kvx/5pMqMwscMbbY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377757; 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=A4ky75dPBFi9k/HE+Zb+n8M0fUvTx84PLGN/ySVqcxc=; b=sr3Tx4KAiqIF5dx3JVMxYsGw/mXt/+tYG+I3WWJNkiTNG1iQpXWomOCVxzhIJMKZ4XuF7t MFg2XqJOObu/ZICA== 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 D122E13A73; Thu, 9 Mar 2023 16:02:36 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 0F0TMhwDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:36 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 081/101] fbdev/tdfxfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:41 +0100 Message-Id: <20230309160201.5163-82-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908796767024601?= X-GMAIL-MSGID: =?utf-8?q?1759908796767024601?= 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 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c index ccce6dac443d..1fdaf328f03e 100644 --- a/drivers/video/fbdev/tdfxfb.c +++ b/drivers/video/fbdev/tdfxfb.c @@ -65,6 +65,7 @@ */ #include +#include #include #include #include @@ -1571,16 +1572,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) { + struct option_iter iter; 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")) { @@ -1595,6 +1594,8 @@ static void __init tdfxfb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); } #endif From patchwork Thu Mar 9 16:01: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: 67017 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389694wrd; Thu, 9 Mar 2023 08:35:29 -0800 (PST) X-Google-Smtp-Source: AK7set9DE0Qqkx0oPXM5kg4fJ66tnFI9hQ1eV73cvp5llAXY3JWolna87NbI/S8jRM84nrDvs0xK X-Received: by 2002:a05:6a20:a111:b0:cc:d386:ec1a with SMTP id q17-20020a056a20a11100b000ccd386ec1amr25053825pzk.2.1678379729514; Thu, 09 Mar 2023 08:35:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379729; cv=none; d=google.com; s=arc-20160816; b=W3COtiSSp3H9+0mPYbBr4moqINLgEbWGnDB8/XFJM6MVOeVhUg3rc7SGNDbC3iH/E2 OgQasixJUJdjFOdtxumu2UeN/lKH1+iBmARgQenN2c5qVzK1aPHQFg04kB8TT7kJxT7R rO4VXfHjUhV4x/RE+xbaRvh7zCyKpKJ/n4MVFieyNRhzM5sJx4c2iT/z+nrdSusg2CfU 5jTVrVzWhCwIP7bo964ejcRVTWCDHW6aaV32H7xErY2AmhLwhZ+gBgdeCnJHuy/MtJK2 WnWssfXBrexQsFV2C9jH/MAmq6YTzVCKjLy/HhU3CtYoZaQW+oXu9vWfZwnsyOyxVDhq YVDA== 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=aJn8o7oO7CwCuILwl2JzQiMbBkeRnmXaxFrDAwCxN8U=; b=BSWtLV5YfFweooEW7fURRNIjTvPPHOC3GzrZySUaVqLh98/OOjqxSOmSHI6oZTOZ6C SexT+kVAquuNrbiARdpbzYDlkU2iLU26I3PH0/6r6Es3oXGv3o1x5ZkWxP+mWpl0EAOB m2Qcp57LrAkClHUAHc6yam/ktGYVrq9thSkibAUvmtc/gmOqQu+zAZ4grx1i3EbupB9Y ysk8GjTivAqV4ki1VgkZ/KeMo1KPy0yvFGHmTRBFDLkoHXOpl8FO3mvJ6bwz6SfcfjkJ ogJ2qpcv42TeZjj4WFO6sFd5Dyr8yXVEnWgIH9uhkTZp+DledLWlLim/yHKlnHW4j3wI w70w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=fXbV1Qzw; dkim=neutral (no key) header.i=@suse.de header.b="/U0nSzLL"; 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 c196-20020a624ecd000000b005dc75487137si19107037pfb.299.2023.03.09.08.35.14; Thu, 09 Mar 2023 08:35: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=fXbV1Qzw; dkim=neutral (no key) header.i=@suse.de header.b="/U0nSzLL"; 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 S232384AbjCIQKG (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231757AbjCIQCk (ORCPT ); Thu, 9 Mar 2023 11:02:40 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 28F23F4B43; Thu, 9 Mar 2023 08:02: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 AAE8520199; Thu, 9 Mar 2023 16:02:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377757; 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=aJn8o7oO7CwCuILwl2JzQiMbBkeRnmXaxFrDAwCxN8U=; b=fXbV1Qzw6LMJxHNXe60qu6ZDrqzwHGI1/kll5TDILVXN7pmt/2bhsJnP7xW6o/TFQHJDcs 59PNq2nicPe7LasGax9LCjMfVzz6tBIRJE3o5xYpVQ3NpfMwWKd0SGxdkXLNGKg6TmEOEA ny9MDx+0uJnh1GtOvY110idgnhIhDLY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377757; 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=aJn8o7oO7CwCuILwl2JzQiMbBkeRnmXaxFrDAwCxN8U=; b=/U0nSzLLSxyCFAM90iXf1RdWq2BiPXb9dOCzpVgYQagu40T1mHm444umGb2ChCsYIH+LW4 1Oc7pL9roq++vfBg== 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 48DA81391B; Thu, 9 Mar 2023 16:02:37 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 2APSEB0DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:37 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 082/101] fbdev/tgafb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:42 +0100 Message-Id: <20230309160201.5163-83-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908703300615776?= X-GMAIL-MSGID: =?utf-8?q?1759908703300615776?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/tgafb.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c index 14d37c49633c..cf00b8a91bfb 100644 --- a/drivers/video/fbdev/tgafb.c +++ b/drivers/video/fbdev/tgafb.c @@ -59,6 +59,7 @@ static int tgafb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info static int tgafb_register(struct device *dev); static void tgafb_unregister(struct device *dev); +static const char *mode_option_buf; static const char *mode_option; static const char *mode_option_pci = "640x480@60"; static const char *mode_option_tc = "1280x1024@72"; @@ -1568,6 +1569,7 @@ static void tgafb_exit(void) { tc_unregister_driver(&tgafb_tc_driver); pci_unregister_driver(&tgafb_pci_driver); + kfree(mode_option_buf); } #ifndef MODULE @@ -1579,9 +1581,11 @@ 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)) { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } else printk(KERN_ERR "tgafb: unknown parameter %s\n", this_opt); From patchwork Thu Mar 9 16:01: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: 66974 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp387112wrd; Thu, 9 Mar 2023 08:30:45 -0800 (PST) X-Google-Smtp-Source: AK7set+isN4RnelzCbaUOoYp34FWggOk8dfv5gHPAfPOvRvMPe+d+klPKGx2K3LQqr4IAom8fxhW X-Received: by 2002:a05:6a21:6d9a:b0:be:a9c7:5d12 with SMTP id wl26-20020a056a216d9a00b000bea9c75d12mr24738735pzb.18.1678379444984; Thu, 09 Mar 2023 08:30:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379444; cv=none; d=google.com; s=arc-20160816; b=VuYUNqZOGxMpal7ELzZU0mspf43wR3ft4+xryno4tLlV9ldFhbulNSRiTz4phIUHBu GzALYBRPlh1cRDFyc3PFcT3OnGeoXWy0KoXydcpcy80CksOcZsLDyiKQWU+cGD/smZtb 0GBYXkJLyUmNqBAL5aEGeLKRsbH4v5f5XELt0jwQfy4lCzCZgkw4mk1XGX7lzNVbNgzu By7/CODV9pLWWvv4WP3PFdJeXnT1ElkZQU8OY6nuZu8jvrEJ+GpzQxLpEfQcYYMOd5Ew G9S013USOp1iwaPFeo6hArFvYW+P7GqDz8h481Vy5nGXO633o1FeDWxwaJ53f6UHLUKc pg1g== 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=RWxZWY+4j2LC2Hx/5MOho9tKeaDUwd+4OyC3KjTGJWQ=; b=pQK+CrpDCaG11PthGh1MCZchGwCjs7dLBIdBnldSIPu8J3FxbpdgbxDF0f+YO2RGNq iJZfuj36l0sbplgySBKr8v0VNW6QxsQLJH4Js73jmsw1mH0tiWiP0+7I8r/Q8mP2N+G2 8GBtpGvDUJTJO3Nuv4wOg84JXAYZXNQ5A5Dun7Hcfi2l6ovwXOFjE/kh980Aj5MY3nzW 06DDHKTaSXV+5e/lGRdTQKbgu0VaO/J/tXTl4YDUqtVcJiqeklkXOS2UMpJ/u5wO0xes XC43k3O5y78fTa5b6D4tL2dX8F5N7TnY1bg+C5Orj0d0b75P6zwtHkbqMtqO8CGsfKtr 8mvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=zd7cerjv; 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 b2-20020aa78ec2000000b005a919052520si6113146pfr.317.2023.03.09.08.30.32; Thu, 09 Mar 2023 08:30: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=zd7cerjv; 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 S231382AbjCIQJk (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231758AbjCIQCk (ORCPT ); Thu, 9 Mar 2023 11:02:40 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A677F4B7A; Thu, 9 Mar 2023 08:02: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-out1.suse.de (Postfix) with ESMTPS id 1943222168; Thu, 9 Mar 2023 16:02:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377758; 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=RWxZWY+4j2LC2Hx/5MOho9tKeaDUwd+4OyC3KjTGJWQ=; b=zd7cerjvtXSD5/ZFuxef9nGjxgvuTB582pMlonjx0j51ZWbIoghzyETfnBO1ogCSBHS+wF pm1m+RHKt5wLvznwnAxxdzXSslaqlGdNPM3JVLwcNZTk8QkCG+Twrifylhhs9YB9ESyzmb SnFqVtPrZfWNHQ4rLuWfMLE0Y/b6sag= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377758; 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=RWxZWY+4j2LC2Hx/5MOho9tKeaDUwd+4OyC3KjTGJWQ=; b=fqQaqd2BL8XzkymFmmW3qiWauivlafHo91dkqosAWz6s2bUBUVfZRkPtfULXf4jQdZUdCt px33SMNQ8sEdt7Cg== 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 AF17513A73; Thu, 9 Mar 2023 16:02:37 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id OMTAKR0DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:37 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 083/101] fbdev/tgafb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:43 +0100 Message-Id: <20230309160201.5163-84-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908404759000753?= X-GMAIL-MSGID: =?utf-8?q?1759908404759000753?= 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 | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c index cf00b8a91bfb..0862d9a54aef 100644 --- a/drivers/video/fbdev/tgafb.c +++ b/drivers/video/fbdev/tgafb.c @@ -14,6 +14,7 @@ #include #include +#include #include #include #include @@ -1573,25 +1574,24 @@ static void tgafb_exit(void) } #ifndef MODULE -static int tgafb_setup(char *arg) +static int tgafb_setup(const char *arg) { + struct option_iter iter; char *this_opt; - if (arg && *arg) { - while ((this_opt = strsep(&arg, ","))) { - if (!*this_opt) - continue; - if (!strncmp(this_opt, "mode:", 5)) { - kfree(mode_option_buf); - mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors - mode_option = mode_option_buf; - } else - printk(KERN_ERR - "tgafb: unknown parameter %s\n", - this_opt); - } + option_iter_init(&iter, arg); + + while (option_iter_next(&iter, &this_opt)) { + if (!strncmp(this_opt, "mode:", 5)) { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + 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 Thu Mar 9 16:01: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: 66979 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp387842wrd; Thu, 9 Mar 2023 08:31:53 -0800 (PST) X-Google-Smtp-Source: AK7set/82PZSNo9g+njm0FboWPzjJW/En5GVO/QTepOG4zk3hx+KYVmn6MGLcz8ZlZZfKmSk4kqB X-Received: by 2002:a05:6e02:2144:b0:315:4793:f7b3 with SMTP id d4-20020a056e02214400b003154793f7b3mr18891412ilv.13.1678379513628; Thu, 09 Mar 2023 08:31:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379513; cv=none; d=google.com; s=arc-20160816; b=KqLFsSlqWMRMObIbyHfbCO/BpvmZrrkG7AjAfrqCRywB10pxWByGhr2Ekd5yM0AvcN XuUS5fAX/KakZbWgbFgP/yh0EPzRwgrHPq9OAS7IWQ8uvQR+Z4zrCcfNlqBUQkAOdiaf c2W7ao6l5JaPUVZyrp5LwySJTmSQdXYee6PUgB9zNm1btIinE0tVY//SIl6tosEMsnix MTn3UwsfVECqse5FHzYAmffSpXEUTS2F/6Vvj/UT5DW+RbopGiuBDlJgVq6KiFcflsvl s+pw2Fz7X8JhCBnCuxSl32Fi2XKEijhtFf6gNDb9RP3Z+cM6Axk8tqUQaEsRbluinQIu XA8A== 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=f1f7ihMiVX3hdUQ6WfjR/eDIXtAW46SM0igkxkN0kxj7kpJ0WTDClnwFJF6TDRxNRL 9u9VtyAPToxgHhJlQfiQy5yto2MxSraQsd5rF03wsEpToBWZjBIn7uukhH7//CQnyQVU CDO7sUQhb7Q56SUnSoh2Deto4eYfTNtfR/4bdvQRkZpPUgpzhVHSWH26302DPVG+f0OB C8QxgOAIfbVXZKVAjLVrGT051/5IY1QjbkJ8EuHzqJ1JsUO4g9ObGlIwXMWtMkgQkW6Y +DPYp6iAM+Uh4tNSbJNeGikdsv4k/jHiWMo0bEhqKQg2T5pvDbrP+NEg/BU9t/CeRPnQ xHoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b="AV+21/bV"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=MyGRnIxw; 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 f17-20020a056638023100b003c4e1a4de3asi19072149jaq.111.2023.03.09.08.31.39; Thu, 09 Mar 2023 08:31:53 -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="AV+21/bV"; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=MyGRnIxw; 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 S231912AbjCIQJs (ORCPT + 99 others); Thu, 9 Mar 2023 11:09:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231759AbjCIQCk (ORCPT ); Thu, 9 Mar 2023 11:02:40 -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 BDA4AF5AAA; Thu, 9 Mar 2023 08:02: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-out1.suse.de (Postfix) with ESMTPS id 7991422169; Thu, 9 Mar 2023 16:02:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377758; 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=AV+21/bVPDGAbr8VTqIZjqTw5fFW2X2dMnMFickwpWVWfsJ9W8Czdelk58P8hclKTQVsfr nQtXNuzPZMcOVkff5HAhRAKW13TtjUx2gWAlEdFIJPNKlML5K3rUCf+JCm/WnntJNAnVsy tXGGZbT+tlwCGTUDcrs5rPfR9acPHnc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377758; 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=MyGRnIxwQ5h/MHRygWADLYZfzgeWe1uSumvb2FyfsdkD+JY8UL/Rx7c6nweT1Tq2/NcUh1 CqvYKFVmvLEjr9AA== 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 1E5CB1391B; Thu, 9 Mar 2023 16:02:38 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id gJZ0Bh4DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:38 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 084/101] fbdev/tmiofb: Remove unused option string Date: Thu, 9 Mar 2023 17:01:44 +0100 Message-Id: <20230309160201.5163-85-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908476934113173?= X-GMAIL-MSGID: =?utf-8?q?1759908476934113173?= 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 Thu Mar 9 16:01: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: 66953 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp377248wrd; Thu, 9 Mar 2023 08:12:05 -0800 (PST) X-Google-Smtp-Source: AK7set9jRi6TjZuZNRkt2c8XRygKOKxzXWzX0OLkko75ZLjo3xLjpj8tkWRI4cFg8DnJWThQq/nk X-Received: by 2002:a05:6a20:430f:b0:d0:4361:9720 with SMTP id h15-20020a056a20430f00b000d043619720mr9986853pzk.61.1678378325087; Thu, 09 Mar 2023 08:12:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678378325; cv=none; d=google.com; s=arc-20160816; b=dKkLmmXMxUp8XnulLKRlfE8jaJj3Lpn2H/9p6Str92xGqFJsYQvYY2iPpymuE+mhsC f71OgYSYKYWjyF9+L2pSLkGfPqDrlUOHuMfOtlvSDjJp/r7DUruD8W81qf9j0rrLyCPo xMSjvOcis7XzhNzr+yBwmGYpWkP/tJTXARGuaPZ9zk9WDPtngw8KucRxm9i5umDtfoqp qXBbakjzmz9XgxZpmf8yvxmom8vOqJwP+sUATFHQQURXkNSYOURD3RuLrkBkndpBHXOI 5lXwmb/3tCUxu3DepbpdX4IkTQ2oPS0IVYY4R6fD7/jf8YBPxH4iOiCyQjKP86qIN3wA tUsg== 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=vc3MhzDf1ytnsAQte0if7o8oovAVmX2ICQWxWSrkdIk=; b=A7qk+bY7DPpt18Fi5UsCp0l1gWO33XslorDWrrRHK+LZ7tUVRQLzuIXqNKWb2vxCLZ dXkEvQl5CZg0rDenrmMLnDx+VRAIxh8AXiDJU3dxtluaM41k4Wh58u+pY+OCtRxT9HuB knisdOdQngfgVgXJxvy4Z+LQztHQ+7Y7eHW+hHQuaLNheP2ZASTXx6AKwSlGF5KSfanY IQmq/05pmDn8OG7psA5w6QFBGa30xuY1lpCEqP6+Y1+dSM1uEOq/RkFy/Wbz4Ms8lUt3 o58a9mAu0GrL4mXL4zfbsNv+z9AM2MwsqaOBq0PQio054fzyRuNL5BnKOuB1/8qseWZ+ wZIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=FiIMR8Ip; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=DpafcnkE; 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 b141-20020a621b93000000b0056c231e4447si2362648pfb.198.2023.03.09.08.11.45; Thu, 09 Mar 2023 08:12: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=FiIMR8Ip; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=DpafcnkE; 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 S232483AbjCIQKW (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231764AbjCIQCl (ORCPT ); Thu, 9 Mar 2023 11:02:41 -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 3252EF63A3; Thu, 9 Mar 2023 08:02: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 DAF912216A; Thu, 9 Mar 2023 16:02:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377758; 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=vc3MhzDf1ytnsAQte0if7o8oovAVmX2ICQWxWSrkdIk=; b=FiIMR8Ipp0/ClhsoBteb/TvJRP0rhUbP77FigucWxvGsSnBXDm5mji5cyXuX5Dgt1z54Aw CEsrVTLMb3ftymT/7LOvI29Y/RpcTSYV+SULwqpDyPf+IoE82APXQYFfh8i9g0KstECaVl OhkN5jXd7y617eM7cMxRmGHC6h+GUHE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377758; 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=vc3MhzDf1ytnsAQte0if7o8oovAVmX2ICQWxWSrkdIk=; b=DpafcnkE6VWfFGcvZg5uAQpABZ6r8j3l67ZybvrYWYYSn5NnlszCl9POswvSGQpfn/LcKM whxPMWE1BywtHAAQ== 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 7E75F13A73; Thu, 9 Mar 2023 16:02:38 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id aBb6HR4DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:38 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 085/101] fbdev/tridentfb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:45 +0100 Message-Id: <20230309160201.5163-86-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759907230588789476?= X-GMAIL-MSGID: =?utf-8?q?1759907230588789476?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/tridentfb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c index 6099b9768ba1..dbde64aef91f 100644 --- a/drivers/video/fbdev/tridentfb.c +++ b/drivers/video/fbdev/tridentfb.c @@ -61,6 +61,7 @@ static struct fb_fix_screeninfo tridentfb_fix = { /* defaults which are normally overriden by user values */ /* video mode */ +static char *mode_option_buf; static char *mode_option; static int bpp = 8; @@ -1800,8 +1801,11 @@ 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 { + kfree(mode_option_buf); + mode_option_buf = kstrdup(opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 0; } @@ -1827,6 +1831,7 @@ static int __init tridentfb_init(void) static void __exit tridentfb_exit(void) { pci_unregister_driver(&tridentfb_pci_driver); + kfree(mode_option_buf); } module_init(tridentfb_init); From patchwork Thu Mar 9 16:01: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: 66990 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388462wrd; Thu, 9 Mar 2023 08:33:06 -0800 (PST) X-Google-Smtp-Source: AK7set8pqBI6zsN/t+SSAKY1jGq8ytt5hH5yyV0FAIafninlRUX2Mjr6y9UrB/7cZ8eEt0tzVntr X-Received: by 2002:a05:6a20:4e30:b0:cc:e358:94f6 with SMTP id gk48-20020a056a204e3000b000cce35894f6mr17683836pzb.56.1678379586367; Thu, 09 Mar 2023 08:33:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379586; cv=none; d=google.com; s=arc-20160816; b=vT53BwBvj0kuktzVSBOBO/fZ0fPic5LYZ/IIucjPkxibDoQKqyI2E1ByLnQK1QPghZ gknI3aRWSJuUclaKZGwnUruEPERfR/8a7T+fXvQDUccKQHoy/s74C6bmYtzPdH6Mp8MS UdxK+KiIYSu7Qlng7FdvDhkGHW7Vr6ivrZfh5wW/IKHEzJz+x20SeUsyAQfP2MXvV0Al UoL2mOgiQlBxVGLIbp5bMERIlyvI6vkwOKQY/p0fcLujk77bSV9GNGepzgovkMRWOpTN xLZXompRpYUA2xNHsbZGYaPKEKeAPOzfxt1gFqLDmsCzMpj//inyY+UxbbYzZ8D3cMfc 2A3A== 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=UMQfn/Di+mzhMXJ1P/cB4qgg1VwC7tNWXSpJys3dy58=; b=wU0WYr89lm4r8zObQmKXjNOA7dDiTEzo2l5dlPkx28Kt5T7WSAnk78q7dP1q8rlfdh wMR8/yTG7ApboT+cHTE0XeIjkYBqM/QiveBB4/MmNT7UKgCuNyOJilufowtTwqa//xG4 CmmYPUJcNBS7M/oEhPVsY/LkCZWA7LsGBxHwskiUN82FJMUPfoa++96RaPAj6CimMOzK gNlaXGFcjzXAp6fVpMFLklEe189N2yrYg/pB/6/binUVJbTtVquloBWP6vrCbPYHznzx 8oIf1N4U9VoeHBRW0HEXBQFIv+1XoWKyqz18pX6aEHvdSCYuRIsNHLSHjEbiJPZ7MqQB Ejiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ShYOoj8D; 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 d75-20020a621d4e000000b0058bbe6710absi16210906pfd.261.2023.03.09.08.32.51; Thu, 09 Mar 2023 08:33: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=ShYOoj8D; 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 S232442AbjCIQKP (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48034 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230522AbjCIQCl (ORCPT ); Thu, 9 Mar 2023 11:02:41 -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 9CBC8F7EC6; Thu, 9 Mar 2023 08:02: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 4A6372019A; Thu, 9 Mar 2023 16:02:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377759; 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=UMQfn/Di+mzhMXJ1P/cB4qgg1VwC7tNWXSpJys3dy58=; b=ShYOoj8DlMWCtme6AbxQraL7jF2sMiEHM2PbNQNfqipagCHaT/6O//yr2fBIWfJkILaCXQ RZvZCRtgvr86ZMingR4G6wx61PF2T6qP+f1BeQfa6mA2TJr1Q8rw+qqEOxZifOVgYGss9j gyughj5hbZ0Da81lMAOgOd9XpaAlXAM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377759; 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=UMQfn/Di+mzhMXJ1P/cB4qgg1VwC7tNWXSpJys3dy58=; b=B0IegUKamsGSkJf42+3JE62wFj3Mrhu+I4W5BmUkn9mill0DZQxCwn/Z41shnFe2FcPoie 3XAibMzs4bfJtPBA== 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 DE7801391B; Thu, 9 Mar 2023 16:02:38 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 4IVpNR4DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:38 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 086/101] fbdev/tridentfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:46 +0100 Message-Id: <20230309160201.5163-87-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908553085198368?= X-GMAIL-MSGID: =?utf-8?q?1759908553085198368?= 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 | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c index dbde64aef91f..3299806c0f58 100644 --- a/drivers/video/fbdev/tridentfb.c +++ b/drivers/video/fbdev/tridentfb.c @@ -17,6 +17,7 @@ */ #include +#include #include #include #include @@ -1775,14 +1776,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) { + struct option_iter iter; 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, "noaccel", 7)) noaccel = 1; else if (!strncmp(opt, "fp", 2)) @@ -1807,6 +1808,9 @@ static int __init tridentfb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 0; } #endif From patchwork Thu Mar 9 16:01: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: 67010 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389398wrd; Thu, 9 Mar 2023 08:34:59 -0800 (PST) X-Google-Smtp-Source: AK7set9CcwNDbt+s4GaD/roGmgmR9zA3yJoindqCrLCQbostdIlcSlLLdgc5d5jnr+J7wmastw6C X-Received: by 2002:a05:6a20:8e07:b0:cd:d13:8a6e with SMTP id y7-20020a056a208e0700b000cd0d138a6emr27019668pzj.21.1678379699440; Thu, 09 Mar 2023 08:34:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379699; cv=none; d=google.com; s=arc-20160816; b=CpVoCODkRwMBTcci9PAJP+MrPYE+BX/0+rVcX5TB+DF3PquP86NjYNOlK/d3nMjhXn dZGWNv64RHrN8apC4VWOEf9PGHBMjqpz5vyxMmJ23eaerFgM8rccXUE/35T7peFCfyr5 iaEaEph42goKUWMPxfeG06iaTIt2C/+0FtXFU/tfTQ30dVp47xmRyd4nIEzdAcHYkCgS 2LcestshnX8cYx+oRtHK9dwuJ5BAmMJotidC6h7AVObLg3RLAWOEfDNWW8bMe7CkJuyw A0mWEcOqVW9mxybwoXs7KadetGiiNWLauB/dP6Z6oXG8XEd/hSqnhfP8hy8MDZGupYe9 GICQ== 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=MbkEoqNuabDKTrYaFVmNx0VjwVOlQDJULtP3vwgd1E0=; b=Cnlqv6Wd7+mt5M1xwYWUQhJC9PEQ2fljvl8N7/gvPgkS1rlBP2KmXiP1cBHxtfKQhR ufGdZAj8s44OZRXMyCFu5O3bqKrEGXTSyMr+3g6gWvWyRs0kebnwPvJ3kaKd0IQTYZp9 gCm5fsBf7Ad45dNdT5+sXIeCy7XYehJDhVg/HIfgXVNFdjYUZliA6DxXQbIq/1K3NTBS JoD2NMxiA0vqoOrlWZio1ZDIMmwhelpccniMc9ZjJe87aCCLFB+Q+kjz+7AScfZzMej4 9yDNgXUKYUAxZpkbUzReVjZfeCLYlEUM9hp/9Fg9nuwpJoAGTVdHpZovq2ntNk9EmWvS SFDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Cn8uGqp5; 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 e11-20020a65478b000000b004e5833b1fb8si18470401pgs.275.2023.03.09.08.34.46; Thu, 09 Mar 2023 08:34:59 -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=Cn8uGqp5; 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 S232519AbjCIQK0 (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229827AbjCIQCl (ORCPT ); Thu, 9 Mar 2023 11:02:41 -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 25685F7EEF; Thu, 9 Mar 2023 08:02: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 B1E1A2216B; Thu, 9 Mar 2023 16:02:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377759; 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=MbkEoqNuabDKTrYaFVmNx0VjwVOlQDJULtP3vwgd1E0=; b=Cn8uGqp5M5smyRMMNCsXWHxfc/s4Z5peRZTRDoPdA2g9IOYOgWr2rzh3xx+V4sdGFgxvdv 8yI6Zuhl8I6oaIKM4fKLNPc94cWJ7xQDOixwbE0TlrIk0VRuDROcy0xPywTsRaGcmshX9+ jk/i3u0/vsw2BUXA8EkQ3hGIdJRIWKg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377759; 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=MbkEoqNuabDKTrYaFVmNx0VjwVOlQDJULtP3vwgd1E0=; b=uRdHWmq96txYBHIvZDC762EjfU5koNZU/tZip6TPvrOcv/cYJbOwK+/p+a1gCcTNlvDQXG PBZUyIYWK8ZAhVBw== 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 4EADE13A73; Thu, 9 Mar 2023 16:02:39 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CJ1DEh8DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:39 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 087/101] fbdev/uvesafb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:47 +0100 Message-Id: <20230309160201.5163-88-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908671868072353?= X-GMAIL-MSGID: =?utf-8?q?1759908671868072353?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/uvesafb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c index f09f483c219b..ff8f511a00c2 100644 --- a/drivers/video/fbdev/uvesafb.c +++ b/drivers/video/fbdev/uvesafb.c @@ -56,6 +56,7 @@ static u16 maxclk; /* maximum pixel clock */ static u16 maxvf; /* maximum vertical frequency */ static u16 maxhf; /* maximum horizontal frequency */ static u16 vbemode; /* force use of a specific VBE mode */ +static char *mode_option_buf; static char *mode_option; static u8 dac_width = 6; @@ -1851,7 +1852,9 @@ 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; + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; } else { pr_warn("unrecognized option %s\n", this_opt); } @@ -1937,6 +1940,7 @@ static void uvesafb_exit(void) driver_remove_file(&uvesafb_driver.driver, &driver_attr_v86d); platform_device_unregister(uvesafb_device); platform_driver_unregister(&uvesafb_driver); + kfree(mode_option_buf); } module_exit(uvesafb_exit); From patchwork Thu Mar 9 16:01: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: 67019 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389802wrd; Thu, 9 Mar 2023 08:35:42 -0800 (PST) X-Google-Smtp-Source: AK7set+no2F7kdOr1+CDwBYd57R6hvy3Rut4jxTCDtZL2hTFXj9r3y+5d1TQ5Q74WZspO2DWWDOK X-Received: by 2002:a05:6a20:8e12:b0:cb:2a12:b5bc with SMTP id y18-20020a056a208e1200b000cb2a12b5bcmr25184321pzj.28.1678379742661; Thu, 09 Mar 2023 08:35:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379742; cv=none; d=google.com; s=arc-20160816; b=lof5rdMuFbiNRN+KQn7OidGaufQ2+4Vh7+4Hx+0b84BhfNdt7Dk9x2ZTwAQNundc6v TS+hBD/1ns1zxKMYXCjVrOBKbZUn4ENbRdORwJqmc0DPmQFJW0+Y8f+1dbMFST9c+LYb uUFSVftzslvuHhIRXIxmdUGdDtSiYUXfNzzpriMiGJNCo8vqV34bIgDDwNkiLkvxvlIx 1EfQO/VCAoORGDC8ysu86QORi5zQoZaJ6aORTJOTrZBaVC1LbEFx/BnYkQ+Qo/kV5is2 3/dsGS3dpXPO/unKu65pthIOe4eMC9e8/4xEk8el0mSquUfXFG4GpUI6NV7HNXSG60CY B9Yg== 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=/dsBu08X7CrCBT10ixXdDAS0haFqJIXlgAumcvDvbBg=; b=q0liVFEr8G4Zdyg9n5UZmc8FeR/ojB9vR3QTKrHaakB1TFChf48rjMmwOIu4EU0yyd ff4vJ7VMOJEhXperJKCrpVYSy8v3xQYw6CZDD0CZXIZCX+NttwINz/HnjWnCnXGTZKib ddiZwZ5qnA47+LHuZ4xadYL5OuRT5kOFUI0E7tMRTutL8OC8ymAdyECRV7FuklWHft9H Rb8kzTI7VXcWfuOBYezMHoVhTnfpQJtUKgMpn33ya8YdOs5rSQ5vcqCbvyjI69fTLEQt DqzCD3A+lHAHF6U0Rua6UhFeZ519pfr+TZ+7f/EtYFD6yA/YgBdyrMEkovU5rW055ovQ WClQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=FsD5gBy5; 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 d75-20020a621d4e000000b0058bbe6710absi16210906pfd.261.2023.03.09.08.35.27; Thu, 09 Mar 2023 08:35: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=FsD5gBy5; 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 S232548AbjCIQKb (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229890AbjCIQCm (ORCPT ); Thu, 9 Mar 2023 11:02: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 6CBB2F7EF6; Thu, 9 Mar 2023 08:02: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 25E942216C; Thu, 9 Mar 2023 16:02:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377760; 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=/dsBu08X7CrCBT10ixXdDAS0haFqJIXlgAumcvDvbBg=; b=FsD5gBy583vIY7YvnpfIJKy9uwiqlhb9qvnQE8ps1jInPHVviMB8rEaW/PmYSER4KTOobP aibSid/g9QFS3VWXaHgS4wei5jKdcFmTTU/w3OEU0btlJw0MR36KBBr+/haDB9hbHMWGFn qzYafoVt13nFr3qXebOnSyeo1sv0PAg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377760; 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=/dsBu08X7CrCBT10ixXdDAS0haFqJIXlgAumcvDvbBg=; b=/nqtmYu+X988xVpabmzApU1pgK/FeOvOlSfibJW+gWR53wche8LJzbjSgv8TAYn9Giu0jW 90PQDH5uY+rtokDQ== 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 B5C201391B; Thu, 9 Mar 2023 16:02:39 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CIhsKx8DCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:39 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 088/101] fbdev/uvesafb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:48 +0100 Message-Id: <20230309160201.5163-89-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908716985628428?= X-GMAIL-MSGID: =?utf-8?q?1759908716985628428?= 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 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c index ff8f511a00c2..13bd8503a06b 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 @@ -1809,16 +1810,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) { + struct option_iter iter; 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")) @@ -1860,6 +1859,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 Thu Mar 9 16:01: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: 66954 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp377279wrd; Thu, 9 Mar 2023 08:12:07 -0800 (PST) X-Google-Smtp-Source: AK7set+xcOyNTKPS4o0/xfx9YA1dna5B/du0n7jVSSgM+a59r8n78oH+YCFwI1Sta8epY92auu39 X-Received: by 2002:a17:903:2344:b0:19e:6e29:2a8c with SMTP id c4-20020a170903234400b0019e6e292a8cmr27734880plh.5.1678378327357; Thu, 09 Mar 2023 08:12:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678378327; cv=none; d=google.com; s=arc-20160816; b=zxsFZj/uXfHDUkw0xWfeInYoE+e5fUe1kKcIIsCSOeZeOtq+4vek7VNf2K5GhR4nGh se2wTutYkrVDxNKTen+zkTQxsef7O/Zhpi78ZbeKpvQm2HZFbMUkgVucPXizp5J61SIQ VYSBBBnPkDuGgsV9mvm9OyISepIXAUEGGbhhWxLm4AssagxOvHGCfZrTlQIF85uezf25 oKO4kM4Vg7pOExrJ/s7FXdBNuNiDdNpkUWi3ARCS/7cfaMuSYQnp19KUH4KhNsk4mu8A 1CyqypJHMzT65p2X/aHf3jHqUVO8Nxue5J4Nq0iMqsCfSBzelvY2hXq/R2vus/33uWyk 3xpQ== 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=u8CG/zp34vE75oOYKsqSIZU7oruUDYOO9hPVFwyQX07xun4DuT5+y5T64+CzO8WKbN YGc0l23NSXrjBBHc7afL3MgoQjNKsNK5i9zMTQIZ8aKj2OPsAgbRq2JNESmwpnkEfLMz xw659EDWkK5g7rYaU8mXyq1+Z/AaBDKG6RPVLpC09Xl1thPdBicnHX7CC4IrMVExwLVq mnh2Ttk1DLw0xmj24LYFfLg5jNVRVgTPd/r5A2rJ5QTNpXQ60YXlAXxEKeiUeSXyMIGV merF9C4ovwaPg8lDfls8aaJ7gtP4OsRXKNB9I0wNKfwH/BTKvZWoqOBvy2UFSFVfY72y 2mgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=UWaK8P0g; 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 16-20020a630710000000b004fb20bf5812si16405247pgh.729.2023.03.09.08.11.54; Thu, 09 Mar 2023 08:12: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=UWaK8P0g; 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 S232589AbjCIQKg (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229935AbjCIQCm (ORCPT ); Thu, 9 Mar 2023 11:02:42 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E1399F8A4A; Thu, 9 Mar 2023 08:02: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 8B85C2216E; Thu, 9 Mar 2023 16:02:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377760; 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=UWaK8P0g3sCaFuoHIcA5TkOeGtNYmQJWNp0DHIPKSgtkOZKtIoX7/FmyXPBJI7Xs/Wqg3o IPdwwn4Q2cQDI0SgGU9q+TrF/zPdPgWHMnI36GEQe3uKLmB/SzOUX4g5l+n9JaSVr32Dkc /6G74uWNoUdYxkGTIBzA/h/bZD96lR8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377760; 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=Qpcp50lVKeOW4dqdgpyQxI6xdJFmVLB+rsHPNDlQWX1Rt6AB4ARb87qoSFSYp3N0hMQLJ/ NB1qy2X2gHLovWAA== 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 2BBEA1391B; Thu, 9 Mar 2023 16:02:40 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id EFG9CSADCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:40 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 089/101] fbdev/valkyriefb: Remove trailing whitespaces Date: Thu, 9 Mar 2023 17:01:49 +0100 Message-Id: <20230309160201.5163-90-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759907232899044186?= X-GMAIL-MSGID: =?utf-8?q?1759907232899044186?= 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 Thu Mar 9 16:01: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: 67009 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389312wrd; Thu, 9 Mar 2023 08:34:48 -0800 (PST) X-Google-Smtp-Source: AK7set8PvgsK4vBv+mksNPH8TUkInKbisZyEjb3Ht1lq069g/9L091UeMwD3CPfDAWijaGBR6C9S X-Received: by 2002:a92:1a43:0:b0:315:51c3:2ad9 with SMTP id z3-20020a921a43000000b0031551c32ad9mr4071418ill.21.1678379688344; Thu, 09 Mar 2023 08:34:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379688; cv=none; d=google.com; s=arc-20160816; b=FuWscG3umbg1lpiX9voCUdwWfwcLD57xZmM/4JUdH1XgvvuI4J/IdFQ9wHFzcenjTs +YU3bVn8aNfoAdeRBPv82BzJimL/9QxMzb/BU4cIkcRnRZ5witm0BrRDc5O4bUhQzNKN hGNIsvBl01Ym+3+zodZi2e4KjC3YdD8savyHsb7VfW6Uo0wb3VPu0tEiFHGeRiMP4Njq yj/FrjdXXM4OM34x6M8C/W/ggEHBzUkSjMNATqJ4F7grxNJ63KRgK6ADs2ltvxr2vhPy tVaB0foiSpshjNiWbooF/c/HivzIkWFjjtGM+WhzOwtyJ9CcZOX7SauhjxsYPD7ERAKr +Bhw== 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=Ahzg3qOQnqmKttHmLkku+DucBs/UrBngr7lLUmjxogk=; b=EylBnqX00MaL5+uBu9h7T8WBj8xhjhpLhRUylzYbeuykWE4yWHxZgEVo/lT+108S6P Xea8fQ9jfIU/9KfEBjcHCGI/yhsgvRTe9d82xolm/WRZBayiKg7OdER/poIKNz69gAQ5 WvuwQhRyohxB2yMcEtegVjdzAusRMR/oa5ivSO/C7VK//jMajcYUPYE2C4jtxhH8xYAA 7t5z5FvwLU7l5922vaYhLbf3jYdOJcFWI9akjR15PJCoJcbKLvbypsn1cVh818c1s9L0 X5tyDhnDFlBYIY4aDnFY8kiCqsOL/ydCrizVEEMoeExwL5TB2AeEhUwOlUT5rcs2HCHh 9fvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=dsmfX3KG; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=IKULeMJx; 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 c17-20020a92c8d1000000b0030c5a20121bsi18657290ilq.87.2023.03.09.08.34.33; Thu, 09 Mar 2023 08:34: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=dsmfX3KG; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=IKULeMJx; 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 S232615AbjCIQKi (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231402AbjCIQCo (ORCPT ); Thu, 9 Mar 2023 11:02: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 A913BF8A6A; Thu, 9 Mar 2023 08:02: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 00FC72216F; Thu, 9 Mar 2023 16:02:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377761; 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=Ahzg3qOQnqmKttHmLkku+DucBs/UrBngr7lLUmjxogk=; b=dsmfX3KGntHoLUbrAb5ZH4Y5RErDBIpwAd9ocfT3wu+mIu6MZKjjfRe8/1VtyntpFS0r3x Mg30vrvB/5N3vCIy5KfkrMS/3TA9fj7ISDo+mm47IwuFDor8aFMLZahcxdWhQqpijTqX1D ASmtqkIbvurk0UvylHMeUp9XTY1pSGQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377761; 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=Ahzg3qOQnqmKttHmLkku+DucBs/UrBngr7lLUmjxogk=; b=IKULeMJxZk8V041juSJKWX9+yvDz4Jltpvsy36rLCi+W8/Ps/PJD06/aKcM/yUeQoGjria gSXhUGqwNlmrCVCw== 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 926871391B; Thu, 9 Mar 2023 16:02:40 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id eDLJIiADCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:40 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 090/101] fbdev/valkyriefb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:50 +0100 Message-Id: <20230309160201.5163-91-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908659962361916?= X-GMAIL-MSGID: =?utf-8?q?1759908659962361916?= 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 | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c index b166b7cfe0e5..3c20f392370a 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) { + struct option_iter iter; 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 Thu Mar 9 16:01: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: 67011 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389462wrd; Thu, 9 Mar 2023 08:35:06 -0800 (PST) X-Google-Smtp-Source: AK7set9dvxaQwQe3VR/wJQgh8LIwHferb9Mk5lx6S1bE5FHoX9uV4OWTJsThFi5M0zSh2SkrJo89 X-Received: by 2002:a17:902:d549:b0:19c:be09:20d5 with SMTP id z9-20020a170902d54900b0019cbe0920d5mr24755696plf.11.1678379706005; Thu, 09 Mar 2023 08:35:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379705; cv=none; d=google.com; s=arc-20160816; b=iXXcMJ5NDfBSxEfu2N/vv794JwmZF0xHyEI2GhV7lBfPDsExL47j9JZCrqiuD51LQu q5ui9EPnkMuPcdnhKX9bBcaknCB/TOepaSX6EAwqsLnljXxhDTK8Xu8y0tyOWGZ8sO6C Leq0f8ISYntYWZOXz9r4W/FvuEb2IcBJwg4pQXx339qk8+VtASBWDtdd/ZCueJMH/RcC J0GhKTKMxaJ13DRyZex1/YKQXjppbDXtOHcoY9bY/r86uHXA2Vaw/8LU/4nm+4RNzF3R T+MOfcTt8RQLz9mPWrJ1f7DyPtiRnS51TxJmECAdhLNdc0ri5SoxPU05fDGKB6+/a6Os bKcw== 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=1CMTKGtj3pmJweGJxEPvBHvtV4fqz8vnjpNZXgRKPJZ6Zwa2mcouqElvfYDEjB11Y4 31T/6c/fdUEJRvtRSWld3Jgzq6wowAMGZqhFdUqXtgfG3rDMdqWMfABQduuTAOCOUL+9 VApg1k6t6OXJ5Gzy4DB0uOS+6GA0TcY/h8IhVqAGhikfWHnY5AL/D1Z6MmHNqA+DzxGD 1LEg1rEiWBj4gd+hBQ56IkssfZiRxAnT2NUTRuG/BZ2rbxVgdXryWWb+f/V18Nc9ZmiT dZFSEKrZajiDwUVT5f/j18Ud7EUsXriBvqgJ4Un4+dwA+TmbAJV5GIeM28H144wQVJo4 UXOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=0P8Tgh1F; 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 lf6-20020a170902fb4600b0019edb734770si8058333plb.635.2023.03.09.08.34.50; Thu, 09 Mar 2023 08:35: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=0P8Tgh1F; 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 S232747AbjCIQK4 (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48218 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231529AbjCIQCo (ORCPT ); Thu, 9 Mar 2023 11:02: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 50BC7F7ED7; Thu, 9 Mar 2023 08:02: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 6BC6922170; Thu, 9 Mar 2023 16:02:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377761; 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=0P8Tgh1FoQAhGrSiCMIv50ZZoyI5J3PnrRMmYmdVLK2Aq5JGua3ZkSiBLMlhMqVQ+1GYyU QTXRyHEfrzzc7o9PZg3tJKC66D1cjWk/fzcRcudCTj1IFQbZ2y0100O0ipCGX8pcCpOIYZ /3l9s/RWTmfgrz3Q8Tu1urzKjhCEz60= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377761; 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=TB6WBT+lJi7vvrTaYSYiIbfmp1jlbBWpJme2pc8J3M+NesAZ0kjqd/m8JODdEtERVjV8tL F5fkTgZRBKYTBeAg== 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 0525013A73; Thu, 9 Mar 2023 16:02:41 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id MAZRACEDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:41 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 091/101] fbdev/vermilion: Remove unused option string Date: Thu, 9 Mar 2023 17:01:51 +0100 Message-Id: <20230309160201.5163-92-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908678485828729?= X-GMAIL-MSGID: =?utf-8?q?1759908678485828729?= 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 Thu Mar 9 16:01: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: 66993 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp388520wrd; Thu, 9 Mar 2023 08:33:14 -0800 (PST) X-Google-Smtp-Source: AK7set/wEgibknsDTHVZPoLCMaZ7lOOmT+g5AMtbQY6NgsnV1Ge0CfDQ/jip3ZoeiV01eo+20F6m X-Received: by 2002:a92:1a4f:0:b0:31a:97f:8422 with SMTP id z15-20020a921a4f000000b0031a097f8422mr684520ill.31.1678379593783; Thu, 09 Mar 2023 08:33:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379593; cv=none; d=google.com; s=arc-20160816; b=DjTEvxAxrSsw4PhCN+oHPZNIKYloa9CxLxmIsL2B7Oh+XYAW1IzJncQphfmSpj4MIA A+4TrDLEagsB97YyYZ++YDX7atl10K2PaweFYgAYveDMPowa1UGQ3fdsxl7rK5hwucWP hiXr+HN3W/FKPWzXi4efc8/oBG4NzcAt91db1PSDeTYQJOKaDzlod/6n2mwMbHwats3K 27gwd9hfrmnEf8teG7fCOxKqH8YFn8oOUidr7shEQan/6vIqbKijg0BO1oBqhXSt9Kjv dQjydSE/cS74/Opt9ARSRe3UlTilmHD63KhQ3idBG297spOIM26DaMAV+Z8Soxegg1PG rtGQ== 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=6WgjdpbBXxXsBLz/IEVgF5fpRgaJeZorG1YR+YEngSE=; b=YcVpfvifytfg9BjI3p1uMuJXDZgWFJzgqnCLL1pL6/SIlFz9o29NsTuzXmT/f+atUv UX4zJk0pu7SuqoJz1pBtuVPYWb8Qz2f+WM3uLSQfb5803QHtvWDmztPUJVNZtP2MmMlN DSoxNPqR0WjeQz9FDRUB0TQ5QWfJ/UjjdWfjOZdqrtVYHIlF21QFENemOC66d+mW1d3U PQBd1nPScvVa+VP+Q+aUX7oer3tyetkuMSjdTyWdmie2Y5BvEa/+0YR3jBloVEUI/EBW TjS1Ekja2piAZj9DThOPFpEtuCU/u4PvdtkwTvDkw7MEx1RxzybyWFoYPPux2p58BP7i 3mRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=081B+Ygd; 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 l15-20020a056e020dcf00b00313d32f833fsi17415725ilj.122.2023.03.09.08.32.59; Thu, 09 Mar 2023 08:33: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=081B+Ygd; 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 S232719AbjCIQKw (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48246 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231555AbjCIQCp (ORCPT ); Thu, 9 Mar 2023 11:02:45 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C26D9F8A70; Thu, 9 Mar 2023 08:02: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 D381522171; Thu, 9 Mar 2023 16:02:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377761; 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=6WgjdpbBXxXsBLz/IEVgF5fpRgaJeZorG1YR+YEngSE=; b=081B+YgdqGdjrANr1SgbBsH3kOj3puNl3kjuTwrcxp2hAH+anEiJYpe7qicjtl3HnEyEWp KWIaYFbl1xCVjipCwYvq8G9XWWzjobnPydit04fo/tZL5AYFHV4qQnD6V835zTThXuP45x TgMzMMw1mJwPLc/CvqEOiVmPXBOE7AA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377761; 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=6WgjdpbBXxXsBLz/IEVgF5fpRgaJeZorG1YR+YEngSE=; b=6MNvP2gLdKTMeRozmrfx5c7pVwULUAclNq27A4YBqUN2kyjKkib9aUFGdWtL4Gg5yvudtz ffM/WXRMxfrqrYDA== 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 70DBC1391B; Thu, 9 Mar 2023 16:02:41 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 4NGrGiEDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:41 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 092/101] fbdev/vesafb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:52 +0100 Message-Id: <20230309160201.5163-93-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908561383486588?= X-GMAIL-MSGID: =?utf-8?q?1759908561383486588?= 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 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/vesafb.c b/drivers/video/fbdev/vesafb.c index 3f8bdfcf51f0..7299cebb6962 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) { + struct option_iter iter; 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 Thu Mar 9 16:01: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: 67035 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390390wrd; Thu, 9 Mar 2023 08:36:46 -0800 (PST) X-Google-Smtp-Source: AK7set9ehKkNaQ4AofIDMDQEwrMOBFewMmDj2UQcMAZi28zdfpTsCY3KDy0VNAQN1QPhzFdr8M4Q X-Received: by 2002:a17:90b:1bca:b0:237:8338:ef4c with SMTP id oa10-20020a17090b1bca00b002378338ef4cmr23115460pjb.9.1678379806693; Thu, 09 Mar 2023 08:36:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379806; cv=none; d=google.com; s=arc-20160816; b=ujXlT3IgsLgURQXrEQyIvien+0yM/1b2S6dY/u04vFPGc7XftojPDfG5Ups0CCz5qc h+XkHKSemPrQRwQYgNHStll38Zi16+3a5ekWYaLsbaK2PXVfQagkaC269VlWWqTwhZlk GRZVbs89Tu9G5IL/f9IVmYehN7clwhuxX77UuH06mp6GLbFCHnXz0HcxmfrOyUFeeipZ sWzlY+kWxCPV2vj+MNf1nJui+KVPAT+fmJY84u02EXfixQTjLj2+/ly3toxafoqYaaIb 0wxkzTuOUhh9J2DE6kEic/If3EyYPT9W4ahoNJpEAIXB56gtC3Dg+0fN4armTa0U5HBO 9OGg== 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=OnSjKtFptsc5PWVXkIfTNjkGAYH63oLn7knM3Xq3qgA2FeTK2SiLdnH1Ts22exm94+ q35h3p0v3ctAtty5x8jSDyqZwkTrH6AtDcJ8r69K/eDeORViKL6mqMFgf8TRViRe3Jdq RHt7534FqqTW0wDGF3Wc7rN4GYhd52C2keXDHKIbMZAs2fpdUpFXrXL9LSAxRitqqXAS TqbuT/ogZVatY8S5zeVZ8sFYNi2ttYJSHdV4MHGjJoc30EFV8/FxHLRbQIdEgcldxXW8 ycPkgwehuyhOv/tj15UEM1PblfZFXA4T2edWRYN2Nda+jCaxbp/LQhx9HuOY5hXvxJDX 0gVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=xlWyJnku; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b="Ci2/DaCW"; 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 l9-20020a635709000000b00502f89f0d8dsi17888580pgb.167.2023.03.09.08.36.30; Thu, 09 Mar 2023 08:36: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=xlWyJnku; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b="Ci2/DaCW"; 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 S232684AbjCIQKt (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48254 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231607AbjCIQCp (ORCPT ); Thu, 9 Mar 2023 11:02: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 929C4F7ECC; Thu, 9 Mar 2023 08:02: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-out2.suse.de (Postfix) with ESMTPS id 455E62018C; Thu, 9 Mar 2023 16:02:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377762; 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=xlWyJnkuPuu6nOB8pKnY9bz5FaQg8uW0CAoXIDVbCm50gKKdTuLAkyCkcKbRpxToQB3aqi RI9lqEYQL/+I64o8X1ylORGeeHr5g9TdA2f1adJxWqk45TwScSWXzW5gEzWUOQjTgrv151 0F28vVUlS+AvlasBkMdaU9c3lVIXwh4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377762; 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=Ci2/DaCW1F0NCKh0fD5Ag8qRu4gP/nqNp4F3MwWn9e/odIUWFPgjeqJnKR34mM8noNmeoK ismdrOuqpsn3vEAQ== 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 D96391391B; Thu, 9 Mar 2023 16:02:41 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id oFIfNCEDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:41 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 093/101] fbdev/vfb: Remove trailing whitespaces Date: Thu, 9 Mar 2023 17:01:53 +0100 Message-Id: <20230309160201.5163-94-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908784044724782?= X-GMAIL-MSGID: =?utf-8?q?1759908784044724782?= 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 Thu Mar 9 16:01: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: 67036 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390435wrd; Thu, 9 Mar 2023 08:36:52 -0800 (PST) X-Google-Smtp-Source: AK7set+3ryNr01urL0DowuWrH4adeB+dkD6BDm5Ta2ZrnTZWCnNkUEHEFiUD42NBYz2wH8uG0EAB X-Received: by 2002:a17:90b:3b90:b0:233:ebd4:301c with SMTP id pc16-20020a17090b3b9000b00233ebd4301cmr1534339pjb.1.1678379812607; Thu, 09 Mar 2023 08:36:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379812; cv=none; d=google.com; s=arc-20160816; b=rvhF/kPnMJAjs6MSAK/k/kUDaubWpJBphPzJvOt7LnbC6VbvfU8b8AejNNrbGy5yUa npKR3oxTTMxHO8SyJsuiQHNJp72pX7rvB0G9QSNCYXgePbif/IbtLuDp+Q0OXFAUxeY5 uqkzofrxGGZ3CwhW/grGALg1bCezBshHGrSi+Wl3lKPEZUBcNy6sKDbrWhHk6Jwa14DQ kSi7I7dQHF58tRVdRR6W5kXj3u3Dhrk1DCzc+GzrILxHun8btN7cmSpwF/0NHpI11MWY fxwsvmMNbHUgZM1qMtebGugyq5EpHtqyPb1iGP9PkORO/lXRBzO7YUyf/v6hupGBf+pC caJQ== 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=KeY2ExOwmSx8zLHCGIHXA1tubiVzXH1BzWog2OAH98g=; b=ZyyB6y/RROYz9mzBEJLLRRVtYGVGIKmIX5UIyuIUHFce6YQOgtM8c3NaZC3asmRuK1 hyfrBoEgjAtUfVVHC3thjW0dZl2EQcQ84tl+LowGlk1bJlb2JBDLFu4g1/MuVor5w3fV iYh5/4sWWKBejTi4rulISviRv8iVrSZRk97jO9q7fqOgjd12PtF2cZV3yfC8BBjnoOu2 QOVLmnmXkBbmd4w7NVtnLvF6me6BWICB2i2k5MQTZcSTl15LB5ObcgzvEJY63umq3pap tzSZ00pjEGPEAojorRCUUljz+VwTkXIpU56YomeVm3+qdYLGb3FqgpJw7g+E2INTCQ2Y +s+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=LZFm7R8O; 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 m3-20020a632603000000b00502f0ccbcc0si1687346pgm.233.2023.03.09.08.36.37; Thu, 09 Mar 2023 08:36:52 -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=LZFm7R8O; 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 S232640AbjCIQKm (ORCPT + 99 others); Thu, 9 Mar 2023 11:10:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231594AbjCIQCp (ORCPT ); Thu, 9 Mar 2023 11:02: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 0194DF4B7A; Thu, 9 Mar 2023 08:02: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 A5E3C2018E; Thu, 9 Mar 2023 16:02:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377762; 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=KeY2ExOwmSx8zLHCGIHXA1tubiVzXH1BzWog2OAH98g=; b=LZFm7R8Of8rUK0MPl8Rv51d9MNca4y4qBiUfwCYMAjb8Ez2GFtPGCqBZOI9FyEB1sWV60f 50vBojV0zeTvTjBJcFnwIW0RX2mB44FAJqfg4RWIWVz5sxsOaX+JZP6Wqy69YJasouluLv jPbSywMOwccCbHhprxaXHud+yKVuxlU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377762; 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=KeY2ExOwmSx8zLHCGIHXA1tubiVzXH1BzWog2OAH98g=; b=LwuaA/5VcZNBiLfHYsJBO6Ju3pNq48IVDuopszjyOASThdVEfJypODY6G6ri3qHb31UWkD yWwOSR1FhQJDVFDA== 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 495E013A73; Thu, 9 Mar 2023 16:02:42 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id +AAeESIDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:42 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 094/101] fbdev/vfb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:54 +0100 Message-Id: <20230309160201.5163-95-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908790545115816?= X-GMAIL-MSGID: =?utf-8?q?1759908790545115816?= 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 kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/vfb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c index 680c88267ef4..de27fe84d820 100644 --- a/drivers/video/fbdev/vfb.c +++ b/drivers/video/fbdev/vfb.c @@ -37,6 +37,7 @@ static u_long videomemorysize = VIDEOMEMSIZE; module_param(videomemorysize, ulong, 0); MODULE_PARM_DESC(videomemorysize, "RAM available to frame buffer (in bytes)"); +static char *mode_option_buf; static char *mode_option = NULL; module_param(mode_option, charp, 0); MODULE_PARM_DESC(mode_option, "Preferred video mode (e.g. 640x480-8@60)"); @@ -412,8 +413,11 @@ 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 { + kfree(mode_option_buf); + mode_option_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } } return 1; } @@ -543,6 +547,7 @@ static void __exit vfb_exit(void) { platform_device_unregister(vfb_device); platform_driver_unregister(&vfb_driver); + kfree(mode_option_buf); } module_exit(vfb_exit); From patchwork Thu Mar 9 16:01: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: 66962 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp385553wrd; Thu, 9 Mar 2023 08:27:33 -0800 (PST) X-Google-Smtp-Source: AK7set9N4oz4bPJQq3jjLl+vJrdIg/LwkCioLqS8vy66lNCfze/2uk6UZ5edJDDtahlMk9jjcSZ1 X-Received: by 2002:a05:6a20:1443:b0:d0:15c9:4e68 with SMTP id a3-20020a056a20144300b000d015c94e68mr14202795pzi.62.1678379253224; Thu, 09 Mar 2023 08:27:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379253; cv=none; d=google.com; s=arc-20160816; b=Zqx/M3q+q8chTg0pEmlxTHEdXOrj8cbA7zROkixFWh7Q67zllBGeUemL5dhSmrGmt8 iSIVJQQYdVOKsO1DIlIgufLQA8S+A12j1pjm6PEITvGf+pAc+Ex0/KKw6p19SOJm1ULu 7dZt6PYXE8n3G2/ZEEDXr7Byi25ecwWZuFjW7QzyNQSbKPH//R07glGTSiP/8u3GkV/U c1AwIjvds/OWX2fvNuBBZCs8883/voleZfj/KGU6YHwNDU2tJkJaH+vxiP1jWKhwg5vK niKrabf9NFs2zBA0BgKBJKq84egKmHu7JmXCqWTN9bdQtoC7qV9nT+DL2AMIKY3YTb3H dc2g== 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=zGetZdXUeEv2x/Fcv995cdEBibV8mYINv0DLdPj96AI=; b=N4UwpgqSkPdFRPbQxOk1nu8I7gxkvo1xCSdGzBOcaqqNymvXUNdbanv9Ccxk/WGALF PLC5uuQh4G0zmHK+bxBvX9kGBO4hzSvmJR/tEbEVlJkDYlSLZrEEfa/vbpxY9UjaTfVj xGgp4V/JaDB86G8AM7M4PmtDbCVfwvQ6FNjzLSdkRxbMZLtfmSHfEiO1IrAWMgRhhnnz rkjU/nXcQTyiGI7EgzRHB9Zw4/nzq/RrQAxs3d7dcsG/9EyC2kvNGBv4bCoPf3wdU86z xEGfTNjriUZXQiK631dD74s+NTMhK3dQJQm/3fZkLLs/HU3kiM9/TRaele4W8AWb4HP1 +OlA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=Fj94byZ4; 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 t17-20020aa79471000000b005a910b0445fsi16634658pfq.28.2023.03.09.08.27.19; Thu, 09 Mar 2023 08:27:33 -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=Fj94byZ4; 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 S232783AbjCIQLA (ORCPT + 99 others); Thu, 9 Mar 2023 11:11:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48278 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231663AbjCIQCp (ORCPT ); Thu, 9 Mar 2023 11:02:45 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6249FF4002; Thu, 9 Mar 2023 08:02: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 155E02019B; Thu, 9 Mar 2023 16:02:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377763; 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=zGetZdXUeEv2x/Fcv995cdEBibV8mYINv0DLdPj96AI=; b=Fj94byZ460xsDFnplb2N0lh+i6F2zk4puOsHbXCPjyxeu9EIjRHqZ1KOqmkx+IX5aIzlFq fpNQ+Xg8w2QRQhw0EqbkCTtQk1MJNC9YXJU5EN2MQXrZkyrnAg94vRNtL/4GmsaIxp3G19 2/6C0BRhxN4zzzZCFcY4COzQ6qYikNg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377763; 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=zGetZdXUeEv2x/Fcv995cdEBibV8mYINv0DLdPj96AI=; b=WSDB0EaMEQ6OrPVnvB+sj+PxPuuOIVv3m+vlhqu+M3atDbMsIKvCtMHCCdSee0SPLuAGHh EwdIAt+s6WVpWqBg== 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 A9C1D1391B; Thu, 9 Mar 2023 16:02:42 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id gMGGKCIDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:42 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 095/101] fbdev/vfb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:55 +0100 Message-Id: <20230309160201.5163-96-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908203725959182?= X-GMAIL-MSGID: =?utf-8?q?1759908203725959182?= 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 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c index de27fe84d820..7694e5026155 100644 --- a/drivers/video/fbdev/vfb.c +++ b/drivers/video/fbdev/vfb.c @@ -10,6 +10,7 @@ * more details. */ +#include #include #include #include @@ -393,8 +394,9 @@ 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) { + struct option_iter iter; char *this_opt; vfb_enable = 0; @@ -404,12 +406,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; @@ -419,6 +418,9 @@ static int __init vfb_setup(char *options) mode_option = mode_option_buf; } } + + option_iter_release(&iter); + return 1; } #endif /* MODULE */ From patchwork Thu Mar 9 16:01: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: 66970 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp386729wrd; Thu, 9 Mar 2023 08:30:07 -0800 (PST) X-Google-Smtp-Source: AK7set+nb2jDVblWL7WC6gXXOkZeQT2qumyMGCB3dIDjI1TO0Mui0/nCivVEV/pp2YtRWhiQnq7b X-Received: by 2002:a62:79c6:0:b0:5b1:53e:ae46 with SMTP id u189-20020a6279c6000000b005b1053eae46mr24783350pfc.31.1678379407577; Thu, 09 Mar 2023 08:30:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379407; cv=none; d=google.com; s=arc-20160816; b=E575HGgmKBr/yvbDtiH21h8CwijET1XRI/8RY9zCnG0NIdVogD/XF7ANRLLoM+/1rw 2bbXomcxKGppz7O70MUGEjnAH8IsR1SqOr+htQKdFQvH6BR/Wp9TSRuJAnzJ7INpgwAe toeQdyknxTBcPBWRCbMYB7qgTsnH78QHrDii7POw/v+ZJOSDTAk4Z8tbduvRBl7p/elE e5B5rYyf06sGGtZ1FznjLkEvviGinFpoDuI9GvpLLQTd/1lnNvj5jCtHaBNRRXwMk2nQ Fx5VulddRIXQ8qSXkfN3cCpEvQGfcsJGlcBRFoaBQQduI6F3sc1jUnk+68inWzDnKYJw BYIg== 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=jWp/QupJ7lE9lZrkHkA8/CsL9Gj47AgqbuLGp0xrG1c=; b=i21g6UUYOBsLtcxyHXnxDlciZcW4Xy7C6AaTznoLVScJuqbUNCOEyKx5EWmr/ju9XG veZwzHFz/jm3pRobv9BaNlfYF6bam9x2F9J2vF5pIcqh8rX7g5mfoxy/7G/5hZwh9U+P fUnzvLDD1OtSAQlz7tcYnzsdIPr6+3I4fuvDCK/FBaSoSMm6i+BD6JS0EPfQvC+nl2wI G9UTPVSa7E38Qc2divIkM/s56k24g+vVATijPtjU7+hiycUo1E6BGdqrts3Z8xqvjT8u 9+fDZr9vF/PI5oZAuNdM/VnhTs2l2lWV6j1u6tWY0brLFnnb0B4VtKU23vXrfFc7l+06 aC3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=XRSsNo3d; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=1VLdQckk; 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 n11-20020aa7984b000000b005a8c6714ffesi17296400pfq.96.2023.03.09.08.29.54; Thu, 09 Mar 2023 08:30: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=XRSsNo3d; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=1VLdQckk; 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 S232807AbjCIQLE (ORCPT + 99 others); Thu, 9 Mar 2023 11:11:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231765AbjCIQCp (ORCPT ); Thu, 9 Mar 2023 11:02:45 -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 D72B4F7EE2; Thu, 9 Mar 2023 08:02: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 7CB1622158; Thu, 9 Mar 2023 16:02:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377763; 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=jWp/QupJ7lE9lZrkHkA8/CsL9Gj47AgqbuLGp0xrG1c=; b=XRSsNo3dtACqfxy0a48JxdH15rwMVIHpG1l3WXc2kEYIigrEdk28EP+Nn76+l4FNgLwVHz zr4pBxNmpg8zZTyVJdW3FoVYQg+Aihdd4UMunIwiMopFYYjQbpYBaNXdIYjZlzuQqsWjGn 6MRaiG04ik99uB6GQUFFFBsVk2U+7aQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377763; 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=jWp/QupJ7lE9lZrkHkA8/CsL9Gj47AgqbuLGp0xrG1c=; b=1VLdQckklPlS8Lm6AMQ7rfktOYxy4ECYo2JAc26tLf8sFvOswz6SWNJ+7EI3SRphcrBRsc 5Felkaa2IufKu6Dw== 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 1B7D01391B; Thu, 9 Mar 2023 16:02:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id KKKyBSMDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:43 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 096/101] fbdev/viafb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:01:56 +0100 Message-Id: <20230309160201.5163-97-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908365475468525?= X-GMAIL-MSGID: =?utf-8?q?1759908365475468525?= 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..749aee9f6c56 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; + 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 Thu Mar 9 16:01: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: 67008 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389307wrd; Thu, 9 Mar 2023 08:34:48 -0800 (PST) X-Google-Smtp-Source: AK7set95ce8CPhXa9bfEB0UuXsh8pRB8s6H89rxQjVlJ5elJFEBezW8HpCRDm65Db7Fwre71QPSl X-Received: by 2002:a05:6a20:8408:b0:cb:ec5f:3c5b with SMTP id c8-20020a056a20840800b000cbec5f3c5bmr26218778pzd.18.1678379687927; Thu, 09 Mar 2023 08:34:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379687; cv=none; d=google.com; s=arc-20160816; b=YPWnqaZe2huGMz9gyJdfQ5VtJQO3/II/BYRLjyX9XmZwlMg6bZ/ZDCoy9oefwF2wkO KnV5hBSzIrCCwqOoQEhnKwEiMB4Hkd9BYVC1AANpedtjkMQdkhGd6o0y3GT79Hh77G3J OhNHpNLAZG5WZ+JpkFF4NpIGsjrKm/55bbbk4NfTIJaaedwRL+5xTYCKGsQG2s+60FaI QTk2beXqezHXrPSq7NHmlj0xxgYewsFEGmZpiQ5HG9lOEtOKrTZPGLmCA51i/NzMBip5 DQTnIxLBG4gO8oUaGfs2dFnwnDCow1bZbS1PEKF4Q3C4/ZRhTm/gtqByCvYCI5eLMnso No4w== 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=Ewk1zW+eJTNjlZhtMIf7xoC1lhKXLT0JOMFhSzbnk2I=; b=kEnx3CK+eQ2Uxz1gHZR2RF5m6tuiWn0gvDLqIakOu0dKSVWCKD5SEIwJPswWYVcZQH pTFg/TCHi8IVTLVCa2kfl+vNnf94JczWcEVA4j/0lByIqPjpRiqgHIK6MOMFKPPBElXu yig0bFtQ+RwDMSkbKedH9tktbsRY5bXvYsBJJLB8X3sZRTRre5u5NjtrkVddtLfDLKbK HY1ovZODkbHwtaZ0zfzXrAZkju7/RC/yRy+VuOf96g9NWHSwc5uHpwkHr9m4j6LEqAmI +qWftUCpbQcVLMgNuUjC2dEsbCyuM6WclrJjcFxJTqWDRUjYz2/y6bMAmf53haPZ74KV vP0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=W8t0NpW6; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=nmkM7AlE; 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 c196-20020a624ecd000000b005dc75487137si19107037pfb.299.2023.03.09.08.34.32; Thu, 09 Mar 2023 08:34: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=W8t0NpW6; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=nmkM7AlE; 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 S232823AbjCIQLK (ORCPT + 99 others); Thu, 9 Mar 2023 11:11:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48326 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231769AbjCIQCq (ORCPT ); Thu, 9 Mar 2023 11:02:46 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 37888F7EC9; Thu, 9 Mar 2023 08:02: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-out2.suse.de (Postfix) with ESMTPS id E51032019C; Thu, 9 Mar 2023 16:02:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377763; 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=Ewk1zW+eJTNjlZhtMIf7xoC1lhKXLT0JOMFhSzbnk2I=; b=W8t0NpW6nUBoUC6nOtj8OYG4dlb2Wir2e0S7qsu1tGBDg1OVfUMaZC9SfNnFPv83dlgal5 ATx9fPTNlMgxGGrnOxh+/3azWFejpIvlXRgDbHbDThikNI1gTLmbrcm7LNNu67rjERZrL1 mFqMzEQ7gpFZBZ8yZQupXA1CVuXDZHI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377763; 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=Ewk1zW+eJTNjlZhtMIf7xoC1lhKXLT0JOMFhSzbnk2I=; b=nmkM7AlEnDqTw3Pxe33LJ0VWVSWtjwybLvxhhm0zRm+ZLzRBaNwjKqWdKjJyqPghMVb4IO C/JmGbL+n0AJKrCA== 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 80F5813A73; Thu, 9 Mar 2023 16:02:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 6NCMHiMDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:43 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 097/101] fbdev/vt8623fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:57 +0100 Message-Id: <20230309160201.5163-98-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908659184838369?= X-GMAIL-MSGID: =?utf-8?q?1759908659184838369?= 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 kstrdup() and free it in the module's exit function. Done in preparation of constifying the option string. v2: * replace static memory with kstrdup()/kfree() (Geert) Signed-off-by: Thomas Zimmermann --- drivers/video/fbdev/vt8623fb.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c index 034333ee6e45..321b1813cf3c 100644 --- a/drivers/video/fbdev/vt8623fb.c +++ b/drivers/video/fbdev/vt8623fb.c @@ -95,6 +95,7 @@ static const struct svga_timing_regs vt8623_timing_regs = { /* Module parameters */ +static char *mode_option_buf; static char *mode_option = "640x480-8@60"; static int mtrr = 1; @@ -911,6 +912,7 @@ static void __exit vt8623fb_cleanup(void) { pr_debug("vt8623fb: cleaning up\n"); pci_unregister_driver(&vt8623fb_pci_driver); + kfree(mode_option_buf); } /* Driver Initialisation */ @@ -929,8 +931,10 @@ static int __init vt8623fb_init(void) if (fb_get_options("vt8623fb", &option)) return -ENODEV; - if (option && *option) - mode_option = option; + if (option && *option) { + mode_option_buf = kstrdup(option, GFP_KERNEL); // ignore errors + mode_option = mode_option_buf; + } #endif pr_debug("vt8623fb: initializing\n"); From patchwork Thu Mar 9 16:01: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: 67047 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp399289wrd; Thu, 9 Mar 2023 08:55:25 -0800 (PST) X-Google-Smtp-Source: AK7set8vWVxkLsv8xYqWdJL9ovfG3EIcGH5VqbKMoFrBLmWk5KLLwdpQF7PDJyXYULvqrJnvGRUq X-Received: by 2002:a17:903:24d:b0:19e:76b7:c7d2 with SMTP id j13-20020a170903024d00b0019e76b7c7d2mr26103086plh.26.1678380925133; Thu, 09 Mar 2023 08:55:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678380925; cv=none; d=google.com; s=arc-20160816; b=0/pV/KP6AZyfWaL5Dfqma9Dj78m51uIPXKCeTL0LRge97k4zR458u9MeE5ipVQroAp r6zQwrtYHFvxucP5pdBJ3DDVZxo92Hl1UvNxhe7XiZb0JUUqZltAOs9oYsrK6ipDNeay YPT2+vTLhxpQCZGq/kD45qM3u4vnHQTyK7ZfvACwiHDeJ1ynFZpB5EwGP9o0aZ9Uixz7 RSGMeGHWiUSbV6SeCGyIK2ig5LC11SFj2QjlCqi1k0HAvQH1UxlSSprVm2g+1P1wOnou cmpKWe2ZzWdTZ0McbHIjwJ9hKY53f6ETf+vtz+wp/PvCI0+xmYuj3LQlFrM+SeXe+bxG RpwQ== 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=qhLabhC1FIHHBl6vHn75Sdi6c+0lehlO1hOW2wnnzIk=; b=g3oxY1/el2qsC13qZBrTZHqrsIz4w2NWyspoxgq5YiN/UpBaERO+K411VKLqaiHaha lQM4FJhrhU8C1oFF9YZmK6JxrHZN4x6MrI70+HbaZukrFc+C0Hnho0upb2L5XkLbW90Y O3s8lzdLgd4tozVw0AubL9x8sgdGn/r+NLJfd3IqGo5mWsvgtn+YkxpXCC4zvxviZrba qp9DzqPKhgkEfhZe8avyVHG1V7h89hyt8fHyhBMStd/Jvea6p/zUifxiLRk8GzDQrp3X pr/SUYMPI1irwB+LOgLxXJpp5SNUK0NzRmZD+WOwjDCuMDX4y/o7L9ByHSPOhqivqmvX dIyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=nLLiHnJy; 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 la11-20020a170902fa0b00b0019ccdd9d745si16663396plb.17.2023.03.09.08.55.08; Thu, 09 Mar 2023 08:55: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=nLLiHnJy; 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 S232842AbjCIQLN (ORCPT + 99 others); Thu, 9 Mar 2023 11:11:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231796AbjCIQDE (ORCPT ); Thu, 9 Mar 2023 11:03:04 -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 AE631F8F0B; Thu, 9 Mar 2023 08:02: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-out2.suse.de (Postfix) with ESMTPS id 577792019D; Thu, 9 Mar 2023 16:02:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377764; 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=qhLabhC1FIHHBl6vHn75Sdi6c+0lehlO1hOW2wnnzIk=; b=nLLiHnJyAkWEMzDS6gjlT7FAdHKqeDNCtYCIowjWNGDofjK1AIIxp8zGGtJcR/KkquSxDT PVrA32O9RAps2X653Z/8p6kX3gRKcE67DEmuX4qka13Y+AmhcKSVcHi/p1ACdn2OXJN8x/ DTPilzT4nPENL7eMgxCCo7c4CL9/Pj0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377764; 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=qhLabhC1FIHHBl6vHn75Sdi6c+0lehlO1hOW2wnnzIk=; b=KoO3w/NPCYL06ZUt0wLOVphV7yy1GS9O2qp8D5I5nJAWbw9LROqi6LRRuxmQXywwjAWvyJ xXny5w07zN9e80Bw== 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 EA5F81391B; Thu, 9 Mar 2023 16:02:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 4M1LOCMDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:43 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 098/101] staging/sm750fb: Release g_settings in module-exit function Date: Thu, 9 Mar 2023 17:01:58 +0100 Message-Id: <20230309160201.5163-99-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759909956875996359?= X-GMAIL-MSGID: =?utf-8?q?1759909956875996359?= Free g_settings in module-exit function for symmetry with its allocation in module-init function. Fixes a possible undefined dereference of the pointer. The string g_settings is initialized ifrom within the module-init function lynxfb_init() and used from within the PCI probe function. It is later freed in the PCI device's remove function. Probing another PCI device afterwards accesses g_settings in an undefined state. Fix this by freeing g_settings in lynxfb_exit(). Also streamline the code that creates g_settings in the first place. Signed-off-by: Thomas Zimmermann --- drivers/staging/sm750fb/sm750.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index effc7fcc3703..fa8ae20bb688 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -1093,13 +1093,12 @@ static void lynxfb_pci_remove(struct pci_dev *pdev) iounmap(sm750_dev->pvReg); iounmap(sm750_dev->pvMem); - kfree(g_settings); } static int __init lynxfb_setup(char *options) { - int len; - char *opt, *tmp; + size_t len; + char *opt, *outbuf; if (!options || !*options) { pr_warn("no options.\n"); @@ -1109,11 +1108,10 @@ static int __init lynxfb_setup(char *options) pr_info("options:%s\n", options); len = strlen(options) + 1; - g_settings = kzalloc(len, GFP_KERNEL); - if (!g_settings) + outbuf = kzalloc(len, GFP_KERNEL); + if (!outbuf) return -ENOMEM; - - tmp = g_settings; + g_settings = outbuf; /* * Notes: @@ -1133,12 +1131,11 @@ static int __init lynxfb_setup(char *options) } else if (!strncmp(opt, "dual", strlen("dual"))) { g_dualview = 1; } else { - strcat(tmp, opt); - tmp += strlen(opt); - if (options) - *tmp++ = ':'; - else - *tmp++ = 0; + if (outbuf != g_settings) + *outbuf++ = ':'; // add separator + len = strlen(opt); + memcpy(outbuf, opt, len); + outbuf += len; } } @@ -1186,6 +1183,7 @@ module_init(lynxfb_init); static void __exit lynxfb_exit(void) { pci_unregister_driver(&lynxfb_driver); + kfree(g_settings); } module_exit(lynxfb_exit); From patchwork Thu Mar 9 16:01: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: 67031 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390261wrd; Thu, 9 Mar 2023 08:36:33 -0800 (PST) X-Google-Smtp-Source: AK7set/ee7rxkfFKVk6LGONOWGfJ8GSmhlmn9OiPPHiZaF9XlvNK+unmoVwNuBWy5US/B6H2QB5g X-Received: by 2002:a62:5105:0:b0:593:ed9c:9f07 with SMTP id f5-20020a625105000000b00593ed9c9f07mr21137790pfb.27.1678379792751; Thu, 09 Mar 2023 08:36:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379792; cv=none; d=google.com; s=arc-20160816; b=lDehZ4ku+L59nbD/IXqc2sDq0owIIfBNkHgng2c7aZk+v2ehAxFiG+4tq2HoEfI+0b 53zJik8rg3E1QgX/aStfJ9ccr4KodAWrdVe0fbqo2G5J47BNJ7nXqlhh17fE+iDr+Ezw cUk2BxOXY/FzXxz/eO+VZmpLJU05dkYIpeR0EstH4FNvVLbT7Z3tMT9GEL8ElxV5Vv39 f1690QzKeHXZVDfGgQu9a4eXOHzpjHMHJ1igygB2E6+zQi+VI4MCpgR/5tVIOmwu9NjF zE9x3BWOfYY2T4DqVUa0qfo0WOS3nVWVTZeQN1myI4phq2p5X0gOZwH76t0PNjdxtgoo VhwQ== 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=g10CyGX8LN7jmhoB07O8PTYOwqUFbPdF+9x3En0LlPQ=; b=d3QwO4tuca/kYpKzeu0WeihiGG5R22yPO0DOXb+UjyexpBg2FFONaUpFNamKW6ZrgE AO5RhO5WixkTFe6Rt8SCtpCHJyhYSDvwKQs0iwPbyGDqKMschcb9tm8WCTqnaJBg8aIs h8y8Bhx10SsjdPSGNPGIPGUvlMmj4Byum0QrebqAJ5KP3b9TFVKVivN2aD+yqhGZMZiO +ixAfp1p53938JeNjLSRbv//ikYJd73cOzNIDBx9FxwbcJ3dfz48XmVXp25RtbniC24U TkZJn7mqPhAvJloBh9BQliE9ProYYGoKmpEAT9UdOzZfl+USfzGY25ZnHL0xr5In42OX +fBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=qVY89Ub6; dkim=neutral (no key) header.i=@suse.de header.b=cLgZD6S2; 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 z190-20020a6233c7000000b005a8c6715004si17180002pfz.86.2023.03.09.08.36.20; Thu, 09 Mar 2023 08:36:32 -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=qVY89Ub6; dkim=neutral (no key) header.i=@suse.de header.b=cLgZD6S2; 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 S232871AbjCIQLQ (ORCPT + 99 others); Thu, 9 Mar 2023 11:11:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231825AbjCIQDR (ORCPT ); Thu, 9 Mar 2023 11:03:17 -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 20889F8F12; Thu, 9 Mar 2023 08:02: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 BD68421CCF; Thu, 9 Mar 2023 16:02:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377764; 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=g10CyGX8LN7jmhoB07O8PTYOwqUFbPdF+9x3En0LlPQ=; b=qVY89Ub6EbFQOTKqDemyKSPew7jktkhiNjNPqV6mSd1tpTxpCzi6NY/O2SVA2FQQ1jjcem BjcyTzaawenSa7gVGO8Uh//B/B5zelqoylpQSZfwWTUGlgzYmtB9kp9HEfBcBTe2WtNEXv 0DKXom4/6+gpTGMkZMuDwcOBugxSWvs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377764; 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=g10CyGX8LN7jmhoB07O8PTYOwqUFbPdF+9x3En0LlPQ=; b=cLgZD6S21fT2maB/cW7YcTSSRfcn0OAQtMslOudmC3yWf0xgrJaMhlEI4LRnMeFFSe5Kai q391y6SEol87MVBA== 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 5B64B13A73; Thu, 9 Mar 2023 16:02:44 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id UKdXFSQDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:44 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 099/101] staging/sm750fb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:01:59 +0100 Message-Id: <20230309160201.5163-100-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908769464624013?= X-GMAIL-MSGID: =?utf-8?q?1759908769464624013?= Assume that the driver does not own the option string or its substrings and hence duplicate the option stringis for the video mode. Allocate each copy's memory with kstrdup() and free it in the module's exit function. Done in preparation of switching the driver to struct option_iter and constifying the option string. Signed-off-by: Thomas Zimmermann --- drivers/staging/sm750fb/sm750.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index fa8ae20bb688..f0dbf7535ca8 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -911,11 +911,11 @@ static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src) g_hwcursor = 0; } else { if (!g_fbmode[0]) { - g_fbmode[0] = opt; + g_fbmode[0] = kstrdup(opt, GFP_KERNEL); // ignore errors dev_info(&sm750_dev->pdev->dev, "find fbmode0 : %s\n", g_fbmode[0]); } else if (!g_fbmode[1]) { - g_fbmode[1] = opt; + g_fbmode[1] = kstrdup(opt, GFP_KERNEL); // ignore errors dev_info(&sm750_dev->pdev->dev, "find fbmode1 : %s\n", g_fbmode[1]); } else { @@ -1182,7 +1182,14 @@ module_init(lynxfb_init); static void __exit lynxfb_exit(void) { + size_t i = ARRAY_SIZE(g_fbmode); + pci_unregister_driver(&lynxfb_driver); + + while (i) { + --i; + kfree(g_fbmode[i]); + } kfree(g_settings); } module_exit(lynxfb_exit); From patchwork Thu Mar 9 16:02: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: 67026 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp390085wrd; Thu, 9 Mar 2023 08:36:16 -0800 (PST) X-Google-Smtp-Source: AK7set9sLSECEgWy+xpxnY5vfrrcn8lQN7X3XRom2lOO5qgTWSl4eGFWYNiaC+4WyyBNj9doaYNi X-Received: by 2002:a17:903:48d:b0:19c:ff0a:2c7e with SMTP id jj13-20020a170903048d00b0019cff0a2c7emr18673113plb.33.1678379775706; Thu, 09 Mar 2023 08:36:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379775; cv=none; d=google.com; s=arc-20160816; b=wfQP2HsYguKHBB3g+PsyXINcJjsTjh94RGG7gD1nKuhsHtAvovz21B6vyXx/Oz0xM/ Dfcc76w7WynD4KCvwashNm7/g59fl9Bp/nl/T+GLrwBc1Li5lntaxZGDgjTgQPrXKav9 G4hMPFVk3tOwlAoGMxnmjwh5evyS9bz+e4TRU3pdgVdOKqIekxlVKrTqg1tvuwug9LOT /nWLs9mfr/Fb9+sVs5h0uaFMUZH6NUH5S8s/lYPnJKUVp3Has0k/byxxngWWJo95qABl lyCSL58r9BzJRFNyozzxMMRbDC5nAQpELOVPtvAwHDjsuib0bALi+kfo+1aBOskUWuao 4tXg== 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=ALsO4IX+lXOr2/9jJ7xM7oWEJtpk0lY0JvNUM21acD0=; b=hfyLKWUatwHLtaFnP8CnHn9HlMIJzXRvSWeMwme8DK3tl6tbmJ5ibsscGv1Y4zIbLu SUYkAjONEAOQRHyZNzQYdnavHV6b+mLXZn/C4fQgSclhu8qxda/P1rQFeP2KCKqjKzmG UY9SJTYDFyN6Yuka55wsWU6CrbTWUrEwoX/Yo5mem3leh1N2OHtX5jv7kXYF470dTO81 Bo3aXNaFpAFdG1wQ440JPJWglXbNuxCxezKnHBR+2Rjc9u0iHP/3rzXU4wZwn8c/8bOG x7UCyTeQKiP8RaXPd7hDYnFQ7u8iKb5exUWeq//Bqyg68rnYnTwO9N0imqWbpPrR7Men RWYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=ibeXiYlR; dkim=neutral (no key) header.i=@suse.de header.b=LWt569Ff; 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 z14-20020a1709027e8e00b0019316d9e4c8si17136690pla.373.2023.03.09.08.36.00; Thu, 09 Mar 2023 08:36: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=ibeXiYlR; dkim=neutral (no key) header.i=@suse.de header.b=LWt569Ff; 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 S232896AbjCIQLS (ORCPT + 99 others); Thu, 9 Mar 2023 11:11:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231834AbjCIQDR (ORCPT ); Thu, 9 Mar 2023 11:03:17 -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 BA282F7EDF; Thu, 9 Mar 2023 08:02: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 3014E21CF8; Thu, 9 Mar 2023 16:02:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377765; 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=ALsO4IX+lXOr2/9jJ7xM7oWEJtpk0lY0JvNUM21acD0=; b=ibeXiYlRwFX3kYpd0p9A7lMTdVMC9Fwe5CosSJaVaakK7R2YBZ3fXTlozkbl/UiL5jTS8y xXFPFpQgBHAUE6pmwaV+xKG4iGnskk7Y/bPBzSTtL3W77qowzQ6ugXnIq17I+ZiAI5CtbK U2JPW0KhaLVuLn52/QgPlViOuwijmU4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377765; 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=ALsO4IX+lXOr2/9jJ7xM7oWEJtpk0lY0JvNUM21acD0=; b=LWt569FfZOyzTosHPQg/ga7WhTjnw20OX+GhU9e53/rp4wj+b9RmbVDPnRjtEZlMaiCGP9 F9Wa7b7tLTzP6RAg== 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 C26901391B; Thu, 9 Mar 2023 16:02:44 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id EDJ2LiQDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:44 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 100/101] staging/sm750fb: Parse option string with struct option_iter Date: Thu, 9 Mar 2023 17:02:00 +0100 Message-Id: <20230309160201.5163-101-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759908751784312964?= X-GMAIL-MSGID: =?utf-8?q?1759908751784312964?= 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. v2: * move string handling into separate patches Signed-off-by: Thomas Zimmermann --- drivers/staging/sm750fb/sm750.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index f0dbf7535ca8..0e3712fcf0e0 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,8 +868,9 @@ 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) { + struct option_iter iter; char *opt; int swap; @@ -889,7 +891,9 @@ static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src) goto NO_PARAM; } - while ((opt = strsep(&src, ":")) != NULL && *opt != 0) { + 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); @@ -924,6 +928,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) { @@ -1095,9 +1101,10 @@ static void lynxfb_pci_remove(struct pci_dev *pdev) iounmap(sm750_dev->pvMem); } -static int __init lynxfb_setup(char *options) +static int __init lynxfb_setup(const char *options) { size_t len; + struct option_iter iter; char *opt, *outbuf; if (!options || !*options) { @@ -1113,16 +1120,9 @@ static int __init lynxfb_setup(char *options) return -ENOMEM; g_settings = outbuf; - /* - * 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; @@ -1139,6 +1139,8 @@ static int __init lynxfb_setup(char *options) } } + 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 Thu Mar 9 16:02: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: 67046 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp393324wrd; Thu, 9 Mar 2023 08:43:08 -0800 (PST) X-Google-Smtp-Source: AK7set92quSg7Rat5I8XzDXARS4HqQstSpaRoPkxcuIEKCXVXzwMm7tfOooNPVmuQc29B09nfp+Q X-Received: by 2002:a17:902:ecca:b0:19c:da68:337a with SMTP id a10-20020a170902ecca00b0019cda68337amr25814370plh.31.1678380188435; Thu, 09 Mar 2023 08:43:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678380188; cv=none; d=google.com; s=arc-20160816; b=Teot7sqSIyA1/qzW0x92D4d44k+U9/6TXjQhcIxyQcyNMFGPolQoPX6guBwtlqTScV W2I7tXyjGdu81OezNd1VTpycD4J3/Nq+GIyJX/loJlHwNstVuOPCKSEpjKPkYs/6KfFi lOL9Ihqlxw4j5rSA2fpIDTtd4QO6G6zqcceM8j4wBaO8666YRcyDHkF335DdBTJzxvsA r/0yQMFSeg7P/srzNKvmy/MbCe90equhMSY44fp2z2H3ITa6pAdtTliSaQK9KkDCFU79 2uYijbSoJyR0Io7HocUG8QsJfZmNVlTTIYNXZsIuSQXdVDSXzaGdzMLgRM0cOkfnX4hE vNJQ== 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=x6nOdyACdlp2+E7E8cMNwfz97h9DQ5BqN65CR4y0Dbo=; b=UF67K8DgqQYAgnsnVrSMDL44Jx6yzlzeKMDk+gyT+MdNei0EoAC5L7D+3S6j9Bz2Xe xpFwKuDyIprwELkibxJom/j8hSA3JnWX5DAoco9e7XXw/HR7VJhSolHQDL/F8eILX4m1 ToJVC0kSai/8IHMkAn9CJLUa9AYBhItvPZ/7/AjX54uKG7UgszdT6P2fagpINln6JA/k BGUyUJRV+M7oUGxq+LKrnrv7Icv+shtdlOx5d0noFgtrAqKeFIb5ctcJRKV+AfTZrMtc MU+LDDmsyFVP793NPNU78kCWyXU7a7q4N05ca2tWOLKUo0+dMYT2IOr+pQ19FfJbDsw1 2SqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=lQYJVy+m; 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 kp7-20020a170903280700b0019107d41d49si16692746plb.36.2023.03.09.08.42.48; Thu, 09 Mar 2023 08:43: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=lQYJVy+m; 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 S232924AbjCIQLV (ORCPT + 99 others); Thu, 9 Mar 2023 11:11:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231853AbjCIQDT (ORCPT ); Thu, 9 Mar 2023 11:03:19 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3B7AF8F16; Thu, 9 Mar 2023 08:02: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 AC3A72017C; Thu, 9 Mar 2023 16:02:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377765; 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=x6nOdyACdlp2+E7E8cMNwfz97h9DQ5BqN65CR4y0Dbo=; b=lQYJVy+mhC2ctbwQXeLl/39u2oV6GDl6doXRuE0K58xJgh4yJ8lYSd9Fvn0QdZaGXrgXhb BT9Q58D34KuI6piQCudvOYdu1LuRS53gBS+EAVNGc/IBIJ9UZUB63HXpeu3O/1ZVwnjawG JPrhXzKgUUApgMeEFSU7z+VMOgZ9c6g= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377765; 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=x6nOdyACdlp2+E7E8cMNwfz97h9DQ5BqN65CR4y0Dbo=; b=Yo+F/nO3imM1VV8MOoD01kgpwd/AbpFgU6nrXqnWSDfc/cqr4DLUa8KuX01aJNtCmImYKi CGircmhCF23YFvDw== 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 39BD41391B; Thu, 9 Mar 2023 16:02:45 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id SA/sDCUDCmQHbgAAMHmgww (envelope-from ); Thu, 09 Mar 2023 16:02:45 +0000 From: Thomas Zimmermann To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann Subject: [PATCH v2 101/101] fbdev: Constify option strings Date: Thu, 9 Mar 2023 17:02:01 +0100 Message-Id: <20230309160201.5163-102-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-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?1759909184532178409?= X-GMAIL-MSGID: =?utf-8?q?1759909184532178409?= 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 0e3712fcf0e0..3d7cde9add4e 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -1165,7 +1165,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 3fed89e03554..27e6796b27b6 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 a09edc576437..f0ed718a4f3c 100644 --- a/drivers/video/fbdev/amifb.c +++ b/drivers/video/fbdev/amifb.c @@ -3539,7 +3539,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 98c710cadaab..7e9f5b37fd50 100644 --- a/drivers/video/fbdev/arkfb.c +++ b/drivers/video/fbdev/arkfb.c @@ -1188,7 +1188,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 6e625ac020b5..2ede6ce0ec0e 100644 --- a/drivers/video/fbdev/atafb.c +++ b/drivers/video/fbdev/atafb.c @@ -2991,7 +2991,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 ee2be122de2d..e7e1c7c0da92 100644 --- a/drivers/video/fbdev/aty/aty128fb.c +++ b/drivers/video/fbdev/aty/aty128fb.c @@ -2509,7 +2509,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 f4b22d2f0d3d..73a54738f58c 100644 --- a/drivers/video/fbdev/aty/atyfb_base.c +++ b/drivers/video/fbdev/aty/atyfb_base.c @@ -3965,7 +3965,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 975323e82f52..a44f9c423703 100644 --- a/drivers/video/fbdev/aty/radeon_base.c +++ b/drivers/video/fbdev/aty/radeon_base.c @@ -2611,7 +2611,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 0c063c8e6312..4034aeb37d45 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; 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 43b6a9dfeec4..9e84a1095d2f 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; char *this_opt; char *endptr; diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c index a5e99a8feadd..dc900f2fcd01 100644 --- a/drivers/video/fbdev/cirrusfb.c +++ b/drivers/video/fbdev/cirrusfb.c @@ -2363,7 +2363,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 65e2f9949420..a02a5ea99a7a 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 f21d11a73455..c6a46e870e98 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 be77a76f7d1d..1fc1dee75552 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 a787884a6a7f..79607301e176 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 78996995568c..c0c13135a6e1 100644 --- a/drivers/video/fbdev/fsl-diu-fb.c +++ b/drivers/video/fbdev/fsl-diu-fb.c @@ -1903,7 +1903,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 d20ef48263f3..a5e480964fa4 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 6f1e9aadc192..c51e69b98ba8 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 aede22566775..6a1391f88599 100644 --- a/drivers/video/fbdev/geode/gxfb_core.c +++ b/drivers/video/fbdev/geode/gxfb_core.c @@ -512,7 +512,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 855dc96b5669..2496bf85b6f3 100644 --- a/drivers/video/fbdev/geode/lxfb_core.c +++ b/drivers/video/fbdev/geode/lxfb_core.c @@ -650,7 +650,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 742331d0f08b..e39997a36ccc 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; char *this_opt; diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c index 65cb44c281c1..21c0fbddcbdb 100644 --- a/drivers/video/fbdev/gxt4500.c +++ b/drivers/video/fbdev/gxt4500.c @@ -781,7 +781,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 6da2f3b7846d..2c852f3ce450 100644 --- a/drivers/video/fbdev/i740fb.c +++ b/drivers/video/fbdev/i740fb.c @@ -1289,7 +1289,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 952d1a69dfb9..428bd5b53e98 100644 --- a/drivers/video/fbdev/i810/i810_main.c +++ b/drivers/video/fbdev/i810/i810_main.c @@ -2150,7 +2150,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 1e2b45faa26b..98a9a5891822 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 d4e347aca0b0..ca67b32a29dd 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(struct platform_device *pdev) { - char *options = NULL; + const char *options = NULL; struct option_iter iter; char *opt; diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c index 43d677897392..664a8625e25c 100644 --- a/drivers/video/fbdev/intelfb/intelfbdrv.c +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c @@ -385,7 +385,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 ccfec4e55ecf..903f0ac03bca 100644 --- a/drivers/video/fbdev/kyro/fbdev.c +++ b/drivers/video/fbdev/kyro/fbdev.c @@ -792,7 +792,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 c7e17a14daf1..dbddf9e83b2f 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 4c2086136e9b..c1d1076bc172 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 ca58afe366b4..04818f352eea 100644 --- a/drivers/video/fbdev/mx3fb.c +++ b/drivers/video/fbdev/mx3fb.c @@ -1655,7 +1655,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; char *opt; diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c index 01ed78d987b1..21e8a72cda90 100644 --- a/drivers/video/fbdev/neofb.c +++ b/drivers/video/fbdev/neofb.c @@ -2213,7 +2213,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 d779163f919a..bd649539181f 100644 --- a/drivers/video/fbdev/nvidia/nvidia.c +++ b/drivers/video/fbdev/nvidia/nvidia.c @@ -1532,7 +1532,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 fa15b932b323..07b7d5e61895 100644 --- a/drivers/video/fbdev/ocfb.c +++ b/drivers/video/fbdev/ocfb.c @@ -412,7 +412,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 db5256c71f5b..8715eaf8ddf6 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 33bf75309815..ab75df9d0bb6 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 38c5c57ce2b0..d87ceaaf529d 100644 --- a/drivers/video/fbdev/pm2fb.c +++ b/drivers/video/fbdev/pm2fb.c @@ -1809,7 +1809,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 c4d4f08b4114..500a8c1130c6 100644 --- a/drivers/video/fbdev/pm3fb.c +++ b/drivers/video/fbdev/pm3fb.c @@ -1545,7 +1545,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 575b2911977a..62236bbb02b5 100644 --- a/drivers/video/fbdev/ps3fb.c +++ b/drivers/video/fbdev/ps3fb.c @@ -1257,7 +1257,7 @@ static struct ps3_system_bus_driver ps3fb_driver = { static int __init ps3fb_setup(void) { - char *options; + const char *options; struct option_iter iter; char *this_opt; diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c index c332f2c38114..acc81fb11da1 100644 --- a/drivers/video/fbdev/pvr2fb.c +++ b/drivers/video/fbdev/pvr2fb.c @@ -1085,7 +1085,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 d2db9c20d515..0699710b0beb 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 7f35edad249e..934c6e30109b 100644 --- a/drivers/video/fbdev/riva/fbdev.c +++ b/drivers/video/fbdev/riva/fbdev.c @@ -2167,7 +2167,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 37f5ea25efd6..824325eb9fbe 100644 --- a/drivers/video/fbdev/s3fb.c +++ b/drivers/video/fbdev/s3fb.c @@ -1562,7 +1562,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 4650688fd23c..a6e573b2d996 100644 --- a/drivers/video/fbdev/savage/savagefb_driver.c +++ b/drivers/video/fbdev/savage/savagefb_driver.c @@ -2560,7 +2560,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 9f63812a5f66..d8109dd20bc6 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 ee6944d0ebc1..f6efad18e4d7 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 a83f48fce5b1..c6232bc688ea 100644 --- a/drivers/video/fbdev/sm712fb.c +++ b/drivers/video/fbdev/sm712fb.c @@ -1755,7 +1755,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 b509020fed74..7a0a612a7658 100644 --- a/drivers/video/fbdev/sstfb.c +++ b/drivers/video/fbdev/sstfb.c @@ -1507,7 +1507,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 1fdaf328f03e..3158644454d7 100644 --- a/drivers/video/fbdev/tdfxfb.c +++ b/drivers/video/fbdev/tdfxfb.c @@ -1635,7 +1635,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 0862d9a54aef..ad88fc0cd01e 100644 --- a/drivers/video/fbdev/tgafb.c +++ b/drivers/video/fbdev/tgafb.c @@ -1600,7 +1600,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 3299806c0f58..2a70b48e6d15 100644 --- a/drivers/video/fbdev/tridentfb.c +++ b/drivers/video/fbdev/tridentfb.c @@ -1818,7 +1818,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 13bd8503a06b..98e074d3e61b 100644 --- a/drivers/video/fbdev/uvesafb.c +++ b/drivers/video/fbdev/uvesafb.c @@ -1886,7 +1886,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 3c20f392370a..daf218632d53 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 7299cebb6962..5d909d88a251 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 7694e5026155..b68c0dd747cf 100644 --- a/drivers/video/fbdev/vfb.c +++ b/drivers/video/fbdev/vfb.c @@ -513,7 +513,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 749aee9f6c56..40a4739ff060 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; char *this_opt; diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c index 321b1813cf3c..9bd908dace15 100644 --- a/drivers/video/fbdev/vt8623fb.c +++ b/drivers/video/fbdev/vt8623fb.c @@ -919,9 +919,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;