if (!conn)
                return;
 
+       /* When using controller based address resolution, then the new
+        * address types 0x02 and 0x03 are used. These types need to be
+        * converted back into either public address or random address type
+        */
+       if (use_ll_privacy(hdev) &&
+           hci_dev_test_flag(hdev, HCI_LL_RPA_RESOLUTION)) {
+               switch (own_address_type) {
+               case ADDR_LE_DEV_PUBLIC_RESOLVED:
+                       own_address_type = ADDR_LE_DEV_PUBLIC;
+                       break;
+               case ADDR_LE_DEV_RANDOM_RESOLVED:
+                       own_address_type = ADDR_LE_DEV_RANDOM;
+                       break;
+               }
+       }
+
        /* Store the initiator and responder address information which
         * is needed for SMP. These values will not change during the
         * lifetime of the connection.