1. 20 9月, 2009 5 次提交
  2. 04 9月, 2009 17 次提交
  3. 03 9月, 2009 3 次提交
    • D
      mtd: nftl: fix offset alignments · 16f05c2b
      Dimitri Gorokhovik 提交于
      Arithmetic conversion in the mask computation makes the upper word
      of the second argument passed down to mtd->read_oob(), be always 0
      (assuming 'offs' being a 64-bit signed long long type, and
      'mtd->writesize' being a 32-bit unsigned int type).
      
      This patch applies over the other one adding masking in nftl_write,
      "nftl: write support is broken".
      Signed-off-by: NDimitri Gorokhovik <dimitri.gorokhovik@free.fr>
      Cc: Tim Gardner <tim.gardner@canonical.com>
      Cc: Scott James Remnant <scott@canonical.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      16f05c2b
    • D
      mtd: nftl: write support is broken · 4149ed1a
      Dimitri Gorokhovik 提交于
      Write support is broken in NFTL. Fix it.
      
      Signed-off-by: <dimitri.gorokhovik@free.fr>
      Cc: Tim Gardner <tim.gardner@canonical.com>
      Cc: Scott James Remnant <scott@canonical.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      4149ed1a
    • A
      mtd: m25p80: fix null pointer dereference bug · edcb3b14
      Anton Vorontsov 提交于
      This patch fixes the following oops, observed with MTD_PARTITIONS=n:
      
      m25p80 spi32766.0: m25p80 (1024 Kbytes)
      Unable to handle kernel paging request for data at address 0x00000008
      Faulting instruction address: 0xc03a54b0
      Oops: Kernel access of bad area, sig: 11 [#1]
      Modules linked in:
      NIP: c03a54b0 LR: c03a5494 CTR: c01e98b8
      REGS: ef82bb60 TRAP: 0300   Not tainted  (2.6.31-rc4-00167-g4733fd32)
      MSR: 00029000 <EE,ME,CE>  CR: 24022022  XER: 20000000
      DEAR: 00000008, ESR: 00000000
      TASK = ef82c000[1] 'swapper' THREAD: ef82a000
      GPR00: 00000000 ef82bc10 ef82c000 0000002e 00001eb8 ffffffff c01e9824 00000036
      GPR08: c054ed40 c0542a08 00001eb8 00004000 22022022 1001a1a0 3ff8fd00 00000000
      GPR16: 00000000 00000001 00000000 00000000 ef82bddc c0530000 efbef500 ef8356d0
      GPR24: 00000000 ef8356d0 00000000 efbf7a00 c0530ec4 ffffffed efbf5300 c0541f98
      NIP [c03a54b0] m25p_probe+0x22c/0x354
      LR [c03a5494] m25p_probe+0x210/0x354
      Call Trace:
      [ef82bc10] [c03a5494] m25p_probe+0x210/0x354 (unreliable)
      [ef82bca0] [c024e37c] spi_drv_probe+0x2c/0x3c
      [ef82bcb0] [c01f1afc] driver_probe_device+0xa4/0x178
      [ef82bcd0] [c01f06e8] bus_for_each_drv+0x6c/0xa8
      [ef82bd00] [c01f1a34] device_attach+0x84/0xa8
      ...
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Cc: David Brownell <david-b@pacbell.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      edcb3b14
  4. 01 9月, 2009 1 次提交
    • B
      ata_piix: parallel scanning on PATA needs an extra locking · 60c3be38
      Bartlomiej Zolnierkiewicz 提交于
      Commit log for commit 517d3cc1
      ("[libata] ata_piix: Enable parallel scan") says:
      
          This patch turns on parallel scanning for the ata_piix driver.
          This driver is used on most netbooks (no AHCI for cheap storage it seems).
          The scan is the dominating time factor in the kernel boot for these
          devices; with this flag it gets cut in half for the device I used
          for testing (eeepc).
          Alan took a look at the driver source and concluded that it ought to be safe
          to do for this driver.  Alan has also checked with the hardware team.
      
      and it is all true but once we put all things together additional
      constraints for PATA controllers show up (some hardware registers
      have per-host not per-port atomicity) and we risk misprogramming
      the controller.
      
      I used the following test to check whether the issue is real:
      
        @@ -736,8 +736,20 @@ static void piix_set_piomode(struct ata_
         			(timings[pio][1] << 8);
         	}
         	pci_write_config_word(dev, master_port, master_data);
        -	if (is_slave)
        +	if (is_slave) {
        +		if (ap->port_no == 0) {
        +			u8 tmp = slave_data;
        +
        +			while (slave_data == tmp) {
        +				pci_read_config_byte(dev, slave_port, &tmp);
        +				msleep(50);
        +			}
        +
        +			dev_printk(KERN_ERR, &dev->dev, "PATA parallel scan "
        +				   "race detected\n");
        +		}
         		pci_write_config_byte(dev, slave_port, slave_data);
        +	}
      
         	/* Ensure the UDMA bit is off - it will be turned back on if
         	   UDMA is selected */
      
      and it indeed triggered the error message.
      
      Lets fix all such races by adding an extra locking to ->set_piomode
      and ->set_dmamode methods for PATA controllers.
      
      [ Alan: would be better to take the host lock in libata-core for these
        cases so that we fix all the adapters in one swoop.  "Looks fine as a
        temproary quickfix tho" ]
      
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Acked-by: NAlan Cox <alan@linux.intel.com>
      Cc: Jeff Garzik <jgarzik@redhat.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      60c3be38
  5. 31 8月, 2009 7 次提交
  6. 30 8月, 2009 2 次提交
  7. 29 8月, 2009 3 次提交
  8. 28 8月, 2009 1 次提交
  9. 27 8月, 2009 1 次提交