lkml.org 
[lkml]   [2005]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 9 of 12] Fix TPM driver -- remove unnecessary __force
    On Thu, 10 Mar 2005, Alexey Dobriyan wrote:
    > On Thursday 10 March 2005 02:42, Greg KH wrote:
    >
    > > [PATCH] Add TPM hardware enablement driver
    >
    > > +static ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
    > > + size_t bufsiz)
    > > +{
    >
    > > + u32 count;
    > > + __be32 *native_size;
    > > +
    > > + native_size = (__force __be32 *) (buf + 2);
    > > + count = be32_to_cpu(*native_size);
    >
    > __force in a driver?
    >
    > count = be32_to_cpup((__be32 *) (buf + 2));
    >
    > should be enough. Once done you can remove "native_size".
    >
    > > +static int tpm_atml_recv(struct tpm_chip *chip, u8 * buf, size_t count)
    > > +{
    >
    > > + u32 size;
    >
    > > + __be32 *native_size;
    >
    > > + /* size of the data received */
    > > + native_size = (__force __be32 *) (hdr + 2);
    > > + size = be32_to_cpu(*native_size);
    >
    > > +static int tpm_nsc_recv(struct tpm_chip *chip, u8 * buf, size_t count)
    > > +{
    >
    > > + u32 size;
    > > + __be32 *native_size;
    >
    > > + native_size = (__force __be32 *) (buf + 2);
    > > + size = be32_to_cpu(*native_size);
    >
    > Same story.
    >
    > Alexey
    >
    >

    The patch below removes the unnecessary use of __force.

    Signed-off-by: Kylene Hall <kjhall@us.ibm.com>
    ---
    diff -uprN --exclude='*.orig' linux-2.6.12-rc2/drivers/char/tpm/tpm.c linux-2.6.12-rc2-tpmdd/drivers/char/tpm/tpm.c
    --- linux-2.6.12-rc2/drivers/char/tpm/tpm.c 2005-04-20 17:42:04.000000000 -0500
    +++ linux-2.6.12-rc2-tpmdd/drivers/char/tpm/tpm.c 2005-04-20 17:49:06.000000000 -0500
    @@ -142,11 +142,9 @@ static ssize_t tpm_transmit(struct tpm_c
    {
    ssize_t len;
    u32 count;
    - __be32 *native_size;
    unsigned long stop;

    - native_size = (__force __be32 *) (buf + 2);
    - count = be32_to_cpu(*native_size);
    + count = be32_to_cpu(*((__be32 *) (buf + 2)));

    if (count == 0)
    return -ENODATA;
    @@ -213,7 +211,8 @@ static ssize_t show_pcrs(struct device *
    {
    u8 data[READ_PCR_RESULT_SIZE];
    ssize_t len;
    - int i, j, index, num_pcrs;
    + int i, j, num_pcrs;
    + __be32 index;
    char *str = buf;

    struct tpm_chip *chip =
    @@ -226,7 +225,7 @@ static ssize_t show_pcrs(struct device *
    < CAP_PCR_RESULT_SIZE)
    return len;

    - num_pcrs = be32_to_cpu(*((__force __be32 *) (data + 14)));
    + num_pcrs = be32_to_cpu(*((__be32 *) (data + 14)));

    for (i = 0; i < num_pcrs; i++) {
    memcpy(data, pcrread, sizeof(pcrread));
    @@ -256,8 +255,7 @@ static ssize_t show_pubek(struct device
    {
    u8 data[READ_PUBEK_RESULT_SIZE];
    ssize_t len;
    - __be32 *native_val;
    - int i;
    + int i, rc;
    char *str = buf;

    struct tpm_chip *chip =
    @@ -283,8 +281,6 @@ static ssize_t show_pubek(struct device
    ignore checksum 20 bytes
    */

    - native_val = (__force __be32 *) (data + 34);
    -
    str +=
    sprintf(str,
    "Algorithm: %02X %02X %02X %02X\nEncscheme: %02X %02X\n"
    @@ -295,8 +291,7 @@ static ssize_t show_pubek(struct device
    data[15], data[16], data[17], data[22], data[23],
    data[24], data[25], data[26], data[27], data[28],
    data[29], data[30], data[31], data[32], data[33],
    - be32_to_cpu(*native_val)
    - );
    + be32_to_cpu(*((__be32 *) (data + 32))));

    for (i = 0; i < 256; i++) {
    str += sprintf(str, "%02X ", data[i + 39]);
    @@ -345,7 +340,7 @@ static ssize_t show_caps(struct device *
    return len;

    str += sprintf(str, "Manufacturer: 0x%x\n",
    - be32_to_cpu(*(data + 14)));
    + be32_to_cpu(*((__be32 *) (data + 14))));

    memcpy(data, cap_version, sizeof(cap_version));
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-04-28 00:29    [W:0.025 / U:29.496 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site