Merge ../bleed-2.6
authorGreg KH <greg@press.(none)>
Fri, 28 Oct 2005 17:13:16 +0000 (10:13 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 28 Oct 2005 17:13:16 +0000 (10:13 -0700)
17 files changed:
1  2 
arch/arm/mach-sa1100/neponset.c
drivers/mtd/maps/sa1100-flash.c
drivers/net/wan/cosa.c
drivers/scsi/osst.c
drivers/scsi/sg.c
drivers/scsi/st.c
drivers/serial/pxa.c
drivers/usb/core/hcd.c
drivers/usb/gadget/dummy_hcd.c
drivers/usb/gadget/omap_udc.c
drivers/usb/gadget/pxa2xx_udc.c
drivers/usb/host/isp116x-hcd.c
drivers/usb/host/sl811-hcd.c
fs/partitions/check.c
include/linux/genhd.h
include/linux/i2o.h
lib/kobject_uevent.c

@@@ -178,27 -178,33 +178,27 @@@ static int neponset_probe(struct devic
  /*
   * LDM power management.
   */
 -static int neponset_suspend(struct device *dev, pm_message_t state, u32 level)
 +static int neponset_suspend(struct device *dev, pm_message_t state)
  {
        /*
         * Save state.
         */
 -      if (level == SUSPEND_SAVE_STATE ||
 -          level == SUSPEND_DISABLE ||
 -          level == SUSPEND_POWER_DOWN) {
 -              if (!dev->power.saved_state)
 -                      dev->power.saved_state = kmalloc(sizeof(unsigned int), GFP_KERNEL);
 -              if (!dev->power.saved_state)
 -                      return -ENOMEM;
 -
 -              *(unsigned int *)dev->power.saved_state = NCR_0;
 -      }
 +      if (!dev->power.saved_state)
 +              dev->power.saved_state = kmalloc(sizeof(unsigned int), GFP_KERNEL);
 +      if (!dev->power.saved_state)
 +              return -ENOMEM;
 +
 +      *(unsigned int *)dev->power.saved_state = NCR_0;
  
        return 0;
  }
  
 -static int neponset_resume(struct device *dev, u32 level)
 +static int neponset_resume(struct device *dev)
  {
 -      if (level == RESUME_RESTORE_STATE || level == RESUME_ENABLE) {
 -              if (dev->power.saved_state) {
 -                      NCR_0 = *(unsigned int *)dev->power.saved_state;
 -                      kfree(dev->power.saved_state);
 -                      dev->power.saved_state = NULL;
 -              }
 +      if (dev->power.saved_state) {
 +              NCR_0 = *(unsigned int *)dev->power.saved_state;
 +              kfree(dev->power.saved_state);
 +              dev->power.saved_state = NULL;
        }
  
        return 0;
@@@ -325,9 -331,17 +325,17 @@@ static int __init neponset_init(void
  subsys_initcall(neponset_init);
  
  static struct map_desc neponset_io_desc[] __initdata = {
-  /* virtual     physical    length type */
-   { 0xf3000000, 0x10000000, SZ_1M, MT_DEVICE }, /* System Registers */
-   { 0xf4000000, 0x40000000, SZ_1M, MT_DEVICE }  /* SA-1111 */
+       {       /* System Registers */
+               .virtual        =  0xf3000000,
+               .pfn            = __phys_to_pfn(0x10000000),
+               .length         = SZ_1M,
+               .type           = MT_DEVICE
+       }, {    /* SA-1111 */
+               .virtual        =  0xf4000000,
+               .pfn            = __phys_to_pfn(0x40000000),
+               .length         = SZ_1M,
+               .type           = MT_DEVICE
+       }
  };
  
  void __init neponset_map_io(void)
@@@ -21,6 -21,7 +21,7 @@@
  #include <linux/mtd/partitions.h>
  #include <linux/mtd/concat.h>
  
+ #include <asm/hardware.h>
  #include <asm/io.h>
  #include <asm/sizes.h>
  #include <asm/mach/flash.h>
@@@ -402,21 -403,21 +403,21 @@@ static int __exit sa1100_mtd_remove(str
  }
  
  #ifdef CONFIG_PM
 -static int sa1100_mtd_suspend(struct device *dev, pm_message_t state, u32 level)
 +static int sa1100_mtd_suspend(struct device *dev, pm_message_t state)
  {
        struct sa_info *info = dev_get_drvdata(dev);
        int ret = 0;
  
 -      if (info && level == SUSPEND_SAVE_STATE)
 +      if (info)
                ret = info->mtd->suspend(info->mtd);
  
        return ret;
  }
  
 -static int sa1100_mtd_resume(struct device *dev, u32 level)
 +static int sa1100_mtd_resume(struct device *dev)
  {
        struct sa_info *info = dev_get_drvdata(dev);
 -      if (info && level == RESUME_RESTORE_STATE)
 +      if (info)
                info->mtd->resume(info->mtd);
        return 0;
  }
diff --combined drivers/net/wan/cosa.c
@@@ -400,7 -400,7 +400,7 @@@ static int __init cosa_init(void
                goto out_chrdev;
        }
        for (i=0; i<nr_cards; i++) {
 -              class_device_create(cosa_class, MKDEV(cosa_major, i),
 +              class_device_create(cosa_class, NULL, MKDEV(cosa_major, i),
                                NULL, "cosa%d", i);
                err = devfs_mk_cdev(MKDEV(cosa_major, i),
                                S_IFCHR|S_IRUSR|S_IWUSR,
@@@ -1617,8 -1617,7 +1617,7 @@@ static int get_wait_data(struct cosa_da
                        return r;
                }
                /* sleep if not ready to read */
-               set_current_state(TASK_INTERRUPTIBLE);
-               schedule_timeout(1);
+               schedule_timeout_interruptible(1);
        }
        printk(KERN_INFO "cosa: timeout in get_wait_data (status 0x%x)\n",
                cosa_getstatus(cosa));
@@@ -1644,8 -1643,7 +1643,7 @@@ static int put_wait_data(struct cosa_da
                }
  #if 0
                /* sleep if not ready to read */
-               current->state = TASK_INTERRUPTIBLE;
-               schedule_timeout(1);
+               schedule_timeout_interruptible(1);
  #endif
        }
        printk(KERN_INFO "cosa%d: timeout in put_wait_data (status 0x%x)\n",
diff --combined drivers/scsi/osst.c
@@@ -5146,7 -5146,8 +5146,8 @@@ static long osst_compat_ioctl(struct fi
  /* Try to allocate a new tape buffer skeleton. Caller must not hold os_scsi_tapes_lock */
  static struct osst_buffer * new_tape_buffer( int from_initialization, int need_dma, int max_sg )
  {
-       int i, priority;
+       int i;
+       gfp_t priority;
        struct osst_buffer *tb;
  
        if (from_initialization)
  /* Try to allocate a temporary (while a user has the device open) enlarged tape buffer */
  static int enlarge_buffer(struct osst_buffer *STbuffer, int need_dma)
  {
-       int segs, nbr, max_segs, b_size, priority, order, got;
+       int segs, nbr, max_segs, b_size, order, got;
+       gfp_t priority;
  
        if (STbuffer->buffer_size >= OS_FRAME_SIZE)
                return 1;
@@@ -5627,7 -5629,7 +5629,7 @@@ static void osst_sysfs_add(dev_t dev, s
  
        if (!osst_sysfs_valid) return;
  
 -      osst_class_member = class_device_create(osst_sysfs_class, dev, device, "%s", name);
 +      osst_class_member = class_device_create(osst_sysfs_class, NULL, dev, device, "%s", name);
        if (IS_ERR(osst_class_member)) {
                printk(KERN_WARNING "osst :W: Unable to add sysfs class member %s\n", name);
                return;
diff --combined drivers/scsi/sg.c
@@@ -104,8 -104,8 +104,8 @@@ static int sg_allow_dio = SG_ALLOW_DIO_
  
  #define SG_DEV_ARR_LUMP 32    /* amount to over allocate sg_dev_arr by */
  
 -static int sg_add(struct class_device *);
 -static void sg_remove(struct class_device *);
 +static int sg_add(struct class_device *, struct class_interface *);
 +static void sg_remove(struct class_device *, struct class_interface *);
  
  static Scsi_Request *dummy_cmdp;      /* only used for sizeof */
  
@@@ -1506,7 -1506,7 +1506,7 @@@ static int sg_alloc(struct gendisk *dis
  }
  
  static int
 -sg_add(struct class_device *cl_dev)
 +sg_add(struct class_device *cl_dev, struct class_interface *cl_intf)
  {
        struct scsi_device *scsidp = to_scsi_device(cl_dev->dev);
        struct gendisk *disk;
        if (sg_sysfs_valid) {
                struct class_device * sg_class_member;
  
 -              sg_class_member = class_device_create(sg_sysfs_class,
 +              sg_class_member = class_device_create(sg_sysfs_class, NULL,
                                MKDEV(SCSI_GENERIC_MAJOR, k), 
                                cl_dev->dev, "%s", 
                                disk->disk_name);
@@@ -1582,7 -1582,7 +1582,7 @@@ out
  }
  
  static void
 -sg_remove(struct class_device *cl_dev)
 +sg_remove(struct class_device *cl_dev, struct class_interface *cl_intf)
  {
        struct scsi_device *scsidp = to_scsi_device(cl_dev->dev);
        Sg_device *sdp = NULL;
@@@ -2644,7 -2644,7 +2644,7 @@@ static char 
  sg_page_malloc(int rqSz, int lowDma, int *retSzp)
  {
        char *resp = NULL;
-       int page_mask;
+       gfp_t page_mask;
        int order, a_size;
        int resSz = rqSz;
  
diff --combined drivers/scsi/st.c
@@@ -3577,7 -3577,8 +3577,8 @@@ static long st_compat_ioctl(struct fil
  static struct st_buffer *
   new_tape_buffer(int from_initialization, int need_dma, int max_sg)
  {
-       int i, priority, got = 0, segs = 0;
+       int i, got = 0, segs = 0;
+       gfp_t priority;
        struct st_buffer *tb;
  
        if (from_initialization)
  /* Try to allocate enough space in the tape buffer */
  static int enlarge_buffer(struct st_buffer * STbuffer, int new_size, int need_dma)
  {
-       int segs, nbr, max_segs, b_size, priority, order, got;
+       int segs, nbr, max_segs, b_size, order, got;
+       gfp_t priority;
  
        if (new_size <= STbuffer->buffer_size)
                return 1;
@@@ -4375,7 -4377,7 +4377,7 @@@ static void do_create_class_files(struc
                snprintf(name, 10, "%s%s%s", rew ? "n" : "",
                         STp->disk->disk_name, st_formats[i]);
                st_class_member =
 -                      class_device_create(st_sysfs_class,
 +                      class_device_create(st_sysfs_class, NULL,
                                            MKDEV(SCSI_TAPE_MAJOR,
                                                  TAPE_MINOR(dev_num, mode, rew)),
                                            &STp->device->sdev_gendev, "%s", name);
diff --combined drivers/serial/pxa.c
@@@ -358,6 -358,9 +358,9 @@@ static int serial_pxa_startup(struct ua
        unsigned long flags;
        int retval;
  
+       if (port->line == 3) /* HWUART */
+               up->mcr |= UART_MCR_AFE;
+       else
        up->mcr = 0;
  
        /*
@@@ -481,8 -484,10 +484,10 @@@ serial_pxa_set_termios(struct uart_por
  
        if ((up->port.uartclk / quot) < (2400 * 16))
                fcr = UART_FCR_ENABLE_FIFO | UART_FCR_PXAR1;
-       else
+       else if ((up->port.uartclk / quot) < (230400 * 16))
                fcr = UART_FCR_ENABLE_FIFO | UART_FCR_PXAR8;
+       else
+               fcr = UART_FCR_ENABLE_FIFO | UART_FCR_PXAR32;
  
        /*
         * Ok, we're now changing the port state.  Do it with
@@@ -772,6 -777,20 +777,20 @@@ static struct uart_pxa_port serial_pxa_
                .ops            = &serial_pxa_pops,
                .line           = 2,
        },
+   }, {  /* HWUART */
+       .name   = "HWUART",
+       .cken   = CKEN4_HWUART,
+       .port = {
+               .type           = PORT_PXA,
+               .iotype         = UPIO_MEM,
+               .membase        = (void *)&HWUART,
+               .mapbase        = __PREG(HWUART),
+               .irq            = IRQ_HWUART,
+               .uartclk        = 921600 * 16,
+               .fifosize       = 64,
+               .ops            = &serial_pxa_pops,
+               .line           = 3,
+       },
    }
  };
  
@@@ -786,21 -805,21 +805,21 @@@ static struct uart_driver serial_pxa_re
        .cons           = PXA_CONSOLE,
  };
  
 -static int serial_pxa_suspend(struct device *_dev, pm_message_t state, u32 level)
 +static int serial_pxa_suspend(struct device *_dev, pm_message_t state)
  {
          struct uart_pxa_port *sport = dev_get_drvdata(_dev);
  
 -        if (sport && level == SUSPEND_DISABLE)
 +        if (sport)
                  uart_suspend_port(&serial_pxa_reg, &sport->port);
  
          return 0;
  }
  
 -static int serial_pxa_resume(struct device *_dev, u32 level)
 +static int serial_pxa_resume(struct device *_dev)
  {
          struct uart_pxa_port *sport = dev_get_drvdata(_dev);
  
 -        if (sport && level == RESUME_ENABLE)
 +        if (sport)
                  uart_resume_port(&serial_pxa_reg, &sport->port);
  
          return 0;
diff --combined drivers/usb/core/hcd.c
@@@ -782,8 -782,7 +782,8 @@@ static int usb_register_bus(struct usb_
                return -E2BIG;
        }
  
 -      bus->class_dev = class_device_create(usb_host_class, MKDEV(0,0), bus->controller, "usb_host%d", busnum);
 +      bus->class_dev = class_device_create(usb_host_class, NULL, MKDEV(0,0),
 +                                           bus->controller, "usb_host%d", busnum);
        if (IS_ERR(bus->class_dev)) {
                clear_bit(busnum, busmap.busmap);
                up(&usb_bus_list_lock);
@@@ -1113,7 -1112,7 +1113,7 @@@ static void urb_unlink (struct urb *urb
   * expects usb_submit_urb() to have sanity checked and conditioned all
   * inputs in the urb
   */
- static int hcd_submit_urb (struct urb *urb, unsigned mem_flags)
+ static int hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
  {
        int                     status;
        struct usb_hcd          *hcd = urb->dev->bus->hcpriv;
@@@ -470,7 -470,7 +470,7 @@@ static int dummy_disable (struct usb_e
  }
  
  static struct usb_request *
- dummy_alloc_request (struct usb_ep *_ep, unsigned mem_flags)
+ dummy_alloc_request (struct usb_ep *_ep, gfp_t mem_flags)
  {
        struct dummy_ep         *ep;
        struct dummy_request    *req;
@@@ -507,7 -507,7 +507,7 @@@ dummy_alloc_buffer 
        struct usb_ep *_ep,
        unsigned bytes,
        dma_addr_t *dma,
-       unsigned mem_flags
+       gfp_t mem_flags
  ) {
        char                    *retval;
        struct dummy_ep         *ep;
@@@ -541,7 -541,7 +541,7 @@@ fifo_complete (struct usb_ep *ep, struc
  
  static int
  dummy_queue (struct usb_ep *_ep, struct usb_request *_req,
-               unsigned mem_flags)
+               gfp_t mem_flags)
  {
        struct dummy_ep         *ep;
        struct dummy_request    *req;
@@@ -935,10 -935,14 +935,10 @@@ static int dummy_udc_remove (struct dev
        return 0;
  }
  
 -static int dummy_udc_suspend (struct device *dev, pm_message_t state,
 -              u32 level)
 +static int dummy_udc_suspend (struct device *dev, pm_message_t state)
  {
        struct dummy    *dum = dev_get_drvdata(dev);
  
 -      if (level != SUSPEND_DISABLE)
 -              return 0;
 -
        dev_dbg (dev, "%s\n", __FUNCTION__);
        spin_lock_irq (&dum->lock);
        dum->udc_suspended = 1;
        return 0;
  }
  
 -static int dummy_udc_resume (struct device *dev, u32 level)
 +static int dummy_udc_resume (struct device *dev)
  {
        struct dummy    *dum = dev_get_drvdata(dev);
  
 -      if (level != RESUME_ENABLE)
 -              return 0;
 -
        dev_dbg (dev, "%s\n", __FUNCTION__);
        spin_lock_irq (&dum->lock);
        dum->udc_suspended = 0;
@@@ -992,7 -999,7 +992,7 @@@ static int dummy_urb_enqueue 
        struct usb_hcd                  *hcd,
        struct usb_host_endpoint        *ep,
        struct urb                      *urb,
-       unsigned                        mem_flags
+       gfp_t                           mem_flags
  ) {
        struct dummy    *dum;
        struct urbp     *urbp;
@@@ -1929,10 -1936,14 +1929,10 @@@ static int dummy_hcd_remove (struct dev
        return 0;
  }
  
 -static int dummy_hcd_suspend (struct device *dev, pm_message_t state,
 -              u32 level)
 +static int dummy_hcd_suspend (struct device *dev, pm_message_t state)
  {
        struct usb_hcd          *hcd;
  
 -      if (level != SUSPEND_DISABLE)
 -              return 0;
 -
        dev_dbg (dev, "%s\n", __FUNCTION__);
        hcd = dev_get_drvdata (dev);
  
        return 0;
  }
  
 -static int dummy_hcd_resume (struct device *dev, u32 level)
 +static int dummy_hcd_resume (struct device *dev)
  {
        struct usb_hcd          *hcd;
  
 -      if (level != RESUME_ENABLE)
 -              return 0;
 -
        dev_dbg (dev, "%s\n", __FUNCTION__);
        hcd = dev_get_drvdata (dev);
        hcd->state = HC_STATE_RUNNING;
@@@ -269,7 -269,7 +269,7 @@@ static int omap_ep_disable(struct usb_e
  /*-------------------------------------------------------------------------*/
  
  static struct usb_request *
- omap_alloc_request(struct usb_ep *ep, unsigned gfp_flags)
+ omap_alloc_request(struct usb_ep *ep, gfp_t gfp_flags)
  {
        struct omap_req *req;
  
@@@ -298,7 -298,7 +298,7 @@@ omap_alloc_buffer
        struct usb_ep   *_ep,
        unsigned        bytes,
        dma_addr_t      *dma,
-       unsigned        gfp_flags
+       gfp_t           gfp_flags
  )
  {
        void            *retval;
@@@ -937,7 -937,7 +937,7 @@@ static void dma_channel_release(struct 
  /*-------------------------------------------------------------------------*/
  
  static int
- omap_ep_queue(struct usb_ep *_ep, struct usb_request *_req, unsigned gfp_flags)
+ omap_ep_queue(struct usb_ep *_ep, struct usb_request *_req, gfp_t gfp_flags)
  {
        struct omap_ep  *ep = container_of(_ep, struct omap_ep, ep);
        struct omap_req *req = container_of(_req, struct omap_req, req);
@@@ -2909,10 -2909,12 +2909,10 @@@ static int __exit omap_udc_remove(struc
   * may involve talking to an external transceiver (e.g. isp1301).
   */
  
 -static int omap_udc_suspend(struct device *dev, pm_message_t message, u32 level)
 +static int omap_udc_suspend(struct device *dev, pm_message_t message)
  {
        u32     devstat;
  
 -      if (level != SUSPEND_POWER_DOWN)
 -              return 0;
        devstat = UDC_DEVSTAT_REG;
  
        /* we're requesting 48 MHz clock if the pullup is enabled
        return 0;
  }
  
 -static int omap_udc_resume(struct device *dev, u32 level)
 +static int omap_udc_resume(struct device *dev)
  {
 -      if (level != RESUME_POWER_ON)
 -              return 0;
 -
        DBG("resume + wakeup/SRP\n");
        omap_pullup(&udc->gadget, 1);
  
@@@ -332,7 -332,7 +332,7 @@@ static int pxa2xx_ep_disable (struct us
   *    pxa2xx_ep_alloc_request - allocate a request data structure
   */
  static struct usb_request *
- pxa2xx_ep_alloc_request (struct usb_ep *_ep, unsigned gfp_flags)
+ pxa2xx_ep_alloc_request (struct usb_ep *_ep, gfp_t gfp_flags)
  {
        struct pxa2xx_request *req;
  
@@@ -367,7 -367,7 +367,7 @@@ pxa2xx_ep_free_request (struct usb_ep *
   */
  static void *
  pxa2xx_ep_alloc_buffer(struct usb_ep *_ep, unsigned bytes,
-       dma_addr_t *dma, unsigned gfp_flags)
+       dma_addr_t *dma, gfp_t gfp_flags)
  {
        char                    *retval;
  
@@@ -422,7 -422,7 +422,7 @@@ static inline void ep0_idle (struct pxa
  }
  
  static int
- write_packet(volatile unsigned long *uddr, struct pxa2xx_request *req, unsigned max)
+ write_packet(volatile u32 *uddr, struct pxa2xx_request *req, unsigned max)
  {
        u8              *buf;
        unsigned        length, count;
@@@ -874,7 -874,7 +874,7 @@@ done
  /*-------------------------------------------------------------------------*/
  
  static int
- pxa2xx_ep_queue(struct usb_ep *_ep, struct usb_request *_req, unsigned gfp_flags)
+ pxa2xx_ep_queue(struct usb_ep *_ep, struct usb_request *_req, gfp_t gfp_flags)
  {
        struct pxa2xx_request   *req;
        struct pxa2xx_ep        *ep;
@@@ -2602,23 -2602,24 +2602,23 @@@ static int __exit pxa2xx_udc_remove(str
   * VBUS IRQs should probably be ignored so that the PXA device just acts
   * "dead" to USB hosts until system resume.
   */
 -static int pxa2xx_udc_suspend(struct device *dev, pm_message_t state, u32 level)
 +static int pxa2xx_udc_suspend(struct device *dev, pm_message_t state)
  {
        struct pxa2xx_udc       *udc = dev_get_drvdata(dev);
  
 -      if (level == SUSPEND_POWER_DOWN) {
 -              if (!udc->mach->udc_command)
 -                      WARN("USB host won't detect disconnect!\n");
 -              pullup(udc, 0);
 -      }
 +      if (!udc->mach->udc_command)
 +              WARN("USB host won't detect disconnect!\n");
 +      pullup(udc, 0);
 +
        return 0;
  }
  
 -static int pxa2xx_udc_resume(struct device *dev, u32 level)
 +static int pxa2xx_udc_resume(struct device *dev)
  {
        struct pxa2xx_udc       *udc = dev_get_drvdata(dev);
  
 -      if (level == RESUME_POWER_ON)
 -              pullup(udc, 1);
 +      pullup(udc, 1);
 +
        return 0;
  }
  
@@@ -694,7 -694,7 +694,7 @@@ static int balance(struct isp116x *isp1
  
  static int isp116x_urb_enqueue(struct usb_hcd *hcd,
                               struct usb_host_endpoint *hep, struct urb *urb,
-                              unsigned mem_flags)
+                              gfp_t mem_flags)
  {
        struct isp116x *isp116x = hcd_to_isp116x(hcd);
        struct usb_device *udev = urb->dev;
@@@ -1774,12 -1774,15 +1774,12 @@@ static int __init isp116x_probe(struct 
  /*
    Suspend of platform device
  */
 -static int isp116x_suspend(struct device *dev, pm_message_t state, u32 phase)
 +static int isp116x_suspend(struct device *dev, pm_message_t state)
  {
        int ret = 0;
        struct usb_hcd *hcd = dev_get_drvdata(dev);
  
 -      VDBG("%s: state %x, phase %x\n", __func__, state, phase);
 -
 -      if (phase != SUSPEND_DISABLE && phase != SUSPEND_POWER_DOWN)
 -              return 0;
 +      VDBG("%s: state %x\n", __func__, state);
  
        ret = usb_suspend_device(hcd->self.root_hub, state);
        if (!ret) {
  /*
    Resume platform device
  */
 -static int isp116x_resume(struct device *dev, u32 phase)
 +static int isp116x_resume(struct device *dev)
  {
        int ret = 0;
        struct usb_hcd *hcd = dev_get_drvdata(dev);
  
 -      VDBG("%s:  state %x, phase %x\n", __func__, dev->power.power_state,
 -           phase);
 -      if (phase != RESUME_POWER_ON)
 -              return 0;
 +      VDBG("%s:  state %x\n", __func__, dev->power.power_state);
  
        ret = usb_resume_device(hcd->self.root_hub);
        if (!ret) {
@@@ -818,7 -818,7 +818,7 @@@ static int sl811h_urb_enqueue
        struct usb_hcd          *hcd,
        struct usb_host_endpoint *hep,
        struct urb              *urb,
-       unsigned                mem_flags
+       gfp_t                   mem_flags
  ) {
        struct sl811            *sl811 = hcd_to_sl811(hcd);
        struct usb_device       *udev = urb->dev;
@@@ -1784,12 -1784,15 +1784,12 @@@ sl811h_probe(struct device *dev
   */
  
  static int
 -sl811h_suspend(struct device *dev, pm_message_t state, u32 phase)
 +sl811h_suspend(struct device *dev, pm_message_t state)
  {
        struct usb_hcd  *hcd = dev_get_drvdata(dev);
        struct sl811    *sl811 = hcd_to_sl811(hcd);
        int             retval = 0;
  
 -      if (phase != SUSPEND_POWER_DOWN)
 -              return retval;
 -
        if (state.event == PM_EVENT_FREEZE)
                retval = sl811h_hub_suspend(hcd);
        else if (state.event == PM_EVENT_SUSPEND)
  }
  
  static int
 -sl811h_resume(struct device *dev, u32 phase)
 +sl811h_resume(struct device *dev)
  {
        struct usb_hcd  *hcd = dev_get_drvdata(dev);
        struct sl811    *sl811 = hcd_to_sl811(hcd);
  
 -      if (phase != RESUME_POWER_ON)
 -              return 0;
 -
        /* with no "check to see if VBUS is still powered" board hook,
         * let's assume it'd only be powered to enable remote wakeup.
         */
diff --combined fs/partitions/check.c
@@@ -192,7 -192,6 +192,7 @@@ check_partition(struct gendisk *hd, str
  struct part_attribute {
        struct attribute attr;
        ssize_t (*show)(struct hd_struct *,char *);
 +      ssize_t (*store)(struct hd_struct *,const char *, size_t);
  };
  
  static ssize_t 
@@@ -202,33 -201,14 +202,33 @@@ part_attr_show(struct kobject * kobj, s
        struct part_attribute * part_attr = container_of(attr,struct part_attribute,attr);
        ssize_t ret = 0;
        if (part_attr->show)
 -              ret = part_attr->show(p,page);
 +              ret = part_attr->show(p, page);
 +      return ret;
 +}
 +static ssize_t
 +part_attr_store(struct kobject * kobj, struct attribute * attr,
 +              const char *page, size_t count)
 +{
 +      struct hd_struct * p = container_of(kobj,struct hd_struct,kobj);
 +      struct part_attribute * part_attr = container_of(attr,struct part_attribute,attr);
 +      ssize_t ret = 0;
 +
 +      if (part_attr->store)
 +              ret = part_attr->store(p, page, count);
        return ret;
  }
  
  static struct sysfs_ops part_sysfs_ops = {
        .show   =       part_attr_show,
 +      .store  =       part_attr_store,
  };
  
 +static ssize_t part_uevent_store(struct hd_struct * p,
 +                               const char *page, size_t count)
 +{
 +      kobject_hotplug(&p->kobj, KOBJ_ADD);
 +      return count;
 +}
  static ssize_t part_dev_read(struct hd_struct * p, char *page)
  {
        struct gendisk *disk = container_of(p->kobj.parent,struct gendisk,kobj);
@@@ -249,10 -229,6 +249,10 @@@ static ssize_t part_stat_read(struct hd
                       p->reads, (unsigned long long)p->read_sectors,
                       p->writes, (unsigned long long)p->write_sectors);
  }
 +static struct part_attribute part_attr_uevent = {
 +      .attr = {.name = "uevent", .mode = S_IWUSR },
 +      .store  = part_uevent_store
 +};
  static struct part_attribute part_attr_dev = {
        .attr = {.name = "dev", .mode = S_IRUGO },
        .show   = part_dev_read
@@@ -271,7 -247,6 +271,7 @@@ static struct part_attribute part_attr_
  };
  
  static struct attribute * default_attrs[] = {
 +      &part_attr_uevent.attr,
        &part_attr_dev.attr,
        &part_attr_start.attr,
        &part_attr_size.attr,
@@@ -455,7 -430,7 +455,7 @@@ void del_gendisk(struct gendisk *disk
        disk->flags &= ~GENHD_FL_UP;
        unlink_gendisk(disk);
        disk_stat_set_all(disk, 0);
-       disk->stamp = disk->stamp_idle = 0;
+       disk->stamp = 0;
  
        devfs_remove_disk(disk);
  
diff --combined include/linux/genhd.h
@@@ -119,7 -119,7 +119,7 @@@ struct gendisk 
        int policy;
  
        atomic_t sync_io;               /* RAID */
-       unsigned long stamp, stamp_idle;
+       unsigned long stamp;
        int in_flight;
  #ifdef        CONFIG_SMP
        struct disk_stats *dkstats;
  struct disk_attribute {
        struct attribute attr;
        ssize_t (*show)(struct gendisk *, char *);
 +      ssize_t (*store)(struct gendisk *, const char *, size_t);
  };
  
  /* 
diff --combined include/linux/i2o.h
@@@ -66,6 -66,8 +66,6 @@@ struct i2o_device 
        struct device device;
  
        struct semaphore lock;  /* device lock */
 -
 -      struct class_device classdev;   /* i2o device class */
  };
  
  /*
@@@ -192,7 -194,7 +192,7 @@@ struct i2o_controller 
        struct resource mem_resource;   /* Mem resource allocated to the IOP */
  
        struct device device;
 -      struct class_device classdev;   /* I2O controller class */
 +      struct class_device *classdev;  /* I2O controller class device */
        struct i2o_device *exec;        /* Executive */
  #if BITS_PER_LONG == 64
        spinlock_t context_list_lock;   /* lock for context_list */
@@@ -490,7 -492,7 +490,7 @@@ static inline int i2o_dma_map_sg(struc
   *    Returns 0 on success or -ENOMEM on failure.
   */
  static inline int i2o_dma_alloc(struct device *dev, struct i2o_dma *addr,
-                               size_t len, unsigned int gfp_mask)
+                               size_t len, gfp_t gfp_mask)
  {
        struct pci_dev *pdev = to_pci_dev(dev);
        int dma_64 = 0;
@@@ -549,7 -551,7 +549,7 @@@ static inline void i2o_dma_free(struct 
   *    Returns the 0 on success or negative error code on failure.
   */
  static inline int i2o_dma_realloc(struct device *dev, struct i2o_dma *addr,
-                                 size_t len, unsigned int gfp_mask)
+                                 size_t len, gfp_t gfp_mask)
  {
        i2o_dma_free(dev, addr);
  
diff --combined lib/kobject_uevent.c
@@@ -54,7 -54,7 +54,7 @@@ static char *action_to_string(enum kobj
  static struct sock *uevent_sock;
  
  /**
 - * send_uevent - notify userspace by sending event trough netlink socket
 + * send_uevent - notify userspace by sending event through netlink socket
   *
   * @signal: signal name
   * @obj: object path (kobject)
@@@ -62,7 -62,7 +62,7 @@@
   * @gfp_mask:
   */
  static int send_uevent(const char *signal, const char *obj,
-                      char **envp, int gfp_mask)
+                      char **envp, gfp_t gfp_mask)
  {
        struct sk_buff *skb;
        char *pos;
@@@ -98,7 -98,7 +98,7 @@@
  }
  
  static int do_kobject_uevent(struct kobject *kobj, enum kobject_action action, 
-                            struct attribute *attr, int gfp_mask)
+                            struct attribute *attr, gfp_t gfp_mask)
  {
        char *path;
        char *attrpath;