for (i = 0; i < ICE_GNSS_TTY_MINOR_DEVICES; i++) {
                pf->gnss_tty_port[i] = kzalloc(sizeof(*pf->gnss_tty_port[i]),
                                               GFP_KERNEL);
+               if (!pf->gnss_tty_port[i])
+                       goto err_out;
+
                pf->gnss_serial[i] = NULL;
 
                tty_port_init(pf->gnss_tty_port[i]);
        err = tty_register_driver(tty_driver);
        if (err) {
                dev_err(dev, "Failed to register TTY driver err=%d\n", err);
-
-               for (i = 0; i < ICE_GNSS_TTY_MINOR_DEVICES; i++) {
-                       tty_port_destroy(pf->gnss_tty_port[i]);
-                       kfree(pf->gnss_tty_port[i]);
-               }
-               kfree(ttydrv_name);
-               tty_driver_kref_put(pf->ice_gnss_tty_driver);
-
-               return NULL;
+               goto err_out;
        }
 
        for (i = 0; i < ICE_GNSS_TTY_MINOR_DEVICES; i++)
                dev_info(dev, "%s%d registered\n", ttydrv_name, i);
 
        return tty_driver;
+
+err_out:
+       while (i--) {
+               tty_port_destroy(pf->gnss_tty_port[i]);
+               kfree(pf->gnss_tty_port[i]);
+       }
+       kfree(ttydrv_name);
+       tty_driver_kref_put(pf->ice_gnss_tty_driver);
+
+       return NULL;
 }
 
 /**