Changeset 31988


Ignore:
Timestamp:
May 9, 2017, 4:51:56 AM (2 months ago)
Author:
brainslayer
Message:

fix usual deadlock

Location:
src/router/libutils
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/router/libutils/gpio.c

    r31970 r31988  
    6868        char strdir[64];
    6969        int fd;
     70        int tries = 0;
    7071        snprintf(str, sizeof(str), "/sys/class/gpio/gpio%d/value", pin);
    7172        snprintf(strdir, sizeof(strdir), "/sys/class/gpio/gpio%d/direction", pin);
     
    7576                if (writeint("/sys/class/gpio/export", pin))
    7677                        return; //prevent deadlock
    77                 goto new_try;
     78                if ((tries++) < 10)
     79                        goto new_try;
     80                else {
     81                        fprintf(stderr, "gpio %d has a problem\n", pin);
     82                        return;
     83                }
    7884        }
    7985        close(fd);
     
    8995        FILE *fp;
    9096        int fd;
     97        int tries = 0;
    9198        int val = 0;
    9299        sprintf(str, "/sys/class/gpio/gpio%d/value", pin);
     
    97104                if (writeint("/sys/class/gpio/export", pin))
    98105                        return 0;       // prevent deadlock
    99                 goto new_try;
     106                if ((tries++) < 10)
     107                        goto new_try;
     108                else {
     109                        fprintf(stderr, "gpio %d has a problem\n", pin);
     110                        return 0;
     111                }
    100112        }
    101113        fclose(fp);
  • src/router/libutils/utils.c

    r31985 r31988  
    55045504                break;
    55055505        case ROUTER_WRT_3200ACM:
    5506                 usb_power = 0x02f;
     5506//              usb_power = 0x02f;
    55075507                power_gpio = 0x000;
    55085508                diag_gpio = 0x100;
Note: See TracChangeset for help on using the changeset viewer.