struct opal_header *hdr;
        int err = 0;
 
+       /* close parameter list */
+       add_token_u8(&err, cmd, OPAL_ENDLIST);
+
        add_token_u8(&err, cmd, OPAL_ENDOFDATA);
        add_token_u8(&err, cmd, OPAL_STARTLIST);
        add_token_u8(&err, cmd, 0);
        add_token_bytestring(&err, dev, opalmethod[OPAL_GENKEY],
                             OPAL_UID_LENGTH);
        add_token_u8(&err, dev, OPAL_STARTLIST);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
 
        if (err) {
                pr_debug("Error building gen key command\n");
        add_token_u8(&err, dev, 10); /* ActiveKey */
        add_token_u8(&err, dev, OPAL_ENDNAME);
        add_token_u8(&err, dev, OPAL_ENDLIST);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
        if (err) {
                pr_debug("Error building get active key command\n");
                return err;
 
        add_token_u8(&err, dev, OPAL_ENDLIST);
        add_token_u8(&err, dev, OPAL_ENDNAME);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
        return err;
 }
 
 
                add_token_u8(&err, dev, OPAL_ENDLIST);
                add_token_u8(&err, dev, OPAL_ENDNAME);
-               add_token_u8(&err, dev, OPAL_ENDLIST);
-
        }
        if (err) {
                pr_debug("Error building Setup Locking range command.\n");
 
        switch (auth) {
        case OPAL_ANYBODY_UID:
-               add_token_u8(&err, dev, OPAL_ENDLIST);
                break;
        case OPAL_ADMIN1_UID:
        case OPAL_SID_UID:
                add_token_bytestring(&err, dev, opaluid[auth],
                                     OPAL_UID_LENGTH);
                add_token_u8(&err, dev, OPAL_ENDNAME);
-               add_token_u8(&err, dev, OPAL_ENDLIST);
                break;
        default:
                pr_debug("Cannot start Admin SP session with auth %d\n", auth);
        add_token_u8(&err, dev, 3);
        add_token_bytestring(&err, dev, lk_ul_user, OPAL_UID_LENGTH);
        add_token_u8(&err, dev, OPAL_ENDNAME);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
 
        if (err) {
                pr_debug("Error building STARTSESSION command.\n");
        add_token_bytestring(&err, dev, opalmethod[OPAL_REVERT],
                             OPAL_UID_LENGTH);
        add_token_u8(&err, dev, OPAL_STARTLIST);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
        if (err) {
                pr_debug("Error building REVERT TPER command.\n");
                return err;
        add_token_u8(&err, dev, OPAL_ENDNAME);
        add_token_u8(&err, dev, OPAL_ENDLIST);
        add_token_u8(&err, dev, OPAL_ENDNAME);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
 
        if (err) {
                pr_debug("Error building Activate UserN command.\n");
        add_token_bytestring(&err, dev, opalmethod[OPAL_ERASE],
                             OPAL_UID_LENGTH);
        add_token_u8(&err, dev, OPAL_STARTLIST);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
 
        if (err) {
                pr_debug("Error building Erase Locking Range Command.\n");
        add_token_u8(&err, dev, OPAL_ENDNAME);
        add_token_u8(&err, dev, OPAL_ENDLIST);
        add_token_u8(&err, dev, OPAL_ENDNAME);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
 
        if (err) {
                pr_debug("Error Building set MBR Done command\n");
        add_token_u8(&err, dev, OPAL_ENDNAME);
        add_token_u8(&err, dev, OPAL_ENDLIST);
        add_token_u8(&err, dev, OPAL_ENDNAME);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
 
        if (err) {
                pr_debug("Error Building set MBR done command\n");
        add_token_u8(&err, dev, OPAL_ENDNAME);
        add_token_u8(&err, dev, OPAL_ENDLIST);
        add_token_u8(&err, dev, OPAL_ENDNAME);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
 
        return err;
 }
        add_token_u8(&err, dev, OPAL_ENDNAME);
        add_token_u8(&err, dev, OPAL_ENDLIST);
        add_token_u8(&err, dev, OPAL_ENDNAME);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
 
        if (err) {
                pr_debug("Error building add user to locking range command.\n");
 
        add_token_u8(&err, dev, OPAL_ENDLIST);
        add_token_u8(&err, dev, OPAL_ENDNAME);
-       add_token_u8(&err, dev, OPAL_ENDLIST);
 
        if (err) {
                pr_debug("Error building SET command.\n");
                }
                add_token_u8(&err, dev, OPAL_ENDLIST);
                add_token_u8(&err, dev, OPAL_ENDNAME);
-               add_token_u8(&err, dev, OPAL_ENDLIST);
-
        } else {
                add_token_u8(&err, dev, OPAL_STARTLIST);
-               add_token_u8(&err, dev, OPAL_ENDLIST);
        }
 
        if (err) {
        add_token_u8(&err, dev, 6); /* Lifecycle Column */
        add_token_u8(&err, dev, OPAL_ENDNAME);
 
-       add_token_u8(&err, dev, OPAL_ENDLIST);
        add_token_u8(&err, dev, OPAL_ENDLIST);
 
        if (err) {
        add_token_u8(&err, dev, 4); /* End Column */
        add_token_u8(&err, dev, 3); /* Lifecycle Column */
        add_token_u8(&err, dev, OPAL_ENDNAME);
-
-       add_token_u8(&err, dev, OPAL_ENDLIST);
        add_token_u8(&err, dev, OPAL_ENDLIST);
 
        if (err) {