10 Mar, 2011

3 commits

  • This is now a run-time choice so that a single kernel can support both
    old and new generation ISI modems. Support for manually enabling the
    pipe flow is removed as it did not work properly, does not fit well
    with the socket API, and I am not aware of any use at the moment.

    Signed-off-by: Rémi Denis-Courmont
    Signed-off-by: David S. Miller

    Rémi Denis-Courmont
     
  • This provides support for newer ISI modems with no need for the
    earlier experimental compile-time alternative choice. With this,
    we can now use the same kernel and userspace with both types of
    modems.

    This also avoids confusing two different and incompatible state
    machines, actively connected vs accepted sockets, and adds
    connection response error handling (processing "SYN/RST" of sorts).

    Signed-off-by: Rémi Denis-Courmont
    Signed-off-by: David S. Miller

    Rémi Denis-Courmont
     
  • User-space sometimes needs this information. In particular, the GPRS
    context or the AT commands pipe setups may use the pipe handle as a
    reference.

    This removes the settable pipe handle with CONFIG_PHONET_PIPECTRLR.
    It did not handle error cases correctly. Furthermore, the kernel
    *could* implement a smart scheme for allocating handles (if ever
    needed), but userspace really cannot.

    Signed-off-by: Rémi Denis-Courmont
    Signed-off-by: David S. Miller

    Rémi Denis-Courmont
     

14 Oct, 2010

1 commit


09 Oct, 2010

1 commit

  • The current code works like this:

    int garbage, status;
    socklen_t len = sizeof(status);

    /* enable pipe */
    setsockopt(fd, SOL_PNPIPE, PNPIPE_ENABLE, &garbage, sizeof(garbage));
    /* disable pipe */
    setsockopt(fd, SOL_PNPIPE, PNPIPE_DISABLE, &garbage, sizeof(garbage));
    /* get status */
    getsockopt(fd, SOL_PNPIPE, PNPIPE_INQ, &status, &len);

    ...which does not follow the usual socket option pattern. This patch
    merges all three "options" into a single gettable&settable option,
    before Linux 2.6.37 gets out:

    int status;
    socklen_t len = sizeof(status);

    /* enable pipe */
    status = 1;
    setsockopt(fd, SOL_PNPIPE, PNPIPE_ENABLE, &status, sizeof(status));
    /* disable pipe */
    status = 0;
    setsockopt(fd, SOL_PNPIPE, PNPIPE_ENABLE, &status, sizeof(status));
    /* get status */
    getsockopt(fd, SOL_PNPIPE, PNPIPE_ENABLE, &status, &len);

    This also fixes the error code from EFAULT to ENOTCONN.

    Signed-off-by: Rémi Denis-Courmont
    Cc: Kumar Sanghvi
    Signed-off-by: David S. Miller

    Rémi Denis-Courmont
     

28 Sep, 2010

1 commit


16 Sep, 2010

1 commit


13 Jun, 2009

1 commit


15 Oct, 2008

1 commit


06 Oct, 2008

1 commit


30 Sep, 2008

1 commit


23 Sep, 2008

1 commit