[acpi_multiply] Remove scoped lock for interrupt.

Remove scoped lock guarding operation queue and IRQ handler now that
interrupts are handled on the same dispatcher thread.

Bug: 99975
Change-Id: Id7c6c7b524d934cc4aa7fec92b9ee6f111ef0c19
Reviewed-on: https://fuchsia-review.googlesource.com/c/sdk-samples/drivers/+/728735
Reviewed-by: Suraj Malhotra <surajmalhotra@google.com>
Commit-Queue: Dave Smith <smithdave@google.com>
Reviewed-by: Jocelyn Dang <jocelyndang@google.com>
diff --git a/src/acpi_multiply/driver/multiplier.cc b/src/acpi_multiply/driver/multiplier.cc
index 749940b..58ad6f1 100644
--- a/src/acpi_multiply/driver/multiplier.cc
+++ b/src/acpi_multiply/driver/multiplier.cc
@@ -65,7 +65,6 @@
 void AcpiMultiplier::HandleIrq(async_dispatcher_t* dispatcher, async::IrqBase* irq,
                                zx_status_t status, const zx_packet_interrupt_t* interrupt) {
   irq_.ack();
-  std::scoped_lock lock(completer_lock_);
   if (!current_op_.has_value()) {
     FDF_LOG(ERROR, "Spurious interrupt!");
     return;
@@ -100,7 +99,6 @@
 
 // Enqueue a multiply operation received from a FIDL client.
 void AcpiMultiplier::QueueMultiplyOperation(Operation operation) {
-  std::scoped_lock lock(completer_lock_);
   // Queue operations if there is already one in-flight.
   if (current_op_.has_value()) {
     operation_queue_.emplace_back(std::move(operation));
diff --git a/src/acpi_multiply/driver/multiplier.h b/src/acpi_multiply/driver/multiplier.h
index 1e23775..8ef4504 100644
--- a/src/acpi_multiply/driver/multiplier.h
+++ b/src/acpi_multiply/driver/multiplier.h
@@ -51,7 +51,7 @@
   void HandleIrq(async_dispatcher_t* dispatcher, async::IrqBase* irq, zx_status_t status,
                  const zx_packet_interrupt_t* interrupt);
 
-  void DoMultiply(Operation operation) __TA_REQUIRES(completer_lock_);
+  void DoMultiply(Operation operation);
 
   driver::Logger logger_;
   async_dispatcher_t* const dispatcher_;
@@ -61,11 +61,8 @@
   async::IrqMethod<AcpiMultiplier, &AcpiMultiplier::HandleIrq> irq_method_{this};
   fidl::WireSyncClient<fuchsia_hardware_acpi::Device> acpi_;
 
-  // TODO(fxbug.dev/99975): This will no longer be necessary once interrupts can be handled
-  // without spawning a separate dispatcher thread.
-  std::mutex completer_lock_;
-  std::optional<Operation> current_op_ __TA_GUARDED(completer_lock_);
-  std::list<Operation> operation_queue_ __TA_GUARDED(completer_lock_);
+  std::optional<Operation> current_op_;
+  std::list<Operation> operation_queue_;
 };
 
 }  // namespace acpi_multiply