Changeset 8a4ceaa in mainline


Ignore:
Timestamp:
2023-08-08T07:33:40Z (10 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a77c722
Parents:
14cbf07
git-author:
Jiri Svoboda <jiri@…> (2023-08-07 17:32:47)
git-committer:
Jiri Svoboda <jiri@…> (2023-08-08 07:33:40)
Message:

Refuse to delete the last seat

Location:
uspace
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/display-cfg/seats.c

    r14cbf07 r8a4ceaa  
    419419        errno_t rc;
    420420
    421         printf("seats list populate\n");
    422421        rc = dcfg_seats_list_populate(seats);
    423422        if (rc != EOK)
     
    924923        rc = dispcfg_seat_delete(seats->dcfg->dispcfg, entry->seat_id);
    925924        if (rc != EOK) {
     925                /*
     926                 * EBUSY is returned when we attempt to delete the last
     927                 * seat. No need to complain about it.
     928                 */
     929                if (rc == EBUSY)
     930                        return;
     931
    926932                printf("Error removing seat '%s'.\n", entry->name);
    927933                return;
  • uspace/srv/hid/display/cfgops.c

    r14cbf07 r8a4ceaa  
    197197        ds_cfgclient_t *cfgclient = (ds_cfgclient_t *)arg;
    198198        ds_seat_t *seat;
     199        ds_seat_t *s;
    199200
    200201        log_msg(LOG_DEFAULT, LVL_DEBUG, "dispcfg_seat_delete()");
     
    205206                ds_display_unlock(cfgclient->display);
    206207                return ENOENT;
     208        }
     209
     210        /* Verify we are not deleting the last seat */
     211        s = ds_display_first_seat(cfgclient->display);
     212        if (s == seat && ds_display_next_seat(s) == NULL) {
     213                ds_display_unlock(cfgclient->display);
     214                return EBUSY;
    207215        }
    208216
Note: See TracChangeset for help on using the changeset viewer.