Browse Source

Revert "Kernel: Copy command line to a safe place"

This reverts commit 41c005cb140c8a9ae94e6b68456d8d6f1d925a8f.
Andreas Kling 5 years ago
parent
commit
8a21491d86
3 changed files with 4 additions and 22 deletions
  1. 2 15
      Kernel/CommandLine.cpp
  2. 1 2
      Kernel/CommandLine.h
  3. 1 5
      Kernel/init.cpp

+ 2 - 15
Kernel/CommandLine.cpp

@@ -25,34 +25,21 @@
  */
 
 #include <Kernel/CommandLine.h>
-#include <Kernel/StdLib.h>
 
 namespace Kernel {
 
-static char s_cmd_line[1024];
 static CommandLine* s_the;
 
-void CommandLine::early_initialize(const char* cmd_line)
-{
-    if (!cmd_line)
-        return;
-    size_t length = strlen(cmd_line);
-    if (length >= sizeof(s_cmd_line))
-        length = sizeof(s_cmd_line) -1;
-    memcpy(s_cmd_line, cmd_line, length);
-    s_cmd_line[length] = '\0';
-}
-
 const CommandLine& kernel_command_line()
 {
     ASSERT(s_the);
     return *s_the;
 }
 
-void CommandLine::initialize()
+void CommandLine::initialize(const String& string)
 {
     ASSERT(!s_the);
-    s_the = new CommandLine(s_cmd_line);
+    s_the = new CommandLine(string);
 }
 
 CommandLine::CommandLine(const String& string)

+ 1 - 2
Kernel/CommandLine.h

@@ -36,8 +36,7 @@ class CommandLine {
     AK_MAKE_ETERNAL;
 
 public:
-    static void early_initialize(const char* cmd_line);
-    static void initialize();
+    static void initialize(const String&);
 
     const String& string() const { return m_string; }
     Optional<String> lookup(const String& key) const;

+ 1 - 5
Kernel/init.cpp

@@ -113,10 +113,6 @@ extern "C" [[noreturn]] void init()
 {
     setup_serial_debug();
 
-    // We need to copy the command line before kmalloc is initialized,
-    // as it may overwrite parts of multiboot!
-    CommandLine::early_initialize(reinterpret_cast<const char*>(low_physical_to_virtual(multiboot_info_ptr->cmdline)));
-
     s_bsp_processor.early_initialize(0);
 
     // Invoke the constructors needed for the kernel heap
@@ -127,7 +123,7 @@ extern "C" [[noreturn]] void init()
 
     s_bsp_processor.initialize(0);
 
-    CommandLine::initialize();
+    CommandLine::initialize(reinterpret_cast<const char*>(low_physical_to_virtual(multiboot_info_ptr->cmdline)));
     MemoryManager::initialize(0);
 
     // Invoke all static global constructors in the kernel.