Index: pegasus.c =================================================================== RCS file: /home/routefree/depot/rf/src/hr/linux/drivers/usb/pegasus.c,v retrieving revision 1.2 retrieving revision 1.6 diff -r1.2 -r1.6 54,55c54,55 < #define PEGASUS_USE_INTR < #define PEGASUS_WRITE_EEPROM --- > #undef PEGASUS_USE_INTR > #undef PEGASUS_WRITE_EEPROM 126a127 > unsigned char *buffer; 128a130,136 > buffer = kmalloc(L1_CACHE_ALIGN(size),GFP_KERNEL); > if (!buffer) { > err("unable to allocate memory for configuration descriptors"); > return 0; > } > memcpy(buffer,data,size); > 143c151 < data, size, ctrl_callback, pegasus ); --- > buffer, L1_CACHE_ALIGN(size), ctrl_callback, pegasus ); 156a165,166 > memcpy(data,buffer,size); > kfree(buffer); 163a174 > unsigned char *buffer; 165a177,183 > buffer = kmalloc(size,GFP_KERNEL); > if (!buffer) { > err("unable to allocate memory for configuration descriptors"); > return 0; > } > memcpy(buffer,data,size); > 180c198 < data, size, ctrl_callback, pegasus ); --- > buffer, size, ctrl_callback, pegasus ); 187a206 > kfree(buffer); 193a213 > kfree(buffer); 200a221 > unsigned char *buffer; 203a225,231 > buffer = kmalloc(1,GFP_KERNEL); > if (!buffer) { > err("unable to allocate memory for configuration descriptors"); > return 0; > } > memcpy(buffer,&data,1); > 218c246 < &data, 1, ctrl_callback, pegasus ); --- > buffer, 1, ctrl_callback, pegasus ); 225a254 > kfree(buffer); 231a261 > kfree(buffer); Index: usb.c =================================================================== RCS file: /home/routefree/depot/rf/src/hr/linux/drivers/usb/usb.c,v retrieving revision 1.2 retrieving revision 1.5 diff -r1.2 -r1.5 1772c1772 < sizeof(dev->descriptor)); --- > L1_CACHE_ALIGN(sizeof(dev->descriptor))); 1789a1790 > unsigned char *buffer; 1792a1794,1799 > buffer = kmalloc(L1_CACHE_ALIGN(1), GFP_KERNEL); > if (!buffer) { > err("unable to allocate memory for configuration descriptors"); > return -ENOMEM; > } > 1795c1802,1803 < 0, ifnum, &type, 1, HZ * GET_TIMEOUT)) < 0) --- > 0, ifnum, buffer, L1_CACHE_ALIGN(1), HZ * GET_TIMEOUT)) < 0) { > kfree(buffer); 1796a1805,1808 > } > > type = *buffer; > kfree(buffer); 1851a1864 > unsigned char *buffer; 1865a1879,1884 > buffer = kmalloc(L1_CACHE_ALIGN(sizeof(status)), GFP_KERNEL); > if (!buffer) { > err("unable to allocate memory for configuration descriptors"); > return -ENOMEM; > } > 1868c1887,1891 < &status, sizeof(status), HZ * SET_TIMEOUT); --- > buffer, L1_CACHE_ALIGN(sizeof(status)), HZ * SET_TIMEOUT); > > memcpy(&status,buffer,sizeof(status)); > kfree(buffer); > 1953c1976 < unsigned char buffer[8]; --- > unsigned char *buffer; 1955,1956c1978 < struct usb_config_descriptor *desc = < (struct usb_config_descriptor *)buffer; --- > struct usb_config_descriptor *desc; 1984a2007,2013 > buffer = kmalloc(L1_CACHE_ALIGN(8), GFP_KERNEL); > if (!buffer) { > err("unable to allocate memory for configuration descriptors"); > return -ENOMEM; > } > desc = (struct usb_config_descriptor *)buffer; > 1988c2017 < result = usb_get_descriptor(dev, USB_DT_CONFIG, cfgno, buffer, 8); --- > result = usb_get_descriptor(dev, USB_DT_CONFIG, cfgno, buffer, L1_CACHE_ALIGN(8)); 2002c2031 < bigbuffer = kmalloc(length, GFP_KERNEL); --- > bigbuffer = kmalloc(L1_CACHE_ALIGN(length), GFP_KERNEL); 2010c2039 < result = usb_get_descriptor(dev, USB_DT_CONFIG, cfgno, bigbuffer, length); --- > result = usb_get_descriptor(dev, USB_DT_CONFIG, cfgno, bigbuffer, L1_CACHE_ALIGN(length)); 2034a2064 > kfree(buffer); 2036a2067 > kfree(buffer); 2131c2162 < err = usb_get_descriptor(dev, USB_DT_DEVICE, 0, &dev->descriptor, 8); --- > err = usb_get_descriptor(dev, USB_DT_DEVICE, 0, &dev->descriptor, L1_CACHE_ALIGN(8)); Index: hub.c =================================================================== RCS file: /home/routefree/depot/rf/src/hr/linux/drivers/usb/hub.c,v retrieving revision 1.2 retrieving revision 1.3 diff -r1.2 -r1.3 128a129 > unsigned char *buffer; 194c195,204 < ret = usb_get_hub_status(dev, &hubstatus); --- > buffer = kmalloc(sizeof(struct usb_hub_status),GFP_KERNEL); > if (!buffer) { > err("unable to allocate memory for configuration descriptors"); > kfree(hub->descriptor); > return -1; > } > memcpy(buffer,&hubstatus,sizeof(struct usb_hub_status)); > ret = usb_get_hub_status(dev,buffer); > memcpy(&hubstatus,buffer,sizeof(struct usb_hub_status)); > kfree(buffer); 446a457 > unsigned char *buffer; 453c464,474 < ret = usb_get_port_status(hub, port + 1, &portsts); --- > buffer = kmalloc(sizeof(struct usb_hub_status),GFP_KERNEL); > if (buffer) { > memcpy(buffer,&portsts,sizeof(struct usb_hub_status)); > ret = usb_get_port_status(hub, port + 1, buffer); > memcpy(&portsts,buffer,sizeof(struct usb_hub_status)); > kfree(buffer); > } else { > err("unable to allocate memory for configuration descriptors"); > ret = -1; > } > 643a665,666 > unsigned char *buffer; > int temp_ret; 687c710,720 < ret = usb_get_port_status(dev, i + 1, &portsts); --- > buffer = kmalloc(sizeof(struct usb_hub_status),GFP_KERNEL); > if (buffer) { > memcpy(buffer,&portsts,sizeof(struct usb_hub_status)); > ret = usb_get_port_status(dev, i + 1, buffer); > memcpy(&portsts,buffer,sizeof(struct usb_hub_status)); > kfree(buffer); > } else { > err("unable to allocate memory for configuration descriptors"); > ret = -1; > } > 733a767,777 > buffer = kmalloc(sizeof(struct usb_hub_status),GFP_KERNEL); > if (buffer) { > memcpy(buffer,&hubsts,sizeof(struct usb_hub_status)); > temp_ret = usb_get_hub_status(dev, buffer); > memcpy(&hubsts,buffer,sizeof(struct usb_hub_status)); > kfree(buffer); > } else { > err("unable to allocate memory for configuration descriptors"); > temp_ret = -1; > } > 735c779 < if (usb_get_hub_status(dev, &hubsts) < 0) --- > if (temp_ret < 0) Index: usb-ohci.h =================================================================== RCS file: /home/routefree/depot/rf/src/hr/linux/drivers/usb/usb-ohci.h,v retrieving revision 1.2 retrieving revision 1.3 diff -r1.2 -r1.3 60c60 < } __attribute((aligned(16))); --- > } __attribute((aligned(L1_CACHE_BYTES))); 118c118 < } __attribute((aligned(16))); --- > } __attribute((aligned(L1_CACHE_BYTES))); 561c561 < 16 /* byte alignment */, --- > L1_CACHE_BYTES /* byte alignment */, 568c568 < 16 /* byte alignment */, --- > L1_CACHE_BYTES /* byte alignment */,