UPSTREAM: xhci: Fix invalid loop check in xhci_free_tt_info()
[cascardo/linux.git] / drivers / mtd / onenand / onenand_base.c
index a061bc1..b3ce12e 100644 (file)
@@ -1753,16 +1753,6 @@ static int onenand_panic_write(struct mtd_info *mtd, loff_t to, size_t len,
        pr_debug("%s: to = 0x%08x, len = %i\n", __func__, (unsigned int)to,
                        (int)len);
 
-       /* Initialize retlen, in case of early exit */
-       *retlen = 0;
-
-       /* Do not allow writes past end of device */
-       if (unlikely((to + len) > mtd->size)) {
-               printk(KERN_ERR "%s: Attempt write to past end of device\n",
-                       __func__);
-               return -EINVAL;
-       }
-
        /* Reject writes, which are not page aligned */
         if (unlikely(NOTALIGNED(to) || NOTALIGNED(len))) {
                printk(KERN_ERR "%s: Attempt to write not page aligned data\n",
@@ -1890,13 +1880,6 @@ static int onenand_write_ops_nolock(struct mtd_info *mtd, loff_t to,
        ops->retlen = 0;
        ops->oobretlen = 0;
 
-       /* Do not allow writes past end of device */
-       if (unlikely((to + len) > mtd->size)) {
-               printk(KERN_ERR "%s: Attempt write to past end of device\n",
-                       __func__);
-               return -EINVAL;
-       }
-
        /* Reject writes, which are not page aligned */
         if (unlikely(NOTALIGNED(to) || NOTALIGNED(len))) {
                printk(KERN_ERR "%s: Attempt to write not page aligned data\n",
@@ -2493,12 +2476,6 @@ static int onenand_erase(struct mtd_info *mtd, struct erase_info *instr)
                        (unsigned long long)instr->addr,
                        (unsigned long long)instr->len);
 
-       /* Do not allow erase past end of device */
-       if (unlikely((len + addr) > mtd->size)) {
-               printk(KERN_ERR "%s: Erase past end of device\n", __func__);
-               return -EINVAL;
-       }
-
        if (FLEXONENAND(this)) {
                /* Find the eraseregion of this address */
                int i = flexonenand_region(mtd, addr);
@@ -2525,8 +2502,6 @@ static int onenand_erase(struct mtd_info *mtd, struct erase_info *instr)
                return -EINVAL;
        }
 
-       instr->fail_addr = MTD_FAIL_ADDR_UNKNOWN;
-
        /* Grab the lock and see if the device is available */
        onenand_get_device(mtd, FL_ERASING);
 
@@ -4103,33 +4078,34 @@ int onenand_scan(struct mtd_info *mtd, int maxchips)
        mtd->oobavail = this->ecclayout->oobavail;
 
        mtd->ecclayout = this->ecclayout;
+       mtd->ecc_strength = 1;
 
        /* Fill in remaining MTD driver data */
        mtd->type = ONENAND_IS_MLC(this) ? MTD_MLCNANDFLASH : MTD_NANDFLASH;
        mtd->flags = MTD_CAP_NANDFLASH;
-       mtd->erase = onenand_erase;
-       mtd->point = NULL;
-       mtd->unpoint = NULL;
-       mtd->read = onenand_read;
-       mtd->write = onenand_write;
-       mtd->read_oob = onenand_read_oob;
-       mtd->write_oob = onenand_write_oob;
-       mtd->panic_write = onenand_panic_write;
+       mtd->_erase = onenand_erase;
+       mtd->_point = NULL;
+       mtd->_unpoint = NULL;
+       mtd->_read = onenand_read;
+       mtd->_write = onenand_write;
+       mtd->_read_oob = onenand_read_oob;
+       mtd->_write_oob = onenand_write_oob;
+       mtd->_panic_write = onenand_panic_write;
 #ifdef CONFIG_MTD_ONENAND_OTP
-       mtd->get_fact_prot_info = onenand_get_fact_prot_info;
-       mtd->read_fact_prot_reg = onenand_read_fact_prot_reg;
-       mtd->get_user_prot_info = onenand_get_user_prot_info;
-       mtd->read_user_prot_reg = onenand_read_user_prot_reg;
-       mtd->write_user_prot_reg = onenand_write_user_prot_reg;
-       mtd->lock_user_prot_reg = onenand_lock_user_prot_reg;
+       mtd->_get_fact_prot_info = onenand_get_fact_prot_info;
+       mtd->_read_fact_prot_reg = onenand_read_fact_prot_reg;
+       mtd->_get_user_prot_info = onenand_get_user_prot_info;
+       mtd->_read_user_prot_reg = onenand_read_user_prot_reg;
+       mtd->_write_user_prot_reg = onenand_write_user_prot_reg;
+       mtd->_lock_user_prot_reg = onenand_lock_user_prot_reg;
 #endif
-       mtd->sync = onenand_sync;
-       mtd->lock = onenand_lock;
-       mtd->unlock = onenand_unlock;
-       mtd->suspend = onenand_suspend;
-       mtd->resume = onenand_resume;
-       mtd->block_isbad = onenand_block_isbad;
-       mtd->block_markbad = onenand_block_markbad;
+       mtd->_sync = onenand_sync;
+       mtd->_lock = onenand_lock;
+       mtd->_unlock = onenand_unlock;
+       mtd->_suspend = onenand_suspend;
+       mtd->_resume = onenand_resume;
+       mtd->_block_isbad = onenand_block_isbad;
+       mtd->_block_markbad = onenand_block_markbad;
        mtd->owner = THIS_MODULE;
        mtd->writebufsize = mtd->writesize;