#define DISCOV_BREDR_INQUIRY_LEN       0x08
 #define DISCOV_LE_RESTART_DELAY                msecs_to_jiffies(200)   /* msec */
 
+void mgmt_fill_version_info(void *ver);
 int mgmt_new_settings(struct hci_dev *hdev);
 void mgmt_index_added(struct hci_dev *hdev);
 void mgmt_index_removed(struct hci_dev *hdev);
 
                return ADDR_LE_DEV_RANDOM;
 }
 
+void mgmt_fill_version_info(void *ver)
+{
+       struct mgmt_rp_read_version *rp = ver;
+
+       rp->version = MGMT_VERSION;
+       rp->revision = cpu_to_le16(MGMT_REVISION);
+}
+
 static int read_version(struct sock *sk, struct hci_dev *hdev, void *data,
                        u16 data_len)
 {
 
        BT_DBG("sock %p", sk);
 
-       rp.version = MGMT_VERSION;
-       rp.revision = cpu_to_le16(MGMT_REVISION);
+       mgmt_fill_version_info(&rp);
 
        return mgmt_cmd_complete(sk, MGMT_INDEX_NONE, MGMT_OP_READ_VERSION, 0,
                                 &rp, sizeof(rp));