Revert "vm_tools: Use pmem device for rootfs in VMs"

The 3.18 host kernel has kernel panics when using virtio-pmem for the guest.
This reverts commit e1c04c4574a2723caf63d1e40655d9fc4719639a.

BUG=chromium:1009961
TEST=crostini.SanityArtifact

Change-Id: I2bd2b76e8fd8f065faf20fa7b1278b8dc41492e5
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/1834276
Tested-by: Stephen Barber <smbarber@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Stephen Barber <smbarber@chromium.org>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
diff --git a/vm_tools/concierge/service.cc b/vm_tools/concierge/service.cc
index 3989dc3..d6c0aa3 100644
--- a/vm_tools/concierge/service.cc
+++ b/vm_tools/concierge/service.cc
@@ -1081,11 +1081,10 @@
   }
 
   // Track the next available virtio-blk device name.
-  // Assume that the rootfs filesystem was assigned /dev/pmem0 if
-  // USE_PMEM_DEVICE_FOR_ROOTFS is set, /dev/vda otherwise.
-  // Assume every subsequent image was assigned a letter in alphabetical order
+  // Assume that the rootfs filesystem was assigned /dev/vda and that
+  // every subsequent image was assigned a letter in alphabetical order
   // starting from 'b'.
-  unsigned char disk_letter = USE_PMEM_DEVICE_FOR_ROOTFS ? 'a' : 'b';
+  unsigned char disk_letter = 'b';
 
   // In newer components, the /opt/google/cros-containers directory
   // is split into its own disk image(vm_tools.img).  Detect whether it exists
@@ -1963,7 +1962,8 @@
       base::StringPrintf("%s/%zu", dst_addr.c_str(), prefix_length);
 
   string error;
-  if (!vm->StartTermina(std::move(container_subnet_cidr), &error)) {
+  if (!vm->StartTermina(std::move(container_subnet_cidr), vm->StatefulDevice(),
+                        &error)) {
     failure_reason->assign(error);
     return false;
   }
diff --git a/vm_tools/concierge/termina_vm.cc b/vm_tools/concierge/termina_vm.cc
index d40e2ac..2a3231e 100644
--- a/vm_tools/concierge/termina_vm.cc
+++ b/vm_tools/concierge/termina_vm.cc
@@ -137,6 +137,7 @@
       kCrosvmBin,       "run",
       "--cpus",         std::to_string(base::SysInfo::NumberOfProcessors()),
       "--mem",          GetVmMemoryMiB(),
+      "--root",         rootfs.value(),
       "--tap-fd",       std::to_string(tap_fd.get()),
       "--cid",          std::to_string(vsock_cid_),
       "--socket",       GetVmSocketPath(),
@@ -146,16 +147,6 @@
   };
   // clang-format on
 
-  if (USE_PMEM_DEVICE_FOR_ROOTFS) {
-    args.emplace_back("--pmem-device");
-    args.emplace_back(rootfs.value());
-    args.emplace_back("--params");
-    args.emplace_back("root=/dev/pmem0 ro rootflags=dax");
-  } else {
-    args.emplace_back("--root");
-    args.emplace_back(rootfs.value());
-  }
-
   if (USE_CROSVM_WL_DMABUF)
     args.emplace_back("--wayland-dmabuf");
 
@@ -364,6 +355,7 @@
 }
 
 bool TerminaVm::StartTermina(std::string lxd_subnet,
+                             std::string stateful_device,
                              std::string* out_error) {
   // We record the kernel version early to ensure that no container has
   // been started and the VM can still be trusted.
@@ -374,7 +366,7 @@
 
   request.set_tremplin_ipv4_address(GatewayAddress());
   request.mutable_lxd_ipv4_subnet()->swap(lxd_subnet);
-  request.set_stateful_device(StatefulDevice());
+  request.mutable_stateful_device()->swap(stateful_device);
 
   grpc::ClientContext ctx;
   ctx.set_deadline(gpr_time_add(
diff --git a/vm_tools/concierge/termina_vm.h b/vm_tools/concierge/termina_vm.h
index 37c7c3f..e8844cf 100644
--- a/vm_tools/concierge/termina_vm.h
+++ b/vm_tools/concierge/termina_vm.h
@@ -89,6 +89,7 @@
 
   // Starts Termina-specific services in the guest.
   bool StartTermina(std::string lxd_subnet,
+                    std::string stateful_device,
                     std::string* out_error);
 
   // Mount a 9p file system inside the VM.  The guest VM connects to a server
diff --git a/vm_tools/host/BUILD.gn b/vm_tools/host/BUILD.gn
index 5ded761..aba0f32 100644
--- a/vm_tools/host/BUILD.gn
+++ b/vm_tools/host/BUILD.gn
@@ -35,10 +35,7 @@
 
 config("host_target_defaults") {
   configs = [ ":host_target_defaults_pkgs" ]
-  defines = [
-    "USE_CROSVM_WL_DMABUF=${use.crosvm_wl_dmabuf}",
-    "USE_PMEM_DEVICE_FOR_ROOTFS=${use.amd64}",
-  ]
+  defines = [ "USE_CROSVM_WL_DMABUF=${use.crosvm_wl_dmabuf}" ]
 }
 
 executable("maitred_client") {
diff --git a/vm_tools/maitred/service_impl.cc b/vm_tools/maitred/service_impl.cc
index e199136..a90f1d6 100644
--- a/vm_tools/maitred/service_impl.cc
+++ b/vm_tools/maitred/service_impl.cc
@@ -466,9 +466,8 @@
   if (ret != 0) {
     int saved_errno = errno;
     PLOG(ERROR) << "Failed to mount stateful disk";
-    return grpc::Status(grpc::INTERNAL, string("failed to mount stateful (") +
-                                            stateful_device +
-                                            "): " + strerror(saved_errno));
+    return grpc::Status(grpc::INTERNAL, string("failed to mount stateful: ") +
+                                            strerror(saved_errno));
   }
 
   // Resize the stateful filesystem to fill the block device in case