[PATCH 0 of 20] [RFC] ipath - PathScale InfiniPath driver

Bryan O'Sullivan
2005-12-29T00:43:38Z

[-- Attachment #1: Type: text/plain, Size: 1977 bytes --]

Following Roland's submission of our InfiniPath InfiniBand HCA driver
earlier this month, we have responded to people's comments by making a
large number of changes to the driver.

Here is another set of driver patches for review. Roland is on
vacation until January 4, so I'm posting these in his place. Once
again, your comments are appreciated. We'd like to submit this driver
for inclusion in 2.6.16, so we'll be responding quickly to all
feedback.

A short summary of the changes we have made is as follows:

- sparse annotations (yes, it passes "make C=1")

- Removed x86_64 specificity from driver

- Introduced generic memcpy_toio32 for safe MMIO access

- Got rid of release and RCS IDs

- Use set_page_dirty_lock instead of SetPageDirty

- Fixed misuse of copy_from_user

- Removed all sysctls

- Removed stuff inside #ifndef __KERNEL__

- Use ALIGN() instead of round_up()

- Use static inlines instead of #defines, generally tidied inline
functions

- Renamed _BITS_PER_BYTE to BITS_PER_BYTE, and moved it into
linux/types.h

- Got rid of ipath_shortcopy

- Use fixed-size types for user/kernel communication

- Renamed ipath_mlock to ipath_get_user_pages, fixed some bugs

There are a few requested changes we have chosen to omit for now:

- The driver still uses EXPORT_SYMBOL, for consistency with other
code in drivers/infiniband

- Someone asked for the kernel's i2c infrastructure to be used, but
our i2c usage is very specialised, and it would be more of a mess
to use the kernel's

- We're still using ioctls instead of sysfs or configfs in some
cases, to maintain userspace compatibility

Please note that these patches require a set of OpenIB kernel patches
that are awaiting the 2.6.16 submission window in order to compile; in
other words, they really are for review only. I'll be happy to
provide a suitable jumbo OpenIB patch to anyone who feels a need to
compile-test these patches.

<b