diff --git a/src/core/hle/service/soc_u.cpp b/src/core/hle/service/soc_u.cpp
index d45832a43..3620b458c 100644
--- a/src/core/hle/service/soc_u.cpp
+++ b/src/core/hle/service/soc_u.cpp
@@ -4,6 +4,7 @@
 
 #include <algorithm>
 #include <cstring>
+#include <type_traits>
 #include <vector>
 #include "common/archives.h"
 #include "common/assert.h"
@@ -199,11 +200,6 @@ struct CTRPollFD {
         BitField<4, 1, u32> pollout;
         BitField<5, 1, u32> pollnval;
 
-        Events& operator=(const Events& other) {
-            hex = other.hex;
-            return *this;
-        }
-
         /// Translates the resulting events of a Poll operation from platform-specific to 3ds
         /// specific
         static Events TranslateTo3DS(u32 input_event) {
@@ -263,6 +259,8 @@ struct CTRPollFD {
         return result;
     }
 };
+static_assert(std::is_trivially_copyable_v<CTRPollFD>,
+              "CTRPollFD is used with std::memcpy and must be trivially copyable");
 
 /// Union to represent the 3ds' sockaddr structure
 union CTRSockAddr {