diff --git a/media_driver/linux/common/os/magma/mos_bufmgr_magma.cpp b/media_driver/linux/common/os/magma/mos_bufmgr_magma.cpp
index 38204d9..58be7a0 100644
--- a/media_driver/linux/common/os/magma/mos_bufmgr_magma.cpp
+++ b/media_driver/linux/common/os/magma/mos_bufmgr_magma.cpp
@@ -105,7 +105,7 @@
 class MagmaBo : public mos_linux_bo {
 public:
     // MagmaBufMgr must outlive MagmaBo.
-    MagmaBo(magma_buffer_t buffer, uint64_t size, MagmaBufMgr* bufmgr);
+ MagmaBo(magma_buffer_t buffer, uint64_t size, magma_buffer_id_t id, MagmaBufMgr *bufmgr);
 
 private:
     ~MagmaBo();
@@ -146,8 +146,8 @@
     std::vector<magma_exec_resource> exec_resources_;
 };
 
-MagmaBo::MagmaBo(magma_buffer_t buffer, uint64_t size, MagmaBufMgr *bufmgr)
-    : buffer_(buffer), id_(magma_buffer_get_id(buffer)) {
+MagmaBo::MagmaBo(magma_buffer_t buffer, uint64_t size, magma_buffer_id_t id, MagmaBufMgr *bufmgr)
+    : buffer_(buffer), id_(id) {
     mos_linux_bo::size = size;
     assert(mos_linux_bo::size == size);
     mos_linux_bo::align = 0;
@@ -554,8 +554,9 @@
 {
     magma_buffer_t buffer;
     uint64_t size_actual;
+    magma_buffer_id_t buffer_id;
     magma_status_t status =
-        magma_connection_create_buffer(connection(), size, &size_actual, &buffer);
+        magma_connection_create_buffer2(connection(), size, &size_actual, &buffer, &buffer_id);
     if (status != MAGMA_STATUS_OK) {
         LOG_VERBOSE("magma_create_buffer failed: %d", status);
         return nullptr;
@@ -563,7 +564,7 @@
 
     magma_buffer_set_name(buffer, name);
 
-    auto bo = new MagmaBo(buffer, size_actual, this);
+    auto bo = new MagmaBo(buffer, size_actual, buffer_id, this);
 
     if (!bo->MapGpu()) {
         bo->RemoveRef();
@@ -576,13 +577,16 @@
 MagmaBo* MagmaBufMgr::ImportBo(int handle, unsigned long size)
 {
     magma_buffer_t buffer;
-    magma_status_t status = magma_connection_import_buffer(connection(), handle, &buffer);
+    size_t imported_size;
+    magma_buffer_id_t id;
+    magma_status_t status =
+        magma_connection_import_buffer2(connection(), handle, &imported_size, &buffer, &id);
     if (status != MAGMA_STATUS_OK) {
         LOG_VERBOSE("magma_import failed: %d", status);
         return nullptr;
     }
 
-    auto bo = new MagmaBo(buffer, magma_buffer_get_size(buffer), this);
+    auto bo = new MagmaBo(buffer, imported_size, id, this);
 
     if (!bo->MapGpu()) {
         bo->RemoveRef();
@@ -874,7 +878,7 @@
    if (status != MAGMA_STATUS_OK) {
         LOG_VERBOSE("magma_execute_command failed: %d", status);
         return -1;
-    }
+   }
 
     return 0;
 }
