OSDN Git Service

fbdev: Move option-string lookup into helper
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 9 Feb 2023 13:55:05 +0000 (14:55 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 20 Feb 2023 13:56:47 +0000 (14:56 +0100)
Move the lookup of the option string into an internal helper. No
functional changes.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230209135509.7786-8-tzimmermann@suse.de
drivers/video/fbdev/core/fb_cmdline.c

index 512da89..f811c7b 100644 (file)
@@ -21,6 +21,36 @@ static char *video_options[FB_MAX] __read_mostly;
 static const char *fb_mode_option __read_mostly;
 static int ofonly __read_mostly;
 
+static const char *__fb_get_options(const char *name)
+{
+       const char *options = NULL;
+       size_t name_len = 0;
+
+       if (name)
+               name_len = strlen(name);
+
+       if (name_len) {
+               unsigned int i;
+               const char *opt;
+
+               for (i = 0; i < ARRAY_SIZE(video_options); ++i) {
+                       if (!video_options[i])
+                               continue;
+                       if (video_options[i][0] == '\0')
+                               continue;
+                       opt = video_options[i];
+                       if (!strncmp(opt, name, name_len) && opt[name_len] == ':')
+                               options = opt + name_len + 1;
+               }
+       }
+
+       /* No match, return global options */
+       if (!options)
+               options = fb_mode_option;
+
+       return options;
+}
+
 /**
  * fb_get_options - get kernel boot parameters
  * @name:   framebuffer name as it would appear in
@@ -35,36 +65,18 @@ static int ofonly __read_mostly;
  */
 int fb_get_options(const char *name, char **option)
 {
-       const char *options = NULL;
        int retval = 0;
-       size_t name_len;
-       char *opt;
+       const char *options;
 
-       if (name)
-               name_len = strlen(name);
-
-       if (name_len && ofonly && strncmp(name, "offb", 4))
+       if (name && ofonly && strncmp(name, "offb", 4))
                retval = 1;
 
-       if (name_len && !retval) {
-               unsigned int i;
+       options = __fb_get_options(name);
 
-               for (i = 0; i < FB_MAX; i++) {
-                       if (video_options[i] == NULL)
-                               continue;
-                       if (!video_options[i][0])
-                               continue;
-                       opt = video_options[i];
-                       if (!strncmp(name, opt, name_len) &&
-                           opt[name_len] == ':')
-                               options = opt + name_len + 1;
-               }
+       if (options) {
+               if (!strncmp(options, "off", 3))
+                       retval = 1;
        }
-       /* No match, pass global option */
-       if (!options && option && fb_mode_option)
-               options = fb_mode_option;
-       if (options && !strncmp(options, "off", 3))
-               retval = 1;
 
        if (option) {
                if (options)