Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0ffa0285052607513a29f529ddb5061c907fd8a6
Commit:     0ffa0285052607513a29f529ddb5061c907fd8a6
Parent:     7f8c7619ea1ff5ab8e0b08c8120d629834ef4253
Author:     Hans-Peter Nilsson <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 12 00:52:45 2007 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Mon Feb 12 09:48:31 2007 -0800

    [PATCH] SPI cleanup() method param becomes non-const
    
    I'd like to assign NULL to kfree()d members of a structure.  I can't do
    that without ugly casting (see the PXA patch) when the structure pointed to
    is const-qualified.  I don't really see a reason why the cleanup method
    isn't allowed to alter the object it should clean up.  :-)
    
    No, I didn't test the PXA patch, but I verified that the NULL-assignment
    doesn't stop me from doing rmmod/insmodding my own spi_bitbang-based
    driver.
    
    Signed-off-by: Hans-Peter Nilsson <[EMAIL PROTECTED]>
    Signed-off-by: David Brownell <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 drivers/spi/pxa2xx_spi.c        |    4 ++--
 drivers/spi/spi.c               |    2 +-
 drivers/spi/spi_bitbang.c       |    2 +-
 include/linux/spi/spi.h         |    2 +-
 include/linux/spi/spi_bitbang.h |    2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/spi/pxa2xx_spi.c b/drivers/spi/pxa2xx_spi.c
index 8b41f9c..9f2c887 100644
--- a/drivers/spi/pxa2xx_spi.c
+++ b/drivers/spi/pxa2xx_spi.c
@@ -1214,9 +1214,9 @@ static int setup(struct spi_device *spi)
        return 0;
 }
 
-static void cleanup(const struct spi_device *spi)
+static void cleanup(struct spi_device *spi)
 {
-       struct chip_data *chip = spi_get_ctldata((struct spi_device *)spi);
+       struct chip_data *chip = spi_get_ctldata(spi);
 
        kfree(chip);
 }
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 6307428..2328128 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -32,7 +32,7 @@
  */
 static void spidev_release(struct device *dev)
 {
-       const struct spi_device *spi = to_spi_device(dev);
+       struct spi_device       *spi = to_spi_device(dev);
 
        /* spi masters may cleanup for released devices */
        if (spi->master->cleanup)
diff --git a/drivers/spi/spi_bitbang.c b/drivers/spi/spi_bitbang.c
index a5dadc7..24a330d 100644
--- a/drivers/spi/spi_bitbang.c
+++ b/drivers/spi/spi_bitbang.c
@@ -238,7 +238,7 @@ EXPORT_SYMBOL_GPL(spi_bitbang_setup);
 /**
  * spi_bitbang_cleanup - default cleanup for per-word I/O loops
  */
-void spi_bitbang_cleanup(const struct spi_device *spi)
+void spi_bitbang_cleanup(struct spi_device *spi)
 {
        kfree(spi->controller_state);
 }
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
index 851b25d..9d8d631 100644
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -220,7 +220,7 @@ struct spi_master {
                                                struct spi_message *mesg);
 
        /* called on release() to free memory provided by spi_master */
-       void                    (*cleanup)(const struct spi_device *spi);
+       void                    (*cleanup)(struct spi_device *spi);
 };
 
 static inline void *spi_master_get_devdata(struct spi_master *master)
diff --git a/include/linux/spi/spi_bitbang.h b/include/linux/spi/spi_bitbang.h
index 16ce178..2e8c048 100644
--- a/include/linux/spi/spi_bitbang.h
+++ b/include/linux/spi/spi_bitbang.h
@@ -55,7 +55,7 @@ struct spi_bitbang {
  * methods, if you like.
  */
 extern int spi_bitbang_setup(struct spi_device *spi);
-extern void spi_bitbang_cleanup(const struct spi_device *spi);
+extern void spi_bitbang_cleanup(struct spi_device *spi);
 extern int spi_bitbang_transfer(struct spi_device *spi, struct spi_message *m);
 extern int spi_bitbang_setup_transfer(struct spi_device *spi,
                                      struct spi_transfer *t);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to