diff options
author | Carlo Landmeter <clandmeter@gmail.com> | 2010-12-23 12:48:47 +0000 |
---|---|---|
committer | Carlo Landmeter <clandmeter@gmail.com> | 2010-12-23 12:48:47 +0000 |
commit | ed94564ed61488a42c25d91fed88fd3429a95c57 (patch) | |
tree | ee7e06e8439f43e1ff1a09f0e202394bb87c0e1e | |
parent | 559de61b4b92c534a13b71f0dd50631e4f8f47c7 (diff) | |
download | alpine_aports-ed94564ed61488a42c25d91fed88fd3429a95c57.tar.bz2 alpine_aports-ed94564ed61488a42c25d91fed88fd3429a95c57.tar.xz alpine_aports-ed94564ed61488a42c25d91fed88fd3429a95c57.zip |
testing/linux-scst: bump kernel version to 2.6.32.2 and SCST to 2.0.0 final
-rw-r--r-- | testing/linux-scst/APKBUILD | 29 | ||||
-rw-r--r-- | testing/linux-scst/kernelconfig.x86_64 | 161 | ||||
-rw-r--r-- | testing/linux-scst/r8169-add-gro-support.patch | 52 | ||||
-rw-r--r-- | testing/linux-scst/r8169-fix-rx-checksum-offload.patch | 62 | ||||
-rw-r--r-- | testing/linux-scst/scst-2.6.36-2.0.0.patch (renamed from testing/linux-scst/scst-2.6.35-svn-3161.patch) | 2465 | ||||
-rw-r--r-- | testing/linux-scst/unionfs-2.5.7_for_2.6.36.diff (renamed from testing/linux-scst/unionfs-2.5.7_for_2.6.35.8.patch) | 92 |
6 files changed, 1016 insertions, 1845 deletions
diff --git a/testing/linux-scst/APKBUILD b/testing/linux-scst/APKBUILD index 6f494c17e9..ece8b82957 100644 --- a/testing/linux-scst/APKBUILD +++ b/testing/linux-scst/APKBUILD | |||
@@ -2,8 +2,8 @@ | |||
2 | 2 | ||
3 | _flavor=scst | 3 | _flavor=scst |
4 | pkgname=linux-${_flavor} | 4 | pkgname=linux-${_flavor} |
5 | pkgver=2.6.35.9 | 5 | pkgver=2.6.36.2 |
6 | _kernver=2.6.35 | 6 | _kernver=2.6.36 |
7 | pkgrel=0 | 7 | pkgrel=0 |
8 | pkgdesc="Linux kernel optimised for scst" | 8 | pkgdesc="Linux kernel optimised for scst" |
9 | url="http://scst.sourceforge.net" | 9 | url="http://scst.sourceforge.net" |
@@ -12,16 +12,12 @@ makedepends="perl installkernel bash" | |||
12 | options="!strip" | 12 | options="!strip" |
13 | _config=${config:-kernelconfig.${CARCH}} | 13 | _config=${config:-kernelconfig.${CARCH}} |
14 | install= | 14 | install= |
15 | _scst_svn="3161" | ||
16 | source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 | 15 | source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 |
17 | ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 | 16 | ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 |
18 | 0004-arp-flush-arp-cache-on-device-change.patch | ||
19 | r8169-fix-rx-checksum-offload.patch | ||
20 | r8169-add-gro-support.patch | ||
21 | setlocalversion.patch | ||
22 | kernelconfig.x86_64 | 17 | kernelconfig.x86_64 |
23 | unionfs-2.5.7_for_2.6.35.8.patch | 18 | scst-$_kernver-2.0.0.patch |
24 | scst-2.6.35-svn-3161.patch | 19 | unionfs-2.5.7_for_$_kernver.diff |
20 | 0004-arp-flush-arp-cache-on-device-change.patch | ||
25 | " | 21 | " |
26 | subpackages="$pkgname-dev linux-firmware:firmware" | 22 | subpackages="$pkgname-dev linux-firmware:firmware" |
27 | arch="x86_64" | 23 | arch="x86_64" |
@@ -144,12 +140,9 @@ firmware() { | |||
144 | mv "$pkgdir"/lib/firmware "$subpkgdir"/lib/ | 140 | mv "$pkgdir"/lib/firmware "$subpkgdir"/lib/ |
145 | } | 141 | } |
146 | 142 | ||
147 | md5sums="091abeb4684ce03d1d936851618687b6 linux-2.6.35.tar.bz2 | 143 | md5sums="61f3739a73afb6914cb007f37fb09b62 linux-2.6.36.tar.bz2 |
148 | eca407cf4872ad77ae23adc8242389c4 patch-2.6.35.9.bz2 | 144 | 4b01c5f9657a9587b262df5f8d784116 patch-2.6.36.2.bz2 |
149 | 776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch | 145 | 3d93fd576b38ac5f68ceac44c65df380 kernelconfig.x86_64 |
150 | 0ccecafd4123dcad0b0cd7787553d734 r8169-fix-rx-checksum-offload.patch | 146 | 28c61abeb4932f32c9c5d2f069312148 scst-2.6.36-2.0.0.patch |
151 | 139b39da44ecb577275be53d7d365949 r8169-add-gro-support.patch | 147 | fec281a4e03fed560ce309ad8fc5a592 unionfs-2.5.7_for_2.6.36.diff |
152 | 8c224ba0cdf0aa572c7eb50379435be4 setlocalversion.patch | 148 | 776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch" |
153 | 8b50f527b834f693e9cfbcabf29b04f3 kernelconfig.x86_64 | ||
154 | e4185c1bb1d88594c67eb154d0c06692 unionfs-2.5.7_for_2.6.35.8.patch | ||
155 | f8aa57373ab14ece95ecdaa15840fa25 scst-2.6.35-svn-3161.patch" | ||
diff --git a/testing/linux-scst/kernelconfig.x86_64 b/testing/linux-scst/kernelconfig.x86_64 index 6d9675b93a..9d877d166c 100644 --- a/testing/linux-scst/kernelconfig.x86_64 +++ b/testing/linux-scst/kernelconfig.x86_64 | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.35.9 | 3 | # Linux kernel version: 2.6.36.2 |
4 | # Mon Dec 20 14:49:00 2010 | 4 | # Thu Dec 23 12:32:35 2010 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | # CONFIG_X86_32 is not set | 7 | # CONFIG_X86_32 is not set |
@@ -10,7 +10,6 @@ CONFIG_X86=y | |||
10 | CONFIG_INSTRUCTION_DECODER=y | 10 | CONFIG_INSTRUCTION_DECODER=y |
11 | CONFIG_OUTPUT_FORMAT="elf64-x86-64" | 11 | CONFIG_OUTPUT_FORMAT="elf64-x86-64" |
12 | CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" | 12 | CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" |
13 | CONFIG_GENERIC_TIME=y | ||
14 | CONFIG_GENERIC_CMOS_UPDATE=y | 13 | CONFIG_GENERIC_CMOS_UPDATE=y |
15 | CONFIG_CLOCKSOURCE_WATCHDOG=y | 14 | CONFIG_CLOCKSOURCE_WATCHDOG=y |
16 | CONFIG_GENERIC_CLOCKEVENTS=y | 15 | CONFIG_GENERIC_CLOCKEVENTS=y |
@@ -93,8 +92,6 @@ CONFIG_BSD_PROCESS_ACCT_V3=y | |||
93 | # RCU Subsystem | 92 | # RCU Subsystem |
94 | # | 93 | # |
95 | CONFIG_TREE_RCU=y | 94 | CONFIG_TREE_RCU=y |
96 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
97 | # CONFIG_TINY_RCU is not set | ||
98 | # CONFIG_RCU_TRACE is not set | 95 | # CONFIG_RCU_TRACE is not set |
99 | CONFIG_RCU_FANOUT=32 | 96 | CONFIG_RCU_FANOUT=32 |
100 | # CONFIG_RCU_FANOUT_EXACT is not set | 97 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -151,6 +148,7 @@ CONFIG_PROFILING=y | |||
151 | CONFIG_OPROFILE=m | 148 | CONFIG_OPROFILE=m |
152 | # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set | 149 | # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set |
153 | CONFIG_HAVE_OPROFILE=y | 150 | CONFIG_HAVE_OPROFILE=y |
151 | # CONFIG_KPROBES is not set | ||
154 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | 152 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y |
155 | CONFIG_USER_RETURN_NOTIFIER=y | 153 | CONFIG_USER_RETURN_NOTIFIER=y |
156 | CONFIG_HAVE_IOREMAP_PROT=y | 154 | CONFIG_HAVE_IOREMAP_PROT=y |
@@ -164,13 +162,12 @@ CONFIG_HAVE_DMA_API_DEBUG=y | |||
164 | CONFIG_HAVE_HW_BREAKPOINT=y | 162 | CONFIG_HAVE_HW_BREAKPOINT=y |
165 | CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y | 163 | CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y |
166 | CONFIG_HAVE_USER_RETURN_NOTIFIER=y | 164 | CONFIG_HAVE_USER_RETURN_NOTIFIER=y |
165 | CONFIG_HAVE_PERF_EVENTS_NMI=y | ||
167 | 166 | ||
168 | # | 167 | # |
169 | # GCOV-based kernel profiling | 168 | # GCOV-based kernel profiling |
170 | # | 169 | # |
171 | # CONFIG_GCOV_KERNEL is not set | 170 | # CONFIG_GCOV_KERNEL is not set |
172 | CONFIG_SLOW_WORK=y | ||
173 | # CONFIG_SLOW_WORK_DEBUG is not set | ||
174 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 171 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
175 | CONFIG_RT_MUTEXES=y | 172 | CONFIG_RT_MUTEXES=y |
176 | CONFIG_BASE_SMALL=0 | 173 | CONFIG_BASE_SMALL=0 |
@@ -191,7 +188,6 @@ CONFIG_BLK_DEV_BSG=y | |||
191 | CONFIG_IOSCHED_NOOP=y | 188 | CONFIG_IOSCHED_NOOP=y |
192 | CONFIG_IOSCHED_DEADLINE=m | 189 | CONFIG_IOSCHED_DEADLINE=m |
193 | CONFIG_IOSCHED_CFQ=y | 190 | CONFIG_IOSCHED_CFQ=y |
194 | # CONFIG_DEFAULT_DEADLINE is not set | ||
195 | CONFIG_DEFAULT_CFQ=y | 191 | CONFIG_DEFAULT_CFQ=y |
196 | # CONFIG_DEFAULT_NOOP is not set | 192 | # CONFIG_DEFAULT_NOOP is not set |
197 | CONFIG_DEFAULT_IOSCHED="cfq" | 193 | CONFIG_DEFAULT_IOSCHED="cfq" |
@@ -250,28 +246,7 @@ CONFIG_PARAVIRT=y | |||
250 | CONFIG_PARAVIRT_CLOCK=y | 246 | CONFIG_PARAVIRT_CLOCK=y |
251 | CONFIG_NO_BOOTMEM=y | 247 | CONFIG_NO_BOOTMEM=y |
252 | # CONFIG_MEMTEST is not set | 248 | # CONFIG_MEMTEST is not set |
253 | # CONFIG_M386 is not set | ||
254 | # CONFIG_M486 is not set | ||
255 | # CONFIG_M586 is not set | ||
256 | # CONFIG_M586TSC is not set | ||
257 | # CONFIG_M586MMX is not set | ||
258 | # CONFIG_M686 is not set | ||
259 | # CONFIG_MPENTIUMII is not set | ||
260 | # CONFIG_MPENTIUMIII is not set | ||
261 | # CONFIG_MPENTIUMM is not set | ||
262 | # CONFIG_MPENTIUM4 is not set | ||
263 | # CONFIG_MK6 is not set | ||
264 | # CONFIG_MK7 is not set | ||
265 | # CONFIG_MK8 is not set | 249 | # CONFIG_MK8 is not set |
266 | # CONFIG_MCRUSOE is not set | ||
267 | # CONFIG_MEFFICEON is not set | ||
268 | # CONFIG_MWINCHIPC6 is not set | ||
269 | # CONFIG_MWINCHIP3D is not set | ||
270 | # CONFIG_MGEODEGX1 is not set | ||
271 | # CONFIG_MGEODE_LX is not set | ||
272 | # CONFIG_MCYRIXIII is not set | ||
273 | # CONFIG_MVIAC3_2 is not set | ||
274 | # CONFIG_MVIAC7 is not set | ||
275 | # CONFIG_MPSC is not set | 250 | # CONFIG_MPSC is not set |
276 | # CONFIG_MCORE2 is not set | 251 | # CONFIG_MCORE2 is not set |
277 | # CONFIG_MATOM is not set | 252 | # CONFIG_MATOM is not set |
@@ -327,8 +302,6 @@ CONFIG_ARCH_SPARSEMEM_ENABLE=y | |||
327 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 302 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
328 | CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 | 303 | CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 |
329 | CONFIG_SELECT_MEMORY_MODEL=y | 304 | CONFIG_SELECT_MEMORY_MODEL=y |
330 | # CONFIG_FLATMEM_MANUAL is not set | ||
331 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
332 | CONFIG_SPARSEMEM_MANUAL=y | 305 | CONFIG_SPARSEMEM_MANUAL=y |
333 | CONFIG_SPARSEMEM=y | 306 | CONFIG_SPARSEMEM=y |
334 | CONFIG_HAVE_MEMORY_PRESENT=y | 307 | CONFIG_HAVE_MEMORY_PRESENT=y |
@@ -391,6 +364,7 @@ CONFIG_ACPI_PROCFS=y | |||
391 | CONFIG_ACPI_PROCFS_POWER=y | 364 | CONFIG_ACPI_PROCFS_POWER=y |
392 | # CONFIG_ACPI_POWER_METER is not set | 365 | # CONFIG_ACPI_POWER_METER is not set |
393 | CONFIG_ACPI_SYSFS_POWER=y | 366 | CONFIG_ACPI_SYSFS_POWER=y |
367 | CONFIG_ACPI_EC_DEBUGFS=m | ||
394 | CONFIG_ACPI_PROC_EVENT=y | 368 | CONFIG_ACPI_PROC_EVENT=y |
395 | CONFIG_ACPI_AC=m | 369 | CONFIG_ACPI_AC=m |
396 | CONFIG_ACPI_BATTERY=m | 370 | CONFIG_ACPI_BATTERY=m |
@@ -413,6 +387,7 @@ CONFIG_ACPI_HED=m | |||
413 | CONFIG_ACPI_APEI=y | 387 | CONFIG_ACPI_APEI=y |
414 | CONFIG_ACPI_APEI_GHES=m | 388 | CONFIG_ACPI_APEI_GHES=m |
415 | CONFIG_ACPI_APEI_EINJ=m | 389 | CONFIG_ACPI_APEI_EINJ=m |
390 | CONFIG_ACPI_APEI_ERST_DEBUG=m | ||
416 | # CONFIG_SFI is not set | 391 | # CONFIG_SFI is not set |
417 | 392 | ||
418 | # | 393 | # |
@@ -450,7 +425,7 @@ CONFIG_X86_SPEEDSTEP_LIB=m | |||
450 | CONFIG_CPU_IDLE=y | 425 | CONFIG_CPU_IDLE=y |
451 | CONFIG_CPU_IDLE_GOV_LADDER=y | 426 | CONFIG_CPU_IDLE_GOV_LADDER=y |
452 | CONFIG_CPU_IDLE_GOV_MENU=y | 427 | CONFIG_CPU_IDLE_GOV_MENU=y |
453 | CONFIG_INTEL_IDLE=m | 428 | # CONFIG_INTEL_IDLE is not set |
454 | 429 | ||
455 | # | 430 | # |
456 | # Memory power savings | 431 | # Memory power savings |
@@ -578,13 +553,7 @@ CONFIG_TCP_CONG_LP=m | |||
578 | CONFIG_TCP_CONG_VENO=m | 553 | CONFIG_TCP_CONG_VENO=m |
579 | CONFIG_TCP_CONG_YEAH=m | 554 | CONFIG_TCP_CONG_YEAH=m |
580 | CONFIG_TCP_CONG_ILLINOIS=m | 555 | CONFIG_TCP_CONG_ILLINOIS=m |
581 | # CONFIG_DEFAULT_BIC is not set | ||
582 | CONFIG_DEFAULT_CUBIC=y | 556 | CONFIG_DEFAULT_CUBIC=y |
583 | # CONFIG_DEFAULT_HTCP is not set | ||
584 | # CONFIG_DEFAULT_HYBLA is not set | ||
585 | # CONFIG_DEFAULT_VEGAS is not set | ||
586 | # CONFIG_DEFAULT_VENO is not set | ||
587 | # CONFIG_DEFAULT_WESTWOOD is not set | ||
588 | # CONFIG_DEFAULT_RENO is not set | 557 | # CONFIG_DEFAULT_RENO is not set |
589 | CONFIG_DEFAULT_TCP_CONG="cubic" | 558 | CONFIG_DEFAULT_TCP_CONG="cubic" |
590 | CONFIG_TCP_MD5SIG=y | 559 | CONFIG_TCP_MD5SIG=y |
@@ -614,6 +583,7 @@ CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y | |||
614 | CONFIG_IPV6_PIMSM_V2=y | 583 | CONFIG_IPV6_PIMSM_V2=y |
615 | CONFIG_NETLABEL=y | 584 | CONFIG_NETLABEL=y |
616 | CONFIG_NETWORK_SECMARK=y | 585 | CONFIG_NETWORK_SECMARK=y |
586 | # CONFIG_NETWORK_PHY_TIMESTAMPING is not set | ||
617 | CONFIG_NETFILTER=y | 587 | CONFIG_NETFILTER=y |
618 | # CONFIG_NETFILTER_DEBUG is not set | 588 | # CONFIG_NETFILTER_DEBUG is not set |
619 | CONFIG_NETFILTER_ADVANCED=y | 589 | CONFIG_NETFILTER_ADVANCED=y |
@@ -626,7 +596,6 @@ CONFIG_NETFILTER_NETLINK=m | |||
626 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 596 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
627 | CONFIG_NETFILTER_NETLINK_LOG=m | 597 | CONFIG_NETFILTER_NETLINK_LOG=m |
628 | CONFIG_NF_CONNTRACK=m | 598 | CONFIG_NF_CONNTRACK=m |
629 | CONFIG_NF_CT_ACCT=y | ||
630 | CONFIG_NF_CONNTRACK_MARK=y | 599 | CONFIG_NF_CONNTRACK_MARK=y |
631 | CONFIG_NF_CONNTRACK_SECMARK=y | 600 | CONFIG_NF_CONNTRACK_SECMARK=y |
632 | CONFIG_NF_CONNTRACK_ZONES=y | 601 | CONFIG_NF_CONNTRACK_ZONES=y |
@@ -657,12 +626,14 @@ CONFIG_NETFILTER_XT_CONNMARK=m | |||
657 | # | 626 | # |
658 | # Xtables targets | 627 | # Xtables targets |
659 | # | 628 | # |
629 | CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m | ||
660 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | 630 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m |
661 | CONFIG_NETFILTER_XT_TARGET_CONNMARK=m | 631 | CONFIG_NETFILTER_XT_TARGET_CONNMARK=m |
662 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m | 632 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m |
663 | CONFIG_NETFILTER_XT_TARGET_CT=m | 633 | CONFIG_NETFILTER_XT_TARGET_CT=m |
664 | CONFIG_NETFILTER_XT_TARGET_DSCP=m | 634 | CONFIG_NETFILTER_XT_TARGET_DSCP=m |
665 | CONFIG_NETFILTER_XT_TARGET_HL=m | 635 | CONFIG_NETFILTER_XT_TARGET_HL=m |
636 | CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m | ||
666 | CONFIG_NETFILTER_XT_TARGET_LED=m | 637 | CONFIG_NETFILTER_XT_TARGET_LED=m |
667 | CONFIG_NETFILTER_XT_TARGET_MARK=m | 638 | CONFIG_NETFILTER_XT_TARGET_MARK=m |
668 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | 639 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
@@ -685,6 +656,7 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | |||
685 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m | 656 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m |
686 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 657 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
687 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 658 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
659 | CONFIG_NETFILTER_XT_MATCH_CPU=m | ||
688 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 660 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
689 | CONFIG_NETFILTER_XT_MATCH_DSCP=m | 661 | CONFIG_NETFILTER_XT_MATCH_DSCP=m |
690 | CONFIG_NETFILTER_XT_MATCH_ESP=m | 662 | CONFIG_NETFILTER_XT_MATCH_ESP=m |
@@ -692,6 +664,7 @@ CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | |||
692 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 664 | CONFIG_NETFILTER_XT_MATCH_HELPER=m |
693 | CONFIG_NETFILTER_XT_MATCH_HL=m | 665 | CONFIG_NETFILTER_XT_MATCH_HL=m |
694 | CONFIG_NETFILTER_XT_MATCH_IPRANGE=m | 666 | CONFIG_NETFILTER_XT_MATCH_IPRANGE=m |
667 | CONFIG_NETFILTER_XT_MATCH_IPVS=m | ||
695 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 668 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
696 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 669 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
697 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 670 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
@@ -956,6 +929,7 @@ CONFIG_NET_ACT_SKBEDIT=m | |||
956 | # CONFIG_NET_CLS_IND is not set | 929 | # CONFIG_NET_CLS_IND is not set |
957 | CONFIG_NET_SCH_FIFO=y | 930 | CONFIG_NET_SCH_FIFO=y |
958 | # CONFIG_DCB is not set | 931 | # CONFIG_DCB is not set |
932 | CONFIG_DNS_RESOLVER=y | ||
959 | CONFIG_RPS=y | 933 | CONFIG_RPS=y |
960 | 934 | ||
961 | # | 935 | # |
@@ -985,6 +959,7 @@ CONFIG_CAN_PLX_PCI=m | |||
985 | # CAN USB interfaces | 959 | # CAN USB interfaces |
986 | # | 960 | # |
987 | # CONFIG_CAN_EMS_USB is not set | 961 | # CONFIG_CAN_EMS_USB is not set |
962 | CONFIG_CAN_ESD_USB2=m | ||
988 | # CONFIG_CAN_DEBUG_DEVICES is not set | 963 | # CONFIG_CAN_DEBUG_DEVICES is not set |
989 | CONFIG_IRDA=m | 964 | CONFIG_IRDA=m |
990 | 965 | ||
@@ -1044,7 +1019,6 @@ CONFIG_VIA_FIR=m | |||
1044 | CONFIG_MCS_FIR=m | 1019 | CONFIG_MCS_FIR=m |
1045 | CONFIG_BT=m | 1020 | CONFIG_BT=m |
1046 | CONFIG_BT_L2CAP=m | 1021 | CONFIG_BT_L2CAP=m |
1047 | # CONFIG_BT_L2CAP_EXT_FEATURES is not set | ||
1048 | CONFIG_BT_SCO=m | 1022 | CONFIG_BT_SCO=m |
1049 | CONFIG_BT_RFCOMM=m | 1023 | CONFIG_BT_RFCOMM=m |
1050 | CONFIG_BT_RFCOMM_TTY=y | 1024 | CONFIG_BT_RFCOMM_TTY=y |
@@ -1062,6 +1036,7 @@ CONFIG_BT_HCIBTSDIO=m | |||
1062 | CONFIG_BT_HCIUART=m | 1036 | CONFIG_BT_HCIUART=m |
1063 | CONFIG_BT_HCIUART_H4=y | 1037 | CONFIG_BT_HCIUART_H4=y |
1064 | CONFIG_BT_HCIUART_BCSP=y | 1038 | CONFIG_BT_HCIUART_BCSP=y |
1039 | # CONFIG_BT_HCIUART_ATH3K is not set | ||
1065 | CONFIG_BT_HCIUART_LL=y | 1040 | CONFIG_BT_HCIUART_LL=y |
1066 | CONFIG_BT_HCIBCM203X=m | 1041 | CONFIG_BT_HCIBCM203X=m |
1067 | CONFIG_BT_HCIBPA10X=m | 1042 | CONFIG_BT_HCIBPA10X=m |
@@ -1101,6 +1076,7 @@ CONFIG_MAC80211=m | |||
1101 | CONFIG_MAC80211_HAS_RC=y | 1076 | CONFIG_MAC80211_HAS_RC=y |
1102 | CONFIG_MAC80211_RC_PID=y | 1077 | CONFIG_MAC80211_RC_PID=y |
1103 | CONFIG_MAC80211_RC_MINSTREL=y | 1078 | CONFIG_MAC80211_RC_MINSTREL=y |
1079 | CONFIG_MAC80211_RC_MINSTREL_HT=y | ||
1104 | CONFIG_MAC80211_RC_DEFAULT_PID=y | 1080 | CONFIG_MAC80211_RC_DEFAULT_PID=y |
1105 | # CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set | 1081 | # CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set |
1106 | CONFIG_MAC80211_RC_DEFAULT="pid" | 1082 | CONFIG_MAC80211_RC_DEFAULT="pid" |
@@ -1348,9 +1324,12 @@ CONFIG_CS5535_CLOCK_EVENT_SRC=m | |||
1348 | CONFIG_HP_ILO=m | 1324 | CONFIG_HP_ILO=m |
1349 | CONFIG_ISL29003=m | 1325 | CONFIG_ISL29003=m |
1350 | CONFIG_SENSORS_TSL2550=m | 1326 | CONFIG_SENSORS_TSL2550=m |
1327 | CONFIG_SENSORS_BH1780=m | ||
1328 | CONFIG_HMC6352=m | ||
1351 | CONFIG_DS1682=m | 1329 | CONFIG_DS1682=m |
1352 | CONFIG_TI_DAC7512=m | 1330 | CONFIG_TI_DAC7512=m |
1353 | CONFIG_VMWARE_BALLOON=m | 1331 | CONFIG_VMWARE_BALLOON=m |
1332 | CONFIG_BMP085=m | ||
1354 | CONFIG_C2PORT=m | 1333 | CONFIG_C2PORT=m |
1355 | CONFIG_C2PORT_DURAMAR_2150=m | 1334 | CONFIG_C2PORT_DURAMAR_2150=m |
1356 | 1335 | ||
@@ -1415,6 +1394,7 @@ CONFIG_SCSI_SRP_ATTRS=m | |||
1415 | CONFIG_SCSI_SRP_TGT_ATTRS=y | 1394 | CONFIG_SCSI_SRP_TGT_ATTRS=y |
1416 | CONFIG_SCSI_LOWLEVEL=y | 1395 | CONFIG_SCSI_LOWLEVEL=y |
1417 | CONFIG_ISCSI_TCP=m | 1396 | CONFIG_ISCSI_TCP=m |
1397 | CONFIG_ISCSI_BOOT_SYSFS=m | ||
1418 | CONFIG_SCSI_CXGB3_ISCSI=m | 1398 | CONFIG_SCSI_CXGB3_ISCSI=m |
1419 | CONFIG_SCSI_BNX2_ISCSI=m | 1399 | CONFIG_SCSI_BNX2_ISCSI=m |
1420 | # CONFIG_BE2ISCSI is not set | 1400 | # CONFIG_BE2ISCSI is not set |
@@ -1535,7 +1515,6 @@ CONFIG_SCST_TRACING=y | |||
1535 | # CONFIG_SCST_DEBUG_RETRY is not set | 1515 | # CONFIG_SCST_DEBUG_RETRY is not set |
1536 | # CONFIG_SCST_DEBUG_SN is not set | 1516 | # CONFIG_SCST_DEBUG_SN is not set |
1537 | # CONFIG_SCST_MEASURE_LATENCY is not set | 1517 | # CONFIG_SCST_MEASURE_LATENCY is not set |
1538 | CONFIG_FCST=m | ||
1539 | CONFIG_SCST_ISCSI=m | 1518 | CONFIG_SCST_ISCSI=m |
1540 | # CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES is not set | 1519 | # CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES is not set |
1541 | CONFIG_SCST_SRPT=m | 1520 | CONFIG_SCST_SRPT=m |
@@ -1643,8 +1622,6 @@ CONFIG_MD_RAID1=m | |||
1643 | CONFIG_MD_RAID10=m | 1622 | CONFIG_MD_RAID10=m |
1644 | CONFIG_MD_RAID456=m | 1623 | CONFIG_MD_RAID456=m |
1645 | # CONFIG_MULTICORE_RAID456 is not set | 1624 | # CONFIG_MULTICORE_RAID456 is not set |
1646 | CONFIG_MD_RAID6_PQ=m | ||
1647 | # CONFIG_ASYNC_RAID6_TEST is not set | ||
1648 | CONFIG_MD_MULTIPATH=m | 1625 | CONFIG_MD_MULTIPATH=m |
1649 | CONFIG_MD_FAULTY=m | 1626 | CONFIG_MD_FAULTY=m |
1650 | CONFIG_BLK_DEV_DM=m | 1627 | CONFIG_BLK_DEV_DM=m |
@@ -1694,6 +1671,7 @@ CONFIG_IEEE1394_RAWIO=m | |||
1694 | CONFIG_IEEE1394_VIDEO1394=m | 1671 | CONFIG_IEEE1394_VIDEO1394=m |
1695 | CONFIG_IEEE1394_DV1394=m | 1672 | CONFIG_IEEE1394_DV1394=m |
1696 | # CONFIG_IEEE1394_VERBOSEDEBUG is not set | 1673 | # CONFIG_IEEE1394_VERBOSEDEBUG is not set |
1674 | CONFIG_FIREWIRE_NOSY=m | ||
1697 | CONFIG_I2O=m | 1675 | CONFIG_I2O=m |
1698 | CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y | 1676 | CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y |
1699 | CONFIG_I2O_EXT_ADAPTEC=y | 1677 | CONFIG_I2O_EXT_ADAPTEC=y |
@@ -1853,6 +1831,8 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
1853 | CONFIG_CHELSIO_T3=m | 1831 | CONFIG_CHELSIO_T3=m |
1854 | CONFIG_CHELSIO_T4_DEPENDS=y | 1832 | CONFIG_CHELSIO_T4_DEPENDS=y |
1855 | CONFIG_CHELSIO_T4=m | 1833 | CONFIG_CHELSIO_T4=m |
1834 | CONFIG_CHELSIO_T4VF_DEPENDS=y | ||
1835 | CONFIG_CHELSIO_T4VF=m | ||
1856 | CONFIG_ENIC=m | 1836 | CONFIG_ENIC=m |
1857 | CONFIG_IXGBE=m | 1837 | CONFIG_IXGBE=m |
1858 | CONFIG_IXGBE_DCA=y | 1838 | CONFIG_IXGBE_DCA=y |
@@ -2005,6 +1985,7 @@ CONFIG_WL1251_SPI=m | |||
2005 | CONFIG_WL1251_SDIO=m | 1985 | CONFIG_WL1251_SDIO=m |
2006 | CONFIG_WL1271=m | 1986 | CONFIG_WL1271=m |
2007 | CONFIG_WL1271_SPI=m | 1987 | CONFIG_WL1271_SPI=m |
1988 | CONFIG_WL1271_SDIO=m | ||
2008 | CONFIG_ZD1211RW=m | 1989 | CONFIG_ZD1211RW=m |
2009 | # CONFIG_ZD1211RW_DEBUG is not set | 1990 | # CONFIG_ZD1211RW_DEBUG is not set |
2010 | 1991 | ||
@@ -2095,6 +2076,9 @@ CONFIG_ATM_ENI=m | |||
2095 | CONFIG_ATM_FIRESTREAM=m | 2076 | CONFIG_ATM_FIRESTREAM=m |
2096 | CONFIG_ATM_ZATM=m | 2077 | CONFIG_ATM_ZATM=m |
2097 | # CONFIG_ATM_ZATM_DEBUG is not set | 2078 | # CONFIG_ATM_ZATM_DEBUG is not set |
2079 | CONFIG_ATM_NICSTAR=m | ||
2080 | # CONFIG_ATM_NICSTAR_USE_SUNI is not set | ||
2081 | # CONFIG_ATM_NICSTAR_USE_IDT77105 is not set | ||
2098 | CONFIG_ATM_IDT77252=m | 2082 | CONFIG_ATM_IDT77252=m |
2099 | # CONFIG_ATM_IDT77252_DEBUG is not set | 2083 | # CONFIG_ATM_IDT77252_DEBUG is not set |
2100 | # CONFIG_ATM_IDT77252_RCV_ALL is not set | 2084 | # CONFIG_ATM_IDT77252_RCV_ALL is not set |
@@ -2119,6 +2103,8 @@ CONFIG_IEEE802154_FAKEHARD=m | |||
2119 | # CAIF transport drivers | 2103 | # CAIF transport drivers |
2120 | # | 2104 | # |
2121 | CONFIG_CAIF_TTY=m | 2105 | CONFIG_CAIF_TTY=m |
2106 | CONFIG_CAIF_SPI_SLAVE=m | ||
2107 | # CONFIG_CAIF_SPI_SYNC is not set | ||
2122 | CONFIG_FDDI=y | 2108 | CONFIG_FDDI=y |
2123 | CONFIG_DEFXX=m | 2109 | CONFIG_DEFXX=m |
2124 | # CONFIG_DEFXX_MMIO is not set | 2110 | # CONFIG_DEFXX_MMIO is not set |
@@ -2237,6 +2223,7 @@ CONFIG_KEYBOARD_TCA6416=m | |||
2237 | CONFIG_KEYBOARD_MATRIX=m | 2223 | CONFIG_KEYBOARD_MATRIX=m |
2238 | CONFIG_KEYBOARD_LM8323=m | 2224 | CONFIG_KEYBOARD_LM8323=m |
2239 | # CONFIG_KEYBOARD_MAX7359 is not set | 2225 | # CONFIG_KEYBOARD_MAX7359 is not set |
2226 | CONFIG_KEYBOARD_MCS=m | ||
2240 | CONFIG_KEYBOARD_NEWTON=m | 2227 | CONFIG_KEYBOARD_NEWTON=m |
2241 | # CONFIG_KEYBOARD_OPENCORES is not set | 2228 | # CONFIG_KEYBOARD_OPENCORES is not set |
2242 | CONFIG_KEYBOARD_STOWAWAY=m | 2229 | CONFIG_KEYBOARD_STOWAWAY=m |
@@ -2263,8 +2250,10 @@ CONFIG_MOUSE_SYNAPTICS_I2C=m | |||
2263 | CONFIG_INPUT_TOUCHSCREEN=y | 2250 | CONFIG_INPUT_TOUCHSCREEN=y |
2264 | CONFIG_TOUCHSCREEN_ADS7846=m | 2251 | CONFIG_TOUCHSCREEN_ADS7846=m |
2265 | CONFIG_TOUCHSCREEN_AD7877=m | 2252 | CONFIG_TOUCHSCREEN_AD7877=m |
2266 | CONFIG_TOUCHSCREEN_AD7879_I2C=m | ||
2267 | CONFIG_TOUCHSCREEN_AD7879=m | 2253 | CONFIG_TOUCHSCREEN_AD7879=m |
2254 | CONFIG_TOUCHSCREEN_AD7879_I2C=m | ||
2255 | CONFIG_TOUCHSCREEN_AD7879_SPI=m | ||
2256 | CONFIG_TOUCHSCREEN_CY8CTMG110=m | ||
2268 | CONFIG_TOUCHSCREEN_DYNAPRO=m | 2257 | CONFIG_TOUCHSCREEN_DYNAPRO=m |
2269 | CONFIG_TOUCHSCREEN_HAMPSHIRE=m | 2258 | CONFIG_TOUCHSCREEN_HAMPSHIRE=m |
2270 | CONFIG_TOUCHSCREEN_EETI=m | 2259 | CONFIG_TOUCHSCREEN_EETI=m |
@@ -2277,6 +2266,7 @@ CONFIG_TOUCHSCREEN_MTOUCH=m | |||
2277 | CONFIG_TOUCHSCREEN_INEXIO=m | 2266 | CONFIG_TOUCHSCREEN_INEXIO=m |
2278 | CONFIG_TOUCHSCREEN_MK712=m | 2267 | CONFIG_TOUCHSCREEN_MK712=m |
2279 | CONFIG_TOUCHSCREEN_PENMOUNT=m | 2268 | CONFIG_TOUCHSCREEN_PENMOUNT=m |
2269 | CONFIG_TOUCHSCREEN_QT602240=m | ||
2280 | CONFIG_TOUCHSCREEN_TOUCHRIGHT=m | 2270 | CONFIG_TOUCHSCREEN_TOUCHRIGHT=m |
2281 | CONFIG_TOUCHSCREEN_TOUCHWIN=m | 2271 | CONFIG_TOUCHSCREEN_TOUCHWIN=m |
2282 | CONFIG_TOUCHSCREEN_UCB1400=m | 2272 | CONFIG_TOUCHSCREEN_UCB1400=m |
@@ -2299,7 +2289,7 @@ CONFIG_TOUCHSCREEN_USB_GOTOP=y | |||
2299 | CONFIG_TOUCHSCREEN_USB_JASTEC=y | 2289 | CONFIG_TOUCHSCREEN_USB_JASTEC=y |
2300 | CONFIG_TOUCHSCREEN_USB_E2I=y | 2290 | CONFIG_TOUCHSCREEN_USB_E2I=y |
2301 | CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y | 2291 | CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y |
2302 | CONFIG_TOUCHSCREEN_USB_ETT_TC5UH=y | 2292 | CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y |
2303 | CONFIG_TOUCHSCREEN_USB_NEXIO=y | 2293 | CONFIG_TOUCHSCREEN_USB_NEXIO=y |
2304 | CONFIG_TOUCHSCREEN_TOUCHIT213=m | 2294 | CONFIG_TOUCHSCREEN_TOUCHIT213=m |
2305 | CONFIG_TOUCHSCREEN_TSC2007=m | 2295 | CONFIG_TOUCHSCREEN_TSC2007=m |
@@ -2322,6 +2312,9 @@ CONFIG_INPUT_WINBOND_CIR=m | |||
2322 | CONFIG_INPUT_PCF50633_PMU=m | 2312 | CONFIG_INPUT_PCF50633_PMU=m |
2323 | CONFIG_INPUT_PCF8574=m | 2313 | CONFIG_INPUT_PCF8574=m |
2324 | CONFIG_INPUT_GPIO_ROTARY_ENCODER=m | 2314 | CONFIG_INPUT_GPIO_ROTARY_ENCODER=m |
2315 | CONFIG_INPUT_ADXL34X=m | ||
2316 | CONFIG_INPUT_ADXL34X_I2C=m | ||
2317 | CONFIG_INPUT_ADXL34X_SPI=m | ||
2325 | 2318 | ||
2326 | # | 2319 | # |
2327 | # Hardware I/O ports | 2320 | # Hardware I/O ports |
@@ -2388,6 +2381,9 @@ CONFIG_SERIAL_8250_RSA=y | |||
2388 | # Non-8250 serial port support | 2381 | # Non-8250 serial port support |
2389 | # | 2382 | # |
2390 | CONFIG_SERIAL_MAX3100=m | 2383 | CONFIG_SERIAL_MAX3100=m |
2384 | CONFIG_SERIAL_MAX3107=m | ||
2385 | CONFIG_SERIAL_MRST_MAX3110=m | ||
2386 | CONFIG_SERIAL_MFD_HSU=m | ||
2391 | CONFIG_SERIAL_UARTLITE=m | 2387 | CONFIG_SERIAL_UARTLITE=m |
2392 | CONFIG_SERIAL_CORE=y | 2388 | CONFIG_SERIAL_CORE=y |
2393 | CONFIG_SERIAL_CORE_CONSOLE=y | 2389 | CONFIG_SERIAL_CORE_CONSOLE=y |
@@ -2429,8 +2425,6 @@ CONFIG_CARDMAN_4000=m | |||
2429 | CONFIG_CARDMAN_4040=m | 2425 | CONFIG_CARDMAN_4040=m |
2430 | CONFIG_IPWIRELESS=m | 2426 | CONFIG_IPWIRELESS=m |
2431 | CONFIG_MWAVE=m | 2427 | CONFIG_MWAVE=m |
2432 | CONFIG_PC8736x_GPIO=m | ||
2433 | CONFIG_NSC_GPIO=m | ||
2434 | CONFIG_RAW_DRIVER=m | 2428 | CONFIG_RAW_DRIVER=m |
2435 | CONFIG_MAX_RAW_DEVS=256 | 2429 | CONFIG_MAX_RAW_DEVS=256 |
2436 | CONFIG_HPET=y | 2430 | CONFIG_HPET=y |
@@ -2448,6 +2442,12 @@ CONFIG_I2C=m | |||
2448 | CONFIG_I2C_BOARDINFO=y | 2442 | CONFIG_I2C_BOARDINFO=y |
2449 | CONFIG_I2C_COMPAT=y | 2443 | CONFIG_I2C_COMPAT=y |
2450 | CONFIG_I2C_CHARDEV=m | 2444 | CONFIG_I2C_CHARDEV=m |
2445 | CONFIG_I2C_MUX=m | ||
2446 | |||
2447 | # | ||
2448 | # Multiplexer I2C Chip support | ||
2449 | # | ||
2450 | CONFIG_I2C_MUX_PCA954x=m | ||
2451 | CONFIG_I2C_HELPER_AUTO=y | 2451 | CONFIG_I2C_HELPER_AUTO=y |
2452 | CONFIG_I2C_SMBUS=m | 2452 | CONFIG_I2C_SMBUS=m |
2453 | CONFIG_I2C_ALGOBIT=m | 2453 | CONFIG_I2C_ALGOBIT=m |
@@ -2641,9 +2641,11 @@ CONFIG_SENSORS_G760A=m | |||
2641 | CONFIG_SENSORS_GL518SM=m | 2641 | CONFIG_SENSORS_GL518SM=m |
2642 | CONFIG_SENSORS_GL520SM=m | 2642 | CONFIG_SENSORS_GL520SM=m |
2643 | CONFIG_SENSORS_CORETEMP=m | 2643 | CONFIG_SENSORS_CORETEMP=m |
2644 | CONFIG_SENSORS_PKGTEMP=m | ||
2644 | CONFIG_SENSORS_IBMAEM=m | 2645 | CONFIG_SENSORS_IBMAEM=m |
2645 | CONFIG_SENSORS_IBMPEX=m | 2646 | CONFIG_SENSORS_IBMPEX=m |
2646 | CONFIG_SENSORS_IT87=m | 2647 | CONFIG_SENSORS_IT87=m |
2648 | CONFIG_SENSORS_JC42=m | ||
2647 | CONFIG_SENSORS_LM63=m | 2649 | CONFIG_SENSORS_LM63=m |
2648 | CONFIG_SENSORS_LM70=m | 2650 | CONFIG_SENSORS_LM70=m |
2649 | CONFIG_SENSORS_LM73=m | 2651 | CONFIG_SENSORS_LM73=m |
@@ -2668,8 +2670,10 @@ CONFIG_SENSORS_PC87427=m | |||
2668 | CONFIG_SENSORS_PCF8591=m | 2670 | CONFIG_SENSORS_PCF8591=m |
2669 | CONFIG_SENSORS_SHT15=m | 2671 | CONFIG_SENSORS_SHT15=m |
2670 | CONFIG_SENSORS_SIS5595=m | 2672 | CONFIG_SENSORS_SIS5595=m |
2673 | CONFIG_SENSORS_SMM665=m | ||
2671 | CONFIG_SENSORS_DME1737=m | 2674 | CONFIG_SENSORS_DME1737=m |
2672 | CONFIG_SENSORS_EMC1403=m | 2675 | CONFIG_SENSORS_EMC1403=m |
2676 | CONFIG_SENSORS_EMC2103=m | ||
2673 | CONFIG_SENSORS_SMSC47M1=m | 2677 | CONFIG_SENSORS_SMSC47M1=m |
2674 | CONFIG_SENSORS_SMSC47M192=m | 2678 | CONFIG_SENSORS_SMSC47M192=m |
2675 | CONFIG_SENSORS_SMSC47B397=m | 2679 | CONFIG_SENSORS_SMSC47B397=m |
@@ -2713,6 +2717,7 @@ CONFIG_ACQUIRE_WDT=m | |||
2713 | CONFIG_ADVANTECH_WDT=m | 2717 | CONFIG_ADVANTECH_WDT=m |
2714 | CONFIG_ALIM1535_WDT=m | 2718 | CONFIG_ALIM1535_WDT=m |
2715 | CONFIG_ALIM7101_WDT=m | 2719 | CONFIG_ALIM7101_WDT=m |
2720 | CONFIG_F71808E_WDT=m | ||
2716 | CONFIG_GEODE_WDT=m | 2721 | CONFIG_GEODE_WDT=m |
2717 | CONFIG_SC520_WDT=m | 2722 | CONFIG_SC520_WDT=m |
2718 | # CONFIG_SBC_FITPC2_WATCHDOG is not set | 2723 | # CONFIG_SBC_FITPC2_WATCHDOG is not set |
@@ -2791,6 +2796,7 @@ CONFIG_MFD_TIMBERDALE=m | |||
2791 | CONFIG_LPC_SCH=m | 2796 | CONFIG_LPC_SCH=m |
2792 | CONFIG_MFD_RDC321X=m | 2797 | CONFIG_MFD_RDC321X=m |
2793 | CONFIG_MFD_JANZ_CMODIO=m | 2798 | CONFIG_MFD_JANZ_CMODIO=m |
2799 | CONFIG_MFD_TPS6586X=m | ||
2794 | CONFIG_REGULATOR=y | 2800 | CONFIG_REGULATOR=y |
2795 | # CONFIG_REGULATOR_DEBUG is not set | 2801 | # CONFIG_REGULATOR_DEBUG is not set |
2796 | # CONFIG_REGULATOR_DUMMY is not set | 2802 | # CONFIG_REGULATOR_DUMMY is not set |
@@ -2806,6 +2812,10 @@ CONFIG_REGULATOR_PCF50633=m | |||
2806 | CONFIG_REGULATOR_LP3971=m | 2812 | CONFIG_REGULATOR_LP3971=m |
2807 | # CONFIG_REGULATOR_TPS65023 is not set | 2813 | # CONFIG_REGULATOR_TPS65023 is not set |
2808 | # CONFIG_REGULATOR_TPS6507X is not set | 2814 | # CONFIG_REGULATOR_TPS6507X is not set |
2815 | CONFIG_REGULATOR_ISL6271A=m | ||
2816 | CONFIG_REGULATOR_AD5398=m | ||
2817 | # CONFIG_REGULATOR_AB8500 is not set | ||
2818 | CONFIG_REGULATOR_TPS6586X=m | ||
2809 | CONFIG_MEDIA_SUPPORT=m | 2819 | CONFIG_MEDIA_SUPPORT=m |
2810 | 2820 | ||
2811 | # | 2821 | # |
@@ -2825,13 +2835,18 @@ CONFIG_VIDEO_SAA7146=m | |||
2825 | CONFIG_VIDEO_SAA7146_VV=m | 2835 | CONFIG_VIDEO_SAA7146_VV=m |
2826 | CONFIG_IR_CORE=m | 2836 | CONFIG_IR_CORE=m |
2827 | CONFIG_VIDEO_IR=m | 2837 | CONFIG_VIDEO_IR=m |
2838 | CONFIG_LIRC=m | ||
2828 | CONFIG_RC_MAP=m | 2839 | CONFIG_RC_MAP=m |
2829 | CONFIG_IR_NEC_DECODER=m | 2840 | CONFIG_IR_NEC_DECODER=m |
2830 | CONFIG_IR_RC5_DECODER=m | 2841 | CONFIG_IR_RC5_DECODER=m |
2831 | CONFIG_IR_RC6_DECODER=m | 2842 | CONFIG_IR_RC6_DECODER=m |
2832 | CONFIG_IR_JVC_DECODER=m | 2843 | CONFIG_IR_JVC_DECODER=m |
2833 | CONFIG_IR_SONY_DECODER=m | 2844 | CONFIG_IR_SONY_DECODER=m |
2845 | CONFIG_IR_LIRC_CODEC=m | ||
2834 | CONFIG_IR_IMON=m | 2846 | CONFIG_IR_IMON=m |
2847 | CONFIG_IR_MCEUSB=m | ||
2848 | CONFIG_IR_ENE=m | ||
2849 | CONFIG_IR_STREAMZAP=m | ||
2835 | # CONFIG_MEDIA_ATTACH is not set | 2850 | # CONFIG_MEDIA_ATTACH is not set |
2836 | CONFIG_MEDIA_TUNER=m | 2851 | CONFIG_MEDIA_TUNER=m |
2837 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set | 2852 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set |
@@ -2857,6 +2872,7 @@ CONFIG_VIDEO_V4L2=m | |||
2857 | CONFIG_VIDEOBUF_GEN=m | 2872 | CONFIG_VIDEOBUF_GEN=m |
2858 | CONFIG_VIDEOBUF_DMA_SG=m | 2873 | CONFIG_VIDEOBUF_DMA_SG=m |
2859 | CONFIG_VIDEOBUF_VMALLOC=m | 2874 | CONFIG_VIDEOBUF_VMALLOC=m |
2875 | CONFIG_VIDEOBUF_DMA_CONTIG=m | ||
2860 | CONFIG_VIDEOBUF_DVB=m | 2876 | CONFIG_VIDEOBUF_DVB=m |
2861 | CONFIG_VIDEO_BTCX=m | 2877 | CONFIG_VIDEO_BTCX=m |
2862 | CONFIG_VIDEO_TVEEPROM=m | 2878 | CONFIG_VIDEO_TVEEPROM=m |
@@ -3018,8 +3034,10 @@ CONFIG_USB_GSPCA_SPCA505=m | |||
3018 | CONFIG_USB_GSPCA_SPCA506=m | 3034 | CONFIG_USB_GSPCA_SPCA506=m |
3019 | CONFIG_USB_GSPCA_SPCA508=m | 3035 | CONFIG_USB_GSPCA_SPCA508=m |
3020 | CONFIG_USB_GSPCA_SPCA561=m | 3036 | CONFIG_USB_GSPCA_SPCA561=m |
3037 | CONFIG_USB_GSPCA_SPCA1528=m | ||
3021 | CONFIG_USB_GSPCA_SQ905=m | 3038 | CONFIG_USB_GSPCA_SQ905=m |
3022 | CONFIG_USB_GSPCA_SQ905C=m | 3039 | CONFIG_USB_GSPCA_SQ905C=m |
3040 | CONFIG_USB_GSPCA_SQ930X=m | ||
3023 | CONFIG_USB_GSPCA_STK014=m | 3041 | CONFIG_USB_GSPCA_STK014=m |
3024 | CONFIG_USB_GSPCA_STV0680=m | 3042 | CONFIG_USB_GSPCA_STV0680=m |
3025 | CONFIG_USB_GSPCA_SUNPLUS=m | 3043 | CONFIG_USB_GSPCA_SUNPLUS=m |
@@ -3042,7 +3060,6 @@ CONFIG_VIDEO_CX231XX_DVB=m | |||
3042 | CONFIG_VIDEO_USBVISION=m | 3060 | CONFIG_VIDEO_USBVISION=m |
3043 | CONFIG_USB_ET61X251=m | 3061 | CONFIG_USB_ET61X251=m |
3044 | CONFIG_USB_SN9C102=m | 3062 | CONFIG_USB_SN9C102=m |
3045 | CONFIG_USB_ZC0301=m | ||
3046 | CONFIG_USB_ZR364XX=m | 3063 | CONFIG_USB_ZR364XX=m |
3047 | CONFIG_USB_STKWEBCAM=m | 3064 | CONFIG_USB_STKWEBCAM=m |
3048 | CONFIG_USB_S2255=m | 3065 | CONFIG_USB_S2255=m |
@@ -3239,6 +3256,7 @@ CONFIG_DVB_ISL6421=m | |||
3239 | CONFIG_DVB_ISL6423=m | 3256 | CONFIG_DVB_ISL6423=m |
3240 | CONFIG_DVB_LGS8GXX=m | 3257 | CONFIG_DVB_LGS8GXX=m |
3241 | CONFIG_DVB_ATBM8830=m | 3258 | CONFIG_DVB_ATBM8830=m |
3259 | CONFIG_DVB_TDA665x=m | ||
3242 | CONFIG_DAB=y | 3260 | CONFIG_DAB=y |
3243 | CONFIG_USB_DABUSB=m | 3261 | CONFIG_USB_DABUSB=m |
3244 | 3262 | ||
@@ -3574,9 +3592,10 @@ CONFIG_SND_SOC_AK4104=m | |||
3574 | CONFIG_SND_SOC_AK4535=m | 3592 | CONFIG_SND_SOC_AK4535=m |
3575 | CONFIG_SND_SOC_AK4642=m | 3593 | CONFIG_SND_SOC_AK4642=m |
3576 | CONFIG_SND_SOC_AK4671=m | 3594 | CONFIG_SND_SOC_AK4671=m |
3595 | CONFIG_SND_SOC_CS42L51=m | ||
3577 | CONFIG_SND_SOC_CS4270=m | 3596 | CONFIG_SND_SOC_CS4270=m |
3578 | CONFIG_SND_SOC_DA7210=m | ||
3579 | CONFIG_SND_SOC_L3=m | 3597 | CONFIG_SND_SOC_L3=m |
3598 | CONFIG_SND_SOC_DA7210=m | ||
3580 | CONFIG_SND_SOC_PCM3008=m | 3599 | CONFIG_SND_SOC_PCM3008=m |
3581 | CONFIG_SND_SOC_SPDIF=m | 3600 | CONFIG_SND_SOC_SPDIF=m |
3582 | CONFIG_SND_SOC_SSM2602=m | 3601 | CONFIG_SND_SOC_SSM2602=m |
@@ -3594,6 +3613,7 @@ CONFIG_SND_SOC_WM8711=m | |||
3594 | CONFIG_SND_SOC_WM8727=m | 3613 | CONFIG_SND_SOC_WM8727=m |
3595 | CONFIG_SND_SOC_WM8728=m | 3614 | CONFIG_SND_SOC_WM8728=m |
3596 | CONFIG_SND_SOC_WM8731=m | 3615 | CONFIG_SND_SOC_WM8731=m |
3616 | CONFIG_SND_SOC_WM8741=m | ||
3597 | CONFIG_SND_SOC_WM8750=m | 3617 | CONFIG_SND_SOC_WM8750=m |
3598 | CONFIG_SND_SOC_WM8753=m | 3618 | CONFIG_SND_SOC_WM8753=m |
3599 | CONFIG_SND_SOC_WM8776=m | 3619 | CONFIG_SND_SOC_WM8776=m |
@@ -3639,6 +3659,7 @@ CONFIG_USB_MOUSE=m | |||
3639 | # | 3659 | # |
3640 | CONFIG_HID_3M_PCT=m | 3660 | CONFIG_HID_3M_PCT=m |
3641 | # CONFIG_HID_A4TECH is not set | 3661 | # CONFIG_HID_A4TECH is not set |
3662 | CONFIG_HID_ACRUX_FF=m | ||
3642 | # CONFIG_HID_APPLE is not set | 3663 | # CONFIG_HID_APPLE is not set |
3643 | # CONFIG_HID_BELKIN is not set | 3664 | # CONFIG_HID_BELKIN is not set |
3644 | CONFIG_HID_CANDO=m | 3665 | CONFIG_HID_CANDO=m |
@@ -3648,6 +3669,7 @@ CONFIG_HID_PRODIKEYS=m | |||
3648 | # CONFIG_HID_CYPRESS is not set | 3669 | # CONFIG_HID_CYPRESS is not set |
3649 | # CONFIG_HID_DRAGONRISE is not set | 3670 | # CONFIG_HID_DRAGONRISE is not set |
3650 | CONFIG_HID_EGALAX=m | 3671 | CONFIG_HID_EGALAX=m |
3672 | CONFIG_HID_ELECOM=m | ||
3651 | # CONFIG_HID_EZKEY is not set | 3673 | # CONFIG_HID_EZKEY is not set |
3652 | # CONFIG_HID_KYE is not set | 3674 | # CONFIG_HID_KYE is not set |
3653 | # CONFIG_HID_GYRATION is not set | 3675 | # CONFIG_HID_GYRATION is not set |
@@ -3824,6 +3846,7 @@ CONFIG_USB_SERIAL_OMNINET=m | |||
3824 | CONFIG_USB_SERIAL_OPTICON=m | 3846 | CONFIG_USB_SERIAL_OPTICON=m |
3825 | CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m | 3847 | CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m |
3826 | CONFIG_USB_SERIAL_ZIO=m | 3848 | CONFIG_USB_SERIAL_ZIO=m |
3849 | CONFIG_USB_SERIAL_SSU100=m | ||
3827 | CONFIG_USB_SERIAL_DEBUG=m | 3850 | CONFIG_USB_SERIAL_DEBUG=m |
3828 | 3851 | ||
3829 | # | 3852 | # |
@@ -3984,9 +4007,11 @@ CONFIG_RTC_DRV_TEST=m | |||
3984 | CONFIG_RTC_DRV_DS1307=m | 4007 | CONFIG_RTC_DRV_DS1307=m |
3985 | CONFIG_RTC_DRV_DS1374=m | 4008 | CONFIG_RTC_DRV_DS1374=m |
3986 | CONFIG_RTC_DRV_DS1672=m | 4009 | CONFIG_RTC_DRV_DS1672=m |
4010 | CONFIG_RTC_DRV_DS3232=m | ||
3987 | CONFIG_RTC_DRV_MAX6900=m | 4011 | CONFIG_RTC_DRV_MAX6900=m |
3988 | CONFIG_RTC_DRV_RS5C372=m | 4012 | CONFIG_RTC_DRV_RS5C372=m |
3989 | CONFIG_RTC_DRV_ISL1208=m | 4013 | CONFIG_RTC_DRV_ISL1208=m |
4014 | CONFIG_RTC_DRV_ISL12022=m | ||
3990 | CONFIG_RTC_DRV_X1205=m | 4015 | CONFIG_RTC_DRV_X1205=m |
3991 | CONFIG_RTC_DRV_PCF8563=m | 4016 | CONFIG_RTC_DRV_PCF8563=m |
3992 | CONFIG_RTC_DRV_PCF8583=m | 4017 | CONFIG_RTC_DRV_PCF8583=m |
@@ -4038,9 +4063,11 @@ CONFIG_DMADEVICES=y | |||
4038 | # | 4063 | # |
4039 | # DMA Devices | 4064 | # DMA Devices |
4040 | # | 4065 | # |
4066 | CONFIG_INTEL_MID_DMAC=m | ||
4041 | CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y | 4067 | CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y |
4042 | CONFIG_INTEL_IOATDMA=m | 4068 | CONFIG_INTEL_IOATDMA=m |
4043 | CONFIG_TIMB_DMA=m | 4069 | CONFIG_TIMB_DMA=m |
4070 | CONFIG_PCH_DMA=m | ||
4044 | CONFIG_DMA_ENGINE=y | 4071 | CONFIG_DMA_ENGINE=y |
4045 | 4072 | ||
4046 | # | 4073 | # |
@@ -4096,6 +4123,7 @@ CONFIG_STAGING=y | |||
4096 | # I2C encoder or helper chips | 4123 | # I2C encoder or helper chips |
4097 | # | 4124 | # |
4098 | # CONFIG_DRM_I2C_CH7006 is not set | 4125 | # CONFIG_DRM_I2C_CH7006 is not set |
4126 | CONFIG_DRM_I2C_SIL164=m | ||
4099 | # CONFIG_USB_SERIAL_QUATECH2 is not set | 4127 | # CONFIG_USB_SERIAL_QUATECH2 is not set |
4100 | # CONFIG_USB_SERIAL_QUATECH_USB2 is not set | 4128 | # CONFIG_USB_SERIAL_QUATECH_USB2 is not set |
4101 | # CONFIG_VT6655 is not set | 4129 | # CONFIG_VT6655 is not set |
@@ -4107,19 +4135,14 @@ CONFIG_HYPERV_BLOCK=m | |||
4107 | CONFIG_HYPERV_NET=m | 4135 | CONFIG_HYPERV_NET=m |
4108 | CONFIG_HYPERV_UTILS=m | 4136 | CONFIG_HYPERV_UTILS=m |
4109 | # CONFIG_VME_BUS is not set | 4137 | # CONFIG_VME_BUS is not set |
4110 | |||
4111 | # | ||
4112 | # RAR Register Driver | ||
4113 | # | ||
4114 | # CONFIG_RAR_REGISTER is not set | ||
4115 | # CONFIG_IIO is not set | 4138 | # CONFIG_IIO is not set |
4116 | # CONFIG_RAMZSWAP is not set | 4139 | CONFIG_ZRAM=m |
4140 | CONFIG_ZRAM_STATS=y | ||
4117 | # CONFIG_WLAGS49_H2 is not set | 4141 | # CONFIG_WLAGS49_H2 is not set |
4118 | # CONFIG_WLAGS49_H25 is not set | 4142 | # CONFIG_WLAGS49_H25 is not set |
4119 | # CONFIG_BATMAN_ADV is not set | 4143 | # CONFIG_BATMAN_ADV is not set |
4120 | # CONFIG_SAMSUNG_LAPTOP is not set | 4144 | # CONFIG_SAMSUNG_LAPTOP is not set |
4121 | # CONFIG_FB_SM7XX is not set | 4145 | # CONFIG_FB_SM7XX is not set |
4122 | # CONFIG_DT3155 is not set | ||
4123 | # CONFIG_VIDEO_DT3155 is not set | 4146 | # CONFIG_VIDEO_DT3155 is not set |
4124 | # CONFIG_CRYSTALHD is not set | 4147 | # CONFIG_CRYSTALHD is not set |
4125 | # CONFIG_CXT1E1 is not set | 4148 | # CONFIG_CXT1E1 is not set |
@@ -4131,6 +4154,10 @@ CONFIG_HYPERV_UTILS=m | |||
4131 | # CONFIG_ST_BT is not set | 4154 | # CONFIG_ST_BT is not set |
4132 | # CONFIG_ADIS16255 is not set | 4155 | # CONFIG_ADIS16255 is not set |
4133 | # CONFIG_FB_XGI is not set | 4156 | # CONFIG_FB_XGI is not set |
4157 | # CONFIG_LIRC_STAGING is not set | ||
4158 | CONFIG_EASYCAP=m | ||
4159 | CONFIG_SOLO6X10=m | ||
4160 | CONFIG_ACPI_QUICKSTART=m | ||
4134 | CONFIG_X86_PLATFORM_DEVICES=y | 4161 | CONFIG_X86_PLATFORM_DEVICES=y |
4135 | CONFIG_ACER_WMI=m | 4162 | CONFIG_ACER_WMI=m |
4136 | CONFIG_ASUS_LAPTOP=m | 4163 | CONFIG_ASUS_LAPTOP=m |
@@ -4144,6 +4171,7 @@ CONFIG_PANASONIC_LAPTOP=m | |||
4144 | CONFIG_COMPAL_LAPTOP=m | 4171 | CONFIG_COMPAL_LAPTOP=m |
4145 | CONFIG_SONY_LAPTOP=m | 4172 | CONFIG_SONY_LAPTOP=m |
4146 | # CONFIG_SONYPI_COMPAT is not set | 4173 | # CONFIG_SONYPI_COMPAT is not set |
4174 | CONFIG_IDEAPAD_ACPI=m | ||
4147 | CONFIG_THINKPAD_ACPI=m | 4175 | CONFIG_THINKPAD_ACPI=m |
4148 | CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y | 4176 | CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y |
4149 | # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set | 4177 | # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set |
@@ -4161,6 +4189,7 @@ CONFIG_ACPI_ASUS=m | |||
4161 | CONFIG_ACPI_TOSHIBA=m | 4189 | CONFIG_ACPI_TOSHIBA=m |
4162 | CONFIG_TOSHIBA_BT_RFKILL=m | 4190 | CONFIG_TOSHIBA_BT_RFKILL=m |
4163 | CONFIG_ACPI_CMPC=m | 4191 | CONFIG_ACPI_CMPC=m |
4192 | CONFIG_INTEL_IPS=m | ||
4164 | 4193 | ||
4165 | # | 4194 | # |
4166 | # Firmware Drivers | 4195 | # Firmware Drivers |
@@ -4228,7 +4257,6 @@ CONFIG_NILFS2_FS=m | |||
4228 | CONFIG_FILE_LOCKING=y | 4257 | CONFIG_FILE_LOCKING=y |
4229 | CONFIG_FSNOTIFY=y | 4258 | CONFIG_FSNOTIFY=y |
4230 | # CONFIG_DNOTIFY is not set | 4259 | # CONFIG_DNOTIFY is not set |
4231 | CONFIG_INOTIFY=y | ||
4232 | CONFIG_INOTIFY_USER=y | 4260 | CONFIG_INOTIFY_USER=y |
4233 | CONFIG_QUOTA=y | 4261 | CONFIG_QUOTA=y |
4234 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 4262 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
@@ -4327,7 +4355,8 @@ CONFIG_UBIFS_FS_ZLIB=y | |||
4327 | CONFIG_LOGFS=m | 4355 | CONFIG_LOGFS=m |
4328 | CONFIG_CRAMFS=m | 4356 | CONFIG_CRAMFS=m |
4329 | CONFIG_SQUASHFS=m | 4357 | CONFIG_SQUASHFS=m |
4330 | # CONFIG_SQUASHFS_XATTRS is not set | 4358 | # CONFIG_SQUASHFS_XATTR is not set |
4359 | # CONFIG_SQUASHFS_LZO is not set | ||
4331 | # CONFIG_SQUASHFS_EMBEDDED is not set | 4360 | # CONFIG_SQUASHFS_EMBEDDED is not set |
4332 | CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 | 4361 | CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 |
4333 | # CONFIG_VXFS_FS is not set | 4362 | # CONFIG_VXFS_FS is not set |
@@ -4353,6 +4382,8 @@ CONFIG_NFS_V3=y | |||
4353 | CONFIG_NFS_V4=y | 4382 | CONFIG_NFS_V4=y |
4354 | # CONFIG_NFS_V4_1 is not set | 4383 | # CONFIG_NFS_V4_1 is not set |
4355 | # CONFIG_NFS_FSCACHE is not set | 4384 | # CONFIG_NFS_FSCACHE is not set |
4385 | # CONFIG_NFS_USE_LEGACY_DNS is not set | ||
4386 | CONFIG_NFS_USE_KERNEL_DNS=y | ||
4356 | CONFIG_NFSD=m | 4387 | CONFIG_NFSD=m |
4357 | CONFIG_NFSD_V3=y | 4388 | CONFIG_NFSD_V3=y |
4358 | # CONFIG_NFSD_V3_ACL is not set | 4389 | # CONFIG_NFSD_V3_ACL is not set |
@@ -4377,6 +4408,7 @@ CONFIG_CIFS_XATTR=y | |||
4377 | CONFIG_CIFS_POSIX=y | 4408 | CONFIG_CIFS_POSIX=y |
4378 | # CONFIG_CIFS_DEBUG2 is not set | 4409 | # CONFIG_CIFS_DEBUG2 is not set |
4379 | CONFIG_CIFS_DFS_UPCALL=y | 4410 | CONFIG_CIFS_DFS_UPCALL=y |
4411 | # CONFIG_CIFS_FSCACHE is not set | ||
4380 | CONFIG_CIFS_EXPERIMENTAL=y | 4412 | CONFIG_CIFS_EXPERIMENTAL=y |
4381 | # CONFIG_NCP_FS is not set | 4413 | # CONFIG_NCP_FS is not set |
4382 | # CONFIG_CODA_FS is not set | 4414 | # CONFIG_CODA_FS is not set |
@@ -4461,13 +4493,13 @@ CONFIG_FRAME_WARN=1024 | |||
4461 | CONFIG_DEBUG_FS=y | 4493 | CONFIG_DEBUG_FS=y |
4462 | # CONFIG_HEADERS_CHECK is not set | 4494 | # CONFIG_HEADERS_CHECK is not set |
4463 | # CONFIG_DEBUG_KERNEL is not set | 4495 | # CONFIG_DEBUG_KERNEL is not set |
4496 | # CONFIG_HARDLOCKUP_DETECTOR is not set | ||
4464 | CONFIG_DEBUG_BUGVERBOSE=y | 4497 | CONFIG_DEBUG_BUGVERBOSE=y |
4465 | # CONFIG_DEBUG_MEMORY_INIT is not set | 4498 | # CONFIG_DEBUG_MEMORY_INIT is not set |
4466 | CONFIG_ARCH_WANT_FRAME_POINTERS=y | 4499 | CONFIG_ARCH_WANT_FRAME_POINTERS=y |
4467 | CONFIG_FRAME_POINTER=y | 4500 | CONFIG_FRAME_POINTER=y |
4468 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 4501 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
4469 | # CONFIG_LKDTM is not set | 4502 | # CONFIG_LKDTM is not set |
4470 | # CONFIG_LATENCYTOP is not set | ||
4471 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 4503 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
4472 | CONFIG_USER_STACKTRACE_SUPPORT=y | 4504 | CONFIG_USER_STACKTRACE_SUPPORT=y |
4473 | CONFIG_HAVE_FUNCTION_TRACER=y | 4505 | CONFIG_HAVE_FUNCTION_TRACER=y |
@@ -4515,10 +4547,8 @@ CONFIG_SECURITYFS=y | |||
4515 | # CONFIG_SECURITY_NETWORK is not set | 4547 | # CONFIG_SECURITY_NETWORK is not set |
4516 | # CONFIG_SECURITY_PATH is not set | 4548 | # CONFIG_SECURITY_PATH is not set |
4517 | # CONFIG_SECURITY_TOMOYO is not set | 4549 | # CONFIG_SECURITY_TOMOYO is not set |
4550 | # CONFIG_SECURITY_APPARMOR is not set | ||
4518 | # CONFIG_IMA is not set | 4551 | # CONFIG_IMA is not set |
4519 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set | ||
4520 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
4521 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
4522 | CONFIG_DEFAULT_SECURITY_DAC=y | 4552 | CONFIG_DEFAULT_SECURITY_DAC=y |
4523 | CONFIG_DEFAULT_SECURITY="" | 4553 | CONFIG_DEFAULT_SECURITY="" |
4524 | CONFIG_XOR_BLOCKS=m | 4554 | CONFIG_XOR_BLOCKS=m |
@@ -4527,6 +4557,7 @@ CONFIG_ASYNC_MEMCPY=m | |||
4527 | CONFIG_ASYNC_XOR=m | 4557 | CONFIG_ASYNC_XOR=m |
4528 | CONFIG_ASYNC_PQ=m | 4558 | CONFIG_ASYNC_PQ=m |
4529 | CONFIG_ASYNC_RAID6_RECOV=m | 4559 | CONFIG_ASYNC_RAID6_RECOV=m |
4560 | # CONFIG_ASYNC_RAID6_TEST is not set | ||
4530 | CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y | 4561 | CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y |
4531 | CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y | 4562 | CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y |
4532 | CONFIG_CRYPTO=y | 4563 | CONFIG_CRYPTO=y |
@@ -4545,10 +4576,11 @@ CONFIG_CRYPTO_HASH=y | |||
4545 | CONFIG_CRYPTO_HASH2=y | 4576 | CONFIG_CRYPTO_HASH2=y |
4546 | CONFIG_CRYPTO_RNG=m | 4577 | CONFIG_CRYPTO_RNG=m |
4547 | CONFIG_CRYPTO_RNG2=y | 4578 | CONFIG_CRYPTO_RNG2=y |
4548 | CONFIG_CRYPTO_PCOMP=y | 4579 | CONFIG_CRYPTO_PCOMP=m |
4580 | CONFIG_CRYPTO_PCOMP2=y | ||
4549 | CONFIG_CRYPTO_MANAGER=m | 4581 | CONFIG_CRYPTO_MANAGER=m |
4550 | CONFIG_CRYPTO_MANAGER2=y | 4582 | CONFIG_CRYPTO_MANAGER2=y |
4551 | CONFIG_CRYPTO_MANAGER_TESTS=y | 4583 | CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y |
4552 | CONFIG_CRYPTO_GF128MUL=m | 4584 | CONFIG_CRYPTO_GF128MUL=m |
4553 | CONFIG_CRYPTO_NULL=m | 4585 | CONFIG_CRYPTO_NULL=m |
4554 | CONFIG_CRYPTO_PCRYPT=m | 4586 | CONFIG_CRYPTO_PCRYPT=m |
@@ -4662,6 +4694,7 @@ CONFIG_VIRTIO_BALLOON=m | |||
4662 | # | 4694 | # |
4663 | # Library routines | 4695 | # Library routines |
4664 | # | 4696 | # |
4697 | CONFIG_RAID6_PQ=m | ||
4665 | CONFIG_BITREVERSE=y | 4698 | CONFIG_BITREVERSE=y |
4666 | CONFIG_GENERIC_FIND_FIRST_BIT=y | 4699 | CONFIG_GENERIC_FIND_FIRST_BIT=y |
4667 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 4700 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
diff --git a/testing/linux-scst/r8169-add-gro-support.patch b/testing/linux-scst/r8169-add-gro-support.patch deleted file mode 100644 index d8ca8d3ad6..0000000000 --- a/testing/linux-scst/r8169-add-gro-support.patch +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | - Use napi_gro_receive() and vlan_gro_receive() | ||
2 | - Enable GRO by default | ||
3 | |||
4 | Tested on a RTL8111/8168 adapter | ||
5 | |||
6 | Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> | ||
7 | CC: Francois Romieu <romieu@fr.zoreil.com> | ||
8 | --- | ||
9 | drivers/net/r8169.c | 10 ++++++++-- | ||
10 | 1 file changed, 8 insertions(+), 2 deletions(-) | ||
11 | |||
12 | diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c | ||
13 | index 56a11e2..ddff42b 100644 | ||
14 | --- a/drivers/net/r8169.c | ||
15 | +++ b/drivers/net/r8169.c | ||
16 | @@ -1076,7 +1076,12 @@ static int rtl8169_rx_vlan_skb(struct rtl8169_private *tp, struct RxDesc *desc, | ||
17 | int ret; | ||
18 | |||
19 | if (vlgrp && (opts2 & RxVlanTag)) { | ||
20 | - __vlan_hwaccel_rx(skb, vlgrp, swab16(opts2 & 0xffff), polling); | ||
21 | + u16 vtag = swab16(opts2 & 0xffff); | ||
22 | + | ||
23 | + if (polling) | ||
24 | + vlan_gro_receive(&tp->napi, vlgrp, vtag, skb); | ||
25 | + else | ||
26 | + __vlan_hwaccel_rx(skb, vlgrp, vtag, polling); | ||
27 | ret = 0; | ||
28 | } else | ||
29 | ret = -1; | ||
30 | @@ -3186,6 +3191,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | ||
31 | #ifdef CONFIG_R8169_VLAN | ||
32 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | ||
33 | #endif | ||
34 | + dev->features |= NETIF_F_GRO; | ||
35 | |||
36 | tp->intr_mask = 0xffff; | ||
37 | tp->align = cfg->align; | ||
38 | @@ -4561,7 +4567,7 @@ static int rtl8169_rx_interrupt(struct net_device *dev, | ||
39 | |||
40 | if (rtl8169_rx_vlan_skb(tp, desc, skb, polling) < 0) { | ||
41 | if (likely(polling)) | ||
42 | - netif_receive_skb(skb); | ||
43 | + napi_gro_receive(&tp->napi, skb); | ||
44 | else | ||
45 | netif_rx(skb); | ||
46 | } | ||
47 | |||
48 | |||
49 | -- | ||
50 | To unsubscribe from this list: send the line "unsubscribe netdev" in | ||
51 | the body of a message to majordomo@vger.kernel.org | ||
52 | More majordomo info at http://vger.kernel.org/majordomo-info.html \ No newline at end of file | ||
diff --git a/testing/linux-scst/r8169-fix-rx-checksum-offload.patch b/testing/linux-scst/r8169-fix-rx-checksum-offload.patch deleted file mode 100644 index d979caac63..0000000000 --- a/testing/linux-scst/r8169-fix-rx-checksum-offload.patch +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | From adea1ac7effbddbe60a9de6d63462bfe79289e59 Mon Sep 17 00:00:00 2001 | ||
2 | From: Eric Dumazet <eric.dumazet@gmail.com> | ||
3 | Date: Sun, 5 Sep 2010 20:04:05 -0700 | ||
4 | Subject: [PATCH] r8169: fix rx checksum offload | ||
5 | |||
6 | While porting GRO to r8169, I found this driver has a bug in its rx | ||
7 | path. | ||
8 | |||
9 | All skbs given to network stack had their ip_summed set to | ||
10 | CHECKSUM_NONE, while hardware said they had correct TCP/UDP checksums. | ||
11 | |||
12 | The reason is driver sets skb->ip_summed on the original skb before the | ||
13 | copy eventually done by copybreak. The fresh skb gets the ip_summed = | ||
14 | CHECKSUM_NONE value, forcing network stack to recompute checksum, and | ||
15 | preventing my GRO patch to work. | ||
16 | |||
17 | Fix is to make the ip_summed setting after skb copy. | ||
18 | |||
19 | Note : rx_copybreak current value is 16383, so all frames are copied... | ||
20 | |||
21 | Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> | ||
22 | Acked-by: Francois Romieu <romieu@fr.zoreil.com> | ||
23 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
24 | --- | ||
25 | drivers/net/r8169.c | 6 ++---- | ||
26 | 1 files changed, 2 insertions(+), 4 deletions(-) | ||
27 | |||
28 | diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c | ||
29 | index 07b3fb5..56a11e2 100644 | ||
30 | --- a/drivers/net/r8169.c | ||
31 | +++ b/drivers/net/r8169.c | ||
32 | @@ -4450,9 +4450,8 @@ static inline int rtl8169_fragmented_frame(u32 status) | ||
33 | return (status & (FirstFrag | LastFrag)) != (FirstFrag | LastFrag); | ||
34 | } | ||
35 | |||
36 | -static inline void rtl8169_rx_csum(struct sk_buff *skb, struct RxDesc *desc) | ||
37 | +static inline void rtl8169_rx_csum(struct sk_buff *skb, u32 opts1) | ||
38 | { | ||
39 | - u32 opts1 = le32_to_cpu(desc->opts1); | ||
40 | u32 status = opts1 & RxProtoMask; | ||
41 | |||
42 | if (((status == RxProtoTCP) && !(opts1 & TCPFail)) || | ||
43 | @@ -4546,8 +4545,6 @@ static int rtl8169_rx_interrupt(struct net_device *dev, | ||
44 | continue; | ||
45 | } | ||
46 | |||
47 | - rtl8169_rx_csum(skb, desc); | ||
48 | - | ||
49 | if (rtl8169_try_rx_copy(&skb, tp, pkt_size, addr)) { | ||
50 | pci_dma_sync_single_for_device(pdev, addr, | ||
51 | pkt_size, PCI_DMA_FROMDEVICE); | ||
52 | @@ -4558,6 +4555,7 @@ static int rtl8169_rx_interrupt(struct net_device *dev, | ||
53 | tp->Rx_skbuff[entry] = NULL; | ||
54 | } | ||
55 | |||
56 | + rtl8169_rx_csum(skb, status); | ||
57 | skb_put(skb, pkt_size); | ||
58 | skb->protocol = eth_type_trans(skb, dev); | ||
59 | |||
60 | -- | ||
61 | 1.7.2.3 | ||
62 | |||
diff --git a/testing/linux-scst/scst-2.6.35-svn-3161.patch b/testing/linux-scst/scst-2.6.36-2.0.0.patch index 6b1904a45d..f482ae59e4 100644 --- a/testing/linux-scst/scst-2.6.35-svn-3161.patch +++ b/testing/linux-scst/scst-2.6.36-2.0.0.patch | |||
@@ -1,8 +1,8 @@ | |||
1 | Signed-off-by: | 1 | Signed-off-by: |
2 | 2 | ||
3 | diff -upkr linux-2.6.35/block/blk-map.c linux-2.6.35/block/blk-map.c | 3 | diff -upkr linux-2.6.36/block/blk-map.c linux-2.6.36/block/blk-map.c |
4 | --- linux-2.6.35/block/blk-map.c 2010-08-02 02:11:14.000000000 +0400 | 4 | --- linux-2.6.36/block/blk-map.c 2010-10-21 00:30:22.000000000 +0400 |
5 | +++ linux-2.6.35/block/blk-map.c 2010-11-26 18:03:58.107693773 +0300 | 5 | +++ linux-2.6.36/block/blk-map.c 2010-11-26 17:52:19.467689539 +0300 |
6 | @@ -5,6 +5,8 @@ | 6 | @@ -5,6 +5,8 @@ |
7 | #include <linux/module.h> | 7 | #include <linux/module.h> |
8 | #include <linux/bio.h> | 8 | #include <linux/bio.h> |
@@ -12,7 +12,7 @@ diff -upkr linux-2.6.35/block/blk-map.c linux-2.6.35/block/blk-map.c | |||
12 | #include <scsi/sg.h> /* for struct sg_iovec */ | 12 | #include <scsi/sg.h> /* for struct sg_iovec */ |
13 | 13 | ||
14 | #include "blk.h" | 14 | #include "blk.h" |
15 | @@ -271,6 +273,335 @@ int blk_rq_unmap_user(struct bio *bio) | 15 | @@ -271,6 +273,337 @@ int blk_rq_unmap_user(struct bio *bio) |
16 | } | 16 | } |
17 | EXPORT_SYMBOL(blk_rq_unmap_user); | 17 | EXPORT_SYMBOL(blk_rq_unmap_user); |
18 | 18 | ||
@@ -197,7 +197,7 @@ diff -upkr linux-2.6.35/block/blk-map.c linux-2.6.35/block/blk-map.c | |||
197 | + } | 197 | + } |
198 | + | 198 | + |
199 | + if (rw == WRITE) | 199 | + if (rw == WRITE) |
200 | + bio->bi_rw |= 1 << BIO_RW; | 200 | + bio->bi_rw |= REQ_WRITE; |
201 | + | 201 | + |
202 | + bios++; | 202 | + bios++; |
203 | + bio->bi_private = bw; | 203 | + bio->bi_private = bw; |
@@ -265,6 +265,8 @@ diff -upkr linux-2.6.35/block/blk-map.c linux-2.6.35/block/blk-map.c | |||
265 | + } | 265 | + } |
266 | + } | 266 | + } |
267 | + | 267 | + |
268 | + res = 0; | ||
269 | + | ||
268 | + rq->buffer = NULL; | 270 | + rq->buffer = NULL; |
269 | +out: | 271 | +out: |
270 | + return res; | 272 | + return res; |
@@ -348,10 +350,10 @@ diff -upkr linux-2.6.35/block/blk-map.c linux-2.6.35/block/blk-map.c | |||
348 | /** | 350 | /** |
349 | * blk_rq_map_kern - map kernel data to a request, for REQ_TYPE_BLOCK_PC usage | 351 | * blk_rq_map_kern - map kernel data to a request, for REQ_TYPE_BLOCK_PC usage |
350 | * @q: request queue where request should be inserted | 352 | * @q: request queue where request should be inserted |
351 | diff -upkr linux-2.6.35/include/linux/blkdev.h linux-2.6.35/include/linux/blkdev.h | 353 | diff -upkr linux-2.6.36/include/linux/blkdev.h linux-2.6.36/include/linux/blkdev.h |
352 | --- linux-2.6.35/include/linux/blkdev.h 2010-08-02 02:11:14.000000000 +0400 | 354 | --- linux-2.6.36/include/linux/blkdev.h 2010-10-21 00:30:22.000000000 +0400 |
353 | +++ linux-2.6.35/include/linux/blkdev.h 2010-08-04 12:21:59.737128732 +0400 | 355 | +++ linux-2.6.36/include/linux/blkdev.h 2010-10-26 12:00:15.899759399 +0400 |
354 | @@ -832,6 +834,9 @@ extern int blk_rq_map_kern(struct reques | 356 | @@ -746,6 +748,9 @@ extern int blk_rq_map_kern(struct reques |
355 | extern int blk_rq_map_user_iov(struct request_queue *, struct request *, | 357 | extern int blk_rq_map_user_iov(struct request_queue *, struct request *, |
356 | struct rq_map_data *, struct sg_iovec *, int, | 358 | struct rq_map_data *, struct sg_iovec *, int, |
357 | unsigned int, gfp_t); | 359 | unsigned int, gfp_t); |
@@ -361,9 +363,9 @@ diff -upkr linux-2.6.35/include/linux/blkdev.h linux-2.6.35/include/linux/blkdev | |||
361 | extern int blk_execute_rq(struct request_queue *, struct gendisk *, | 363 | extern int blk_execute_rq(struct request_queue *, struct gendisk *, |
362 | struct request *, int); | 364 | struct request *, int); |
363 | extern void blk_execute_rq_nowait(struct request_queue *, struct gendisk *, | 365 | extern void blk_execute_rq_nowait(struct request_queue *, struct gendisk *, |
364 | diff -upkr linux-2.6.35/include/linux/scatterlist.h linux-2.6.35/include/linux/scatterlist.h | 366 | diff -upkr linux-2.6.36/include/linux/scatterlist.h linux-2.6.36/include/linux/scatterlist.h |
365 | --- linux-2.6.35/include/linux/scatterlist.h 2010-08-02 02:11:14.000000000 +0400 | 367 | --- linux-2.6.36/include/linux/scatterlist.h 2010-10-21 00:30:22.000000000 +0400 |
366 | +++ linux-2.6.35/include/linux/scatterlist.h 2010-08-04 12:21:59.741129485 +0400 | 368 | +++ linux-2.6.36/include/linux/scatterlist.h 2010-10-26 12:00:15.899759399 +0400 |
367 | @@ -3,6 +3,7 @@ | 369 | @@ -3,6 +3,7 @@ |
368 | 370 | ||
369 | #include <asm/types.h> | 371 | #include <asm/types.h> |
@@ -383,10 +385,10 @@ diff -upkr linux-2.6.35/include/linux/scatterlist.h linux-2.6.35/include/linux/s | |||
383 | /* | 385 | /* |
384 | * Maximum number of entries that will be allocated in one piece, if | 386 | * Maximum number of entries that will be allocated in one piece, if |
385 | * a list larger than this is required then chaining will be utilized. | 387 | * a list larger than this is required then chaining will be utilized. |
386 | diff -upkr linux-2.6.35/lib/scatterlist.c linux-2.6.35/lib/scatterlist.c | 388 | diff -upkr linux-2.6.36/lib/scatterlist.c linux-2.6.36/lib/scatterlist.c |
387 | --- linux-2.6.35/lib/scatterlist.c 2010-08-02 02:11:14.000000000 +0400 | 389 | --- linux-2.6.36/lib/scatterlist.c 2010-10-21 00:30:22.000000000 +0400 |
388 | +++ linux-2.6.35/lib/scatterlist.c 2010-08-04 12:21:59.741129485 +0400 | 390 | +++ linux-2.6.36/lib/scatterlist.c 2010-10-26 12:00:15.899759399 +0400 |
389 | @@ -494,3 +494,132 @@ size_t sg_copy_to_buffer(struct scatterl | 391 | @@ -517,3 +517,132 @@ size_t sg_copy_to_buffer(struct scatterl |
390 | return sg_copy_buffer(sgl, nents, buf, buflen, 1); | 392 | return sg_copy_buffer(sgl, nents, buf, buflen, 1); |
391 | } | 393 | } |
392 | EXPORT_SYMBOL(sg_copy_to_buffer); | 394 | EXPORT_SYMBOL(sg_copy_to_buffer); |
@@ -520,9 +522,9 @@ diff -upkr linux-2.6.35/lib/scatterlist.c linux-2.6.35/lib/scatterlist.c | |||
520 | +} | 522 | +} |
521 | +EXPORT_SYMBOL(sg_copy); | 523 | +EXPORT_SYMBOL(sg_copy); |
522 | 524 | ||
523 | diff -upkr linux-2.6.35/include/linux/mm_types.h linux-2.6.35/include/linux/mm_types.h | 525 | diff -upkr linux-2.6.36/include/linux/mm_types.h linux-2.6.36/include/linux/mm_types.h |
524 | --- linux-2.6.35/include/linux/mm_types.h 2010-05-17 01:17:36.000000000 +0400 | 526 | --- linux-2.6.36/include/linux/mm_types.h 2010-10-21 00:30:22.000000000 +0400 |
525 | +++ linux-2.6.35/include/linux/mm_types.h 2010-05-24 14:51:40.000000000 +0400 | 527 | +++ linux-2.6.36/include/linux/mm_types.h 2010-10-26 12:01:40.651752329 +0400 |
526 | @@ -100,6 +100,18 @@ struct page { | 528 | @@ -100,6 +100,18 @@ struct page { |
527 | */ | 529 | */ |
528 | void *shadow; | 530 | void *shadow; |
@@ -542,9 +544,9 @@ diff -upkr linux-2.6.35/include/linux/mm_types.h linux-2.6.35/include/linux/mm_t | |||
542 | }; | 544 | }; |
543 | 545 | ||
544 | /* | 546 | /* |
545 | diff -upkr linux-2.6.35/include/linux/net.h linux-2.6.35/include/linux/net.h | 547 | diff -upkr linux-2.6.36/include/linux/net.h linux-2.6.36/include/linux/net.h |
546 | --- linux-2.6.35/include/linux/net.h 2010-05-17 01:17:36.000000000 +0400 | 548 | --- linux-2.6.36/include/linux/net.h 2010-10-21 00:30:22.000000000 +0400 |
547 | +++ linux-2.6.35/include/linux/net.h 2010-05-24 14:51:40.000000000 +0400 | 549 | +++ linux-2.6.36/include/linux/net.h 2010-10-26 12:01:40.651752329 +0400 |
548 | @@ -20,6 +20,7 @@ | 550 | @@ -20,6 +20,7 @@ |
549 | 551 | ||
550 | #include <linux/socket.h> | 552 | #include <linux/socket.h> |
@@ -598,10 +600,10 @@ diff -upkr linux-2.6.35/include/linux/net.h linux-2.6.35/include/linux/net.h | |||
598 | + | 600 | + |
599 | #endif /* __KERNEL__ */ | 601 | #endif /* __KERNEL__ */ |
600 | #endif /* _LINUX_NET_H */ | 602 | #endif /* _LINUX_NET_H */ |
601 | diff -upkr linux-2.6.35/net/core/dev.c linux-2.6.35/net/core/dev.c | 603 | diff -upkr linux-2.6.36/net/core/dev.c linux-2.6.36/net/core/dev.c |
602 | --- linux-2.6.35/net/core/dev.c 2010-05-17 01:17:36.000000000 +0400 | 604 | --- linux-2.6.36/net/core/dev.c 2010-10-21 00:30:22.000000000 +0400 |
603 | +++ linux-2.6.35/net/core/dev.c 2010-05-24 14:51:40.000000000 +0400 | 605 | +++ linux-2.6.36/net/core/dev.c 2010-10-26 12:01:40.651752329 +0400 |
604 | @@ -3130,7 +3130,7 @@ pull: | 606 | @@ -3140,7 +3140,7 @@ pull: |
605 | skb_shinfo(skb)->frags[0].size -= grow; | 607 | skb_shinfo(skb)->frags[0].size -= grow; |
606 | 608 | ||
607 | if (unlikely(!skb_shinfo(skb)->frags[0].size)) { | 609 | if (unlikely(!skb_shinfo(skb)->frags[0].size)) { |
@@ -609,10 +611,10 @@ diff -upkr linux-2.6.35/net/core/dev.c linux-2.6.35/net/core/dev.c | |||
609 | + net_put_page(skb_shinfo(skb)->frags[0].page); | 611 | + net_put_page(skb_shinfo(skb)->frags[0].page); |
610 | memmove(skb_shinfo(skb)->frags, | 612 | memmove(skb_shinfo(skb)->frags, |
611 | skb_shinfo(skb)->frags + 1, | 613 | skb_shinfo(skb)->frags + 1, |
612 | --skb_shinfo(skb)->nr_frags); | 614 | --skb_shinfo(skb)->nr_frags * sizeof(skb_frag_t)); |
613 | diff -upkr linux-2.6.35/net/core/skbuff.c linux-2.6.35/net/core/skbuff.c | 615 | diff -upkr linux-2.6.36/net/core/skbuff.c linux-2.6.36/net/core/skbuff.c |
614 | --- linux-2.6.35/net/core/skbuff.c 2010-05-17 01:17:36.000000000 +0400 | 616 | --- linux-2.6.36/net/core/skbuff.c 2010-10-21 00:30:22.000000000 +0400 |
615 | +++ linux-2.6.35/net/core/skbuff.c 2010-05-24 14:51:40.000000000 +0400 | 617 | +++ linux-2.6.36/net/core/skbuff.c 2010-10-26 12:01:40.655752708 +0400 |
616 | @@ -76,13 +76,13 @@ static struct kmem_cache *skbuff_fclone_ | 618 | @@ -76,13 +76,13 @@ static struct kmem_cache *skbuff_fclone_ |
617 | static void sock_pipe_buf_release(struct pipe_inode_info *pipe, | 619 | static void sock_pipe_buf_release(struct pipe_inode_info *pipe, |
618 | struct pipe_buffer *buf) | 620 | struct pipe_buffer *buf) |
@@ -648,7 +650,7 @@ diff -upkr linux-2.6.35/net/core/skbuff.c linux-2.6.35/net/core/skbuff.c | |||
648 | skb_shinfo(n)->nr_frags = i; | 650 | skb_shinfo(n)->nr_frags = i; |
649 | } | 651 | } |
650 | @@ -820,7 +820,7 @@ int pskb_expand_head(struct sk_buff *skb | 652 | @@ -820,7 +820,7 @@ int pskb_expand_head(struct sk_buff *skb |
651 | sizeof(struct skb_shared_info)); | 653 | offsetof(struct skb_shared_info, frags[skb_shinfo(skb)->nr_frags])); |
652 | 654 | ||
653 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) | 655 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) |
654 | - get_page(skb_shinfo(skb)->frags[i].page); | 656 | - get_page(skb_shinfo(skb)->frags[i].page); |
@@ -737,7 +739,7 @@ diff -upkr linux-2.6.35/net/core/skbuff.c linux-2.6.35/net/core/skbuff.c | |||
737 | } | 739 | } |
738 | 740 | ||
739 | /* Reposition in the original skb */ | 741 | /* Reposition in the original skb */ |
740 | @@ -2598,7 +2598,7 @@ struct sk_buff *skb_segment(struct sk_bu | 742 | @@ -2601,7 +2601,7 @@ struct sk_buff *skb_segment(struct sk_bu |
741 | 743 | ||
742 | while (pos < offset + len && i < nfrags) { | 744 | while (pos < offset + len && i < nfrags) { |
743 | *frag = skb_shinfo(skb)->frags[i]; | 745 | *frag = skb_shinfo(skb)->frags[i]; |
@@ -746,10 +748,10 @@ diff -upkr linux-2.6.35/net/core/skbuff.c linux-2.6.35/net/core/skbuff.c | |||
746 | size = frag->size; | 748 | size = frag->size; |
747 | 749 | ||
748 | if (pos < offset) { | 750 | if (pos < offset) { |
749 | diff -upkr linux-2.6.35/net/ipv4/ip_output.c linux-2.6.35/net/ipv4/ip_output.c | 751 | diff -upkr linux-2.6.36/net/ipv4/ip_output.c linux-2.6.36/net/ipv4/ip_output.c |
750 | --- linux-2.6.35/net/ipv4/ip_output.c 2010-05-17 01:17:36.000000000 +0400 | 752 | --- linux-2.6.36/net/ipv4/ip_output.c 2010-10-21 00:30:22.000000000 +0400 |
751 | +++ linux-2.6.35/net/ipv4/ip_output.c 2010-05-24 14:51:40.000000000 +0400 | 753 | +++ linux-2.6.36/net/ipv4/ip_output.c 2010-10-26 12:01:40.655752708 +0400 |
752 | @@ -1035,7 +1035,7 @@ alloc_new_skb: | 754 | @@ -1040,7 +1040,7 @@ alloc_new_skb: |
753 | err = -EMSGSIZE; | 755 | err = -EMSGSIZE; |
754 | goto error; | 756 | goto error; |
755 | } | 757 | } |
@@ -758,7 +760,7 @@ diff -upkr linux-2.6.35/net/ipv4/ip_output.c linux-2.6.35/net/ipv4/ip_output.c | |||
758 | skb_fill_page_desc(skb, i, page, sk->sk_sndmsg_off, 0); | 760 | skb_fill_page_desc(skb, i, page, sk->sk_sndmsg_off, 0); |
759 | frag = &skb_shinfo(skb)->frags[i]; | 761 | frag = &skb_shinfo(skb)->frags[i]; |
760 | } | 762 | } |
761 | @@ -1194,7 +1194,7 @@ ssize_t ip_append_page(struct sock *sk, | 763 | @@ -1199,7 +1199,7 @@ ssize_t ip_append_page(struct sock *sk, |
762 | if (skb_can_coalesce(skb, i, page, offset)) { | 764 | if (skb_can_coalesce(skb, i, page, offset)) { |
763 | skb_shinfo(skb)->frags[i-1].size += len; | 765 | skb_shinfo(skb)->frags[i-1].size += len; |
764 | } else if (i < MAX_SKB_FRAGS) { | 766 | } else if (i < MAX_SKB_FRAGS) { |
@@ -767,9 +769,9 @@ diff -upkr linux-2.6.35/net/ipv4/ip_output.c linux-2.6.35/net/ipv4/ip_output.c | |||
767 | skb_fill_page_desc(skb, i, page, offset, len); | 769 | skb_fill_page_desc(skb, i, page, offset, len); |
768 | } else { | 770 | } else { |
769 | err = -EMSGSIZE; | 771 | err = -EMSGSIZE; |
770 | diff -upkr linux-2.6.35/net/ipv4/Makefile linux-2.6.35/net/ipv4/Makefile | 772 | diff -upkr linux-2.6.36/net/ipv4/Makefile linux-2.6.36/net/ipv4/Makefile |
771 | --- linux-2.6.35/net/ipv4/Makefile 2010-05-17 01:17:36.000000000 +0400 | 773 | --- linux-2.6.36/net/ipv4/Makefile 2010-10-21 00:30:22.000000000 +0400 |
772 | +++ linux-2.6.35/net/ipv4/Makefile 2010-05-24 14:51:40.000000000 +0400 | 774 | +++ linux-2.6.36/net/ipv4/Makefile 2010-10-26 12:01:40.655752708 +0400 |
773 | @@ -49,6 +49,7 @@ obj-$(CONFIG_TCP_CONG_LP) += tcp_lp.o | 775 | @@ -49,6 +49,7 @@ obj-$(CONFIG_TCP_CONG_LP) += tcp_lp.o |
774 | obj-$(CONFIG_TCP_CONG_YEAH) += tcp_yeah.o | 776 | obj-$(CONFIG_TCP_CONG_YEAH) += tcp_yeah.o |
775 | obj-$(CONFIG_TCP_CONG_ILLINOIS) += tcp_illinois.o | 777 | obj-$(CONFIG_TCP_CONG_ILLINOIS) += tcp_illinois.o |
@@ -778,10 +780,10 @@ diff -upkr linux-2.6.35/net/ipv4/Makefile linux-2.6.35/net/ipv4/Makefile | |||
778 | 780 | ||
779 | obj-$(CONFIG_XFRM) += xfrm4_policy.o xfrm4_state.o xfrm4_input.o \ | 781 | obj-$(CONFIG_XFRM) += xfrm4_policy.o xfrm4_state.o xfrm4_input.o \ |
780 | xfrm4_output.o | 782 | xfrm4_output.o |
781 | diff -upkr linux-2.6.35/net/ipv4/tcp.c linux-2.6.35/net/ipv4/tcp.c | 783 | diff -upkr linux-2.6.36/net/ipv4/tcp.c linux-2.6.36/net/ipv4/tcp.c |
782 | --- linux-2.6.35/net/ipv4/tcp.c 2010-05-17 01:17:36.000000000 +0400 | 784 | --- linux-2.6.36/net/ipv4/tcp.c 2010-10-21 00:30:22.000000000 +0400 |
783 | +++ linux-2.6.35/net/ipv4/tcp.c 2010-05-24 14:51:40.000000000 +0400 | 785 | +++ linux-2.6.36/net/ipv4/tcp.c 2010-10-26 12:01:40.659752056 +0400 |
784 | @@ -801,7 +801,7 @@ new_segment: | 786 | @@ -806,7 +806,7 @@ new_segment: |
785 | if (can_coalesce) { | 787 | if (can_coalesce) { |
786 | skb_shinfo(skb)->frags[i - 1].size += copy; | 788 | skb_shinfo(skb)->frags[i - 1].size += copy; |
787 | } else { | 789 | } else { |
@@ -790,7 +792,7 @@ diff -upkr linux-2.6.35/net/ipv4/tcp.c linux-2.6.35/net/ipv4/tcp.c | |||
790 | skb_fill_page_desc(skb, i, page, offset, copy); | 792 | skb_fill_page_desc(skb, i, page, offset, copy); |
791 | } | 793 | } |
792 | 794 | ||
793 | @@ -1010,7 +1010,7 @@ new_segment: | 795 | @@ -1015,7 +1015,7 @@ new_segment: |
794 | goto new_segment; | 796 | goto new_segment; |
795 | } else if (page) { | 797 | } else if (page) { |
796 | if (off == PAGE_SIZE) { | 798 | if (off == PAGE_SIZE) { |
@@ -799,7 +801,7 @@ diff -upkr linux-2.6.35/net/ipv4/tcp.c linux-2.6.35/net/ipv4/tcp.c | |||
799 | TCP_PAGE(sk) = page = NULL; | 801 | TCP_PAGE(sk) = page = NULL; |
800 | off = 0; | 802 | off = 0; |
801 | } | 803 | } |
802 | @@ -1051,9 +1051,9 @@ new_segment: | 804 | @@ -1056,9 +1056,9 @@ new_segment: |
803 | } else { | 805 | } else { |
804 | skb_fill_page_desc(skb, i, page, off, copy); | 806 | skb_fill_page_desc(skb, i, page, off, copy); |
805 | if (TCP_PAGE(sk)) { | 807 | if (TCP_PAGE(sk)) { |
@@ -811,10 +813,10 @@ diff -upkr linux-2.6.35/net/ipv4/tcp.c linux-2.6.35/net/ipv4/tcp.c | |||
811 | TCP_PAGE(sk) = page; | 813 | TCP_PAGE(sk) = page; |
812 | } | 814 | } |
813 | } | 815 | } |
814 | diff -upkr linux-2.6.35/net/ipv4/tcp_output.c linux-2.6.35/net/ipv4/tcp_output.c | 816 | diff -upkr linux-2.6.36/net/ipv4/tcp_output.c linux-2.6.36/net/ipv4/tcp_output.c |
815 | --- linux-2.6.35/net/ipv4/tcp_output.c 2010-05-17 01:17:36.000000000 +0400 | 817 | --- linux-2.6.36/net/ipv4/tcp_output.c 2010-10-21 00:30:22.000000000 +0400 |
816 | +++ linux-2.6.35/net/ipv4/tcp_output.c 2010-05-24 14:51:40.000000000 +0400 | 818 | +++ linux-2.6.36/net/ipv4/tcp_output.c 2010-10-26 12:01:40.659752056 +0400 |
817 | @@ -1085,7 +1085,7 @@ static void __pskb_trim_head(struct sk_b | 819 | @@ -1086,7 +1086,7 @@ static void __pskb_trim_head(struct sk_b |
818 | k = 0; | 820 | k = 0; |
819 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 821 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
820 | if (skb_shinfo(skb)->frags[i].size <= eat) { | 822 | if (skb_shinfo(skb)->frags[i].size <= eat) { |
@@ -823,9 +825,9 @@ diff -upkr linux-2.6.35/net/ipv4/tcp_output.c linux-2.6.35/net/ipv4/tcp_output.c | |||
823 | eat -= skb_shinfo(skb)->frags[i].size; | 825 | eat -= skb_shinfo(skb)->frags[i].size; |
824 | } else { | 826 | } else { |
825 | skb_shinfo(skb)->frags[k] = skb_shinfo(skb)->frags[i]; | 827 | skb_shinfo(skb)->frags[k] = skb_shinfo(skb)->frags[i]; |
826 | diff -upkr linux-2.6.35/net/ipv4/tcp_zero_copy.c linux-2.6.35/net/ipv4/tcp_zero_copy.c | 828 | diff -upkr linux-2.6.36/net/ipv4/tcp_zero_copy.c linux-2.6.36/net/ipv4/tcp_zero_copy.c |
827 | --- linux-2.6.35/net/ipv4/tcp_zero_copy.c 2010-03-01 17:30:31.000000000 +0300 | 829 | --- linux-2.6.36/net/ipv4/tcp_zero_copy.c 2010-10-26 12:02:24.519252006 +0400 |
828 | +++ linux-2.6.35/net/ipv4/tcp_zero_copy.c 2010-05-24 14:51:40.000000000 +0400 | 830 | +++ linux-2.6.36/net/ipv4/tcp_zero_copy.c 2010-10-26 12:01:40.659752056 +0400 |
829 | @@ -0,0 +1,49 @@ | 831 | @@ -0,0 +1,49 @@ |
830 | +/* | 832 | +/* |
831 | + * Support routines for TCP zero copy transmit | 833 | + * Support routines for TCP zero copy transmit |
@@ -836,7 +838,7 @@ diff -upkr linux-2.6.35/net/ipv4/tcp_zero_copy.c linux-2.6.35/net/ipv4/tcp_zero_ | |||
836 | + * modify it under the terms of the GNU General Public License | 838 | + * modify it under the terms of the GNU General Public License |
837 | + * version 2 as published by the Free Software Foundation. | 839 | + * version 2 as published by the Free Software Foundation. |
838 | + */ | 840 | + */ |
839 | + | 841 | + |
840 | +#include <linux/skbuff.h> | 842 | +#include <linux/skbuff.h> |
841 | + | 843 | + |
842 | +net_get_page_callback_t net_get_page_callback __read_mostly; | 844 | +net_get_page_callback_t net_get_page_callback __read_mostly; |
@@ -876,10 +878,10 @@ diff -upkr linux-2.6.35/net/ipv4/tcp_zero_copy.c linux-2.6.35/net/ipv4/tcp_zero_ | |||
876 | + return res; | 878 | + return res; |
877 | +} | 879 | +} |
878 | +EXPORT_SYMBOL(net_set_get_put_page_callbacks); | 880 | +EXPORT_SYMBOL(net_set_get_put_page_callbacks); |
879 | diff -upkr linux-2.6.35/net/ipv6/ip6_output.c linux-2.6.35/net/ipv6/ip6_output.c | 881 | diff -upkr linux-2.6.36/net/ipv6/ip6_output.c linux-2.6.36/net/ipv6/ip6_output.c |
880 | --- linux-2.6.35/net/ipv6/ip6_output.c 2010-05-17 01:17:36.000000000 +0400 | 882 | --- linux-2.6.36/net/ipv6/ip6_output.c 2010-10-21 00:30:22.000000000 +0400 |
881 | +++ linux-2.6.35/net/ipv6/ip6_output.c 2010-05-24 14:51:40.000000000 +0400 | 883 | +++ linux-2.6.36/net/ipv6/ip6_output.c 2010-10-26 12:01:40.659752056 +0400 |
882 | @@ -1383,7 +1383,7 @@ alloc_new_skb: | 884 | @@ -1391,7 +1391,7 @@ alloc_new_skb: |
883 | err = -EMSGSIZE; | 885 | err = -EMSGSIZE; |
884 | goto error; | 886 | goto error; |
885 | } | 887 | } |
@@ -888,9 +890,9 @@ diff -upkr linux-2.6.35/net/ipv6/ip6_output.c linux-2.6.35/net/ipv6/ip6_output.c | |||
888 | skb_fill_page_desc(skb, i, page, sk->sk_sndmsg_off, 0); | 890 | skb_fill_page_desc(skb, i, page, sk->sk_sndmsg_off, 0); |
889 | frag = &skb_shinfo(skb)->frags[i]; | 891 | frag = &skb_shinfo(skb)->frags[i]; |
890 | } | 892 | } |
891 | diff -upkr linux-2.6.35/net/Kconfig linux-2.6.35/net/Kconfig | 893 | diff -upkr linux-2.6.36/net/Kconfig linux-2.6.36/net/Kconfig |
892 | --- linux-2.6.35/net/Kconfig 2010-05-17 01:17:36.000000000 +0400 | 894 | --- linux-2.6.36/net/Kconfig 2010-10-21 00:30:22.000000000 +0400 |
893 | +++ linux-2.6.35/net/Kconfig 2010-05-24 14:51:40.000000000 +0400 | 895 | +++ linux-2.6.36/net/Kconfig 2010-10-26 12:01:40.659752056 +0400 |
894 | @@ -72,6 +72,18 @@ config INET | 896 | @@ -72,6 +72,18 @@ config INET |
895 | 897 | ||
896 | Short answer: say Y. | 898 | Short answer: say Y. |
@@ -910,9 +912,425 @@ diff -upkr linux-2.6.35/net/Kconfig linux-2.6.35/net/Kconfig | |||
910 | if INET | 912 | if INET |
911 | source "net/ipv4/Kconfig" | 913 | source "net/ipv4/Kconfig" |
912 | source "net/ipv6/Kconfig" | 914 | source "net/ipv6/Kconfig" |
913 | diff -uprN orig/linux-2.6.35/include/scst/scst.h linux-2.6.35/include/scst/scst.h | 915 | diff -uprN orig/linux-2.6.36/include/scst/scst_const.h linux-2.6.36/include/scst/scst_const.h |
914 | --- orig/linux-2.6.35/include/scst/scst.h | 916 | --- orig/linux-2.6.36/include/scst/scst_const.h |
915 | +++ linux-2.6.35/include/scst/scst.h | 917 | +++ linux-2.6.36/include/scst/scst_const.h |
918 | @@ -0,0 +1,412 @@ | ||
919 | +/* | ||
920 | + * include/scst_const.h | ||
921 | + * | ||
922 | + * Copyright (C) 2004 - 2010 Vladislav Bolkhovitin <vst@vlnb.net> | ||
923 | + * Copyright (C) 2007 - 2010 ID7 Ltd. | ||
924 | + * | ||
925 | + * Contains common SCST constants. | ||
926 | + * | ||
927 | + * This program is free software; you can redistribute it and/or | ||
928 | + * modify it under the terms of the GNU General Public License | ||
929 | + * as published by the Free Software Foundation, version 2 | ||
930 | + * of the License. | ||
931 | + * | ||
932 | + * This program is distributed in the hope that it will be useful, | ||
933 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
934 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
935 | + * GNU General Public License for more details. | ||
936 | + */ | ||
937 | + | ||
938 | +#ifndef __SCST_CONST_H | ||
939 | +#define __SCST_CONST_H | ||
940 | + | ||
941 | +#ifndef GENERATING_UPSTREAM_PATCH | ||
942 | +/* | ||
943 | + * Include <linux/version.h> only when not converting this header file into | ||
944 | + * a patch for upstream review because only then the symbol LINUX_VERSION_CODE | ||
945 | + * is needed. | ||
946 | + */ | ||
947 | +#include <linux/version.h> | ||
948 | +#endif | ||
949 | +#include <scsi/scsi.h> | ||
950 | + | ||
951 | +#define SCST_CONST_VERSION "$Revision: 2605 $" | ||
952 | + | ||
953 | +/*** Shared constants between user and kernel spaces ***/ | ||
954 | + | ||
955 | +/* Max size of CDB */ | ||
956 | +#define SCST_MAX_CDB_SIZE 16 | ||
957 | + | ||
958 | +/* Max size of various names */ | ||
959 | +#define SCST_MAX_NAME 50 | ||
960 | + | ||
961 | +/* Max size of external names, like initiator name */ | ||
962 | +#define SCST_MAX_EXTERNAL_NAME 256 | ||
963 | + | ||
964 | +/* | ||
965 | + * Size of sense sufficient to carry standard sense data. | ||
966 | + * Warning! It's allocated on stack! | ||
967 | + */ | ||
968 | +#define SCST_STANDARD_SENSE_LEN 18 | ||
969 | + | ||
970 | +/* Max size of sense */ | ||
971 | +#define SCST_SENSE_BUFFERSIZE 96 | ||
972 | + | ||
973 | +/************************************************************* | ||
974 | + ** Allowed delivery statuses for cmd's delivery_status | ||
975 | + *************************************************************/ | ||
976 | + | ||
977 | +#define SCST_CMD_DELIVERY_SUCCESS 0 | ||
978 | +#define SCST_CMD_DELIVERY_FAILED -1 | ||
979 | +#define SCST_CMD_DELIVERY_ABORTED -2 | ||
980 | + | ||
981 | +/************************************************************* | ||
982 | + ** Values for task management functions | ||
983 | + *************************************************************/ | ||
984 | +#define SCST_ABORT_TASK 0 | ||
985 | +#define SCST_ABORT_TASK_SET 1 | ||
986 | +#define SCST_CLEAR_ACA 2 | ||
987 | +#define SCST_CLEAR_TASK_SET 3 | ||
988 | +#define SCST_LUN_RESET 4 | ||
989 | +#define SCST_TARGET_RESET 5 | ||
990 | + | ||
991 | +/** SCST extensions **/ | ||
992 | + | ||
993 | +/* | ||
994 | + * Notifies about I_T nexus loss event in the corresponding session. | ||
995 | + * Aborts all tasks there, resets the reservation, if any, and sets | ||
996 | + * up the I_T Nexus loss UA. | ||
997 | + */ | ||
998 | +#define SCST_NEXUS_LOSS_SESS 6 | ||
999 | + | ||
1000 | +/* Aborts all tasks in the corresponding session */ | ||
1001 | +#define SCST_ABORT_ALL_TASKS_SESS 7 | ||
1002 | + | ||
1003 | +/* | ||
1004 | + * Notifies about I_T nexus loss event. Aborts all tasks in all sessions | ||
1005 | + * of the tgt, resets the reservations, if any, and sets up the I_T Nexus | ||
1006 | + * loss UA. | ||
1007 | + */ | ||
1008 | +#define SCST_NEXUS_LOSS 8 | ||
1009 | + | ||
1010 | +/* Aborts all tasks in all sessions of the tgt */ | ||
1011 | +#define SCST_ABORT_ALL_TASKS 9 | ||
1012 | + | ||
1013 | +/* | ||
1014 | + * Internal TM command issued by SCST in scst_unregister_session(). It is the | ||
1015 | + * same as SCST_NEXUS_LOSS_SESS, except: | ||
1016 | + * - it doesn't call task_mgmt_affected_cmds_done() | ||
1017 | + * - it doesn't call task_mgmt_fn_done() | ||
1018 | + * - it doesn't queue NEXUS LOSS UA. | ||
1019 | + * | ||
1020 | + * Target drivers must NEVER use it!! | ||
1021 | + */ | ||
1022 | +#define SCST_UNREG_SESS_TM 10 | ||
1023 | + | ||
1024 | +/* | ||
1025 | + * Internal TM command issued by SCST in scst_pr_abort_reg(). It aborts all | ||
1026 | + * tasks from mcmd->origin_pr_cmd->tgt_dev, except mcmd->origin_pr_cmd. | ||
1027 | + * Additionally: | ||
1028 | + * - it signals pr_aborting_cmpl completion when all affected | ||
1029 | + * commands marked as aborted. | ||
1030 | + * - it doesn't call task_mgmt_affected_cmds_done() | ||
1031 | + * - it doesn't call task_mgmt_fn_done() | ||
1032 | + * - it calls mcmd->origin_pr_cmd->scst_cmd_done() when all affected | ||
1033 | + * commands aborted. | ||
1034 | + * | ||
1035 | + * Target drivers must NEVER use it!! | ||
1036 | + */ | ||
1037 | +#define SCST_PR_ABORT_ALL 11 | ||
1038 | + | ||
1039 | +/************************************************************* | ||
1040 | + ** Values for mgmt cmd's status field. Codes taken from iSCSI | ||
1041 | + *************************************************************/ | ||
1042 | +#define SCST_MGMT_STATUS_SUCCESS 0 | ||
1043 | +#define SCST_MGMT_STATUS_TASK_NOT_EXIST -1 | ||
1044 | +#define SCST_MGMT_STATUS_LUN_NOT_EXIST -2 | ||
1045 | +#define SCST_MGMT_STATUS_FN_NOT_SUPPORTED -5 | ||
1046 | +#define SCST_MGMT_STATUS_REJECTED -255 | ||
1047 | +#define SCST_MGMT_STATUS_FAILED -129 | ||
1048 | + | ||
1049 | +/************************************************************* | ||
1050 | + ** SCSI task attribute queue types | ||
1051 | + *************************************************************/ | ||
1052 | +enum scst_cmd_queue_type { | ||
1053 | + SCST_CMD_QUEUE_UNTAGGED = 0, | ||
1054 | + SCST_CMD_QUEUE_SIMPLE, | ||
1055 | + SCST_CMD_QUEUE_ORDERED, | ||
1056 | + SCST_CMD_QUEUE_HEAD_OF_QUEUE, | ||
1057 | + SCST_CMD_QUEUE_ACA | ||
1058 | +}; | ||
1059 | + | ||
1060 | +/************************************************************* | ||
1061 | + ** CDB flags | ||
1062 | + ** | ||
1063 | + ** Implicit ordered used for commands which need calm environment | ||
1064 | + ** without any simultaneous activities. For instance, for MODE | ||
1065 | + ** SELECT it is needed to correctly generate its UA. | ||
1066 | + *************************************************************/ | ||
1067 | +enum scst_cdb_flags { | ||
1068 | + SCST_TRANSFER_LEN_TYPE_FIXED = 0x0001, | ||
1069 | + SCST_SMALL_TIMEOUT = 0x0002, | ||
1070 | + SCST_LONG_TIMEOUT = 0x0004, | ||
1071 | + SCST_UNKNOWN_LENGTH = 0x0008, | ||
1072 | + SCST_INFO_VALID = 0x0010, /* must be single bit */ | ||
1073 | + SCST_VERIFY_BYTCHK_MISMATCH_ALLOWED = 0x0020, | ||
1074 | + SCST_IMPLICIT_HQ = 0x0040, | ||
1075 | + SCST_IMPLICIT_ORDERED = 0x0080, /* ToDo: remove it's nonsense */ | ||
1076 | + SCST_SKIP_UA = 0x0100, | ||
1077 | + SCST_WRITE_MEDIUM = 0x0200, | ||
1078 | + SCST_LOCAL_CMD = 0x0400, | ||
1079 | + SCST_FULLY_LOCAL_CMD = 0x0800, | ||
1080 | + SCST_REG_RESERVE_ALLOWED = 0x1000, | ||
1081 | + SCST_WRITE_EXCL_ALLOWED = 0x2000, | ||
1082 | + SCST_EXCL_ACCESS_ALLOWED = 0x4000, | ||
1083 | +#ifdef CONFIG_SCST_TEST_IO_IN_SIRQ | ||
1084 | + SCST_TEST_IO_IN_SIRQ_ALLOWED = 0x8000, | ||
1085 | +#endif | ||
1086 | +}; | ||
1087 | + | ||
1088 | +/************************************************************* | ||
1089 | + ** Data direction aliases. Changing it don't forget to change | ||
1090 | + ** scst_to_tgt_dma_dir as well!! | ||
1091 | + *************************************************************/ | ||
1092 | +#define SCST_DATA_UNKNOWN 0 | ||
1093 | +#define SCST_DATA_WRITE 1 | ||
1094 | +#define SCST_DATA_READ 2 | ||
1095 | +#define SCST_DATA_BIDI (SCST_DATA_WRITE | SCST_DATA_READ) | ||
1096 | +#define SCST_DATA_NONE 4 | ||
1097 | + | ||
1098 | +/************************************************************* | ||
1099 | + ** Default suffix for targets with NULL names | ||
1100 | + *************************************************************/ | ||
1101 | +#define SCST_DEFAULT_TGT_NAME_SUFFIX "_target_" | ||
1102 | + | ||
1103 | +/************************************************************* | ||
1104 | + ** Sense manipulation and examination | ||
1105 | + *************************************************************/ | ||
1106 | +#define SCST_LOAD_SENSE(key_asc_ascq) key_asc_ascq | ||
1107 | + | ||
1108 | +#define SCST_SENSE_VALID(sense) ((sense != NULL) && \ | ||
1109 | + ((((const uint8_t *)(sense))[0] & 0x70) == 0x70)) | ||
1110 | + | ||
1111 | +#define SCST_NO_SENSE(sense) ((sense != NULL) && \ | ||
1112 | + (((const uint8_t *)(sense))[2] == 0)) | ||
1113 | + | ||
1114 | +/************************************************************* | ||
1115 | + ** Sense data for the appropriate errors. Can be used with | ||
1116 | + ** scst_set_cmd_error() | ||
1117 | + *************************************************************/ | ||
1118 | +#define scst_sense_no_sense NO_SENSE, 0x00, 0 | ||
1119 | +#define scst_sense_hardw_error HARDWARE_ERROR, 0x44, 0 | ||
1120 | +#define scst_sense_aborted_command ABORTED_COMMAND, 0x00, 0 | ||
1121 | +#define scst_sense_invalid_opcode ILLEGAL_REQUEST, 0x20, 0 | ||
1122 | +#define scst_sense_invalid_field_in_cdb ILLEGAL_REQUEST, 0x24, 0 | ||
1123 | +#define scst_sense_invalid_field_in_parm_list ILLEGAL_REQUEST, 0x26, 0 | ||
1124 | +#define scst_sense_parameter_value_invalid ILLEGAL_REQUEST, 0x26, 2 | ||
1125 | +#define scst_sense_invalid_release ILLEGAL_REQUEST, 0x26, 4 | ||
1126 | +#define scst_sense_parameter_list_length_invalid \ | ||
1127 | + ILLEGAL_REQUEST, 0x1A, 0 | ||
1128 | +#define scst_sense_reset_UA UNIT_ATTENTION, 0x29, 0 | ||
1129 | +#define scst_sense_nexus_loss_UA UNIT_ATTENTION, 0x29, 0x7 | ||
1130 | +#define scst_sense_saving_params_unsup ILLEGAL_REQUEST, 0x39, 0 | ||
1131 | +#define scst_sense_lun_not_supported ILLEGAL_REQUEST, 0x25, 0 | ||
1132 | +#define scst_sense_data_protect DATA_PROTECT, 0x00, 0 | ||
1133 | +#define scst_sense_miscompare_error MISCOMPARE, 0x1D, 0 | ||
1134 | +#define scst_sense_block_out_range_error ILLEGAL_REQUEST, 0x21, 0 | ||
1135 | +#define scst_sense_medium_changed_UA UNIT_ATTENTION, 0x28, 0 | ||
1136 | +#define scst_sense_read_error MEDIUM_ERROR, 0x11, 0 | ||
1137 | +#define scst_sense_write_error MEDIUM_ERROR, 0x03, 0 | ||
1138 | +#define scst_sense_not_ready NOT_READY, 0x04, 0x10 | ||
1139 | +#define scst_sense_invalid_message ILLEGAL_REQUEST, 0x49, 0 | ||
1140 | +#define scst_sense_cleared_by_another_ini_UA UNIT_ATTENTION, 0x2F, 0 | ||
1141 | +#define scst_sense_capacity_data_changed UNIT_ATTENTION, 0x2A, 0x9 | ||
1142 | +#define scst_sense_reservation_preempted UNIT_ATTENTION, 0x2A, 0x03 | ||
1143 | +#define scst_sense_reservation_released UNIT_ATTENTION, 0x2A, 0x04 | ||
1144 | +#define scst_sense_registrations_preempted UNIT_ATTENTION, 0x2A, 0x05 | ||
1145 | +#define scst_sense_reported_luns_data_changed UNIT_ATTENTION, 0x3F, 0xE | ||
1146 | +#define scst_sense_inquery_data_changed UNIT_ATTENTION, 0x3F, 0x3 | ||
1147 | + | ||
1148 | +/************************************************************* | ||
1149 | + * SCSI opcodes not listed anywhere else | ||
1150 | + *************************************************************/ | ||
1151 | +#define REPORT_DEVICE_IDENTIFIER 0xA3 | ||
1152 | +#define INIT_ELEMENT_STATUS 0x07 | ||
1153 | +#define INIT_ELEMENT_STATUS_RANGE 0x37 | ||
1154 | +#define PREVENT_ALLOW_MEDIUM 0x1E | ||
1155 | +#define READ_ATTRIBUTE 0x8C | ||
1156 | +#define REQUEST_VOLUME_ADDRESS 0xB5 | ||
1157 | +#define WRITE_ATTRIBUTE 0x8D | ||
1158 | +#define WRITE_VERIFY_16 0x8E | ||
1159 | +#define VERIFY_6 0x13 | ||
1160 | +#ifndef VERIFY_12 | ||
1161 | +#define VERIFY_12 0xAF | ||
1162 | +#endif | ||
1163 | +#ifndef GENERATING_UPSTREAM_PATCH | ||
1164 | +/* | ||
1165 | + * The constants below have been defined in the kernel header <scsi/scsi.h> | ||
1166 | + * and hence are not needed when this header file is included in kernel code. | ||
1167 | + * The definitions below are only used when this header file is included during | ||
1168 | + * compilation of SCST's user space components. | ||
1169 | + */ | ||
1170 | +#ifndef READ_16 | ||
1171 | +#define READ_16 0x88 | ||
1172 | +#endif | ||
1173 | +#ifndef WRITE_16 | ||
1174 | +#define WRITE_16 0x8a | ||
1175 | +#endif | ||
1176 | +#ifndef VERIFY_16 | ||
1177 | +#define VERIFY_16 0x8f | ||
1178 | +#endif | ||
1179 | +#ifndef SERVICE_ACTION_IN | ||
1180 | +#define SERVICE_ACTION_IN 0x9e | ||
1181 | +#endif | ||
1182 | +#ifndef SAI_READ_CAPACITY_16 | ||
1183 | +/* values for service action in */ | ||
1184 | +#define SAI_READ_CAPACITY_16 0x10 | ||
1185 | +#endif | ||
1186 | +#endif | ||
1187 | +#ifndef GENERATING_UPSTREAM_PATCH | ||
1188 | +#ifndef REPORT_LUNS | ||
1189 | +#define REPORT_LUNS 0xa0 | ||
1190 | +#endif | ||
1191 | +#endif | ||
1192 | + | ||
1193 | +/************************************************************* | ||
1194 | + ** SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft | ||
1195 | + ** T10/1561-D Revision 4 Draft dated 7th November 2002. | ||
1196 | + *************************************************************/ | ||
1197 | +#define SAM_STAT_GOOD 0x00 | ||
1198 | +#define SAM_STAT_CHECK_CONDITION 0x02 | ||
1199 | +#define SAM_STAT_CONDITION_MET 0x04 | ||
1200 | +#define SAM_STAT_BUSY 0x08 | ||
1201 | +#define SAM_STAT_INTERMEDIATE 0x10 | ||
1202 | +#define SAM_STAT_INTERMEDIATE_CONDITION_MET 0x14 | ||
1203 | +#define SAM_STAT_RESERVATION_CONFLICT 0x18 | ||
1204 | +#define SAM_STAT_COMMAND_TERMINATED 0x22 /* obsolete in SAM-3 */ | ||
1205 | +#define SAM_STAT_TASK_SET_FULL 0x28 | ||
1206 | +#define SAM_STAT_ACA_ACTIVE 0x30 | ||
1207 | +#define SAM_STAT_TASK_ABORTED 0x40 | ||
1208 | + | ||
1209 | +/************************************************************* | ||
1210 | + ** Control byte field in CDB | ||
1211 | + *************************************************************/ | ||
1212 | +#define CONTROL_BYTE_LINK_BIT 0x01 | ||
1213 | +#define CONTROL_BYTE_NACA_BIT 0x04 | ||
1214 | + | ||
1215 | +/************************************************************* | ||
1216 | + ** Byte 1 in INQUIRY CDB | ||
1217 | + *************************************************************/ | ||
1218 | +#define SCST_INQ_EVPD 0x01 | ||
1219 | + | ||
1220 | +/************************************************************* | ||
1221 | + ** Byte 3 in Standard INQUIRY data | ||
1222 | + *************************************************************/ | ||
1223 | +#define SCST_INQ_BYTE3 3 | ||
1224 | + | ||
1225 | +#define SCST_INQ_NORMACA_BIT 0x20 | ||
1226 | + | ||
1227 | +/************************************************************* | ||
1228 | + ** Byte 2 in RESERVE_10 CDB | ||
1229 | + *************************************************************/ | ||
1230 | +#define SCST_RES_3RDPTY 0x10 | ||
1231 | +#define SCST_RES_LONGID 0x02 | ||
1232 | + | ||
1233 | +/************************************************************* | ||
1234 | + ** Values for the control mode page TST field | ||
1235 | + *************************************************************/ | ||
1236 | +#define SCST_CONTR_MODE_ONE_TASK_SET 0 | ||
1237 | +#define SCST_CONTR_MODE_SEP_TASK_SETS 1 | ||
1238 | + | ||
1239 | +/******************************************************************* | ||
1240 | + ** Values for the control mode page QUEUE ALGORITHM MODIFIER field | ||
1241 | + *******************************************************************/ | ||
1242 | +#define SCST_CONTR_MODE_QUEUE_ALG_RESTRICTED_REORDER 0 | ||
1243 | +#define SCST_CONTR_MODE_QUEUE_ALG_UNRESTRICTED_REORDER 1 | ||
1244 | + | ||
1245 | +/************************************************************* | ||
1246 | + ** Values for the control mode page D_SENSE field | ||
1247 | + *************************************************************/ | ||
1248 | +#define SCST_CONTR_MODE_FIXED_SENSE 0 | ||
1249 | +#define SCST_CONTR_MODE_DESCR_SENSE 1 | ||
1250 | + | ||
1251 | +/************************************************************* | ||
1252 | + ** TransportID protocol identifiers | ||
1253 | + *************************************************************/ | ||
1254 | + | ||
1255 | +#define SCSI_TRANSPORTID_PROTOCOLID_FCP2 0 | ||
1256 | +#define SCSI_TRANSPORTID_PROTOCOLID_SPI5 1 | ||
1257 | +#define SCSI_TRANSPORTID_PROTOCOLID_SRP 4 | ||
1258 | +#define SCSI_TRANSPORTID_PROTOCOLID_ISCSI 5 | ||
1259 | +#define SCSI_TRANSPORTID_PROTOCOLID_SAS 6 | ||
1260 | + | ||
1261 | +/************************************************************* | ||
1262 | + ** Misc SCSI constants | ||
1263 | + *************************************************************/ | ||
1264 | +#define SCST_SENSE_ASC_UA_RESET 0x29 | ||
1265 | +#define BYTCHK 0x02 | ||
1266 | +#define POSITION_LEN_SHORT 20 | ||
1267 | +#define POSITION_LEN_LONG 32 | ||
1268 | + | ||
1269 | +/************************************************************* | ||
1270 | + ** Various timeouts | ||
1271 | + *************************************************************/ | ||
1272 | +#define SCST_DEFAULT_TIMEOUT (60 * HZ) | ||
1273 | + | ||
1274 | +#define SCST_GENERIC_CHANGER_TIMEOUT (3 * HZ) | ||
1275 | +#define SCST_GENERIC_CHANGER_LONG_TIMEOUT (14000 * HZ) | ||
1276 | + | ||
1277 | +#define SCST_GENERIC_PROCESSOR_TIMEOUT (3 * HZ) | ||
1278 | +#define SCST_GENERIC_PROCESSOR_LONG_TIMEOUT (14000 * HZ) | ||
1279 | + | ||
1280 | +#define SCST_GENERIC_TAPE_SMALL_TIMEOUT (3 * HZ) | ||
1281 | +#define SCST_GENERIC_TAPE_REG_TIMEOUT (900 * HZ) | ||
1282 | +#define SCST_GENERIC_TAPE_LONG_TIMEOUT (14000 * HZ) | ||
1283 | + | ||
1284 | +#define SCST_GENERIC_MODISK_SMALL_TIMEOUT (3 * HZ) | ||
1285 | +#define SCST_GENERIC_MODISK_REG_TIMEOUT (900 * HZ) | ||
1286 | +#define SCST_GENERIC_MODISK_LONG_TIMEOUT (14000 * HZ) | ||
1287 | + | ||
1288 | +#define SCST_GENERIC_DISK_SMALL_TIMEOUT (3 * HZ) | ||
1289 | +#define SCST_GENERIC_DISK_REG_TIMEOUT (60 * HZ) | ||
1290 | +#define SCST_GENERIC_DISK_LONG_TIMEOUT (3600 * HZ) | ||
1291 | + | ||
1292 | +#define SCST_GENERIC_RAID_TIMEOUT (3 * HZ) | ||
1293 | +#define SCST_GENERIC_RAID_LONG_TIMEOUT (14000 * HZ) | ||
1294 | + | ||
1295 | +#define SCST_GENERIC_CDROM_SMALL_TIMEOUT (3 * HZ) | ||
1296 | +#define SCST_GENERIC_CDROM_REG_TIMEOUT (900 * HZ) | ||
1297 | +#define SCST_GENERIC_CDROM_LONG_TIMEOUT (14000 * HZ) | ||
1298 | + | ||
1299 | +#define SCST_MAX_OTHER_TIMEOUT (14000 * HZ) | ||
1300 | + | ||
1301 | +/************************************************************* | ||
1302 | + ** I/O grouping attribute string values. Must match constants | ||
1303 | + ** w/o '_STR' suffix! | ||
1304 | + *************************************************************/ | ||
1305 | +#define SCST_IO_GROUPING_AUTO_STR "auto" | ||
1306 | +#define SCST_IO_GROUPING_THIS_GROUP_ONLY_STR "this_group_only" | ||
1307 | +#define SCST_IO_GROUPING_NEVER_STR "never" | ||
1308 | + | ||
1309 | +/************************************************************* | ||
1310 | + ** Threads pool type attribute string values. | ||
1311 | + ** Must match scst_dev_type_threads_pool_type! | ||
1312 | + *************************************************************/ | ||
1313 | +#define SCST_THREADS_POOL_PER_INITIATOR_STR "per_initiator" | ||
1314 | +#define SCST_THREADS_POOL_SHARED_STR "shared" | ||
1315 | + | ||
1316 | +/************************************************************* | ||
1317 | + ** Misc constants | ||
1318 | + *************************************************************/ | ||
1319 | +#define SCST_SYSFS_BLOCK_SIZE PAGE_SIZE | ||
1320 | + | ||
1321 | +#define SCST_PR_DIR "/var/lib/scst/pr" | ||
1322 | + | ||
1323 | +#define TID_COMMON_SIZE 24 | ||
1324 | + | ||
1325 | +#define SCST_SYSFS_KEY_MARK "[key]" | ||
1326 | + | ||
1327 | +#define SCST_MIN_REL_TGT_ID 1 | ||
1328 | +#define SCST_MAX_REL_TGT_ID 65535 | ||
1329 | + | ||
1330 | +#endif /* __SCST_CONST_H */ | ||
1331 | diff -uprN orig/linux-2.6.36/include/scst/scst.h linux-2.6.36/include/scst/scst.h | ||
1332 | --- orig/linux-2.6.36/include/scst/scst.h | ||
1333 | +++ linux-2.6.36/include/scst/scst.h | ||
916 | @@ -0,0 +1,3511 @@ | 1334 | @@ -0,0 +1,3511 @@ |
917 | +/* | 1335 | +/* |
918 | + * include/scst.h | 1336 | + * include/scst.h |
@@ -963,9 +1381,9 @@ diff -uprN orig/linux-2.6.35/include/scst/scst.h linux-2.6.35/include/scst/scst. | |||
963 | +#define SCST_VERSION(a, b, c, d) (((a) << 24) + ((b) << 16) + ((c) << 8) + d) | 1381 | +#define SCST_VERSION(a, b, c, d) (((a) << 24) + ((b) << 16) + ((c) << 8) + d) |
964 | +#define SCST_VERSION_CODE SCST_VERSION(2, 0, 0, 0) | 1382 | +#define SCST_VERSION_CODE SCST_VERSION(2, 0, 0, 0) |
965 | +#define SCST_VERSION_STRING_SUFFIX | 1383 | +#define SCST_VERSION_STRING_SUFFIX |
966 | +#define SCST_VERSION_STRING "2.0.0-rc3" SCST_VERSION_STRING_SUFFIX | 1384 | +#define SCST_VERSION_STRING "2.0.0" SCST_VERSION_STRING_SUFFIX |
967 | +#define SCST_INTERFACE_VERSION \ | 1385 | +#define SCST_INTERFACE_VERSION \ |
968 | + SCST_VERSION_STRING "$Revision: 3153 $" SCST_CONST_VERSION | 1386 | + SCST_VERSION_STRING "$Revision: 3165 $" SCST_CONST_VERSION |
969 | + | 1387 | + |
970 | +#define SCST_LOCAL_NAME "scst_local" | 1388 | +#define SCST_LOCAL_NAME "scst_local" |
971 | + | 1389 | + |
@@ -4425,425 +4843,9 @@ diff -uprN orig/linux-2.6.35/include/scst/scst.h linux-2.6.35/include/scst/scst. | |||
4425 | +void scst_deinit_threads(struct scst_cmd_threads *cmd_threads); | 4843 | +void scst_deinit_threads(struct scst_cmd_threads *cmd_threads); |
4426 | + | 4844 | + |
4427 | +#endif /* __SCST_H */ | 4845 | +#endif /* __SCST_H */ |
4428 | diff -uprN orig/linux-2.6.35/include/scst/scst_const.h linux-2.6.35/include/scst/scst_const.h | 4846 | diff -upkr -X linux-2.6.36/Documentation/dontdiff linux-2.6.36/drivers/Kconfig linux-2.6.36/drivers/Kconfig |
4429 | --- orig/linux-2.6.35/include/scst/scst_const.h | 4847 | --- orig/linux-2.6.36/drivers/Kconfig 01:51:29.000000000 +0400 |
4430 | +++ linux-2.6.35/include/scst/scst_const.h | 4848 | +++ linux-2.6.36/drivers/Kconfig 14:14:46.000000000 +0400 |
4431 | @@ -0,0 +1,412 @@ | ||
4432 | +/* | ||
4433 | + * include/scst_const.h | ||
4434 | + * | ||
4435 | + * Copyright (C) 2004 - 2010 Vladislav Bolkhovitin <vst@vlnb.net> | ||
4436 | + * Copyright (C) 2007 - 2010 ID7 Ltd. | ||
4437 | + * | ||
4438 | + * Contains common SCST constants. | ||
4439 | + * | ||
4440 | + * This program is free software; you can redistribute it and/or | ||
4441 | + * modify it under the terms of the GNU General Public License | ||
4442 | + * as published by the Free Software Foundation, version 2 | ||
4443 | + * of the License. | ||
4444 | + * | ||
4445 | + * This program is distributed in the hope that it will be useful, | ||
4446 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
4447 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
4448 | + * GNU General Public License for more details. | ||
4449 | + */ | ||
4450 | + | ||
4451 | +#ifndef __SCST_CONST_H | ||
4452 | +#define __SCST_CONST_H | ||
4453 | + | ||
4454 | +#ifndef GENERATING_UPSTREAM_PATCH | ||
4455 | +/* | ||
4456 | + * Include <linux/version.h> only when not converting this header file into | ||
4457 | + * a patch for upstream review because only then the symbol LINUX_VERSION_CODE | ||
4458 | + * is needed. | ||
4459 | + */ | ||
4460 | +#include <linux/version.h> | ||
4461 | +#endif | ||
4462 | +#include <scsi/scsi.h> | ||
4463 | + | ||
4464 | +#define SCST_CONST_VERSION "$Revision: 2605 $" | ||
4465 | + | ||
4466 | +/*** Shared constants between user and kernel spaces ***/ | ||
4467 | + | ||
4468 | +/* Max size of CDB */ | ||
4469 | +#define SCST_MAX_CDB_SIZE 16 | ||
4470 | + | ||
4471 | +/* Max size of various names */ | ||
4472 | +#define SCST_MAX_NAME 50 | ||
4473 | + | ||
4474 | +/* Max size of external names, like initiator name */ | ||
4475 | +#define SCST_MAX_EXTERNAL_NAME 256 | ||
4476 | + | ||
4477 | +/* | ||
4478 | + * Size of sense sufficient to carry standard sense data. | ||
4479 | + * Warning! It's allocated on stack! | ||
4480 | + */ | ||
4481 | +#define SCST_STANDARD_SENSE_LEN 18 | ||
4482 | + | ||
4483 | +/* Max size of sense */ | ||
4484 | +#define SCST_SENSE_BUFFERSIZE 96 | ||
4485 | + | ||
4486 | +/************************************************************* | ||
4487 | + ** Allowed delivery statuses for cmd's delivery_status | ||
4488 | + *************************************************************/ | ||
4489 | + | ||
4490 | +#define SCST_CMD_DELIVERY_SUCCESS 0 | ||
4491 | +#define SCST_CMD_DELIVERY_FAILED -1 | ||
4492 | +#define SCST_CMD_DELIVERY_ABORTED -2 | ||
4493 | + | ||
4494 | +/************************************************************* | ||
4495 | + ** Values for task management functions | ||
4496 | + *************************************************************/ | ||
4497 | +#define SCST_ABORT_TASK 0 | ||
4498 | +#define SCST_ABORT_TASK_SET 1 | ||
4499 | +#define SCST_CLEAR_ACA 2 | ||
4500 | +#define SCST_CLEAR_TASK_SET 3 | ||
4501 | +#define SCST_LUN_RESET 4 | ||
4502 | +#define SCST_TARGET_RESET 5 | ||
4503 | + | ||
4504 | +/** SCST extensions **/ | ||
4505 | + | ||
4506 | +/* | ||
4507 | + * Notifies about I_T nexus loss event in the corresponding session. | ||
4508 | + * Aborts all tasks there, resets the reservation, if any, and sets | ||
4509 | + * up the I_T Nexus loss UA. | ||
4510 | + */ | ||
4511 | +#define SCST_NEXUS_LOSS_SESS 6 | ||
4512 | + | ||
4513 | +/* Aborts all tasks in the corresponding session */ | ||
4514 | +#define SCST_ABORT_ALL_TASKS_SESS 7 | ||
4515 | + | ||
4516 | +/* | ||
4517 | + * Notifies about I_T nexus loss event. Aborts all tasks in all sessions | ||
4518 | + * of the tgt, resets the reservations, if any, and sets up the I_T Nexus | ||
4519 | + * loss UA. | ||
4520 | + */ | ||
4521 | +#define SCST_NEXUS_LOSS 8 | ||
4522 | + | ||
4523 | +/* Aborts all tasks in all sessions of the tgt */ | ||
4524 | +#define SCST_ABORT_ALL_TASKS 9 | ||
4525 | + | ||
4526 | +/* | ||
4527 | + * Internal TM command issued by SCST in scst_unregister_session(). It is the | ||
4528 | + * same as SCST_NEXUS_LOSS_SESS, except: | ||
4529 | + * - it doesn't call task_mgmt_affected_cmds_done() | ||
4530 | + * - it doesn't call task_mgmt_fn_done() | ||
4531 | + * - it doesn't queue NEXUS LOSS UA. | ||
4532 | + * | ||
4533 | + * Target drivers must NEVER use it!! | ||
4534 | + */ | ||
4535 | +#define SCST_UNREG_SESS_TM 10 | ||
4536 | + | ||
4537 | +/* | ||
4538 | + * Internal TM command issued by SCST in scst_pr_abort_reg(). It aborts all | ||
4539 | + * tasks from mcmd->origin_pr_cmd->tgt_dev, except mcmd->origin_pr_cmd. | ||
4540 | + * Additionally: | ||
4541 | + * - it signals pr_aborting_cmpl completion when all affected | ||
4542 | + * commands marked as aborted. | ||
4543 | + * - it doesn't call task_mgmt_affected_cmds_done() | ||
4544 | + * - it doesn't call task_mgmt_fn_done() | ||
4545 | + * - it calls mcmd->origin_pr_cmd->scst_cmd_done() when all affected | ||
4546 | + * commands aborted. | ||
4547 | + * | ||
4548 | + * Target drivers must NEVER use it!! | ||
4549 | + */ | ||
4550 | +#define SCST_PR_ABORT_ALL 11 | ||
4551 | + | ||
4552 | +/************************************************************* | ||
4553 | + ** Values for mgmt cmd's status field. Codes taken from iSCSI | ||
4554 | + *************************************************************/ | ||
4555 | +#define SCST_MGMT_STATUS_SUCCESS 0 | ||
4556 | +#define SCST_MGMT_STATUS_TASK_NOT_EXIST -1 | ||
4557 | +#define SCST_MGMT_STATUS_LUN_NOT_EXIST -2 | ||
4558 | +#define SCST_MGMT_STATUS_FN_NOT_SUPPORTED -5 | ||
4559 | +#define SCST_MGMT_STATUS_REJECTED -255 | ||
4560 | +#define SCST_MGMT_STATUS_FAILED -129 | ||
4561 | + | ||
4562 | +/************************************************************* | ||
4563 | + ** SCSI task attribute queue types | ||
4564 | + *************************************************************/ | ||
4565 | +enum scst_cmd_queue_type { | ||
4566 | + SCST_CMD_QUEUE_UNTAGGED = 0, | ||
4567 | + SCST_CMD_QUEUE_SIMPLE, | ||
4568 | + SCST_CMD_QUEUE_ORDERED, | ||
4569 | + SCST_CMD_QUEUE_HEAD_OF_QUEUE, | ||
4570 | + SCST_CMD_QUEUE_ACA | ||
4571 | +}; | ||
4572 | + | ||
4573 | +/************************************************************* | ||
4574 | + ** CDB flags | ||
4575 | + ** | ||
4576 | + ** Implicit ordered used for commands which need calm environment | ||
4577 | + ** without any simultaneous activities. For instance, for MODE | ||
4578 | + ** SELECT it is needed to correctly generate its UA. | ||
4579 | + *************************************************************/ | ||
4580 | +enum scst_cdb_flags { | ||
4581 | + SCST_TRANSFER_LEN_TYPE_FIXED = 0x0001, | ||
4582 | + SCST_SMALL_TIMEOUT = 0x0002, | ||
4583 | + SCST_LONG_TIMEOUT = 0x0004, | ||
4584 | + SCST_UNKNOWN_LENGTH = 0x0008, | ||
4585 | + SCST_INFO_VALID = 0x0010, /* must be single bit */ | ||
4586 | + SCST_VERIFY_BYTCHK_MISMATCH_ALLOWED = 0x0020, | ||
4587 | + SCST_IMPLICIT_HQ = 0x0040, | ||
4588 | + SCST_IMPLICIT_ORDERED = 0x0080, /* ToDo: remove it's nonsense */ | ||
4589 | + SCST_SKIP_UA = 0x0100, | ||
4590 | + SCST_WRITE_MEDIUM = 0x0200, | ||
4591 | + SCST_LOCAL_CMD = 0x0400, | ||
4592 | + SCST_FULLY_LOCAL_CMD = 0x0800, | ||
4593 | + SCST_REG_RESERVE_ALLOWED = 0x1000, | ||
4594 | + SCST_WRITE_EXCL_ALLOWED = 0x2000, | ||
4595 | + SCST_EXCL_ACCESS_ALLOWED = 0x4000, | ||
4596 | +#ifdef CONFIG_SCST_TEST_IO_IN_SIRQ | ||
4597 | + SCST_TEST_IO_IN_SIRQ_ALLOWED = 0x8000, | ||
4598 | +#endif | ||
4599 | +}; | ||
4600 | + | ||
4601 | +/************************************************************* | ||
4602 | + ** Data direction aliases. Changing it don't forget to change | ||
4603 | + ** scst_to_tgt_dma_dir as well!! | ||
4604 | + *************************************************************/ | ||
4605 | +#define SCST_DATA_UNKNOWN 0 | ||
4606 | +#define SCST_DATA_WRITE 1 | ||
4607 | +#define SCST_DATA_READ 2 | ||
4608 | +#define SCST_DATA_BIDI (SCST_DATA_WRITE | SCST_DATA_READ) | ||
4609 | +#define SCST_DATA_NONE 4 | ||
4610 | + | ||
4611 | +/************************************************************* | ||
4612 | + ** Default suffix for targets with NULL names | ||
4613 | + *************************************************************/ | ||
4614 | +#define SCST_DEFAULT_TGT_NAME_SUFFIX "_target_" | ||
4615 | + | ||
4616 | +/************************************************************* | ||
4617 | + ** Sense manipulation and examination | ||
4618 | + *************************************************************/ | ||
4619 | +#define SCST_LOAD_SENSE(key_asc_ascq) key_asc_ascq | ||
4620 | + | ||
4621 | +#define SCST_SENSE_VALID(sense) ((sense != NULL) && \ | ||
4622 | + ((((const uint8_t *)(sense))[0] & 0x70) == 0x70)) | ||
4623 | + | ||
4624 | +#define SCST_NO_SENSE(sense) ((sense != NULL) && \ | ||
4625 | + (((const uint8_t *)(sense))[2] == 0)) | ||
4626 | + | ||
4627 | +/************************************************************* | ||
4628 | + ** Sense data for the appropriate errors. Can be used with | ||
4629 | + ** scst_set_cmd_error() | ||
4630 | + *************************************************************/ | ||
4631 | +#define scst_sense_no_sense NO_SENSE, 0x00, 0 | ||
4632 | +#define scst_sense_hardw_error HARDWARE_ERROR, 0x44, 0 | ||
4633 | +#define scst_sense_aborted_command ABORTED_COMMAND, 0x00, 0 | ||
4634 | +#define scst_sense_invalid_opcode ILLEGAL_REQUEST, 0x20, 0 | ||
4635 | +#define scst_sense_invalid_field_in_cdb ILLEGAL_REQUEST, 0x24, 0 | ||
4636 | +#define scst_sense_invalid_field_in_parm_list ILLEGAL_REQUEST, 0x26, 0 | ||
4637 | +#define scst_sense_parameter_value_invalid ILLEGAL_REQUEST, 0x26, 2 | ||
4638 | +#define scst_sense_invalid_release ILLEGAL_REQUEST, 0x26, 4 | ||
4639 | +#define scst_sense_parameter_list_length_invalid \ | ||
4640 | + ILLEGAL_REQUEST, 0x1A, 0 | ||
4641 | +#define scst_sense_reset_UA UNIT_ATTENTION, 0x29, 0 | ||
4642 | +#define scst_sense_nexus_loss_UA UNIT_ATTENTION, 0x29, 0x7 | ||
4643 | +#define scst_sense_saving_params_unsup ILLEGAL_REQUEST, 0x39, 0 | ||
4644 | +#define scst_sense_lun_not_supported ILLEGAL_REQUEST, 0x25, 0 | ||
4645 | +#define scst_sense_data_protect DATA_PROTECT, 0x00, 0 | ||
4646 | +#define scst_sense_miscompare_error MISCOMPARE, 0x1D, 0 | ||
4647 | +#define scst_sense_block_out_range_error ILLEGAL_REQUEST, 0x21, 0 | ||
4648 | +#define scst_sense_medium_changed_UA UNIT_ATTENTION, 0x28, 0 | ||
4649 | +#define scst_sense_read_error MEDIUM_ERROR, 0x11, 0 | ||
4650 | +#define scst_sense_write_error MEDIUM_ERROR, 0x03, 0 | ||
4651 | +#define scst_sense_not_ready NOT_READY, 0x04, 0x10 | ||
4652 | +#define scst_sense_invalid_message ILLEGAL_REQUEST, 0x49, 0 | ||
4653 | +#define scst_sense_cleared_by_another_ini_UA UNIT_ATTENTION, 0x2F, 0 | ||
4654 | +#define scst_sense_capacity_data_changed UNIT_ATTENTION, 0x2A, 0x9 | ||
4655 | +#define scst_sense_reservation_preempted UNIT_ATTENTION, 0x2A, 0x03 | ||
4656 | +#define scst_sense_reservation_released UNIT_ATTENTION, 0x2A, 0x04 | ||
4657 | +#define scst_sense_registrations_preempted UNIT_ATTENTION, 0x2A, 0x05 | ||
4658 | +#define scst_sense_reported_luns_data_changed UNIT_ATTENTION, 0x3F, 0xE | ||
4659 | +#define scst_sense_inquery_data_changed UNIT_ATTENTION, 0x3F, 0x3 | ||
4660 | + | ||
4661 | +/************************************************************* | ||
4662 | + * SCSI opcodes not listed anywhere else | ||
4663 | + *************************************************************/ | ||
4664 | +#define REPORT_DEVICE_IDENTIFIER 0xA3 | ||
4665 | +#define INIT_ELEMENT_STATUS 0x07 | ||
4666 | +#define INIT_ELEMENT_STATUS_RANGE 0x37 | ||
4667 | +#define PREVENT_ALLOW_MEDIUM 0x1E | ||
4668 | +#define READ_ATTRIBUTE 0x8C | ||
4669 | +#define REQUEST_VOLUME_ADDRESS 0xB5 | ||
4670 | +#define WRITE_ATTRIBUTE 0x8D | ||
4671 | +#define WRITE_VERIFY_16 0x8E | ||
4672 | +#define VERIFY_6 0x13 | ||
4673 | +#ifndef VERIFY_12 | ||
4674 | +#define VERIFY_12 0xAF | ||
4675 | +#endif | ||
4676 | +#ifndef GENERATING_UPSTREAM_PATCH | ||
4677 | +/* | ||
4678 | + * The constants below have been defined in the kernel header <scsi/scsi.h> | ||
4679 | + * and hence are not needed when this header file is included in kernel code. | ||
4680 | + * The definitions below are only used when this header file is included during | ||
4681 | + * compilation of SCST's user space components. | ||
4682 | + */ | ||
4683 | +#ifndef READ_16 | ||
4684 | +#define READ_16 0x88 | ||
4685 | +#endif | ||
4686 | +#ifndef WRITE_16 | ||
4687 | +#define WRITE_16 0x8a | ||
4688 | +#endif | ||
4689 | +#ifndef VERIFY_16 | ||
4690 | +#define VERIFY_16 0x8f | ||
4691 | +#endif | ||
4692 | +#ifndef SERVICE_ACTION_IN | ||
4693 | +#define SERVICE_ACTION_IN 0x9e | ||
4694 | +#endif | ||
4695 | +#ifndef SAI_READ_CAPACITY_16 | ||
4696 | +/* values for service action in */ | ||
4697 | +#define SAI_READ_CAPACITY_16 0x10 | ||
4698 | +#endif | ||
4699 | +#endif | ||
4700 | +#ifndef GENERATING_UPSTREAM_PATCH | ||
4701 | +#ifndef REPORT_LUNS | ||
4702 | +#define REPORT_LUNS 0xa0 | ||
4703 | +#endif | ||
4704 | +#endif | ||
4705 | + | ||
4706 | +/************************************************************* | ||
4707 | + ** SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft | ||
4708 | + ** T10/1561-D Revision 4 Draft dated 7th November 2002. | ||
4709 | + *************************************************************/ | ||
4710 | +#define SAM_STAT_GOOD 0x00 | ||
4711 | +#define SAM_STAT_CHECK_CONDITION 0x02 | ||
4712 | +#define SAM_STAT_CONDITION_MET 0x04 | ||
4713 | +#define SAM_STAT_BUSY 0x08 | ||
4714 | +#define SAM_STAT_INTERMEDIATE 0x10 | ||
4715 | +#define SAM_STAT_INTERMEDIATE_CONDITION_MET 0x14 | ||
4716 | +#define SAM_STAT_RESERVATION_CONFLICT 0x18 | ||
4717 | +#define SAM_STAT_COMMAND_TERMINATED 0x22 /* obsolete in SAM-3 */ | ||
4718 | +#define SAM_STAT_TASK_SET_FULL 0x28 | ||
4719 | +#define SAM_STAT_ACA_ACTIVE 0x30 | ||
4720 | +#define SAM_STAT_TASK_ABORTED 0x40 | ||
4721 | + | ||
4722 | +/************************************************************* | ||
4723 | + ** Control byte field in CDB | ||
4724 | + *************************************************************/ | ||
4725 | +#define CONTROL_BYTE_LINK_BIT 0x01 | ||
4726 | +#define CONTROL_BYTE_NACA_BIT 0x04 | ||
4727 | + | ||
4728 | +/************************************************************* | ||
4729 | + ** Byte 1 in INQUIRY CDB | ||
4730 | + *************************************************************/ | ||
4731 | +#define SCST_INQ_EVPD 0x01 | ||
4732 | + | ||
4733 | +/************************************************************* | ||
4734 | + ** Byte 3 in Standard INQUIRY data | ||
4735 | + *************************************************************/ | ||
4736 | +#define SCST_INQ_BYTE3 3 | ||
4737 | + | ||
4738 | +#define SCST_INQ_NORMACA_BIT 0x20 | ||
4739 | + | ||
4740 | +/************************************************************* | ||
4741 | + ** Byte 2 in RESERVE_10 CDB | ||
4742 | + *************************************************************/ | ||
4743 | +#define SCST_RES_3RDPTY 0x10 | ||
4744 | +#define SCST_RES_LONGID 0x02 | ||
4745 | + | ||
4746 | +/************************************************************* | ||
4747 | + ** Values for the control mode page TST field | ||
4748 | + *************************************************************/ | ||
4749 | +#define SCST_CONTR_MODE_ONE_TASK_SET 0 | ||
4750 | +#define SCST_CONTR_MODE_SEP_TASK_SETS 1 | ||
4751 | + | ||
4752 | +/******************************************************************* | ||
4753 | + ** Values for the control mode page QUEUE ALGORITHM MODIFIER field | ||
4754 | + *******************************************************************/ | ||
4755 | +#define SCST_CONTR_MODE_QUEUE_ALG_RESTRICTED_REORDER 0 | ||
4756 | +#define SCST_CONTR_MODE_QUEUE_ALG_UNRESTRICTED_REORDER 1 | ||
4757 | + | ||
4758 | +/************************************************************* | ||
4759 | + ** Values for the control mode page D_SENSE field | ||
4760 | + *************************************************************/ | ||
4761 | +#define SCST_CONTR_MODE_FIXED_SENSE 0 | ||
4762 | +#define SCST_CONTR_MODE_DESCR_SENSE 1 | ||
4763 | + | ||
4764 | +/************************************************************* | ||
4765 | + ** TransportID protocol identifiers | ||
4766 | + *************************************************************/ | ||
4767 | + | ||
4768 | +#define SCSI_TRANSPORTID_PROTOCOLID_FCP2 0 | ||
4769 | +#define SCSI_TRANSPORTID_PROTOCOLID_SPI5 1 | ||
4770 | +#define SCSI_TRANSPORTID_PROTOCOLID_SRP 4 | ||
4771 | +#define SCSI_TRANSPORTID_PROTOCOLID_ISCSI 5 | ||
4772 | +#define SCSI_TRANSPORTID_PROTOCOLID_SAS 6 | ||
4773 | + | ||
4774 | +/************************************************************* | ||
4775 | + ** Misc SCSI constants | ||
4776 | + *************************************************************/ | ||
4777 | +#define SCST_SENSE_ASC_UA_RESET 0x29 | ||
4778 | +#define BYTCHK 0x02 | ||
4779 | +#define POSITION_LEN_SHORT 20 | ||
4780 | +#define POSITION_LEN_LONG 32 | ||
4781 | + | ||
4782 | +/************************************************************* | ||
4783 | + ** Various timeouts | ||
4784 | + *************************************************************/ | ||
4785 | +#define SCST_DEFAULT_TIMEOUT (60 * HZ) | ||
4786 | + | ||
4787 | +#define SCST_GENERIC_CHANGER_TIMEOUT (3 * HZ) | ||
4788 | +#define SCST_GENERIC_CHANGER_LONG_TIMEOUT (14000 * HZ) | ||
4789 | + | ||
4790 | +#define SCST_GENERIC_PROCESSOR_TIMEOUT (3 * HZ) | ||
4791 | +#define SCST_GENERIC_PROCESSOR_LONG_TIMEOUT (14000 * HZ) | ||
4792 | + | ||
4793 | +#define SCST_GENERIC_TAPE_SMALL_TIMEOUT (3 * HZ) | ||
4794 | +#define SCST_GENERIC_TAPE_REG_TIMEOUT (900 * HZ) | ||
4795 | +#define SCST_GENERIC_TAPE_LONG_TIMEOUT (14000 * HZ) | ||
4796 | + | ||
4797 | +#define SCST_GENERIC_MODISK_SMALL_TIMEOUT (3 * HZ) | ||
4798 | +#define SCST_GENERIC_MODISK_REG_TIMEOUT (900 * HZ) | ||
4799 | +#define SCST_GENERIC_MODISK_LONG_TIMEOUT (14000 * HZ) | ||
4800 | + | ||
4801 | +#define SCST_GENERIC_DISK_SMALL_TIMEOUT (3 * HZ) | ||
4802 | +#define SCST_GENERIC_DISK_REG_TIMEOUT (60 * HZ) | ||
4803 | +#define SCST_GENERIC_DISK_LONG_TIMEOUT (3600 * HZ) | ||
4804 | + | ||
4805 | +#define SCST_GENERIC_RAID_TIMEOUT (3 * HZ) | ||
4806 | +#define SCST_GENERIC_RAID_LONG_TIMEOUT (14000 * HZ) | ||
4807 | + | ||
4808 | +#define SCST_GENERIC_CDROM_SMALL_TIMEOUT (3 * HZ) | ||
4809 | +#define SCST_GENERIC_CDROM_REG_TIMEOUT (900 * HZ) | ||
4810 | +#define SCST_GENERIC_CDROM_LONG_TIMEOUT (14000 * HZ) | ||
4811 | + | ||
4812 | +#define SCST_MAX_OTHER_TIMEOUT (14000 * HZ) | ||
4813 | + | ||
4814 | +/************************************************************* | ||
4815 | + ** I/O grouping attribute string values. Must match constants | ||
4816 | + ** w/o '_STR' suffix! | ||
4817 | + *************************************************************/ | ||
4818 | +#define SCST_IO_GROUPING_AUTO_STR "auto" | ||
4819 | +#define SCST_IO_GROUPING_THIS_GROUP_ONLY_STR "this_group_only" | ||
4820 | +#define SCST_IO_GROUPING_NEVER_STR "never" | ||
4821 | + | ||
4822 | +/************************************************************* | ||
4823 | + ** Threads pool type attribute string values. | ||
4824 | + ** Must match scst_dev_type_threads_pool_type! | ||
4825 | + *************************************************************/ | ||
4826 | +#define SCST_THREADS_POOL_PER_INITIATOR_STR "per_initiator" | ||
4827 | +#define SCST_THREADS_POOL_SHARED_STR "shared" | ||
4828 | + | ||
4829 | +/************************************************************* | ||
4830 | + ** Misc constants | ||
4831 | + *************************************************************/ | ||
4832 | +#define SCST_SYSFS_BLOCK_SIZE PAGE_SIZE | ||
4833 | + | ||
4834 | +#define SCST_PR_DIR "/var/lib/scst/pr" | ||
4835 | + | ||
4836 | +#define TID_COMMON_SIZE 24 | ||
4837 | + | ||
4838 | +#define SCST_SYSFS_KEY_MARK "[key]" | ||
4839 | + | ||
4840 | +#define SCST_MIN_REL_TGT_ID 1 | ||
4841 | +#define SCST_MAX_REL_TGT_ID 65535 | ||
4842 | + | ||
4843 | +#endif /* __SCST_CONST_H */ | ||
4844 | diff -upkr -X linux-2.6.35/Documentation/dontdiff linux-2.6.35/drivers/Kconfig linux-2.6.35/drivers/Kconfig | ||
4845 | --- orig/linux-2.6.35/drivers/Kconfig 01:51:29.000000000 +0400 | ||
4846 | +++ linux-2.6.35/drivers/Kconfig 14:14:46.000000000 +0400 | ||
4847 | @@ -22,6 +22,8 @@ source "drivers/ide/Kconfig" | 4849 | @@ -22,6 +22,8 @@ source "drivers/ide/Kconfig" |
4848 | 4850 | ||
4849 | source "drivers/scsi/Kconfig" | 4851 | source "drivers/scsi/Kconfig" |
@@ -4853,21 +4855,18 @@ diff -upkr -X linux-2.6.35/Documentation/dontdiff linux-2.6.35/drivers/Kconfig l | |||
4853 | source "drivers/ata/Kconfig" | 4855 | source "drivers/ata/Kconfig" |
4854 | 4856 | ||
4855 | source "drivers/md/Kconfig" | 4857 | source "drivers/md/Kconfig" |
4856 | diff -upkr -X linux-2.6.35/Documentation/dontdiff linux-2.6.35/drivers/Makefile linux-2.6.35/drivers/Makefile | 4858 | diff -upkr -X linux-2.6.36/Documentation/dontdiff linux-2.6.36/drivers/Makefile linux-2.6.36/drivers/Makefile |
4857 | --- orig/linux-2.6.35/drivers/Makefile 01:51:29.000000000 +0400 | 4859 | --- orig/linux-2.6.36/drivers/Makefile 15:40:04.000000000 +0200 |
4858 | +++ linux-2.6.35/drivers/Makefile 14:15:29.000000000 +0400 | 4860 | +++ linux-2.6.36/drivers/Makefile 15:40:20.000000000 +0200 |
4859 | @@ -43,6 +43,7 @@ obj-$(CONFIG_ATM) += atm/ | 4861 | @@ -113,3 +113,4 @@ obj-$(CONFIG_VLYNQ) += vlynq/ |
4860 | obj-y += macintosh/ | 4862 | obj-$(CONFIG_STAGING) += staging/ |
4861 | obj-$(CONFIG_IDE) += ide/ | 4863 | obj-y += platform/ |
4862 | obj-$(CONFIG_SCSI) += scsi/ | 4864 | obj-y += ieee802154/ |
4863 | +obj-$(CONFIG_SCST) += scst/ | 4865 | +obj-$(CONFIG_SCST) += scst/ |
4864 | obj-$(CONFIG_ATA) += ata/ | 4866 | diff -uprN orig/linux-2.6.36/drivers/scst/Kconfig linux-2.6.36/drivers/scst/Kconfig |
4865 | obj-y += net/ | 4867 | --- orig/linux-2.6.36/drivers/scst/Kconfig |
4866 | obj-$(CONFIG_ATM) += atm/ | 4868 | +++ linux-2.6.36/drivers/scst/Kconfig |
4867 | diff -uprN orig/linux-2.6.35/drivers/scst/Kconfig linux-2.6.35/drivers/scst/Kconfig | 4869 | @@ -0,0 +1,254 @@ |
4868 | --- orig/linux-2.6.35/drivers/scst/Kconfig | ||
4869 | +++ linux-2.6.35/drivers/scst/Kconfig | ||
4870 | @@ -0,0 +1,255 @@ | ||
4871 | +menu "SCSI target (SCST) support" | 4870 | +menu "SCSI target (SCST) support" |
4872 | + | 4871 | + |
4873 | +config SCST | 4872 | +config SCST |
@@ -5118,14 +5117,13 @@ diff -uprN orig/linux-2.6.35/drivers/scst/Kconfig linux-2.6.35/drivers/scst/Kcon | |||
5118 | + | 5117 | + |
5119 | + If unsure, say "N". | 5118 | + If unsure, say "N". |
5120 | + | 5119 | + |
5121 | +source "drivers/scst/fcst/Kconfig" | ||
5122 | +source "drivers/scst/iscsi-scst/Kconfig" | 5120 | +source "drivers/scst/iscsi-scst/Kconfig" |
5123 | +source "drivers/scst/srpt/Kconfig" | 5121 | +source "drivers/scst/srpt/Kconfig" |
5124 | + | 5122 | + |
5125 | +endmenu | 5123 | +endmenu |
5126 | diff -uprN orig/linux-2.6.35/drivers/scst/Makefile linux-2.6.35/drivers/scst/Makefile | 5124 | diff -uprN orig/linux-2.6.36/drivers/scst/Makefile linux-2.6.36/drivers/scst/Makefile |
5127 | --- orig/linux-2.6.35/drivers/scst/Makefile | 5125 | --- orig/linux-2.6.36/drivers/scst/Makefile |
5128 | +++ linux-2.6.35/drivers/scst/Makefile | 5126 | +++ linux-2.6.36/drivers/scst/Makefile |
5129 | @@ -0,0 +1,12 @@ | 5127 | @@ -0,0 +1,12 @@ |
5130 | +ccflags-y += -Wno-unused-parameter | 5128 | +ccflags-y += -Wno-unused-parameter |
5131 | + | 5129 | + |
@@ -5137,11 +5135,11 @@ diff -uprN orig/linux-2.6.35/drivers/scst/Makefile linux-2.6.35/drivers/scst/Mak | |||
5137 | +scst-y += scst_mem.o | 5135 | +scst-y += scst_mem.o |
5138 | +scst-y += scst_debug.o | 5136 | +scst-y += scst_debug.o |
5139 | + | 5137 | + |
5140 | +obj-$(CONFIG_SCST) += scst.o dev_handlers/ fcst/ iscsi-scst/ qla2xxx-target/ \ | 5138 | +obj-$(CONFIG_SCST) += scst.o dev_handlers/ iscsi-scst/ qla2xxx-target/ \ |
5141 | + srpt/ scst_local/ | 5139 | + srpt/ scst_local/ |
5142 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_lib.c linux-2.6.35/drivers/scst/scst_lib.c | 5140 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_lib.c linux-2.6.36/drivers/scst/scst_lib.c |
5143 | --- orig/linux-2.6.35/drivers/scst/scst_lib.c | 5141 | --- orig/linux-2.6.36/drivers/scst/scst_lib.c |
5144 | +++ linux-2.6.35/drivers/scst/scst_lib.c | 5142 | +++ linux-2.6.36/drivers/scst/scst_lib.c |
5145 | @@ -0,0 +1,7361 @@ | 5143 | @@ -0,0 +1,7361 @@ |
5146 | +/* | 5144 | +/* |
5147 | + * scst_lib.c | 5145 | + * scst_lib.c |
@@ -12504,9 +12502,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_lib.c linux-2.6.35/drivers/scst/s | |||
12504 | +} | 12502 | +} |
12505 | + | 12503 | + |
12506 | +#endif /* CONFIG_SCST_MEASURE_LATENCY */ | 12504 | +#endif /* CONFIG_SCST_MEASURE_LATENCY */ |
12507 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_main.c linux-2.6.35/drivers/scst/scst_main.c | 12505 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_main.c linux-2.6.36/drivers/scst/scst_main.c |
12508 | --- orig/linux-2.6.35/drivers/scst/scst_main.c | 12506 | --- orig/linux-2.6.36/drivers/scst/scst_main.c |
12509 | +++ linux-2.6.35/drivers/scst/scst_main.c | 12507 | +++ linux-2.6.36/drivers/scst/scst_main.c |
12510 | @@ -0,0 +1,2195 @@ | 12508 | @@ -0,0 +1,2195 @@ |
12511 | +/* | 12509 | +/* |
12512 | + * scst_main.c | 12510 | + * scst_main.c |
@@ -14703,9 +14701,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_main.c linux-2.6.35/drivers/scst/ | |||
14703 | +MODULE_LICENSE("GPL"); | 14701 | +MODULE_LICENSE("GPL"); |
14704 | +MODULE_DESCRIPTION("SCSI target core"); | 14702 | +MODULE_DESCRIPTION("SCSI target core"); |
14705 | +MODULE_VERSION(SCST_VERSION_STRING); | 14703 | +MODULE_VERSION(SCST_VERSION_STRING); |
14706 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_module.c linux-2.6.35/drivers/scst/scst_module.c | 14704 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_module.c linux-2.6.36/drivers/scst/scst_module.c |
14707 | --- orig/linux-2.6.35/drivers/scst/scst_module.c | 14705 | --- orig/linux-2.6.36/drivers/scst/scst_module.c |
14708 | +++ linux-2.6.35/drivers/scst/scst_module.c | 14706 | +++ linux-2.6.36/drivers/scst/scst_module.c |
14709 | @@ -0,0 +1,69 @@ | 14707 | @@ -0,0 +1,69 @@ |
14710 | +/* | 14708 | +/* |
14711 | + * scst_module.c | 14709 | + * scst_module.c |
@@ -14776,9 +14774,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_module.c linux-2.6.35/drivers/scs | |||
14776 | + | 14774 | + |
14777 | +module_init(init_this_scst_driver); | 14775 | +module_init(init_this_scst_driver); |
14778 | +module_exit(exit_this_scst_driver); | 14776 | +module_exit(exit_this_scst_driver); |
14779 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_pres.c linux-2.6.35/drivers/scst/scst_pres.c | 14777 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_pres.c linux-2.6.36/drivers/scst/scst_pres.c |
14780 | --- orig/linux-2.6.35/drivers/scst/scst_pres.c | 14778 | --- orig/linux-2.6.36/drivers/scst/scst_pres.c |
14781 | +++ linux-2.6.35/drivers/scst/scst_pres.c | 14779 | +++ linux-2.6.36/drivers/scst/scst_pres.c |
14782 | @@ -0,0 +1,2648 @@ | 14780 | @@ -0,0 +1,2648 @@ |
14783 | +/* | 14781 | +/* |
14784 | + * scst_pres.c | 14782 | + * scst_pres.c |
@@ -17428,9 +17426,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_pres.c linux-2.6.35/drivers/scst/ | |||
17428 | + TRACE_EXIT(); | 17426 | + TRACE_EXIT(); |
17429 | + return; | 17427 | + return; |
17430 | +} | 17428 | +} |
17431 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_pres.h linux-2.6.35/drivers/scst/scst_pres.h | 17429 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_pres.h linux-2.6.36/drivers/scst/scst_pres.h |
17432 | --- orig/linux-2.6.35/drivers/scst/scst_pres.h | 17430 | --- orig/linux-2.6.36/drivers/scst/scst_pres.h |
17433 | +++ linux-2.6.35/drivers/scst/scst_pres.h | 17431 | +++ linux-2.6.36/drivers/scst/scst_pres.h |
17434 | @@ -0,0 +1,170 @@ | 17432 | @@ -0,0 +1,170 @@ |
17435 | +/* | 17433 | +/* |
17436 | + * scst_pres.c | 17434 | + * scst_pres.c |
@@ -17602,9 +17600,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_pres.h linux-2.6.35/drivers/scst/ | |||
17602 | +#endif | 17600 | +#endif |
17603 | + | 17601 | + |
17604 | +#endif /* SCST_PRES_H_ */ | 17602 | +#endif /* SCST_PRES_H_ */ |
17605 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_priv.h linux-2.6.35/drivers/scst/scst_priv.h | 17603 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_priv.h linux-2.6.36/drivers/scst/scst_priv.h |
17606 | --- orig/linux-2.6.35/drivers/scst/scst_priv.h | 17604 | --- orig/linux-2.6.36/drivers/scst/scst_priv.h |
17607 | +++ linux-2.6.35/drivers/scst/scst_priv.h | 17605 | +++ linux-2.6.36/drivers/scst/scst_priv.h |
17608 | @@ -0,0 +1,599 @@ | 17606 | @@ -0,0 +1,599 @@ |
17609 | +/* | 17607 | +/* |
17610 | + * scst_priv.h | 17608 | + * scst_priv.h |
@@ -18205,10 +18203,10 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_priv.h linux-2.6.35/drivers/scst/ | |||
18205 | +#endif /* CONFIG_SCST_MEASURE_LATENCY */ | 18203 | +#endif /* CONFIG_SCST_MEASURE_LATENCY */ |
18206 | + | 18204 | + |
18207 | +#endif /* __SCST_PRIV_H */ | 18205 | +#endif /* __SCST_PRIV_H */ |
18208 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_sysfs.c linux-2.6.35/drivers/scst/scst_sysfs.c | 18206 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_sysfs.c linux-2.6.36/drivers/scst/scst_sysfs.c |
18209 | --- orig/linux-2.6.35/drivers/scst/scst_sysfs.c | 18207 | --- orig/linux-2.6.36/drivers/scst/scst_sysfs.c |
18210 | +++ linux-2.6.35/drivers/scst/scst_sysfs.c | 18208 | +++ linux-2.6.36/drivers/scst/scst_sysfs.c |
18211 | @@ -0,0 +1,5292 @@ | 18209 | @@ -0,0 +1,5291 @@ |
18212 | +/* | 18210 | +/* |
18213 | + * scst_sysfs.c | 18211 | + * scst_sysfs.c |
18214 | + * | 18212 | + * |
@@ -21813,7 +21811,6 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_sysfs.c linux-2.6.35/drivers/scst | |||
21813 | + } | 21811 | + } |
21814 | + strlcpy((char *)attr->attr.name, acn->name, len); | 21812 | + strlcpy((char *)attr->attr.name, acn->name, len); |
21815 | + | 21813 | + |
21816 | + attr->attr.owner = THIS_MODULE; | ||
21817 | +#ifdef CONFIG_DEBUG_LOCK_ALLOC | 21814 | +#ifdef CONFIG_DEBUG_LOCK_ALLOC |
21818 | + attr->attr.key = &__key; | 21815 | + attr->attr.key = &__key; |
21819 | +#endif | 21816 | +#endif |
@@ -23501,9 +23498,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_sysfs.c linux-2.6.35/drivers/scst | |||
23501 | + TRACE_EXIT(); | 23498 | + TRACE_EXIT(); |
23502 | + return; | 23499 | + return; |
23503 | +} | 23500 | +} |
23504 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_targ.c linux-2.6.35/drivers/scst/scst_targ.c | 23501 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_targ.c linux-2.6.36/drivers/scst/scst_targ.c |
23505 | --- orig/linux-2.6.35/drivers/scst/scst_targ.c | 23502 | --- orig/linux-2.6.36/drivers/scst/scst_targ.c |
23506 | +++ linux-2.6.35/drivers/scst/scst_targ.c | 23503 | +++ linux-2.6.36/drivers/scst/scst_targ.c |
23507 | @@ -0,0 +1,6582 @@ | 23504 | @@ -0,0 +1,6582 @@ |
23508 | +/* | 23505 | +/* |
23509 | + * scst_targ.c | 23506 | + * scst_targ.c |
@@ -30087,9 +30084,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_targ.c linux-2.6.35/drivers/scst/ | |||
30087 | + return cmd; | 30084 | + return cmd; |
30088 | +} | 30085 | +} |
30089 | +EXPORT_SYMBOL(scst_find_cmd_by_tag); | 30086 | +EXPORT_SYMBOL(scst_find_cmd_by_tag); |
30090 | diff -uprN orig/linux-2.6.35/include/scst/scst_debug.h linux-2.6.35/include/scst/scst_debug.h | 30087 | diff -uprN orig/linux-2.6.36/include/scst/scst_debug.h linux-2.6.36/include/scst/scst_debug.h |
30091 | --- orig/linux-2.6.35/include/scst/scst_debug.h | 30088 | --- orig/linux-2.6.36/include/scst/scst_debug.h |
30092 | +++ linux-2.6.35/include/scst/scst_debug.h | 30089 | +++ linux-2.6.36/include/scst/scst_debug.h |
30093 | @@ -0,0 +1,350 @@ | 30090 | @@ -0,0 +1,350 @@ |
30094 | +/* | 30091 | +/* |
30095 | + * include/scst_debug.h | 30092 | + * include/scst_debug.h |
@@ -30441,9 +30438,9 @@ diff -uprN orig/linux-2.6.35/include/scst/scst_debug.h linux-2.6.35/include/scst | |||
30441 | +#endif | 30438 | +#endif |
30442 | + | 30439 | + |
30443 | +#endif /* __SCST_DEBUG_H */ | 30440 | +#endif /* __SCST_DEBUG_H */ |
30444 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_debug.c linux-2.6.35/drivers/scst/scst_debug.c | 30441 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_debug.c linux-2.6.36/drivers/scst/scst_debug.c |
30445 | --- orig/linux-2.6.35/drivers/scst/scst_debug.c | 30442 | --- orig/linux-2.6.36/drivers/scst/scst_debug.c |
30446 | +++ linux-2.6.35/drivers/scst/scst_debug.c | 30443 | +++ linux-2.6.36/drivers/scst/scst_debug.c |
30447 | @@ -0,0 +1,223 @@ | 30444 | @@ -0,0 +1,223 @@ |
30448 | +/* | 30445 | +/* |
30449 | + * scst_debug.c | 30446 | + * scst_debug.c |
@@ -30668,9 +30665,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_debug.c linux-2.6.35/drivers/scst | |||
30668 | +} | 30665 | +} |
30669 | + | 30666 | + |
30670 | +#endif /* CONFIG_SCST_DEBUG || CONFIG_SCST_TRACING */ | 30667 | +#endif /* CONFIG_SCST_DEBUG || CONFIG_SCST_TRACING */ |
30671 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_proc.c linux-2.6.35/drivers/scst/scst_proc.c | 30668 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_proc.c linux-2.6.36/drivers/scst/scst_proc.c |
30672 | --- orig/linux-2.6.35/drivers/scst/scst_proc.c | 30669 | --- orig/linux-2.6.36/drivers/scst/scst_proc.c |
30673 | +++ linux-2.6.35/drivers/scst/scst_proc.c | 30670 | +++ linux-2.6.36/drivers/scst/scst_proc.c |
30674 | @@ -0,0 +1,2703 @@ | 30671 | @@ -0,0 +1,2703 @@ |
30675 | +/* | 30672 | +/* |
30676 | + * scst_proc.c | 30673 | + * scst_proc.c |
@@ -33375,9 +33372,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_proc.c linux-2.6.35/drivers/scst/ | |||
33375 | + return dtt->proc_dev_type_root; | 33372 | + return dtt->proc_dev_type_root; |
33376 | +} | 33373 | +} |
33377 | +EXPORT_SYMBOL_GPL(scst_proc_get_dev_type_root); | 33374 | +EXPORT_SYMBOL_GPL(scst_proc_get_dev_type_root); |
33378 | diff -uprN orig/linux-2.6.35/include/scst/scst_sgv.h linux-2.6.35/include/scst/scst_sgv.h | 33375 | diff -uprN orig/linux-2.6.36/include/scst/scst_sgv.h linux-2.6.36/include/scst/scst_sgv.h |
33379 | --- orig/linux-2.6.35/include/scst/scst_sgv.h | 33376 | --- orig/linux-2.6.36/include/scst/scst_sgv.h |
33380 | +++ linux-2.6.35/include/scst/scst_sgv.h | 33377 | +++ linux-2.6.36/include/scst/scst_sgv.h |
33381 | @@ -0,0 +1,97 @@ | 33378 | @@ -0,0 +1,97 @@ |
33382 | +/* | 33379 | +/* |
33383 | + * include/scst_sgv.h | 33380 | + * include/scst_sgv.h |
@@ -33476,9 +33473,9 @@ diff -uprN orig/linux-2.6.35/include/scst/scst_sgv.h linux-2.6.35/include/scst/s | |||
33476 | +void scst_init_mem_lim(struct scst_mem_lim *mem_lim); | 33473 | +void scst_init_mem_lim(struct scst_mem_lim *mem_lim); |
33477 | + | 33474 | + |
33478 | +#endif /* __SCST_SGV_H */ | 33475 | +#endif /* __SCST_SGV_H */ |
33479 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_mem.h linux-2.6.35/drivers/scst/scst_mem.h | 33476 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_mem.h linux-2.6.36/drivers/scst/scst_mem.h |
33480 | --- orig/linux-2.6.35/drivers/scst/scst_mem.h | 33477 | --- orig/linux-2.6.36/drivers/scst/scst_mem.h |
33481 | +++ linux-2.6.35/drivers/scst/scst_mem.h | 33478 | +++ linux-2.6.36/drivers/scst/scst_mem.h |
33482 | @@ -0,0 +1,150 @@ | 33479 | @@ -0,0 +1,150 @@ |
33483 | +/* | 33480 | +/* |
33484 | + * scst_mem.h | 33481 | + * scst_mem.h |
@@ -33630,9 +33627,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_mem.h linux-2.6.35/drivers/scst/s | |||
33630 | +void scst_sgv_pool_use_norm(struct scst_tgt_dev *tgt_dev); | 33627 | +void scst_sgv_pool_use_norm(struct scst_tgt_dev *tgt_dev); |
33631 | +void scst_sgv_pool_use_norm_clust(struct scst_tgt_dev *tgt_dev); | 33628 | +void scst_sgv_pool_use_norm_clust(struct scst_tgt_dev *tgt_dev); |
33632 | +void scst_sgv_pool_use_dma(struct scst_tgt_dev *tgt_dev); | 33629 | +void scst_sgv_pool_use_dma(struct scst_tgt_dev *tgt_dev); |
33633 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_mem.c linux-2.6.35/drivers/scst/scst_mem.c | 33630 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_mem.c linux-2.6.36/drivers/scst/scst_mem.c |
33634 | --- orig/linux-2.6.35/drivers/scst/scst_mem.c | 33631 | --- orig/linux-2.6.36/drivers/scst/scst_mem.c |
33635 | +++ linux-2.6.35/drivers/scst/scst_mem.c | 33632 | +++ linux-2.6.36/drivers/scst/scst_mem.c |
33636 | @@ -0,0 +1,1879 @@ | 33633 | @@ -0,0 +1,1879 @@ |
33637 | +/* | 33634 | +/* |
33638 | + * scst_mem.c | 33635 | + * scst_mem.c |
@@ -35513,9 +35510,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_mem.c linux-2.6.35/drivers/scst/s | |||
35513 | + return count; | 35510 | + return count; |
35514 | +} | 35511 | +} |
35515 | + | 35512 | + |
35516 | diff -uprN orig/linux-2.6.35/Documentation/scst/sgv_cache.txt linux-2.6.35/Documentation/scst/sgv_cache.txt | 35513 | diff -uprN orig/linux-2.6.36/Documentation/scst/sgv_cache.txt linux-2.6.36/Documentation/scst/sgv_cache.txt |
35517 | --- orig/linux-2.6.35/Documentation/scst/sgv_cache.txt | 35514 | --- orig/linux-2.6.36/Documentation/scst/sgv_cache.txt |
35518 | +++ linux-2.6.35/Documentation/scst/sgv_cache.txt | 35515 | +++ linux-2.6.36/Documentation/scst/sgv_cache.txt |
35519 | @@ -0,0 +1,224 @@ | 35516 | @@ -0,0 +1,224 @@ |
35520 | + SCST SGV CACHE. | 35517 | + SCST SGV CACHE. |
35521 | + | 35518 | + |
@@ -35741,9 +35738,9 @@ diff -uprN orig/linux-2.6.35/Documentation/scst/sgv_cache.txt linux-2.6.35/Docum | |||
35741 | + | 35738 | + |
35742 | +Runtime information and statistics is available in /sys/kernel/scst_tgt/sgv. | 35739 | +Runtime information and statistics is available in /sys/kernel/scst_tgt/sgv. |
35743 | + | 35740 | + |
35744 | diff -uprN orig/linux-2.6.35/include/scst/scst_user.h linux-2.6.35/include/scst/scst_user.h | 35741 | diff -uprN orig/linux-2.6.36/include/scst/scst_user.h linux-2.6.36/include/scst/scst_user.h |
35745 | --- orig/linux-2.6.35/include/scst/scst_user.h | 35742 | --- orig/linux-2.6.36/include/scst/scst_user.h |
35746 | +++ linux-2.6.35/include/scst/scst_user.h | 35743 | +++ linux-2.6.36/include/scst/scst_user.h |
35747 | @@ -0,0 +1,321 @@ | 35744 | @@ -0,0 +1,321 @@ |
35748 | +/* | 35745 | +/* |
35749 | + * include/scst_user.h | 35746 | + * include/scst_user.h |
@@ -35773,9 +35770,9 @@ diff -uprN orig/linux-2.6.35/include/scst/scst_user.h linux-2.6.35/include/scst/ | |||
35773 | + | 35770 | + |
35774 | +#define DEV_USER_NAME "scst_user" | 35771 | +#define DEV_USER_NAME "scst_user" |
35775 | +#define DEV_USER_PATH "/dev/" | 35772 | +#define DEV_USER_PATH "/dev/" |
35776 | +#define DEV_USER_VERSION_NAME "2.0.0-rc3" | 35773 | +#define DEV_USER_VERSION_NAME "2.0.0" |
35777 | +#define DEV_USER_VERSION \ | 35774 | +#define DEV_USER_VERSION \ |
35778 | + DEV_USER_VERSION_NAME "$Revision: 2091 $" SCST_CONST_VERSION | 35775 | + DEV_USER_VERSION_NAME "$Revision: 3165 $" SCST_CONST_VERSION |
35779 | + | 35776 | + |
35780 | +#define SCST_USER_PARSE_STANDARD 0 | 35777 | +#define SCST_USER_PARSE_STANDARD 0 |
35781 | +#define SCST_USER_PARSE_CALL 1 | 35778 | +#define SCST_USER_PARSE_CALL 1 |
@@ -36066,9 +36063,9 @@ diff -uprN orig/linux-2.6.35/include/scst/scst_user.h linux-2.6.35/include/scst/ | |||
36066 | + _IOWR('s', UCMD_STATE_TM_EXECING, struct scst_user_tm) | 36063 | + _IOWR('s', UCMD_STATE_TM_EXECING, struct scst_user_tm) |
36067 | + | 36064 | + |
36068 | +#endif /* __SCST_USER_H */ | 36065 | +#endif /* __SCST_USER_H */ |
36069 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_user.c linux-2.6.35/drivers/scst/dev_handlers/scst_user.c | 36066 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/scst_user.c linux-2.6.36/drivers/scst/dev_handlers/scst_user.c |
36070 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/scst_user.c | 36067 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/scst_user.c |
36071 | +++ linux-2.6.35/drivers/scst/dev_handlers/scst_user.c | 36068 | +++ linux-2.6.36/drivers/scst/dev_handlers/scst_user.c |
36072 | @@ -0,0 +1,3738 @@ | 36069 | @@ -0,0 +1,3738 @@ |
36073 | +/* | 36070 | +/* |
36074 | + * scst_user.c | 36071 | + * scst_user.c |
@@ -39808,10 +39805,10 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_user.c linux-2.6.35/ | |||
39808 | +MODULE_LICENSE("GPL"); | 39805 | +MODULE_LICENSE("GPL"); |
39809 | +MODULE_DESCRIPTION("User space device handler for SCST"); | 39806 | +MODULE_DESCRIPTION("User space device handler for SCST"); |
39810 | +MODULE_VERSION(SCST_VERSION_STRING); | 39807 | +MODULE_VERSION(SCST_VERSION_STRING); |
39811 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c | 39808 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.36/drivers/scst/dev_handlers/scst_vdisk.c |
39812 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c | 39809 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/scst_vdisk.c |
39813 | +++ linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c | 39810 | +++ linux-2.6.36/drivers/scst/dev_handlers/scst_vdisk.c |
39814 | @@ -0,0 +1,4160 @@ | 39811 | @@ -0,0 +1,4226 @@ |
39815 | +/* | 39812 | +/* |
39816 | + * scst_vdisk.c | 39813 | + * scst_vdisk.c |
39817 | + * | 39814 | + * |
@@ -40028,9 +40025,13 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
40028 | + char *filename; /* File name, protected by | 40025 | + char *filename; /* File name, protected by |
40029 | + scst_mutex and suspended activities */ | 40026 | + scst_mutex and suspended activities */ |
40030 | + uint16_t command_set_version; | 40027 | + uint16_t command_set_version; |
40028 | + | ||
40029 | + /* All 4 protected by vdisk_serial_rwlock */ | ||
40031 | + unsigned int t10_dev_id_set:1; /* true if t10_dev_id manually set */ | 40030 | + unsigned int t10_dev_id_set:1; /* true if t10_dev_id manually set */ |
40031 | + unsigned int usn_set:1; /* true if usn manually set */ | ||
40032 | + char t10_dev_id[16+8+2]; /* T10 device ID */ | 40032 | + char t10_dev_id[16+8+2]; /* T10 device ID */ |
40033 | + char usn[MAX_USN_LEN]; | 40033 | + char usn[MAX_USN_LEN]; |
40034 | + | ||
40034 | + struct scst_device *dev; | 40035 | + struct scst_device *dev; |
40035 | + struct list_head vdev_list_entry; | 40036 | + struct list_head vdev_list_entry; |
40036 | + | 40037 | + |
@@ -40114,6 +40115,8 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
40114 | + struct kobj_attribute *attr, const char *buf, size_t count); | 40115 | + struct kobj_attribute *attr, const char *buf, size_t count); |
40115 | +static ssize_t vdev_sysfs_t10_dev_id_show(struct kobject *kobj, | 40116 | +static ssize_t vdev_sysfs_t10_dev_id_show(struct kobject *kobj, |
40116 | + struct kobj_attribute *attr, char *buf); | 40117 | + struct kobj_attribute *attr, char *buf); |
40118 | +static ssize_t vdev_sysfs_usn_store(struct kobject *kobj, | ||
40119 | + struct kobj_attribute *attr, const char *buf, size_t count); | ||
40117 | +static ssize_t vdev_sysfs_usn_show(struct kobject *kobj, | 40120 | +static ssize_t vdev_sysfs_usn_show(struct kobject *kobj, |
40118 | + struct kobj_attribute *attr, char *buf); | 40121 | + struct kobj_attribute *attr, char *buf); |
40119 | + | 40122 | + |
@@ -40142,7 +40145,7 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
40142 | + __ATTR(t10_dev_id, S_IWUSR|S_IRUGO, vdev_sysfs_t10_dev_id_show, | 40145 | + __ATTR(t10_dev_id, S_IWUSR|S_IRUGO, vdev_sysfs_t10_dev_id_show, |
40143 | + vdev_sysfs_t10_dev_id_store); | 40146 | + vdev_sysfs_t10_dev_id_store); |
40144 | +static struct kobj_attribute vdev_usn_attr = | 40147 | +static struct kobj_attribute vdev_usn_attr = |
40145 | + __ATTR(usn, S_IRUGO, vdev_sysfs_usn_show, NULL); | 40148 | + __ATTR(usn, S_IWUSR|S_IRUGO, vdev_sysfs_usn_show, vdev_sysfs_usn_store); |
40146 | + | 40149 | + |
40147 | +static struct kobj_attribute vcdrom_filename_attr = | 40150 | +static struct kobj_attribute vcdrom_filename_attr = |
40148 | + __ATTR(filename, S_IRUGO|S_IWUSR, vdev_sysfs_filename_show, | 40151 | + __ATTR(filename, S_IRUGO|S_IWUSR, vdev_sysfs_filename_show, |
@@ -40196,7 +40199,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
40196 | + | 40199 | + |
40197 | +/* Protects vdisks addition/deletion and related activities, like search */ | 40200 | +/* Protects vdisks addition/deletion and related activities, like search */ |
40198 | +static DEFINE_MUTEX(scst_vdisk_mutex); | 40201 | +static DEFINE_MUTEX(scst_vdisk_mutex); |
40199 | +static DEFINE_RWLOCK(vdisk_t10_dev_id_rwlock); | 40202 | + |
40203 | +/* Protects devices t10_dev_id and usn */ | ||
40204 | +static DEFINE_RWLOCK(vdisk_serial_rwlock); | ||
40200 | + | 40205 | + |
40201 | +/* Protected by scst_vdisk_mutex */ | 40206 | +/* Protected by scst_vdisk_mutex */ |
40202 | +static LIST_HEAD(vdev_list); | 40207 | +static LIST_HEAD(vdev_list); |
@@ -41024,10 +41029,12 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
41024 | + resp_len = buf[3] + 4; | 41029 | + resp_len = buf[3] + 4; |
41025 | + } else if (0x80 == cmd->cdb[2]) { | 41030 | + } else if (0x80 == cmd->cdb[2]) { |
41026 | + /* unit serial number */ | 41031 | + /* unit serial number */ |
41027 | + int usn_len = strlen(virt_dev->usn); | 41032 | + int usn_len; |
41028 | + buf[1] = 0x80; | 41033 | + read_lock(&vdisk_serial_rwlock); |
41034 | + usn_len = strlen(virt_dev->usn); | ||
41029 | + buf[3] = usn_len; | 41035 | + buf[3] = usn_len; |
41030 | + strncpy(&buf[4], virt_dev->usn, usn_len); | 41036 | + strncpy(&buf[4], virt_dev->usn, usn_len); |
41037 | + read_unlock(&vdisk_serial_rwlock); | ||
41031 | + resp_len = buf[3] + 4; | 41038 | + resp_len = buf[3] + 4; |
41032 | + } else if (0x83 == cmd->cdb[2]) { | 41039 | + } else if (0x83 == cmd->cdb[2]) { |
41033 | + /* device identification */ | 41040 | + /* device identification */ |
@@ -41042,10 +41049,10 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
41042 | + else | 41049 | + else |
41043 | + memcpy(&buf[num + 4], SCST_FIO_VENDOR, 8); | 41050 | + memcpy(&buf[num + 4], SCST_FIO_VENDOR, 8); |
41044 | + | 41051 | + |
41045 | + read_lock_bh(&vdisk_t10_dev_id_rwlock); | 41052 | + read_lock(&vdisk_serial_rwlock); |
41046 | + i = strlen(virt_dev->t10_dev_id); | 41053 | + i = strlen(virt_dev->t10_dev_id); |
41047 | + memcpy(&buf[num + 12], virt_dev->t10_dev_id, i); | 41054 | + memcpy(&buf[num + 12], virt_dev->t10_dev_id, i); |
41048 | + read_unlock_bh(&vdisk_t10_dev_id_rwlock); | 41055 | + read_unlock(&vdisk_serial_rwlock); |
41049 | + | 41056 | + |
41050 | + buf[num + 3] = 8 + i; | 41057 | + buf[num + 3] = 8 + i; |
41051 | + num += buf[num + 3]; | 41058 | + num += buf[num + 3]; |
@@ -42330,7 +42337,7 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
42330 | + /* To protect from several bios finishing simultaneously */ | 42337 | + /* To protect from several bios finishing simultaneously */ |
42331 | + spin_lock_irqsave(&blockio_endio_lock, flags); | 42338 | + spin_lock_irqsave(&blockio_endio_lock, flags); |
42332 | + | 42339 | + |
42333 | + if (bio->bi_rw & (1 << BIO_RW)) | 42340 | + if (bio->bi_rw & REQ_WRITE) |
42334 | + scst_set_cmd_error(blockio_work->cmd, | 42341 | + scst_set_cmd_error(blockio_work->cmd, |
42335 | + SCST_LOAD_SENSE(scst_sense_write_error)); | 42342 | + SCST_LOAD_SENSE(scst_sense_write_error)); |
42336 | + else | 42343 | + else |
@@ -42415,9 +42422,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
42415 | + * Better to fail fast w/o any local recovery | 42422 | + * Better to fail fast w/o any local recovery |
42416 | + * and retries. | 42423 | + * and retries. |
42417 | + */ | 42424 | + */ |
42418 | + bio->bi_rw |= (1 << BIO_RW_FAILFAST_DEV) | | 42425 | + bio->bi_rw |= REQ_FAILFAST_DEV | |
42419 | + (1 << BIO_RW_FAILFAST_TRANSPORT) | | 42426 | + REQ_FAILFAST_TRANSPORT | |
42420 | + (1 << BIO_RW_FAILFAST_DRIVER); | 42427 | + REQ_FAILFAST_DRIVER; |
42421 | +#if 0 /* It could be win, but could be not, so a performance study is needed */ | 42428 | +#if 0 /* It could be win, but could be not, so a performance study is needed */ |
42422 | + bio->bi_rw |= REQ_SYNC; | 42429 | + bio->bi_rw |= REQ_SYNC; |
42423 | +#endif | 42430 | +#endif |
@@ -42781,9 +42788,13 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
42781 | + memcpy(virt_dev->t10_dev_id + i, dev_id_str, dev_id_len); | 42788 | + memcpy(virt_dev->t10_dev_id + i, dev_id_str, dev_id_len); |
42782 | + TRACE_DBG("t10_dev_id %s", virt_dev->t10_dev_id); | 42789 | + TRACE_DBG("t10_dev_id %s", virt_dev->t10_dev_id); |
42783 | + | 42790 | + |
42791 | + virt_dev->t10_dev_id_set = 1; /* temporary */ | ||
42792 | + | ||
42784 | + scnprintf(virt_dev->usn, sizeof(virt_dev->usn), "%llx", dev_id_num); | 42793 | + scnprintf(virt_dev->usn, sizeof(virt_dev->usn), "%llx", dev_id_num); |
42785 | + TRACE_DBG("usn %s", virt_dev->usn); | 42794 | + TRACE_DBG("usn %s", virt_dev->usn); |
42786 | + | 42795 | + |
42796 | + virt_dev->usn_set = 1; /* temporary */ | ||
42797 | + | ||
42787 | + *res_virt_dev = virt_dev; | 42798 | + *res_virt_dev = virt_dev; |
42788 | + | 42799 | + |
42789 | +out: | 42800 | +out: |
@@ -43772,7 +43783,7 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
43772 | + dev = container_of(kobj, struct scst_device, dev_kobj); | 43783 | + dev = container_of(kobj, struct scst_device, dev_kobj); |
43773 | + virt_dev = (struct scst_vdisk_dev *)dev->dh_priv; | 43784 | + virt_dev = (struct scst_vdisk_dev *)dev->dh_priv; |
43774 | + | 43785 | + |
43775 | + write_lock_bh(&vdisk_t10_dev_id_rwlock); | 43786 | + write_lock(&vdisk_serial_rwlock); |
43776 | + | 43787 | + |
43777 | + if ((count > sizeof(virt_dev->t10_dev_id)) || | 43788 | + if ((count > sizeof(virt_dev->t10_dev_id)) || |
43778 | + ((count == sizeof(virt_dev->t10_dev_id)) && | 43789 | + ((count == sizeof(virt_dev->t10_dev_id)) && |
@@ -43803,7 +43814,7 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
43803 | + virt_dev->t10_dev_id); | 43814 | + virt_dev->t10_dev_id); |
43804 | + | 43815 | + |
43805 | +out_unlock: | 43816 | +out_unlock: |
43806 | + write_unlock_bh(&vdisk_t10_dev_id_rwlock); | 43817 | + write_unlock(&vdisk_serial_rwlock); |
43807 | + | 43818 | + |
43808 | + TRACE_EXIT_RES(res); | 43819 | + TRACE_EXIT_RES(res); |
43809 | + return res; | 43820 | + return res; |
@@ -43821,15 +43832,64 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
43821 | + dev = container_of(kobj, struct scst_device, dev_kobj); | 43832 | + dev = container_of(kobj, struct scst_device, dev_kobj); |
43822 | + virt_dev = (struct scst_vdisk_dev *)dev->dh_priv; | 43833 | + virt_dev = (struct scst_vdisk_dev *)dev->dh_priv; |
43823 | + | 43834 | + |
43824 | + read_lock_bh(&vdisk_t10_dev_id_rwlock); | 43835 | + read_lock(&vdisk_serial_rwlock); |
43825 | + pos = sprintf(buf, "%s\n%s", virt_dev->t10_dev_id, | 43836 | + pos = sprintf(buf, "%s\n%s", virt_dev->t10_dev_id, |
43826 | + virt_dev->t10_dev_id_set ? SCST_SYSFS_KEY_MARK "\n" : ""); | 43837 | + virt_dev->t10_dev_id_set ? SCST_SYSFS_KEY_MARK "\n" : ""); |
43827 | + read_unlock_bh(&vdisk_t10_dev_id_rwlock); | 43838 | + read_unlock(&vdisk_serial_rwlock); |
43828 | + | 43839 | + |
43829 | + TRACE_EXIT_RES(pos); | 43840 | + TRACE_EXIT_RES(pos); |
43830 | + return pos; | 43841 | + return pos; |
43831 | +} | 43842 | +} |
43832 | + | 43843 | + |
43844 | +static ssize_t vdev_sysfs_usn_store(struct kobject *kobj, | ||
43845 | + struct kobj_attribute *attr, const char *buf, size_t count) | ||
43846 | +{ | ||
43847 | + int res, i; | ||
43848 | + struct scst_device *dev; | ||
43849 | + struct scst_vdisk_dev *virt_dev; | ||
43850 | + | ||
43851 | + TRACE_ENTRY(); | ||
43852 | + | ||
43853 | + dev = container_of(kobj, struct scst_device, dev_kobj); | ||
43854 | + virt_dev = dev->dh_priv; | ||
43855 | + | ||
43856 | + write_lock(&vdisk_serial_rwlock); | ||
43857 | + | ||
43858 | + if ((count > sizeof(virt_dev->usn)) || | ||
43859 | + ((count == sizeof(virt_dev->usn)) && | ||
43860 | + (buf[count-1] != '\n'))) { | ||
43861 | + PRINT_ERROR("USN is too long (max %zd " | ||
43862 | + "characters)", sizeof(virt_dev->usn)-1); | ||
43863 | + res = -EINVAL; | ||
43864 | + goto out_unlock; | ||
43865 | + } | ||
43866 | + | ||
43867 | + memset(virt_dev->usn, 0, sizeof(virt_dev->usn)); | ||
43868 | + memcpy(virt_dev->usn, buf, count); | ||
43869 | + | ||
43870 | + i = 0; | ||
43871 | + while (i < sizeof(virt_dev->usn)) { | ||
43872 | + if (virt_dev->usn[i] == '\n') { | ||
43873 | + virt_dev->usn[i] = '\0'; | ||
43874 | + break; | ||
43875 | + } | ||
43876 | + i++; | ||
43877 | + } | ||
43878 | + | ||
43879 | + virt_dev->usn_set = 1; | ||
43880 | + | ||
43881 | + res = count; | ||
43882 | + | ||
43883 | + PRINT_INFO("USN for device %s changed to %s", virt_dev->name, | ||
43884 | + virt_dev->usn); | ||
43885 | + | ||
43886 | +out_unlock: | ||
43887 | + write_unlock(&vdisk_serial_rwlock); | ||
43888 | + | ||
43889 | + TRACE_EXIT_RES(res); | ||
43890 | + return res; | ||
43891 | +} | ||
43892 | + | ||
43833 | +static ssize_t vdev_sysfs_usn_show(struct kobject *kobj, | 43893 | +static ssize_t vdev_sysfs_usn_show(struct kobject *kobj, |
43834 | + struct kobj_attribute *attr, char *buf) | 43894 | + struct kobj_attribute *attr, char *buf) |
43835 | +{ | 43895 | +{ |
@@ -43842,7 +43902,10 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
43842 | + dev = container_of(kobj, struct scst_device, dev_kobj); | 43902 | + dev = container_of(kobj, struct scst_device, dev_kobj); |
43843 | + virt_dev = (struct scst_vdisk_dev *)dev->dh_priv; | 43903 | + virt_dev = (struct scst_vdisk_dev *)dev->dh_priv; |
43844 | + | 43904 | + |
43845 | + pos = sprintf(buf, "%s\n", virt_dev->usn); | 43905 | + read_lock(&vdisk_serial_rwlock); |
43906 | + pos = sprintf(buf, "%s\n%s", virt_dev->usn, | ||
43907 | + virt_dev->usn_set ? SCST_SYSFS_KEY_MARK "\n" : ""); | ||
43908 | + read_unlock(&vdisk_serial_rwlock); | ||
43846 | + | 43909 | + |
43847 | + TRACE_EXIT_RES(pos); | 43910 | + TRACE_EXIT_RES(pos); |
43848 | + return pos; | 43911 | + return pos; |
@@ -43972,9 +44035,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_vdisk.c linux-2.6.35 | |||
43972 | +MODULE_DESCRIPTION("SCSI disk (type 0) and CDROM (type 5) dev handler for " | 44035 | +MODULE_DESCRIPTION("SCSI disk (type 0) and CDROM (type 5) dev handler for " |
43973 | + "SCST using files on file systems or block devices"); | 44036 | + "SCST using files on file systems or block devices"); |
43974 | +MODULE_VERSION(SCST_VERSION_STRING); | 44037 | +MODULE_VERSION(SCST_VERSION_STRING); |
43975 | diff -uprN orig/linux-2.6.35/Documentation/scst/README.scst linux-2.6.35/Documentation/scst/README.scst | 44038 | diff -uprN orig/linux-2.6.36/Documentation/scst/README.scst linux-2.6.36/Documentation/scst/README.scst |
43976 | --- orig/linux-2.6.35/Documentation/scst/README.scst | 44039 | --- orig/linux-2.6.36/Documentation/scst/README.scst |
43977 | +++ linux-2.6.35/Documentation/scst/README.scst | 44040 | +++ linux-2.6.36/Documentation/scst/README.scst |
43978 | @@ -0,0 +1,1445 @@ | 44041 | @@ -0,0 +1,1445 @@ |
43979 | +Generic SCSI target mid-level for Linux (SCST) | 44042 | +Generic SCSI target mid-level for Linux (SCST) |
43980 | +============================================== | 44043 | +============================================== |
@@ -45421,9 +45484,9 @@ diff -uprN orig/linux-2.6.35/Documentation/scst/README.scst linux-2.6.35/Documen | |||
45421 | + initial SCST sysfs tree implementation | 45484 | + initial SCST sysfs tree implementation |
45422 | + | 45485 | + |
45423 | +Vladislav Bolkhovitin <vst@vlnb.net>, http://scst.sourceforge.net | 45486 | +Vladislav Bolkhovitin <vst@vlnb.net>, http://scst.sourceforge.net |
45424 | diff -uprN orig/linux-2.6.35/Documentation/scst/SysfsRules linux-2.6.35/Documentation/scst/SysfsRules | 45487 | diff -uprN orig/linux-2.6.36/Documentation/scst/SysfsRules linux-2.6.36/Documentation/scst/SysfsRules |
45425 | --- orig/linux-2.6.35/Documentation/scst/SysfsRules | 45488 | --- orig/linux-2.6.36/Documentation/scst/SysfsRules |
45426 | +++ linux-2.6.35/Documentation/scst/SysfsRules | 45489 | +++ linux-2.6.36/Documentation/scst/SysfsRules |
45427 | @@ -0,0 +1,933 @@ | 45490 | @@ -0,0 +1,933 @@ |
45428 | + SCST SYSFS interface rules | 45491 | + SCST SYSFS interface rules |
45429 | + ========================== | 45492 | + ========================== |
@@ -46358,9 +46421,9 @@ diff -uprN orig/linux-2.6.35/Documentation/scst/SysfsRules linux-2.6.35/Document | |||
46358 | + | 46421 | + |
46359 | +3.5. If this target driver should be enabled, enable it. | 46422 | +3.5. If this target driver should be enabled, enable it. |
46360 | + | 46423 | + |
46361 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/Makefile linux-2.6.35/drivers/scst/dev_handlers/Makefile | 46424 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/Makefile linux-2.6.36/drivers/scst/dev_handlers/Makefile |
46362 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/Makefile | 46425 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/Makefile |
46363 | +++ linux-2.6.35/drivers/scst/dev_handlers/Makefile | 46426 | +++ linux-2.6.36/drivers/scst/dev_handlers/Makefile |
46364 | @@ -0,0 +1,14 @@ | 46427 | @@ -0,0 +1,14 @@ |
46365 | +ccflags-y += -Wno-unused-parameter | 46428 | +ccflags-y += -Wno-unused-parameter |
46366 | + | 46429 | + |
@@ -46376,9 +46439,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/Makefile linux-2.6.35/dri | |||
46376 | +obj-$(CONFIG_SCST_PROCESSOR) += scst_processor.o | 46439 | +obj-$(CONFIG_SCST_PROCESSOR) += scst_processor.o |
46377 | +obj-$(CONFIG_SCST_VDISK) += scst_vdisk.o | 46440 | +obj-$(CONFIG_SCST_VDISK) += scst_vdisk.o |
46378 | +obj-$(CONFIG_SCST_USER) += scst_user.o | 46441 | +obj-$(CONFIG_SCST_USER) += scst_user.o |
46379 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_cdrom.c linux-2.6.35/drivers/scst/dev_handlers/scst_cdrom.c | 46442 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/scst_cdrom.c linux-2.6.36/drivers/scst/dev_handlers/scst_cdrom.c |
46380 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/scst_cdrom.c | 46443 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/scst_cdrom.c |
46381 | +++ linux-2.6.35/drivers/scst/dev_handlers/scst_cdrom.c | 46444 | +++ linux-2.6.36/drivers/scst/dev_handlers/scst_cdrom.c |
46382 | @@ -0,0 +1,301 @@ | 46445 | @@ -0,0 +1,301 @@ |
46383 | +/* | 46446 | +/* |
46384 | + * scst_cdrom.c | 46447 | + * scst_cdrom.c |
@@ -46681,9 +46744,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_cdrom.c linux-2.6.35 | |||
46681 | +MODULE_AUTHOR("Vladislav Bolkhovitin & Leonid Stoljar"); | 46744 | +MODULE_AUTHOR("Vladislav Bolkhovitin & Leonid Stoljar"); |
46682 | +MODULE_DESCRIPTION("SCSI CDROM (type 5) dev handler for SCST"); | 46745 | +MODULE_DESCRIPTION("SCSI CDROM (type 5) dev handler for SCST"); |
46683 | +MODULE_VERSION(SCST_VERSION_STRING); | 46746 | +MODULE_VERSION(SCST_VERSION_STRING); |
46684 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_changer.c linux-2.6.35/drivers/scst/dev_handlers/scst_changer.c | 46747 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/scst_changer.c linux-2.6.36/drivers/scst/dev_handlers/scst_changer.c |
46685 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/scst_changer.c | 46748 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/scst_changer.c |
46686 | +++ linux-2.6.35/drivers/scst/dev_handlers/scst_changer.c | 46749 | +++ linux-2.6.36/drivers/scst/dev_handlers/scst_changer.c |
46687 | @@ -0,0 +1,222 @@ | 46750 | @@ -0,0 +1,222 @@ |
46688 | +/* | 46751 | +/* |
46689 | + * scst_changer.c | 46752 | + * scst_changer.c |
@@ -46907,9 +46970,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_changer.c linux-2.6. | |||
46907 | +MODULE_LICENSE("GPL"); | 46970 | +MODULE_LICENSE("GPL"); |
46908 | +MODULE_DESCRIPTION("SCSI medium changer (type 8) dev handler for SCST"); | 46971 | +MODULE_DESCRIPTION("SCSI medium changer (type 8) dev handler for SCST"); |
46909 | +MODULE_VERSION(SCST_VERSION_STRING); | 46972 | +MODULE_VERSION(SCST_VERSION_STRING); |
46910 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_dev_handler.h linux-2.6.35/drivers/scst/dev_handlers/scst_dev_handler.h | 46973 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/scst_dev_handler.h linux-2.6.36/drivers/scst/dev_handlers/scst_dev_handler.h |
46911 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/scst_dev_handler.h | 46974 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/scst_dev_handler.h |
46912 | +++ linux-2.6.35/drivers/scst/dev_handlers/scst_dev_handler.h | 46975 | +++ linux-2.6.36/drivers/scst/dev_handlers/scst_dev_handler.h |
46913 | @@ -0,0 +1,27 @@ | 46976 | @@ -0,0 +1,27 @@ |
46914 | +#ifndef __SCST_DEV_HANDLER_H | 46977 | +#ifndef __SCST_DEV_HANDLER_H |
46915 | +#define __SCST_DEV_HANDLER_H | 46978 | +#define __SCST_DEV_HANDLER_H |
@@ -46938,9 +47001,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_dev_handler.h linux- | |||
46938 | +#endif /* defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) */ | 47001 | +#endif /* defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) */ |
46939 | + | 47002 | + |
46940 | +#endif /* __SCST_DEV_HANDLER_H */ | 47003 | +#endif /* __SCST_DEV_HANDLER_H */ |
46941 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_disk.c linux-2.6.35/drivers/scst/dev_handlers/scst_disk.c | 47004 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/scst_disk.c linux-2.6.36/drivers/scst/dev_handlers/scst_disk.c |
46942 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/scst_disk.c | 47005 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/scst_disk.c |
46943 | +++ linux-2.6.35/drivers/scst/dev_handlers/scst_disk.c | 47006 | +++ linux-2.6.36/drivers/scst/dev_handlers/scst_disk.c |
46944 | @@ -0,0 +1,379 @@ | 47007 | @@ -0,0 +1,379 @@ |
46945 | +/* | 47008 | +/* |
46946 | + * scst_disk.c | 47009 | + * scst_disk.c |
@@ -47321,9 +47384,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_disk.c linux-2.6.35/ | |||
47321 | +MODULE_LICENSE("GPL"); | 47384 | +MODULE_LICENSE("GPL"); |
47322 | +MODULE_DESCRIPTION("SCSI disk (type 0) dev handler for SCST"); | 47385 | +MODULE_DESCRIPTION("SCSI disk (type 0) dev handler for SCST"); |
47323 | +MODULE_VERSION(SCST_VERSION_STRING); | 47386 | +MODULE_VERSION(SCST_VERSION_STRING); |
47324 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_modisk.c linux-2.6.35/drivers/scst/dev_handlers/scst_modisk.c | 47387 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/scst_modisk.c linux-2.6.36/drivers/scst/dev_handlers/scst_modisk.c |
47325 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/scst_modisk.c | 47388 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/scst_modisk.c |
47326 | +++ linux-2.6.35/drivers/scst/dev_handlers/scst_modisk.c | 47389 | +++ linux-2.6.36/drivers/scst/dev_handlers/scst_modisk.c |
47327 | @@ -0,0 +1,398 @@ | 47390 | @@ -0,0 +1,398 @@ |
47328 | +/* | 47391 | +/* |
47329 | + * scst_modisk.c | 47392 | + * scst_modisk.c |
@@ -47723,9 +47786,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_modisk.c linux-2.6.3 | |||
47723 | +MODULE_LICENSE("GPL"); | 47786 | +MODULE_LICENSE("GPL"); |
47724 | +MODULE_DESCRIPTION("SCSI MO disk (type 7) dev handler for SCST"); | 47787 | +MODULE_DESCRIPTION("SCSI MO disk (type 7) dev handler for SCST"); |
47725 | +MODULE_VERSION(SCST_VERSION_STRING); | 47788 | +MODULE_VERSION(SCST_VERSION_STRING); |
47726 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_processor.c linux-2.6.35/drivers/scst/dev_handlers/scst_processor.c | 47789 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/scst_processor.c linux-2.6.36/drivers/scst/dev_handlers/scst_processor.c |
47727 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/scst_processor.c | 47790 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/scst_processor.c |
47728 | +++ linux-2.6.35/drivers/scst/dev_handlers/scst_processor.c | 47791 | +++ linux-2.6.36/drivers/scst/dev_handlers/scst_processor.c |
47729 | @@ -0,0 +1,222 @@ | 47792 | @@ -0,0 +1,222 @@ |
47730 | +/* | 47793 | +/* |
47731 | + * scst_processor.c | 47794 | + * scst_processor.c |
@@ -47949,9 +48012,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_processor.c linux-2. | |||
47949 | +MODULE_LICENSE("GPL"); | 48012 | +MODULE_LICENSE("GPL"); |
47950 | +MODULE_DESCRIPTION("SCSI medium processor (type 3) dev handler for SCST"); | 48013 | +MODULE_DESCRIPTION("SCSI medium processor (type 3) dev handler for SCST"); |
47951 | +MODULE_VERSION(SCST_VERSION_STRING); | 48014 | +MODULE_VERSION(SCST_VERSION_STRING); |
47952 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_raid.c linux-2.6.35/drivers/scst/dev_handlers/scst_raid.c | 48015 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/scst_raid.c linux-2.6.36/drivers/scst/dev_handlers/scst_raid.c |
47953 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/scst_raid.c | 48016 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/scst_raid.c |
47954 | +++ linux-2.6.35/drivers/scst/dev_handlers/scst_raid.c | 48017 | +++ linux-2.6.36/drivers/scst/dev_handlers/scst_raid.c |
47955 | @@ -0,0 +1,223 @@ | 48018 | @@ -0,0 +1,223 @@ |
47956 | +/* | 48019 | +/* |
47957 | + * scst_raid.c | 48020 | + * scst_raid.c |
@@ -48176,9 +48239,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_raid.c linux-2.6.35/ | |||
48176 | +MODULE_LICENSE("GPL"); | 48239 | +MODULE_LICENSE("GPL"); |
48177 | +MODULE_DESCRIPTION("SCSI raid(controller) (type 0xC) dev handler for SCST"); | 48240 | +MODULE_DESCRIPTION("SCSI raid(controller) (type 0xC) dev handler for SCST"); |
48178 | +MODULE_VERSION(SCST_VERSION_STRING); | 48241 | +MODULE_VERSION(SCST_VERSION_STRING); |
48179 | diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_tape.c linux-2.6.35/drivers/scst/dev_handlers/scst_tape.c | 48242 | diff -uprN orig/linux-2.6.36/drivers/scst/dev_handlers/scst_tape.c linux-2.6.36/drivers/scst/dev_handlers/scst_tape.c |
48180 | --- orig/linux-2.6.35/drivers/scst/dev_handlers/scst_tape.c | 48243 | --- orig/linux-2.6.36/drivers/scst/dev_handlers/scst_tape.c |
48181 | +++ linux-2.6.35/drivers/scst/dev_handlers/scst_tape.c | 48244 | +++ linux-2.6.36/drivers/scst/dev_handlers/scst_tape.c |
48182 | @@ -0,0 +1,431 @@ | 48245 | @@ -0,0 +1,431 @@ |
48183 | +/* | 48246 | +/* |
48184 | + * scst_tape.c | 48247 | + * scst_tape.c |
@@ -48611,796 +48674,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/dev_handlers/scst_tape.c linux-2.6.35/ | |||
48611 | +MODULE_LICENSE("GPL"); | 48674 | +MODULE_LICENSE("GPL"); |
48612 | +MODULE_DESCRIPTION("SCSI tape (type 1) dev handler for SCST"); | 48675 | +MODULE_DESCRIPTION("SCSI tape (type 1) dev handler for SCST"); |
48613 | +MODULE_VERSION(SCST_VERSION_STRING); | 48676 | +MODULE_VERSION(SCST_VERSION_STRING); |
48614 | libfc: add hook for FC-4 provider registration | 48677 | diff -uprN orig/linux-2.6.36/drivers/scst/fcst/Makefile linux-2.6.36/drivers/scst/fcst/Makefile |
48615 | 48678 | --- orig/linux-2.6.36/drivers/scst/fcst/Makefile | |
48616 | Allow FC-4 provider modules to hook into libfc, mostly for targets. | 48679 | +++ linux-2.6.36/drivers/scst/fcst/Makefile |
48617 | This should allow any FC-4 module to handle PRLI requests and maintain | ||
48618 | process-association states. | ||
48619 | |||
48620 | Each provider registers its ops with libfc and then will be called for | ||
48621 | any incoming PRLI for that FC-4 type on any instance. The provider | ||
48622 | can decide whether to handle that particular instance using any method | ||
48623 | it likes, such as ACLs or other configuration information. | ||
48624 | |||
48625 | A count is kept of the number of successful PRLIs from the remote port. | ||
48626 | Providers are called back with an implicit PRLO when the remote port | ||
48627 | is about to be deleted or has been reset. | ||
48628 | |||
48629 | fc_lport_recv_req() now sends incoming FC-4 requests to FC-4 providers, | ||
48630 | and there is a built-in provider always registered for handling | ||
48631 | incoming ELS requests. | ||
48632 | |||
48633 | The call to provider recv() routines uses rcu_read_lock() | ||
48634 | so that providers aren't removed during the call. That lock is very | ||
48635 | cheap and shouldn't affect any performance on ELS requests. | ||
48636 | Providers can rely on the RCU lock to protect a session lookup as well. | ||
48637 | |||
48638 | Signed-off-by: Joe Eykholt <jeykholt@cisco.com> | ||
48639 | |||
48640 | --- | ||
48641 | drivers/scsi/libfc/fc_libfc.c | 60 ++++++++++++++++++ | ||
48642 | drivers/scsi/libfc/fc_libfc.h | 11 +++ | ||
48643 | drivers/scsi/libfc/fc_lport.c | 63 ++++++++++++++++--- | ||
48644 | drivers/scsi/libfc/fc_rport.c | 133 +++++++++++++++++++++++++++++++++-------- | ||
48645 | include/scsi/libfc.h | 26 ++++++++ | ||
48646 | 5 files changed, 255 insertions(+), 38 deletions(-) | ||
48647 | |||
48648 | |||
48649 | --- | ||
48650 | diff --git a/drivers/scsi/libfc/fc_libfc.c b/drivers/scsi/libfc/fc_libfc.c | ||
48651 | index 39f4b6a..ce0de44 100644 | ||
48652 | --- a/drivers/scsi/libfc/fc_libfc.c | ||
48653 | +++ b/drivers/scsi/libfc/fc_libfc.c | ||
48654 | @@ -34,6 +34,23 @@ unsigned int fc_debug_logging; | ||
48655 | module_param_named(debug_logging, fc_debug_logging, int, S_IRUGO|S_IWUSR); | ||
48656 | MODULE_PARM_DESC(debug_logging, "a bit mask of logging levels"); | ||
48657 | |||
48658 | +DEFINE_MUTEX(fc_prov_mutex); | ||
48659 | + | ||
48660 | +/* | ||
48661 | + * Providers which primarily send requests and PRLIs. | ||
48662 | + */ | ||
48663 | +struct fc4_prov *fc_active_prov[FC_FC4_PROV_SIZE] = { | ||
48664 | + [0] = &fc_rport_t0_prov, | ||
48665 | + [FC_TYPE_FCP] = &fc_rport_fcp_init, | ||
48666 | +}; | ||
48667 | + | ||
48668 | +/* | ||
48669 | + * Providers which receive requests. | ||
48670 | + */ | ||
48671 | +struct fc4_prov *fc_passive_prov[FC_FC4_PROV_SIZE] = { | ||
48672 | + [FC_TYPE_ELS] = &fc_lport_els_prov, | ||
48673 | +}; | ||
48674 | + | ||
48675 | /** | ||
48676 | * libfc_init() - Initialize libfc.ko | ||
48677 | */ | ||
48678 | @@ -132,3 +149,46 @@ u32 fc_copy_buffer_to_sglist(void *buf, size_t len, | ||
48679 | } | ||
48680 | return copy_len; | ||
48681 | } | ||
48682 | + | ||
48683 | +/** | ||
48684 | + * fc_fc4_register_provider() - register FC-4 upper-level provider. | ||
48685 | + * @type: FC-4 type, such as FC_TYPE_FCP | ||
48686 | + * @prov: structure describing provider including ops vector. | ||
48687 | + * | ||
48688 | + * Returns 0 on success, negative error otherwise. | ||
48689 | + */ | ||
48690 | +int fc_fc4_register_provider(enum fc_fh_type type, struct fc4_prov *prov) | ||
48691 | +{ | ||
48692 | + struct fc4_prov **prov_entry; | ||
48693 | + int ret = 0; | ||
48694 | + | ||
48695 | + if (type >= FC_FC4_PROV_SIZE) | ||
48696 | + return -EINVAL; | ||
48697 | + mutex_lock(&fc_prov_mutex); | ||
48698 | + prov_entry = (prov->recv ? fc_passive_prov : fc_active_prov) + type; | ||
48699 | + if (*prov_entry) | ||
48700 | + ret = -EBUSY; | ||
48701 | + else | ||
48702 | + *prov_entry = prov; | ||
48703 | + mutex_unlock(&fc_prov_mutex); | ||
48704 | + return ret; | ||
48705 | +} | ||
48706 | +EXPORT_SYMBOL(fc_fc4_register_provider); | ||
48707 | + | ||
48708 | +/** | ||
48709 | + * fc_fc4_deregister_provider() - deregister FC-4 upper-level provider. | ||
48710 | + * @type: FC-4 type, such as FC_TYPE_FCP | ||
48711 | + * @prov: structure describing provider including ops vector. | ||
48712 | + */ | ||
48713 | +void fc_fc4_deregister_provider(enum fc_fh_type type, struct fc4_prov *prov) | ||
48714 | +{ | ||
48715 | + BUG_ON(type >= FC_FC4_PROV_SIZE); | ||
48716 | + mutex_lock(&fc_prov_mutex); | ||
48717 | + if (prov->recv) | ||
48718 | + rcu_assign_pointer(fc_passive_prov[type], NULL); | ||
48719 | + else | ||
48720 | + rcu_assign_pointer(fc_active_prov[type], NULL); | ||
48721 | + mutex_unlock(&fc_prov_mutex); | ||
48722 | + synchronize_rcu(); | ||
48723 | +} | ||
48724 | +EXPORT_SYMBOL(fc_fc4_deregister_provider); | ||
48725 | diff --git a/drivers/scsi/libfc/fc_libfc.h b/drivers/scsi/libfc/fc_libfc.h | ||
48726 | index f5c0ca4..2323c80 100644 | ||
48727 | --- a/drivers/scsi/libfc/fc_libfc.h | ||
48728 | +++ b/drivers/scsi/libfc/fc_libfc.h | ||
48729 | @@ -82,6 +82,17 @@ extern unsigned int fc_debug_logging; | ||
48730 | (lport)->host->host_no, ##args)) | ||
48731 | |||
48732 | /* | ||
48733 | + * FC-4 Providers. | ||
48734 | + */ | ||
48735 | +extern struct fc4_prov *fc_active_prov[]; /* providers without recv */ | ||
48736 | +extern struct fc4_prov *fc_passive_prov[]; /* providers with recv */ | ||
48737 | +extern struct mutex fc_prov_mutex; /* lock over table changes */ | ||
48738 | + | ||
48739 | +extern struct fc4_prov fc_rport_t0_prov; /* type 0 provider */ | ||
48740 | +extern struct fc4_prov fc_lport_els_prov; /* ELS provider */ | ||
48741 | +extern struct fc4_prov fc_rport_fcp_init; /* FCP initiator provider */ | ||
48742 | + | ||
48743 | +/* | ||
48744 | * Set up direct-data placement for this I/O request | ||
48745 | */ | ||
48746 | void fc_fcp_ddp_setup(struct fc_fcp_pkt *fsp, u16 xid); | ||
48747 | diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c | ||
48748 | index 79c9e3c..b05329c 100644 | ||
48749 | --- a/drivers/scsi/libfc/fc_lport.c | ||
48750 | +++ b/drivers/scsi/libfc/fc_lport.c | ||
48751 | @@ -844,7 +844,7 @@ out: | ||
48752 | } | ||
48753 | |||
48754 | /** | ||
48755 | - * fc_lport_recv_req() - The generic lport request handler | ||
48756 | + * fc_lport_recv_els_req() - The generic lport ELS request handler | ||
48757 | * @lport: The local port that received the request | ||
48758 | * @sp: The sequence the request is on | ||
48759 | * @fp: The request frame | ||
48760 | @@ -855,8 +855,8 @@ out: | ||
48761 | * Locking Note: This function should not be called with the lport | ||
48762 | * lock held becuase it will grab the lock. | ||
48763 | */ | ||
48764 | -static void fc_lport_recv_req(struct fc_lport *lport, struct fc_seq *sp, | ||
48765 | - struct fc_frame *fp) | ||
48766 | +static void fc_lport_recv_els_req(struct fc_lport *lport, struct fc_seq *sp, | ||
48767 | + struct fc_frame *fp) | ||
48768 | { | ||
48769 | struct fc_frame_header *fh = fc_frame_header_get(fp); | ||
48770 | void (*recv) (struct fc_seq *, struct fc_frame *, struct fc_lport *); | ||
48771 | @@ -870,8 +870,7 @@ static void fc_lport_recv_req(struct fc_lport *lport, struct fc_seq *sp, | ||
48772 | */ | ||
48773 | if (!lport->link_up) | ||
48774 | fc_frame_free(fp); | ||
48775 | - else if (fh->fh_type == FC_TYPE_ELS && | ||
48776 | - fh->fh_r_ctl == FC_RCTL_ELS_REQ) { | ||
48777 | + else { | ||
48778 | /* | ||
48779 | * Check opcode. | ||
48780 | */ | ||
48781 | @@ -900,17 +899,59 @@ static void fc_lport_recv_req(struct fc_lport *lport, struct fc_seq *sp, | ||
48782 | } | ||
48783 | |||
48784 | recv(sp, fp, lport); | ||
48785 | - } else { | ||
48786 | - FC_LPORT_DBG(lport, "dropping invalid frame (eof %x)\n", | ||
48787 | - fr_eof(fp)); | ||
48788 | - fc_frame_free(fp); | ||
48789 | } | ||
48790 | mutex_unlock(&lport->lp_mutex); | ||
48791 | + lport->tt.exch_done(sp); | ||
48792 | +} | ||
48793 | + | ||
48794 | +static int fc_lport_els_prli(struct fc_rport_priv *rdata, u32 spp_len, | ||
48795 | + const struct fc_els_spp *spp_in, | ||
48796 | + struct fc_els_spp *spp_out) | ||
48797 | +{ | ||
48798 | + return FC_SPP_RESP_INVL; | ||
48799 | +} | ||
48800 | + | ||
48801 | +struct fc4_prov fc_lport_els_prov = { | ||
48802 | + .prli = fc_lport_els_prli, | ||
48803 | + .recv = fc_lport_recv_els_req, | ||
48804 | +}; | ||
48805 | + | ||
48806 | +/** | ||
48807 | + * fc_lport_recv_req() - The generic lport request handler | ||
48808 | + * @lport: The lport that received the request | ||
48809 | + * @sp: The sequence the request is on | ||
48810 | + * @fp: The frame the request is in | ||
48811 | + * | ||
48812 | + * Locking Note: This function should not be called with the lport | ||
48813 | + * lock held becuase it may grab the lock. | ||
48814 | + */ | ||
48815 | +static void fc_lport_recv_req(struct fc_lport *lport, struct fc_seq *sp, | ||
48816 | + struct fc_frame *fp) | ||
48817 | +{ | ||
48818 | + struct fc_frame_header *fh = fc_frame_header_get(fp); | ||
48819 | + struct fc4_prov *prov; | ||
48820 | |||
48821 | /* | ||
48822 | - * The common exch_done for all request may not be good | ||
48823 | - * if any request requires longer hold on exhange. XXX | ||
48824 | + * Use RCU read lock and module_lock to be sure module doesn't | ||
48825 | + * deregister and get unloaded while we're calling it. | ||
48826 | + * try_module_get() is inlined and accepts a NULL parameter. | ||
48827 | + * Only ELSes and FCP target ops should come through here. | ||
48828 | + * The locking is unfortunate, and a better scheme is being sought. | ||
48829 | */ | ||
48830 | + rcu_read_lock(); | ||
48831 | + if (fh->fh_type >= FC_FC4_PROV_SIZE) | ||
48832 | + goto drop; | ||
48833 | + prov = rcu_dereference(fc_passive_prov[fh->fh_type]); | ||
48834 | + if (!prov || !try_module_get(prov->module)) | ||
48835 | + goto drop; | ||
48836 | + rcu_read_unlock(); | ||
48837 | + prov->recv(lport, sp, fp); | ||
48838 | + module_put(prov->module); | ||
48839 | + return; | ||
48840 | +drop: | ||
48841 | + rcu_read_unlock(); | ||
48842 | + FC_LPORT_DBG(lport, "dropping unexpected frame type %x\n", fh->fh_type); | ||
48843 | + fc_frame_free(fp); | ||
48844 | lport->tt.exch_done(sp); | ||
48845 | } | ||
48846 | |||
48847 | diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c | ||
48848 | index 39e440f..3ec4aa5 100644 | ||
48849 | --- a/drivers/scsi/libfc/fc_rport.c | ||
48850 | +++ b/drivers/scsi/libfc/fc_rport.c | ||
48851 | @@ -246,6 +246,8 @@ static void fc_rport_work(struct work_struct *work) | ||
48852 | struct fc_rport_operations *rport_ops; | ||
48853 | struct fc_rport_identifiers ids; | ||
48854 | struct fc_rport *rport; | ||
48855 | + struct fc4_prov *prov; | ||
48856 | + u8 type; | ||
48857 | int restart = 0; | ||
48858 | |||
48859 | mutex_lock(&rdata->rp_mutex); | ||
48860 | @@ -295,6 +297,15 @@ static void fc_rport_work(struct work_struct *work) | ||
48861 | case RPORT_EV_FAILED: | ||
48862 | case RPORT_EV_LOGO: | ||
48863 | case RPORT_EV_STOP: | ||
48864 | + if (rdata->prli_count) { | ||
48865 | + mutex_lock(&fc_prov_mutex); | ||
48866 | + for (type = 1; type < FC_FC4_PROV_SIZE; type++) { | ||
48867 | + prov = fc_passive_prov[type]; | ||
48868 | + if (prov && prov->prlo) | ||
48869 | + prov->prlo(rdata); | ||
48870 | + } | ||
48871 | + mutex_unlock(&fc_prov_mutex); | ||
48872 | + } | ||
48873 | port_id = rdata->ids.port_id; | ||
48874 | mutex_unlock(&rdata->rp_mutex); | ||
48875 | |||
48876 | @@ -1434,6 +1445,7 @@ static void fc_rport_recv_prli_req(struct fc_rport_priv *rdata, | ||
48877 | struct fc_exch *ep; | ||
48878 | struct fc_frame *fp; | ||
48879 | struct fc_frame_header *fh; | ||
48880 | + struct fc4_prov *prov; | ||
48881 | struct { | ||
48882 | struct fc_els_prli prli; | ||
48883 | struct fc_els_spp spp; | ||
48884 | @@ -1443,10 +1455,9 @@ static void fc_rport_recv_prli_req(struct fc_rport_priv *rdata, | ||
48885 | unsigned int len; | ||
48886 | unsigned int plen; | ||
48887 | enum fc_els_spp_resp resp; | ||
48888 | + enum fc_els_spp_resp passive; | ||
48889 | struct fc_seq_els_data rjt_data; | ||
48890 | u32 f_ctl; | ||
48891 | - u32 fcp_parm; | ||
48892 | - u32 roles = FC_RPORT_ROLE_UNKNOWN; | ||
48893 | |||
48894 | rjt_data.fp = NULL; | ||
48895 | fh = fc_frame_header_get(rx_fp); | ||
48896 | @@ -1485,46 +1496,41 @@ static void fc_rport_recv_prli_req(struct fc_rport_priv *rdata, | ||
48897 | pp->prli.prli_len = htons(len); | ||
48898 | len -= sizeof(struct fc_els_prli); | ||
48899 | |||
48900 | - /* reinitialize remote port roles */ | ||
48901 | - rdata->ids.roles = FC_RPORT_ROLE_UNKNOWN; | ||
48902 | - | ||
48903 | /* | ||
48904 | * Go through all the service parameter pages and build | ||
48905 | * response. If plen indicates longer SPP than standard, | ||
48906 | * use that. The entire response has been pre-cleared above. | ||
48907 | */ | ||
48908 | spp = &pp->spp; | ||
48909 | + mutex_lock(&fc_prov_mutex); | ||
48910 | while (len >= plen) { | ||
48911 | spp->spp_type = rspp->spp_type; | ||
48912 | spp->spp_type_ext = rspp->spp_type_ext; | ||
48913 | - spp->spp_flags = rspp->spp_flags & FC_SPP_EST_IMG_PAIR; | ||
48914 | - resp = FC_SPP_RESP_ACK; | ||
48915 | - | ||
48916 | - switch (rspp->spp_type) { | ||
48917 | - case 0: /* common to all FC-4 types */ | ||
48918 | - break; | ||
48919 | - case FC_TYPE_FCP: | ||
48920 | - fcp_parm = ntohl(rspp->spp_params); | ||
48921 | - if (fcp_parm & FCP_SPPF_RETRY) | ||
48922 | - rdata->flags |= FC_RP_FLAGS_RETRY; | ||
48923 | - rdata->supported_classes = FC_COS_CLASS3; | ||
48924 | - if (fcp_parm & FCP_SPPF_INIT_FCN) | ||
48925 | - roles |= FC_RPORT_ROLE_FCP_INITIATOR; | ||
48926 | - if (fcp_parm & FCP_SPPF_TARG_FCN) | ||
48927 | - roles |= FC_RPORT_ROLE_FCP_TARGET; | ||
48928 | - rdata->ids.roles = roles; | ||
48929 | - | ||
48930 | - spp->spp_params = htonl(lport->service_params); | ||
48931 | - break; | ||
48932 | - default: | ||
48933 | - resp = FC_SPP_RESP_INVL; | ||
48934 | - break; | ||
48935 | + resp = 0; | ||
48936 | + | ||
48937 | + if (rspp->spp_type < FC_FC4_PROV_SIZE) { | ||
48938 | + prov = fc_active_prov[rspp->spp_type]; | ||
48939 | + if (prov) | ||
48940 | + resp = prov->prli(rdata, plen, rspp, spp); | ||
48941 | + prov = fc_passive_prov[rspp->spp_type]; | ||
48942 | + if (prov) { | ||
48943 | + passive = prov->prli(rdata, plen, rspp, spp); | ||
48944 | + if (!resp || passive == FC_SPP_RESP_ACK) | ||
48945 | + resp = passive; | ||
48946 | + } | ||
48947 | + } | ||
48948 | + if (!resp) { | ||
48949 | + if (spp->spp_flags & FC_SPP_EST_IMG_PAIR) | ||
48950 | + resp |= FC_SPP_RESP_CONF; | ||
48951 | + else | ||
48952 | + resp |= FC_SPP_RESP_INVL; | ||
48953 | } | ||
48954 | spp->spp_flags |= resp; | ||
48955 | len -= plen; | ||
48956 | rspp = (struct fc_els_spp *)((char *)rspp + plen); | ||
48957 | spp = (struct fc_els_spp *)((char *)spp + plen); | ||
48958 | } | ||
48959 | + mutex_unlock(&fc_prov_mutex); | ||
48960 | |||
48961 | /* | ||
48962 | * Send LS_ACC. If this fails, the originator should retry. | ||
48963 | @@ -1669,6 +1675,79 @@ int fc_rport_init(struct fc_lport *lport) | ||
48964 | EXPORT_SYMBOL(fc_rport_init); | ||
48965 | |||
48966 | /** | ||
48967 | + * fc_rport_fcp_prli() - Handle incoming PRLI for the FCP initiator. | ||
48968 | + * @rdata: remote port private | ||
48969 | + * @spp_len: service parameter page length | ||
48970 | + * @rspp: received service parameter page | ||
48971 | + * @spp: response service parameter page | ||
48972 | + * | ||
48973 | + * Returns the value for the response code to be placed in spp_flags; | ||
48974 | + * Returns 0 if not an initiator. | ||
48975 | + */ | ||
48976 | +static int fc_rport_fcp_prli(struct fc_rport_priv *rdata, u32 spp_len, | ||
48977 | + const struct fc_els_spp *rspp, | ||
48978 | + struct fc_els_spp *spp) | ||
48979 | +{ | ||
48980 | + struct fc_lport *lport = rdata->local_port; | ||
48981 | + u32 fcp_parm; | ||
48982 | + | ||
48983 | + fcp_parm = ntohl(rspp->spp_params); | ||
48984 | + rdata->ids.roles = FC_RPORT_ROLE_UNKNOWN; | ||
48985 | + if (fcp_parm & FCP_SPPF_INIT_FCN) | ||
48986 | + rdata->ids.roles |= FC_RPORT_ROLE_FCP_INITIATOR; | ||
48987 | + if (fcp_parm & FCP_SPPF_TARG_FCN) | ||
48988 | + rdata->ids.roles |= FC_RPORT_ROLE_FCP_TARGET; | ||
48989 | + if (fcp_parm & FCP_SPPF_RETRY) | ||
48990 | + rdata->flags |= FC_RP_FLAGS_RETRY; | ||
48991 | + rdata->supported_classes = FC_COS_CLASS3; | ||
48992 | + | ||
48993 | + if (!(lport->service_params & FC_RPORT_ROLE_FCP_INITIATOR)) | ||
48994 | + return 0; | ||
48995 | + | ||
48996 | + spp->spp_flags |= rspp->spp_flags & FC_SPP_EST_IMG_PAIR; | ||
48997 | + | ||
48998 | + /* | ||
48999 | + * OR in our service parameters with other providers (target), if any. | ||
49000 | + */ | ||
49001 | + fcp_parm = ntohl(spp->spp_params); | ||
49002 | + spp->spp_params = htonl(fcp_parm | lport->service_params); | ||
49003 | + return FC_SPP_RESP_ACK; | ||
49004 | +} | ||
49005 | + | ||
49006 | +/* | ||
49007 | + * FC-4 provider ops for FCP initiator. | ||
49008 | + */ | ||
49009 | +struct fc4_prov fc_rport_fcp_init = { | ||
49010 | + .prli = fc_rport_fcp_prli, | ||
49011 | +}; | ||
49012 | + | ||
49013 | +/** | ||
49014 | + * fc_rport_t0_prli() - Handle incoming PRLI parameters for type 0 | ||
49015 | + * @rdata: remote port private | ||
49016 | + * @spp_len: service parameter page length | ||
49017 | + * @rspp: received service parameter page | ||
49018 | + * @spp: response service parameter page | ||
49019 | + */ | ||
49020 | +static int fc_rport_t0_prli(struct fc_rport_priv *rdata, u32 spp_len, | ||
49021 | + const struct fc_els_spp *rspp, | ||
49022 | + struct fc_els_spp *spp) | ||
49023 | +{ | ||
49024 | + if (rspp->spp_flags & FC_SPP_EST_IMG_PAIR) | ||
49025 | + return FC_SPP_RESP_INVL; | ||
49026 | + return FC_SPP_RESP_ACK; | ||
49027 | +} | ||
49028 | + | ||
49029 | +/* | ||
49030 | + * FC-4 provider ops for type 0 service parameters. | ||
49031 | + * | ||
49032 | + * This handles the special case of type 0 which is always successful | ||
49033 | + * but doesn't do anything otherwise. | ||
49034 | + */ | ||
49035 | +struct fc4_prov fc_rport_t0_prov = { | ||
49036 | + .prli = fc_rport_t0_prli, | ||
49037 | +}; | ||
49038 | + | ||
49039 | +/** | ||
49040 | * fc_setup_rport() - Initialize the rport_event_queue | ||
49041 | */ | ||
49042 | int fc_setup_rport() | ||
49043 | diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h | ||
49044 | index 7495c0b..4ac290f 100644 | ||
49045 | --- a/include/scsi/libfc.h | ||
49046 | +++ b/include/scsi/libfc.h | ||
49047 | @@ -35,6 +35,8 @@ | ||
49048 | |||
49049 | #include <scsi/fc_frame.h> | ||
49050 | |||
49051 | +#define FC_FC4_PROV_SIZE (FC_TYPE_FCP + 1) /* size of tables */ | ||
49052 | + | ||
49053 | /* | ||
49054 | * libfc error codes | ||
49055 | */ | ||
49056 | @@ -195,6 +197,7 @@ struct fc_rport_libfc_priv { | ||
49057 | * @rp_mutex: The mutex that protects the remote port | ||
49058 | * @retry_work: Handle for retries | ||
49059 | * @event_callback: Callback when READY, FAILED or LOGO states complete | ||
49060 | + * @prli_count: Count of open PRLI sessions in providers | ||
49061 | */ | ||
49062 | struct fc_rport_priv { | ||
49063 | struct fc_lport *local_port; | ||
49064 | @@ -216,6 +219,7 @@ struct fc_rport_priv { | ||
49065 | struct list_head peers; | ||
49066 | struct work_struct event_work; | ||
49067 | u32 supported_classes; | ||
49068 | + u16 prli_count; | ||
49069 | }; | ||
49070 | |||
49071 | /** | ||
49072 | @@ -857,6 +861,28 @@ struct fc_lport { | ||
49073 | struct delayed_work retry_work; | ||
49074 | }; | ||
49075 | |||
49076 | +/** | ||
49077 | + * struct fc4_prov - FC-4 provider registration | ||
49078 | + * @prli: Handler for incoming PRLI | ||
49079 | + * @prlo: Handler for session reset | ||
49080 | + * @recv: Handler for incoming request | ||
49081 | + * @module: Pointer to module. May be NULL. | ||
49082 | + */ | ||
49083 | +struct fc4_prov { | ||
49084 | + int (*prli)(struct fc_rport_priv *, u32 spp_len, | ||
49085 | + const struct fc_els_spp *spp_in, | ||
49086 | + struct fc_els_spp *spp_out); | ||
49087 | + void (*prlo)(struct fc_rport_priv *); | ||
49088 | + void (*recv)(struct fc_lport *, struct fc_seq *, struct fc_frame *); | ||
49089 | + struct module *module; | ||
49090 | +}; | ||
49091 | + | ||
49092 | +/* | ||
49093 | + * Register FC-4 provider with libfc. | ||
49094 | + */ | ||
49095 | +int fc_fc4_register_provider(enum fc_fh_type type, struct fc4_prov *); | ||
49096 | +void fc_fc4_deregister_provider(enum fc_fh_type type, struct fc4_prov *); | ||
49097 | + | ||
49098 | /* | ||
49099 | * FC_LPORT HELPER FUNCTIONS | ||
49100 | *****************************/ | ||
49101 | libfc: add method for setting handler for incoming exchange | ||
49102 | |||
49103 | Add a method for setting handler for incoming exchange. | ||
49104 | For multi-sequence exchanges, this allows the target driver | ||
49105 | to add a response handler for handling subsequent sequences, | ||
49106 | and exchange manager resets. | ||
49107 | |||
49108 | The new function is called fc_seq_set_resp(). | ||
49109 | |||
49110 | Signed-off-by: Joe Eykholt <jeykholt@cisco.com> | ||
49111 | |||
49112 | --- | ||
49113 | drivers/scsi/libfc/fc_exch.c | 19 +++++++++++++++++++ | ||
49114 | include/scsi/libfc.h | 11 ++++++++++- | ||
49115 | 2 files changed, 29 insertions(+), 1 deletions(-) | ||
49116 | |||
49117 | |||
49118 | --- | ||
49119 | diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c | ||
49120 | index 104e0fb..1828d1d 100644 | ||
49121 | --- a/drivers/scsi/libfc/fc_exch.c | ||
49122 | +++ b/drivers/scsi/libfc/fc_exch.c | ||
49123 | @@ -545,6 +545,22 @@ static struct fc_seq *fc_seq_start_next(struct fc_seq *sp) | ||
49124 | return sp; | ||
49125 | } | ||
49126 | |||
49127 | +/* | ||
49128 | + * Set the response handler for the exchange associated with a sequence. | ||
49129 | + */ | ||
49130 | +static void fc_seq_set_resp(struct fc_seq *sp, | ||
49131 | + void (*resp)(struct fc_seq *, struct fc_frame *, | ||
49132 | + void *), | ||
49133 | + void *arg) | ||
49134 | +{ | ||
49135 | + struct fc_exch *ep = fc_seq_exch(sp); | ||
49136 | + | ||
49137 | + spin_lock_bh(&ep->ex_lock); | ||
49138 | + ep->resp = resp; | ||
49139 | + ep->arg = arg; | ||
49140 | + spin_unlock_bh(&ep->ex_lock); | ||
49141 | +} | ||
49142 | + | ||
49143 | /** | ||
49144 | * fc_seq_exch_abort() - Abort an exchange and sequence | ||
49145 | * @req_sp: The sequence to be aborted | ||
49146 | @@ -2263,6 +2279,9 @@ int fc_exch_init(struct fc_lport *lport) | ||
49147 | if (!lport->tt.seq_start_next) | ||
49148 | lport->tt.seq_start_next = fc_seq_start_next; | ||
49149 | |||
49150 | + if (!lport->tt.seq_set_resp) | ||
49151 | + lport->tt.seq_set_resp = fc_seq_set_resp; | ||
49152 | + | ||
49153 | if (!lport->tt.exch_seq_send) | ||
49154 | lport->tt.exch_seq_send = fc_exch_seq_send; | ||
49155 | |||
49156 | diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h | ||
49157 | index 4ac290f..64a4756 100644 | ||
49158 | --- a/include/scsi/libfc.h | ||
49159 | +++ b/include/scsi/libfc.h | ||
49160 | @@ -571,6 +571,16 @@ struct libfc_function_template { | ||
49161 | struct fc_seq *(*seq_start_next)(struct fc_seq *); | ||
49162 | |||
49163 | /* | ||
49164 | + * Set a response handler for the exchange of the sequence. | ||
49165 | + * | ||
49166 | + * STATUS: OPTIONAL | ||
49167 | + */ | ||
49168 | + void (*seq_set_resp)(struct fc_seq *sp, | ||
49169 | + void (*resp)(struct fc_seq *, struct fc_frame *, | ||
49170 | + void *), | ||
49171 | + void *arg); | ||
49172 | + | ||
49173 | + /* | ||
49174 | * Reset an exchange manager, completing all sequences and exchanges. | ||
49175 | * If s_id is non-zero, reset only exchanges originating from that FID. | ||
49176 | * If d_id is non-zero, reset only exchanges sending to that FID. | ||
49177 | @@ -1056,7 +1066,6 @@ struct fc_seq *fc_elsct_send(struct fc_lport *, u32 did, | ||
49178 | void fc_lport_flogi_resp(struct fc_seq *, struct fc_frame *, void *); | ||
49179 | void fc_lport_logo_resp(struct fc_seq *, struct fc_frame *, void *); | ||
49180 | |||
49181 | - | ||
49182 | /* | ||
49183 | * EXCHANGE MANAGER LAYER | ||
49184 | *****************************/ | ||
49185 | libfc: add local port hook for provider session lookup | ||
49186 | |||
49187 | The target provider needs a per-instance lookup table | ||
49188 | or other way to lookup sessions quickly without going through | ||
49189 | a linear list or serializing too much. | ||
49190 | |||
49191 | Add a simple void * array indexed by FC-4 type to the fc_lport. | ||
49192 | |||
49193 | Signed-off-by: Joe Eykholt <jeykholt@cisco.com> | ||
49194 | |||
49195 | --- | ||
49196 | include/scsi/libfc.h | 2 ++ | ||
49197 | 1 files changed, 2 insertions(+), 0 deletions(-) | ||
49198 | |||
49199 | |||
49200 | --- | ||
49201 | diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h | ||
49202 | index 64a4756..9d7c8e3 100644 | ||
49203 | --- a/include/scsi/libfc.h | ||
49204 | +++ b/include/scsi/libfc.h | ||
49205 | @@ -816,6 +816,7 @@ struct fc_disc { | ||
49206 | * @lp_mutex: Mutex to protect the local port | ||
49207 | * @list: Handle for list of local ports | ||
49208 | * @retry_work: Handle to local port for delayed retry context | ||
49209 | + * @prov: Pointers available for use by passive FC-4 providers | ||
49210 | */ | ||
49211 | struct fc_lport { | ||
49212 | /* Associations */ | ||
49213 | @@ -869,6 +870,7 @@ struct fc_lport { | ||
49214 | struct mutex lp_mutex; | ||
49215 | struct list_head list; | ||
49216 | struct delayed_work retry_work; | ||
49217 | + void *prov[FC_FC4_PROV_SIZE]; | ||
49218 | }; | ||
49219 | |||
49220 | /** | ||
49221 | libfc: add hook to notify providers of local port changes | ||
49222 | |||
49223 | When an SCST provider is registered, it needs to know what | ||
49224 | local ports are available for configuration as targets. | ||
49225 | |||
49226 | Add a notifier chain that is invoked when any local port | ||
49227 | that is added or deleted. | ||
49228 | |||
49229 | Maintain a global list of local ports and add an | ||
49230 | interator function that calls a given function for | ||
49231 | every existing local port. This is used when first | ||
49232 | loading a provider. | ||
49233 | |||
49234 | Signed-off-by: Joe Eykholt <jeykholt@cisco.com> | ||
49235 | |||
49236 | --- | ||
49237 | drivers/scsi/libfc/fc_libfc.c | 41 +++++++++++++++++++++++++++++++++++++++++ | ||
49238 | drivers/scsi/libfc/fc_libfc.h | 2 ++ | ||
49239 | drivers/scsi/libfc/fc_lport.c | 2 ++ | ||
49240 | include/scsi/libfc.h | 14 +++++++++++++- | ||
49241 | 4 files changed, 58 insertions(+), 1 deletions(-) | ||
49242 | |||
49243 | |||
49244 | --- | ||
49245 | diff --git a/drivers/scsi/libfc/fc_libfc.c b/drivers/scsi/libfc/fc_libfc.c | ||
49246 | index ce0de44..abd108a 100644 | ||
49247 | --- a/drivers/scsi/libfc/fc_libfc.c | ||
49248 | +++ b/drivers/scsi/libfc/fc_libfc.c | ||
49249 | @@ -35,6 +35,10 @@ module_param_named(debug_logging, fc_debug_logging, int, S_IRUGO|S_IWUSR); | ||
49250 | MODULE_PARM_DESC(debug_logging, "a bit mask of logging levels"); | ||
49251 | |||
49252 | DEFINE_MUTEX(fc_prov_mutex); | ||
49253 | +static LIST_HEAD(fc_local_ports); | ||
49254 | +struct blocking_notifier_head fc_lport_notifier_head = | ||
49255 | + BLOCKING_NOTIFIER_INIT(fc_lport_notifier_head); | ||
49256 | +EXPORT_SYMBOL(fc_lport_notifier_head); | ||
49257 | |||
49258 | /* | ||
49259 | * Providers which primarily send requests and PRLIs. | ||
49260 | @@ -150,6 +154,17 @@ u32 fc_copy_buffer_to_sglist(void *buf, size_t len, | ||
49261 | return copy_len; | ||
49262 | } | ||
49263 | |||
49264 | +void fc_lport_iterate(void (*notify)(struct fc_lport *, void *), void *arg) | ||
49265 | +{ | ||
49266 | + struct fc_lport *lport; | ||
49267 | + | ||
49268 | + mutex_lock(&fc_prov_mutex); | ||
49269 | + list_for_each_entry(lport, &fc_local_ports, lport_list) | ||
49270 | + notify(lport, arg); | ||
49271 | + mutex_unlock(&fc_prov_mutex); | ||
49272 | +} | ||
49273 | +EXPORT_SYMBOL(fc_lport_iterate); | ||
49274 | + | ||
49275 | /** | ||
49276 | * fc_fc4_register_provider() - register FC-4 upper-level provider. | ||
49277 | * @type: FC-4 type, such as FC_TYPE_FCP | ||
49278 | @@ -192,3 +207,29 @@ void fc_fc4_deregister_provider(enum fc_fh_type type, struct fc4_prov *prov) | ||
49279 | synchronize_rcu(); | ||
49280 | } | ||
49281 | EXPORT_SYMBOL(fc_fc4_deregister_provider); | ||
49282 | + | ||
49283 | +/** | ||
49284 | + * fc_fc4_add_lport() - add new local port to list and run notifiers. | ||
49285 | + * @lport: The new local port. | ||
49286 | + */ | ||
49287 | +void fc_fc4_add_lport(struct fc_lport *lport) | ||
49288 | +{ | ||
49289 | + mutex_lock(&fc_prov_mutex); | ||
49290 | + list_add_tail(&lport->lport_list, &fc_local_ports); | ||
49291 | + blocking_notifier_call_chain(&fc_lport_notifier_head, | ||
49292 | + FC_LPORT_EV_ADD, lport); | ||
49293 | + mutex_unlock(&fc_prov_mutex); | ||
49294 | +} | ||
49295 | + | ||
49296 | +/** | ||
49297 | + * fc_fc4_del_lport() - remove local port from list and run notifiers. | ||
49298 | + * @lport: The new local port. | ||
49299 | + */ | ||
49300 | +void fc_fc4_del_lport(struct fc_lport *lport) | ||
49301 | +{ | ||
49302 | + mutex_lock(&fc_prov_mutex); | ||
49303 | + list_del(&lport->lport_list); | ||
49304 | + blocking_notifier_call_chain(&fc_lport_notifier_head, | ||
49305 | + FC_LPORT_EV_DEL, lport); | ||
49306 | + mutex_unlock(&fc_prov_mutex); | ||
49307 | +} | ||
49308 | diff --git a/drivers/scsi/libfc/fc_libfc.h b/drivers/scsi/libfc/fc_libfc.h | ||
49309 | index 2323c80..85ce01e 100644 | ||
49310 | --- a/drivers/scsi/libfc/fc_libfc.h | ||
49311 | +++ b/drivers/scsi/libfc/fc_libfc.h | ||
49312 | @@ -111,6 +111,8 @@ void fc_destroy_fcp(void); | ||
49313 | * Internal libfc functions | ||
49314 | */ | ||
49315 | const char *fc_els_resp_type(struct fc_frame *); | ||
49316 | +extern void fc_fc4_add_lport(struct fc_lport *); | ||
49317 | +extern void fc_fc4_del_lport(struct fc_lport *); | ||
49318 | |||
49319 | /* | ||
49320 | * Copies a buffer into an sg list | ||
49321 | diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c | ||
49322 | index b05329c..375a2a7 100644 | ||
49323 | --- a/drivers/scsi/libfc/fc_lport.c | ||
49324 | +++ b/drivers/scsi/libfc/fc_lport.c | ||
49325 | @@ -647,6 +647,7 @@ int fc_lport_destroy(struct fc_lport *lport) | ||
49326 | lport->tt.fcp_abort_io(lport); | ||
49327 | lport->tt.disc_stop_final(lport); | ||
49328 | lport->tt.exch_mgr_reset(lport, 0, 0); | ||
49329 | + fc_fc4_del_lport(lport); | ||
49330 | return 0; | ||
49331 | } | ||
49332 | EXPORT_SYMBOL(fc_lport_destroy); | ||
49333 | @@ -1639,6 +1640,7 @@ int fc_lport_init(struct fc_lport *lport) | ||
49334 | fc_host_supported_speeds(lport->host) |= FC_PORTSPEED_1GBIT; | ||
49335 | if (lport->link_supported_speeds & FC_PORTSPEED_10GBIT) | ||
49336 | fc_host_supported_speeds(lport->host) |= FC_PORTSPEED_10GBIT; | ||
49337 | + fc_fc4_add_lport(lport); | ||
49338 | |||
49339 | return 0; | ||
49340 | } | ||
49341 | diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h | ||
49342 | index 9d7c8e3..2fa3538 100644 | ||
49343 | --- a/include/scsi/libfc.h | ||
49344 | +++ b/include/scsi/libfc.h | ||
49345 | @@ -775,6 +775,15 @@ struct fc_disc { | ||
49346 | enum fc_disc_event); | ||
49347 | }; | ||
49348 | |||
49349 | +/* | ||
49350 | + * Local port notifier and events. | ||
49351 | + */ | ||
49352 | +extern struct blocking_notifier_head fc_lport_notifier_head; | ||
49353 | +enum fc_lport_event { | ||
49354 | + FC_LPORT_EV_ADD, | ||
49355 | + FC_LPORT_EV_DEL, | ||
49356 | +}; | ||
49357 | + | ||
49358 | /** | ||
49359 | * struct fc_lport - Local port | ||
49360 | * @host: The SCSI host associated with a local port | ||
49361 | @@ -814,8 +823,9 @@ struct fc_disc { | ||
49362 | * @lso_max: The maximum large offload send size | ||
49363 | * @fcts: FC-4 type mask | ||
49364 | * @lp_mutex: Mutex to protect the local port | ||
49365 | - * @list: Handle for list of local ports | ||
49366 | + * @list: Linkage on list of vport peers | ||
49367 | * @retry_work: Handle to local port for delayed retry context | ||
49368 | + * @lport_list: Linkage on module-wide list of local ports | ||
49369 | * @prov: Pointers available for use by passive FC-4 providers | ||
49370 | */ | ||
49371 | struct fc_lport { | ||
49372 | @@ -870,6 +880,7 @@ struct fc_lport { | ||
49373 | struct mutex lp_mutex; | ||
49374 | struct list_head list; | ||
49375 | struct delayed_work retry_work; | ||
49376 | + struct list_head lport_list; | ||
49377 | void *prov[FC_FC4_PROV_SIZE]; | ||
49378 | }; | ||
49379 | |||
49380 | @@ -1024,6 +1035,7 @@ int fc_set_mfs(struct fc_lport *, u32 mfs); | ||
49381 | struct fc_lport *libfc_vport_create(struct fc_vport *, int privsize); | ||
49382 | struct fc_lport *fc_vport_id_lookup(struct fc_lport *, u32 port_id); | ||
49383 | int fc_lport_bsg_request(struct fc_bsg_job *); | ||
49384 | +void fc_lport_iterate(void (*func)(struct fc_lport *, void *), void *); | ||
49385 | |||
49386 | /* | ||
49387 | * REMOTE PORT LAYER | ||
49388 | --- a/include/scsi/fc_frame.h 2010-06-13 11:08:26.000000000 +0200 | ||
49389 | +++ b/include/scsi/fc_frame.h 2010-06-13 11:08:53.000000000 +0200 | ||
49390 | @@ -66,8 +66,8 @@ struct fcoe_rcv_info { | ||
49391 | struct fc_fcp_pkt *fr_fsp; /* for the corresponding fcp I/O */ | ||
49392 | u32 fr_crc; | ||
49393 | u16 fr_max_payload; /* max FC payload */ | ||
49394 | - enum fc_sof fr_sof; /* start of frame delimiter */ | ||
49395 | - enum fc_eof fr_eof; /* end of frame delimiter */ | ||
49396 | + u8 fr_sof; /* start of frame delimiter */ | ||
49397 | + u8 fr_eof; /* end of frame delimiter */ | ||
49398 | u8 fr_flags; /* flags - see below */ | ||
49399 | u8 granted_mac[ETH_ALEN]; /* FCoE MAC address */ | ||
49400 | }; | ||
49401 | diff -uprN orig/linux-2.6.35/drivers/scst/fcst/Makefile linux-2.6.35/drivers/scst/fcst/Makefile | ||
49402 | --- orig/linux-2.6.35/drivers/scst/fcst/Makefile | ||
49403 | +++ linux-2.6.35/drivers/scst/fcst/Makefile | ||
49404 | @@ -0,0 +1,7 @@ | 48680 | @@ -0,0 +1,7 @@ |
49405 | +obj-$(CONFIG_FCST) += fcst.o | 48681 | +obj-$(CONFIG_FCST) += fcst.o |
49406 | + | 48682 | + |
@@ -49409,18 +48685,18 @@ diff -uprN orig/linux-2.6.35/drivers/scst/fcst/Makefile linux-2.6.35/drivers/scs | |||
49409 | + ft_io.o \ | 48685 | + ft_io.o \ |
49410 | + ft_scst.o \ | 48686 | + ft_scst.o \ |
49411 | + ft_sess.o | 48687 | + ft_sess.o |
49412 | diff -uprN orig/linux-2.6.35/drivers/scst/fcst/Kconfig linux-2.6.35/drivers/scst/fcst/Kconfig | 48688 | diff -uprN orig/linux-2.6.36/drivers/scst/fcst/Kconfig linux-2.6.36/drivers/scst/fcst/Kconfig |
49413 | --- orig/linux-2.6.35/drivers/scst/fcst/Kconfig | 48689 | --- orig/linux-2.6.36/drivers/scst/fcst/Kconfig |
49414 | +++ linux-2.6.35/drivers/scst/fcst/Kconfig | 48690 | +++ linux-2.6.36/drivers/scst/fcst/Kconfig |
49415 | @@ -0,0 +1,5 @@ | 48691 | @@ -0,0 +1,5 @@ |
49416 | +config FCST | 48692 | +config FCST |
49417 | + tristate "SCST target module for Fibre Channel using libfc" | 48693 | + tristate "SCST target module for Fibre Channel using libfc" |
49418 | + depends on LIBFC && SCST | 48694 | + depends on LIBFC && SCST |
49419 | + ---help--- | 48695 | + ---help--- |
49420 | + Supports using libfc HBAs as target adapters with SCST | 48696 | + Supports using libfc HBAs as target adapters with SCST |
49421 | diff -uprN orig/linux-2.6.35/drivers/scst/fcst/fcst.h linux-2.6.35/drivers/scst/fcst/fcst.h | 48697 | diff -uprN orig/linux-2.6.36/drivers/scst/fcst/fcst.h linux-2.6.36/drivers/scst/fcst/fcst.h |
49422 | --- orig/linux-2.6.35/drivers/scst/fcst/fcst.h | 48698 | --- orig/linux-2.6.36/drivers/scst/fcst/fcst.h |
49423 | +++ linux-2.6.35/drivers/scst/fcst/fcst.h | 48699 | +++ linux-2.6.36/drivers/scst/fcst/fcst.h |
49424 | @@ -0,0 +1,151 @@ | 48700 | @@ -0,0 +1,151 @@ |
49425 | +/* | 48701 | +/* |
49426 | + * Copyright (c) 2010 Cisco Systems, Inc. | 48702 | + * Copyright (c) 2010 Cisco Systems, Inc. |
@@ -49573,9 +48849,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/fcst/fcst.h linux-2.6.35/drivers/scst/ | |||
49573 | +void ft_cmd_dump(struct scst_cmd *, const char *); | 48849 | +void ft_cmd_dump(struct scst_cmd *, const char *); |
49574 | + | 48850 | + |
49575 | +#endif /* __SCSI_FCST_H__ */ | 48851 | +#endif /* __SCSI_FCST_H__ */ |
49576 | diff -uprN orig/linux-2.6.35/drivers/scst/fcst/ft_cmd.c linux-2.6.35/drivers/scst/fcst/ft_cmd.c | 48852 | diff -uprN orig/linux-2.6.36/drivers/scst/fcst/ft_cmd.c linux-2.6.36/drivers/scst/fcst/ft_cmd.c |
49577 | --- orig/linux-2.6.35/drivers/scst/fcst/ft_cmd.c | 48853 | --- orig/linux-2.6.36/drivers/scst/fcst/ft_cmd.c |
49578 | +++ linux-2.6.35/drivers/scst/fcst/ft_cmd.c | 48854 | +++ linux-2.6.36/drivers/scst/fcst/ft_cmd.c |
49579 | @@ -0,0 +1,686 @@ | 48855 | @@ -0,0 +1,686 @@ |
49580 | +/* | 48856 | +/* |
49581 | + * Copyright (c) 2010 Cisco Systems, Inc. | 48857 | + * Copyright (c) 2010 Cisco Systems, Inc. |
@@ -50263,9 +49539,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/fcst/ft_cmd.c linux-2.6.35/drivers/scs | |||
50263 | + break; | 49539 | + break; |
50264 | + } | 49540 | + } |
50265 | +} | 49541 | +} |
50266 | diff -uprN orig/linux-2.6.35/drivers/scst/fcst/ft_io.c linux-2.6.35/drivers/scst/fcst/ft_io.c | 49542 | diff -uprN orig/linux-2.6.36/drivers/scst/fcst/ft_io.c linux-2.6.36/drivers/scst/fcst/ft_io.c |
50267 | --- orig/linux-2.6.35/drivers/scst/fcst/ft_io.c | 49543 | --- orig/linux-2.6.36/drivers/scst/fcst/ft_io.c |
50268 | +++ linux-2.6.35/drivers/scst/fcst/ft_io.c | 49544 | +++ linux-2.6.36/drivers/scst/fcst/ft_io.c |
50269 | @@ -0,0 +1,272 @@ | 49545 | @@ -0,0 +1,272 @@ |
50270 | +/* | 49546 | +/* |
50271 | + * Copyright (c) 2010 Cisco Systems, Inc. | 49547 | + * Copyright (c) 2010 Cisco Systems, Inc. |
@@ -50539,9 +49815,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/fcst/ft_io.c linux-2.6.35/drivers/scst | |||
50539 | + } | 49815 | + } |
50540 | + return SCST_TGT_RES_SUCCESS; | 49816 | + return SCST_TGT_RES_SUCCESS; |
50541 | +} | 49817 | +} |
50542 | diff -uprN orig/linux-2.6.35/drivers/scst/fcst/ft_scst.c linux-2.6.35/drivers/scst/fcst/ft_scst.c | 49818 | diff -uprN orig/linux-2.6.36/drivers/scst/fcst/ft_scst.c linux-2.6.36/drivers/scst/fcst/ft_scst.c |
50543 | --- orig/linux-2.6.35/drivers/scst/fcst/ft_scst.c | 49819 | --- orig/linux-2.6.36/drivers/scst/fcst/ft_scst.c |
50544 | +++ linux-2.6.35/drivers/scst/fcst/ft_scst.c | 49820 | +++ linux-2.6.36/drivers/scst/fcst/ft_scst.c |
50545 | @@ -0,0 +1,96 @@ | 49821 | @@ -0,0 +1,96 @@ |
50546 | +/* | 49822 | +/* |
50547 | + * Copyright (c) 2010 Cisco Systems, Inc. | 49823 | + * Copyright (c) 2010 Cisco Systems, Inc. |
@@ -50639,9 +49915,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/fcst/ft_scst.c linux-2.6.35/drivers/sc | |||
50639 | + synchronize_rcu(); | 49915 | + synchronize_rcu(); |
50640 | +} | 49916 | +} |
50641 | +module_exit(ft_module_exit); | 49917 | +module_exit(ft_module_exit); |
50642 | diff -uprN orig/linux-2.6.35/drivers/scst/fcst/ft_sess.c linux-2.6.35/drivers/scst/fcst/ft_sess.c | 49918 | diff -uprN orig/linux-2.6.36/drivers/scst/fcst/ft_sess.c linux-2.6.36/drivers/scst/fcst/ft_sess.c |
50643 | --- orig/linux-2.6.35/drivers/scst/fcst/ft_sess.c | 49919 | --- orig/linux-2.6.36/drivers/scst/fcst/ft_sess.c |
50644 | +++ linux-2.6.35/drivers/scst/fcst/ft_sess.c | 49920 | +++ linux-2.6.36/drivers/scst/fcst/ft_sess.c |
50645 | @@ -0,0 +1,570 @@ | 49921 | @@ -0,0 +1,570 @@ |
50646 | +/* | 49922 | +/* |
50647 | + * Copyright (c) 2010 Cisco Systems, Inc. | 49923 | + * Copyright (c) 2010 Cisco Systems, Inc. |
@@ -51213,9 +50489,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/fcst/ft_sess.c linux-2.6.35/drivers/sc | |||
51213 | + aen->event_fn, sess->port_id, scst_aen_get_lun(aen)); | 50489 | + aen->event_fn, sess->port_id, scst_aen_get_lun(aen)); |
51214 | + return SCST_AEN_RES_FAILED; /* XXX TBD */ | 50490 | + return SCST_AEN_RES_FAILED; /* XXX TBD */ |
51215 | +} | 50491 | +} |
51216 | diff -uprN orig/linux-2.6.35/Documentation/scst/README.fcst linux-2.6.35/Documentation/scst/README.fcst | 50492 | diff -uprN orig/linux-2.6.36/Documentation/scst/README.fcst linux-2.6.36/Documentation/scst/README.fcst |
51217 | --- orig/linux-2.6.35/Documentation/scst/README.fcst | 50493 | --- orig/linux-2.6.36/Documentation/scst/README.fcst |
51218 | +++ linux-2.6.35/Documentation/scst/README.fcst | 50494 | +++ linux-2.6.36/Documentation/scst/README.fcst |
51219 | @@ -0,0 +1,99 @@ | 50495 | @@ -0,0 +1,99 @@ |
51220 | +fcst README v1.0 06/10/2010 | 50496 | +fcst README v1.0 06/10/2010 |
51221 | + | 50497 | + |
@@ -51316,9 +50592,9 @@ diff -uprN orig/linux-2.6.35/Documentation/scst/README.fcst linux-2.6.35/Documen | |||
51316 | +14. As a temporary workaround, you may need to reset the interface | 50592 | +14. As a temporary workaround, you may need to reset the interface |
51317 | + on the initiator side so it sees the SCST device as a target and | 50593 | + on the initiator side so it sees the SCST device as a target and |
51318 | + discovers LUNs. You can avoid this by bringing up the initiator last. | 50594 | + discovers LUNs. You can avoid this by bringing up the initiator last. |
51319 | diff -uprN orig/linux-2.6.35/include/scst/iscsi_scst.h linux-2.6.35/include/scst/iscsi_scst.h | 50595 | diff -uprN orig/linux-2.6.36/include/scst/iscsi_scst.h linux-2.6.36/include/scst/iscsi_scst.h |
51320 | --- orig/linux-2.6.35/include/scst/iscsi_scst.h | 50596 | --- orig/linux-2.6.36/include/scst/iscsi_scst.h |
51321 | +++ linux-2.6.35/include/scst/iscsi_scst.h | 50597 | +++ linux-2.6.36/include/scst/iscsi_scst.h |
51322 | @@ -0,0 +1,220 @@ | 50598 | @@ -0,0 +1,220 @@ |
51323 | +/* | 50599 | +/* |
51324 | + * Copyright (C) 2007 - 2010 Vladislav Bolkhovitin | 50600 | + * Copyright (C) 2007 - 2010 Vladislav Bolkhovitin |
@@ -51540,9 +50816,9 @@ diff -uprN orig/linux-2.6.35/include/scst/iscsi_scst.h linux-2.6.35/include/scst | |||
51540 | +} | 50816 | +} |
51541 | + | 50817 | + |
51542 | +#endif | 50818 | +#endif |
51543 | diff -uprN orig/linux-2.6.35/include/scst/iscsi_scst_ver.h linux-2.6.35/include/scst/iscsi_scst_ver.h | 50819 | diff -uprN orig/linux-2.6.36/include/scst/iscsi_scst_ver.h linux-2.6.36/include/scst/iscsi_scst_ver.h |
51544 | --- orig/linux-2.6.35/include/scst/iscsi_scst_ver.h | 50820 | --- orig/linux-2.6.36/include/scst/iscsi_scst_ver.h |
51545 | +++ linux-2.6.35/include/scst/iscsi_scst_ver.h | 50821 | +++ linux-2.6.36/include/scst/iscsi_scst_ver.h |
51546 | @@ -0,0 +1,20 @@ | 50822 | @@ -0,0 +1,20 @@ |
51547 | +/* | 50823 | +/* |
51548 | + * Copyright (C) 2007 - 2010 Vladislav Bolkhovitin | 50824 | + * Copyright (C) 2007 - 2010 Vladislav Bolkhovitin |
@@ -51563,25 +50839,25 @@ diff -uprN orig/linux-2.6.35/include/scst/iscsi_scst_ver.h linux-2.6.35/include/ | |||
51563 | + | 50839 | + |
51564 | +#define ISCSI_VERSION_STRING_SUFFIX | 50840 | +#define ISCSI_VERSION_STRING_SUFFIX |
51565 | + | 50841 | + |
51566 | +#define ISCSI_VERSION_STRING "2.0.0-rc3" ISCSI_VERSION_STRING_SUFFIX | 50842 | +#define ISCSI_VERSION_STRING "2.0.0" ISCSI_VERSION_STRING_SUFFIX |
51567 | diff -uprN orig/linux-2.6.35/include/scst/iscsi_scst_itf_ver.h linux-2.6.35/include/scst/iscsi_scst_itf_ver.h | 50843 | diff -uprN orig/linux-2.6.36/include/scst/iscsi_scst_itf_ver.h linux-2.6.36/include/scst/iscsi_scst_itf_ver.h |
51568 | --- orig/linux-2.6.35/include/scst/iscsi_scst_itf_ver.h | 50844 | --- orig/linux-2.6.36/include/scst/iscsi_scst_itf_ver.h |
51569 | +++ linux-2.6.35/include/scst/iscsi_scst_itf_ver.h | 50845 | +++ linux-2.6.36/include/scst/iscsi_scst_itf_ver.h |
51570 | @@ -0,0 +1,3 @@ | 50846 | @@ -0,0 +1,3 @@ |
51571 | +/* Autogenerated, don't edit */ | 50847 | +/* Autogenerated, don't edit */ |
51572 | + | 50848 | + |
51573 | +#define ISCSI_SCST_INTERFACE_VERSION ISCSI_VERSION_STRING "_" "31815603fdea2196eb9774eac0e41bf15c9a9130" | 50849 | +#define ISCSI_SCST_INTERFACE_VERSION ISCSI_VERSION_STRING "_" "31815603fdea2196eb9774eac0e41bf15c9a9130" |
51574 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/Makefile linux-2.6.35/drivers/scst/iscsi-scst/Makefile | 50850 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/Makefile linux-2.6.36/drivers/scst/iscsi-scst/Makefile |
51575 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/Makefile | 50851 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/Makefile |
51576 | +++ linux-2.6.35/drivers/scst/iscsi-scst/Makefile | 50852 | +++ linux-2.6.36/drivers/scst/iscsi-scst/Makefile |
51577 | @@ -0,0 +1,4 @@ | 50853 | @@ -0,0 +1,4 @@ |
51578 | +iscsi-scst-y := iscsi.o nthread.o config.o digest.o \ | 50854 | +iscsi-scst-y := iscsi.o nthread.o config.o digest.o \ |
51579 | + conn.o session.o target.o event.o param.o | 50855 | + conn.o session.o target.o event.o param.o |
51580 | + | 50856 | + |
51581 | +obj-$(CONFIG_SCST_ISCSI) += iscsi-scst.o | 50857 | +obj-$(CONFIG_SCST_ISCSI) += iscsi-scst.o |
51582 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/Kconfig linux-2.6.35/drivers/scst/iscsi-scst/Kconfig | 50858 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/Kconfig linux-2.6.36/drivers/scst/iscsi-scst/Kconfig |
51583 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/Kconfig | 50859 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/Kconfig |
51584 | +++ linux-2.6.35/drivers/scst/iscsi-scst/Kconfig | 50860 | +++ linux-2.6.36/drivers/scst/iscsi-scst/Kconfig |
51585 | @@ -0,0 +1,25 @@ | 50861 | @@ -0,0 +1,25 @@ |
51586 | +config SCST_ISCSI | 50862 | +config SCST_ISCSI |
51587 | + tristate "ISCSI Target" | 50863 | + tristate "ISCSI Target" |
@@ -51608,10 +50884,10 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/Kconfig linux-2.6.35/driver | |||
51608 | + iSCSI initiator that is talking to SCST. | 50884 | + iSCSI initiator that is talking to SCST. |
51609 | + | 50885 | + |
51610 | + If unsure, say "N". | 50886 | + If unsure, say "N". |
51611 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/config.c linux-2.6.35/drivers/scst/iscsi-scst/config.c | 50887 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/config.c linux-2.6.36/drivers/scst/iscsi-scst/config.c |
51612 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/config.c | 50888 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/config.c |
51613 | +++ linux-2.6.35/drivers/scst/iscsi-scst/config.c | 50889 | +++ linux-2.6.36/drivers/scst/iscsi-scst/config.c |
51614 | @@ -0,0 +1,1033 @@ | 50890 | @@ -0,0 +1,1032 @@ |
51615 | +/* | 50891 | +/* |
51616 | + * Copyright (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org> | 50892 | + * Copyright (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org> |
51617 | + * Copyright (C) 2007 - 2010 Vladislav Bolkhovitin | 50893 | + * Copyright (C) 2007 - 2010 Vladislav Bolkhovitin |
@@ -52140,7 +51416,6 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/config.c linux-2.6.35/drive | |||
52140 | + list_add(&tgt_attr->attrs_list_entry, attrs_list); | 51416 | + list_add(&tgt_attr->attrs_list_entry, attrs_list); |
52141 | + | 51417 | + |
52142 | + tgt_attr->attr.attr.name = tgt_attr->name; | 51418 | + tgt_attr->attr.attr.name = tgt_attr->name; |
52143 | + tgt_attr->attr.attr.owner = THIS_MODULE; | ||
52144 | +#ifdef CONFIG_DEBUG_LOCK_ALLOC | 51419 | +#ifdef CONFIG_DEBUG_LOCK_ALLOC |
52145 | + tgt_attr->attr.attr.key = &__key; | 51420 | + tgt_attr->attr.attr.key = &__key; |
52146 | +#endif | 51421 | +#endif |
@@ -52645,9 +51920,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/config.c linux-2.6.35/drive | |||
52645 | +} | 51920 | +} |
52646 | + | 51921 | + |
52647 | +#endif /* CONFIG_SCST_DEBUG */ | 51922 | +#endif /* CONFIG_SCST_DEBUG */ |
52648 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/conn.c linux-2.6.35/drivers/scst/iscsi-scst/conn.c | 51923 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/conn.c linux-2.6.36/drivers/scst/iscsi-scst/conn.c |
52649 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/conn.c | 51924 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/conn.c |
52650 | +++ linux-2.6.35/drivers/scst/iscsi-scst/conn.c | 51925 | +++ linux-2.6.36/drivers/scst/iscsi-scst/conn.c |
52651 | @@ -0,0 +1,910 @@ | 51926 | @@ -0,0 +1,910 @@ |
52652 | +/* | 51927 | +/* |
52653 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> | 51928 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> |
@@ -53559,9 +52834,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/conn.c linux-2.6.35/drivers | |||
53559 | +} | 52834 | +} |
53560 | + | 52835 | + |
53561 | +#endif /* CONFIG_SCST_EXTRACHECKS */ | 52836 | +#endif /* CONFIG_SCST_EXTRACHECKS */ |
53562 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/digest.c linux-2.6.35/drivers/scst/iscsi-scst/digest.c | 52837 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/digest.c linux-2.6.36/drivers/scst/iscsi-scst/digest.c |
53563 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/digest.c | 52838 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/digest.c |
53564 | +++ linux-2.6.35/drivers/scst/iscsi-scst/digest.c | 52839 | +++ linux-2.6.36/drivers/scst/iscsi-scst/digest.c |
53565 | @@ -0,0 +1,244 @@ | 52840 | @@ -0,0 +1,244 @@ |
53566 | +/* | 52841 | +/* |
53567 | + * iSCSI digest handling. | 52842 | + * iSCSI digest handling. |
@@ -53807,9 +53082,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/digest.c linux-2.6.35/drive | |||
53807 | + TRACE_DBG("TX data digest for cmd %p: %x (offset %d, opcode %x)", cmnd, | 53082 | + TRACE_DBG("TX data digest for cmd %p: %x (offset %d, opcode %x)", cmnd, |
53808 | + cmnd->ddigest, offset, cmnd_opcode(cmnd)); | 53083 | + cmnd->ddigest, offset, cmnd_opcode(cmnd)); |
53809 | +} | 53084 | +} |
53810 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/digest.h linux-2.6.35/drivers/scst/iscsi-scst/digest.h | 53085 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/digest.h linux-2.6.36/drivers/scst/iscsi-scst/digest.h |
53811 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/digest.h | 53086 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/digest.h |
53812 | +++ linux-2.6.35/drivers/scst/iscsi-scst/digest.h | 53087 | +++ linux-2.6.36/drivers/scst/iscsi-scst/digest.h |
53813 | @@ -0,0 +1,31 @@ | 53088 | @@ -0,0 +1,31 @@ |
53814 | +/* | 53089 | +/* |
53815 | + * iSCSI digest handling. | 53090 | + * iSCSI digest handling. |
@@ -53842,9 +53117,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/digest.h linux-2.6.35/drive | |||
53842 | +extern void digest_tx_data(struct iscsi_cmnd *cmnd); | 53117 | +extern void digest_tx_data(struct iscsi_cmnd *cmnd); |
53843 | + | 53118 | + |
53844 | +#endif /* __ISCSI_DIGEST_H__ */ | 53119 | +#endif /* __ISCSI_DIGEST_H__ */ |
53845 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/event.c linux-2.6.35/drivers/scst/iscsi-scst/event.c | 53120 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/event.c linux-2.6.36/drivers/scst/iscsi-scst/event.c |
53846 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/event.c | 53121 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/event.c |
53847 | +++ linux-2.6.35/drivers/scst/iscsi-scst/event.c | 53122 | +++ linux-2.6.36/drivers/scst/iscsi-scst/event.c |
53848 | @@ -0,0 +1,165 @@ | 53123 | @@ -0,0 +1,165 @@ |
53849 | +/* | 53124 | +/* |
53850 | + * Event notification code. | 53125 | + * Event notification code. |
@@ -54011,9 +53286,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/event.c linux-2.6.35/driver | |||
54011 | +{ | 53286 | +{ |
54012 | + netlink_kernel_release(nl); | 53287 | + netlink_kernel_release(nl); |
54013 | +} | 53288 | +} |
54014 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi.c linux-2.6.35/drivers/scst/iscsi-scst/iscsi.c | 53289 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/iscsi.c linux-2.6.36/drivers/scst/iscsi-scst/iscsi.c |
54015 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi.c | 53290 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/iscsi.c |
54016 | +++ linux-2.6.35/drivers/scst/iscsi-scst/iscsi.c | 53291 | +++ linux-2.6.36/drivers/scst/iscsi-scst/iscsi.c |
54017 | @@ -0,0 +1,3956 @@ | 53292 | @@ -0,0 +1,3956 @@ |
54018 | +/* | 53293 | +/* |
54019 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> | 53294 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> |
@@ -57971,9 +57246,73 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi.c linux-2.6.35/driver | |||
57971 | +MODULE_VERSION(ISCSI_VERSION_STRING); | 57246 | +MODULE_VERSION(ISCSI_VERSION_STRING); |
57972 | +MODULE_LICENSE("GPL"); | 57247 | +MODULE_LICENSE("GPL"); |
57973 | +MODULE_DESCRIPTION("SCST iSCSI Target"); | 57248 | +MODULE_DESCRIPTION("SCST iSCSI Target"); |
57974 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi.h linux-2.6.35/drivers/scst/iscsi-scst/iscsi.h | 57249 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/iscsi_dbg.h linux-2.6.36/drivers/scst/iscsi-scst/iscsi_dbg.h |
57975 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi.h | 57250 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/iscsi_dbg.h |
57976 | +++ linux-2.6.35/drivers/scst/iscsi-scst/iscsi.h | 57251 | +++ linux-2.6.36/drivers/scst/iscsi-scst/iscsi_dbg.h |
57252 | @@ -0,0 +1,60 @@ | ||
57253 | +/* | ||
57254 | + * Copyright (C) 2007 - 2010 Vladislav Bolkhovitin | ||
57255 | + * Copyright (C) 2007 - 2010 ID7 Ltd. | ||
57256 | + * | ||
57257 | + * This program is free software; you can redistribute it and/or | ||
57258 | + * modify it under the terms of the GNU General Public License | ||
57259 | + * as published by the Free Software Foundation, version 2 | ||
57260 | + * of the License. | ||
57261 | + * | ||
57262 | + * This program is distributed in the hope that it will be useful, | ||
57263 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
57264 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
57265 | + * GNU General Public License for more details. | ||
57266 | + */ | ||
57267 | + | ||
57268 | +#ifndef ISCSI_DBG_H | ||
57269 | +#define ISCSI_DBG_H | ||
57270 | + | ||
57271 | +#define LOG_PREFIX "iscsi-scst" | ||
57272 | + | ||
57273 | +#include <scst/scst_debug.h> | ||
57274 | + | ||
57275 | +#define TRACE_D_WRITE 0x80000000 | ||
57276 | +#define TRACE_CONN_OC 0x40000000 | ||
57277 | +#define TRACE_D_IOV 0x20000000 | ||
57278 | +#define TRACE_D_DUMP_PDU 0x10000000 | ||
57279 | +#define TRACE_NET_PG 0x08000000 | ||
57280 | +#define TRACE_CONN_OC_DBG 0x04000000 | ||
57281 | + | ||
57282 | +#ifdef CONFIG_SCST_DEBUG | ||
57283 | +#define ISCSI_DEFAULT_LOG_FLAGS (TRACE_FUNCTION | TRACE_LINE | TRACE_PID | \ | ||
57284 | + TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_DEBUG | \ | ||
57285 | + TRACE_MINOR | TRACE_SPECIAL | TRACE_CONN_OC) | ||
57286 | +#else | ||
57287 | +#define ISCSI_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MGMT | \ | ||
57288 | + TRACE_SPECIAL) | ||
57289 | +#endif | ||
57290 | + | ||
57291 | +#ifdef CONFIG_SCST_DEBUG | ||
57292 | +struct iscsi_pdu; | ||
57293 | +struct iscsi_cmnd; | ||
57294 | +extern void iscsi_dump_pdu(struct iscsi_pdu *pdu); | ||
57295 | +extern unsigned long iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag( | ||
57296 | + struct iscsi_cmnd *cmnd); | ||
57297 | +#else | ||
57298 | +#define iscsi_dump_pdu(x) do {} while (0) | ||
57299 | +#define iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(x) do {} while (0) | ||
57300 | +#endif | ||
57301 | + | ||
57302 | +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) | ||
57303 | +extern unsigned long iscsi_trace_flag; | ||
57304 | +#define trace_flag iscsi_trace_flag | ||
57305 | +#endif | ||
57306 | + | ||
57307 | +#define TRACE_CONN_CLOSE(args...) TRACE_DBG_FLAG(TRACE_DEBUG|TRACE_CONN_OC, args) | ||
57308 | +#define TRACE_CONN_CLOSE_DBG(args...) TRACE(TRACE_CONN_OC_DBG, args) | ||
57309 | +#define TRACE_NET_PAGE(args...) TRACE_DBG_FLAG(TRACE_NET_PG, args) | ||
57310 | +#define TRACE_WRITE(args...) TRACE_DBG_FLAG(TRACE_DEBUG|TRACE_D_WRITE, args) | ||
57311 | + | ||
57312 | +#endif | ||
57313 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/iscsi.h linux-2.6.36/drivers/scst/iscsi-scst/iscsi.h | ||
57314 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/iscsi.h | ||
57315 | +++ linux-2.6.36/drivers/scst/iscsi-scst/iscsi.h | ||
57977 | @@ -0,0 +1,743 @@ | 57316 | @@ -0,0 +1,743 @@ |
57978 | +/* | 57317 | +/* |
57979 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> | 57318 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> |
@@ -58718,73 +58057,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi.h linux-2.6.35/driver | |||
58718 | +#endif | 58057 | +#endif |
58719 | + | 58058 | + |
58720 | +#endif /* __ISCSI_H__ */ | 58059 | +#endif /* __ISCSI_H__ */ |
58721 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi_dbg.h linux-2.6.35/drivers/scst/iscsi-scst/iscsi_dbg.h | 58060 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/iscsi_hdr.h linux-2.6.36/drivers/scst/iscsi-scst/iscsi_hdr.h |
58722 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi_dbg.h | 58061 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/iscsi_hdr.h |
58723 | +++ linux-2.6.35/drivers/scst/iscsi-scst/iscsi_dbg.h | 58062 | +++ linux-2.6.36/drivers/scst/iscsi-scst/iscsi_hdr.h |
58724 | @@ -0,0 +1,60 @@ | ||
58725 | +/* | ||
58726 | + * Copyright (C) 2007 - 2010 Vladislav Bolkhovitin | ||
58727 | + * Copyright (C) 2007 - 2010 ID7 Ltd. | ||
58728 | + * | ||
58729 | + * This program is free software; you can redistribute it and/or | ||
58730 | + * modify it under the terms of the GNU General Public License | ||
58731 | + * as published by the Free Software Foundation, version 2 | ||
58732 | + * of the License. | ||
58733 | + * | ||
58734 | + * This program is distributed in the hope that it will be useful, | ||
58735 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
58736 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
58737 | + * GNU General Public License for more details. | ||
58738 | + */ | ||
58739 | + | ||
58740 | +#ifndef ISCSI_DBG_H | ||
58741 | +#define ISCSI_DBG_H | ||
58742 | + | ||
58743 | +#define LOG_PREFIX "iscsi-scst" | ||
58744 | + | ||
58745 | +#include <scst/scst_debug.h> | ||
58746 | + | ||
58747 | +#define TRACE_D_WRITE 0x80000000 | ||
58748 | +#define TRACE_CONN_OC 0x40000000 | ||
58749 | +#define TRACE_D_IOV 0x20000000 | ||
58750 | +#define TRACE_D_DUMP_PDU 0x10000000 | ||
58751 | +#define TRACE_NET_PG 0x08000000 | ||
58752 | +#define TRACE_CONN_OC_DBG 0x04000000 | ||
58753 | + | ||
58754 | +#ifdef CONFIG_SCST_DEBUG | ||
58755 | +#define ISCSI_DEFAULT_LOG_FLAGS (TRACE_FUNCTION | TRACE_LINE | TRACE_PID | \ | ||
58756 | + TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_DEBUG | \ | ||
58757 | + TRACE_MINOR | TRACE_SPECIAL | TRACE_CONN_OC) | ||
58758 | +#else | ||
58759 | +#define ISCSI_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MGMT | \ | ||
58760 | + TRACE_SPECIAL) | ||
58761 | +#endif | ||
58762 | + | ||
58763 | +#ifdef CONFIG_SCST_DEBUG | ||
58764 | +struct iscsi_pdu; | ||
58765 | +struct iscsi_cmnd; | ||
58766 | +extern void iscsi_dump_pdu(struct iscsi_pdu *pdu); | ||
58767 | +extern unsigned long iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag( | ||
58768 | + struct iscsi_cmnd *cmnd); | ||
58769 | +#else | ||
58770 | +#define iscsi_dump_pdu(x) do {} while (0) | ||
58771 | +#define iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(x) do {} while (0) | ||
58772 | +#endif | ||
58773 | + | ||
58774 | +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) | ||
58775 | +extern unsigned long iscsi_trace_flag; | ||
58776 | +#define trace_flag iscsi_trace_flag | ||
58777 | +#endif | ||
58778 | + | ||
58779 | +#define TRACE_CONN_CLOSE(args...) TRACE_DBG_FLAG(TRACE_DEBUG|TRACE_CONN_OC, args) | ||
58780 | +#define TRACE_CONN_CLOSE_DBG(args...) TRACE(TRACE_CONN_OC_DBG, args) | ||
58781 | +#define TRACE_NET_PAGE(args...) TRACE_DBG_FLAG(TRACE_NET_PG, args) | ||
58782 | +#define TRACE_WRITE(args...) TRACE_DBG_FLAG(TRACE_DEBUG|TRACE_D_WRITE, args) | ||
58783 | + | ||
58784 | +#endif | ||
58785 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi_hdr.h linux-2.6.35/drivers/scst/iscsi-scst/iscsi_hdr.h | ||
58786 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi_hdr.h | ||
58787 | +++ linux-2.6.35/drivers/scst/iscsi-scst/iscsi_hdr.h | ||
58788 | @@ -0,0 +1,525 @@ | 58063 | @@ -0,0 +1,525 @@ |
58789 | +/* | 58064 | +/* |
58790 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> | 58065 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> |
@@ -59311,9 +58586,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/iscsi_hdr.h linux-2.6.35/dr | |||
59311 | +#define cmnd_scsicode(cmnd) (cmnd_hdr((cmnd))->scb[0]) | 58586 | +#define cmnd_scsicode(cmnd) (cmnd_hdr((cmnd))->scb[0]) |
59312 | + | 58587 | + |
59313 | +#endif /* __ISCSI_HDR_H__ */ | 58588 | +#endif /* __ISCSI_HDR_H__ */ |
59314 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/nthread.c linux-2.6.35/drivers/scst/iscsi-scst/nthread.c | 58589 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/nthread.c linux-2.6.36/drivers/scst/iscsi-scst/nthread.c |
59315 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/nthread.c | 58590 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/nthread.c |
59316 | +++ linux-2.6.35/drivers/scst/iscsi-scst/nthread.c | 58591 | +++ linux-2.6.36/drivers/scst/iscsi-scst/nthread.c |
59317 | @@ -0,0 +1,1838 @@ | 58592 | @@ -0,0 +1,1838 @@ |
59318 | +/* | 58593 | +/* |
59319 | + * Network threads. | 58594 | + * Network threads. |
@@ -61153,9 +60428,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/nthread.c linux-2.6.35/driv | |||
61153 | + TRACE_EXIT(); | 60428 | + TRACE_EXIT(); |
61154 | + return 0; | 60429 | + return 0; |
61155 | +} | 60430 | +} |
61156 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/param.c linux-2.6.35/drivers/scst/iscsi-scst/param.c | 60431 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/param.c linux-2.6.36/drivers/scst/iscsi-scst/param.c |
61157 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/param.c | 60432 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/param.c |
61158 | +++ linux-2.6.35/drivers/scst/iscsi-scst/param.c | 60433 | +++ linux-2.6.36/drivers/scst/iscsi-scst/param.c |
61159 | @@ -0,0 +1,306 @@ | 60434 | @@ -0,0 +1,306 @@ |
61160 | +/* | 60435 | +/* |
61161 | + * Copyright (C) 2005 FUJITA Tomonori <tomof@acm.org> | 60436 | + * Copyright (C) 2005 FUJITA Tomonori <tomof@acm.org> |
@@ -61463,9 +60738,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/param.c linux-2.6.35/driver | |||
61463 | +out: | 60738 | +out: |
61464 | + return err; | 60739 | + return err; |
61465 | +} | 60740 | +} |
61466 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/session.c linux-2.6.35/drivers/scst/iscsi-scst/session.c | 60741 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/session.c linux-2.6.36/drivers/scst/iscsi-scst/session.c |
61467 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/session.c | 60742 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/session.c |
61468 | +++ linux-2.6.35/drivers/scst/iscsi-scst/session.c | 60743 | +++ linux-2.6.36/drivers/scst/iscsi-scst/session.c |
61469 | @@ -0,0 +1,499 @@ | 60744 | @@ -0,0 +1,499 @@ |
61470 | +/* | 60745 | +/* |
61471 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> | 60746 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> |
@@ -61966,9 +61241,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/session.c linux-2.6.35/driv | |||
61966 | + NULL, | 61241 | + NULL, |
61967 | +}; | 61242 | +}; |
61968 | + | 61243 | + |
61969 | diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/target.c linux-2.6.35/drivers/scst/iscsi-scst/target.c | 61244 | diff -uprN orig/linux-2.6.36/drivers/scst/iscsi-scst/target.c linux-2.6.36/drivers/scst/iscsi-scst/target.c |
61970 | --- orig/linux-2.6.35/drivers/scst/iscsi-scst/target.c | 61245 | --- orig/linux-2.6.36/drivers/scst/iscsi-scst/target.c |
61971 | +++ linux-2.6.35/drivers/scst/iscsi-scst/target.c | 61246 | +++ linux-2.6.36/drivers/scst/iscsi-scst/target.c |
61972 | @@ -0,0 +1,533 @@ | 61247 | @@ -0,0 +1,533 @@ |
61973 | +/* | 61248 | +/* |
61974 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> | 61249 | + * Copyright (C) 2002 - 2003 Ardis Technolgies <roman@ardistech.com> |
@@ -62503,9 +61778,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/iscsi-scst/target.c linux-2.6.35/drive | |||
62503 | + return res; | 61778 | + return res; |
62504 | +} | 61779 | +} |
62505 | + | 61780 | + |
62506 | diff -uprN orig/linux-2.6.35/Documentation/scst/README.iscsi linux-2.6.35/Documentation/scst/README.iscsi | 61781 | diff -uprN orig/linux-2.6.36/Documentation/scst/README.iscsi linux-2.6.36/Documentation/scst/README.iscsi |
62507 | --- orig/linux-2.6.35/Documentation/scst/README.iscsi | 61782 | --- orig/linux-2.6.36/Documentation/scst/README.iscsi |
62508 | +++ linux-2.6.35/Documentation/scst/README.iscsi | 61783 | +++ linux-2.6.36/Documentation/scst/README.iscsi |
62509 | @@ -0,0 +1,741 @@ | 61784 | @@ -0,0 +1,741 @@ |
62510 | +iSCSI SCST target driver | 61785 | +iSCSI SCST target driver |
62511 | +======================== | 61786 | +======================== |
@@ -63248,9 +62523,9 @@ diff -uprN orig/linux-2.6.35/Documentation/scst/README.iscsi linux-2.6.35/Docume | |||
63248 | + | 62523 | + |
63249 | +Vladislav Bolkhovitin <vst@vlnb.net>, http://scst.sourceforge.net | 62524 | +Vladislav Bolkhovitin <vst@vlnb.net>, http://scst.sourceforge.net |
63250 | + | 62525 | + |
63251 | diff -uprN orig/linux-2.6.35/drivers/scsi/qla2xxx/qla2x_tgt.h linux-2.6.35/drivers/scsi/qla2xxx/qla2x_tgt.h | 62526 | diff -uprN orig/linux-2.6.36/drivers/scsi/qla2xxx/qla2x_tgt.h linux-2.6.36/drivers/scsi/qla2xxx/qla2x_tgt.h |
63252 | --- orig/linux-2.6.35/drivers/scsi/qla2xxx/qla2x_tgt.h | 62527 | --- orig/linux-2.6.36/drivers/scsi/qla2xxx/qla2x_tgt.h |
63253 | +++ linux-2.6.35/drivers/scsi/qla2xxx/qla2x_tgt.h | 62528 | +++ linux-2.6.36/drivers/scsi/qla2xxx/qla2x_tgt.h |
63254 | @@ -0,0 +1,131 @@ | 62529 | @@ -0,0 +1,131 @@ |
63255 | +/* | 62530 | +/* |
63256 | + * qla2x_tgt.h | 62531 | + * qla2x_tgt.h |
@@ -63383,9 +62658,9 @@ diff -uprN orig/linux-2.6.35/drivers/scsi/qla2xxx/qla2x_tgt.h linux-2.6.35/drive | |||
63383 | +#endif /* CONFIG_SCSI_QLA2XXX_TARGET */ | 62658 | +#endif /* CONFIG_SCSI_QLA2XXX_TARGET */ |
63384 | + | 62659 | + |
63385 | +#endif /* __QLA2X_TGT_H */ | 62660 | +#endif /* __QLA2X_TGT_H */ |
63386 | diff -uprN orig/linux-2.6.35/drivers/scsi/qla2xxx/qla2x_tgt_def.h linux-2.6.35/drivers/scsi/qla2xxx/qla2x_tgt_def.h | 62661 | diff -uprN orig/linux-2.6.36/drivers/scsi/qla2xxx/qla2x_tgt_def.h linux-2.6.36/drivers/scsi/qla2xxx/qla2x_tgt_def.h |
63387 | --- orig/linux-2.6.35/drivers/scsi/qla2xxx/qla2x_tgt_def.h | 62662 | --- orig/linux-2.6.36/drivers/scsi/qla2xxx/qla2x_tgt_def.h |
63388 | +++ linux-2.6.35/drivers/scsi/qla2xxx/qla2x_tgt_def.h | 62663 | +++ linux-2.6.36/drivers/scsi/qla2xxx/qla2x_tgt_def.h |
63389 | @@ -0,0 +1,729 @@ | 62664 | @@ -0,0 +1,729 @@ |
63390 | +/* | 62665 | +/* |
63391 | + * qla2x_tgt_def.h | 62666 | + * qla2x_tgt_def.h |
@@ -64116,18 +63391,18 @@ diff -uprN orig/linux-2.6.35/drivers/scsi/qla2xxx/qla2x_tgt_def.h linux-2.6.35/d | |||
64116 | +int qla2x00_wait_for_hba_online(scsi_qla_host_t *ha); | 63391 | +int qla2x00_wait_for_hba_online(scsi_qla_host_t *ha); |
64117 | + | 63392 | + |
64118 | +#endif /* __QLA2X_TGT_DEF_H */ | 63393 | +#endif /* __QLA2X_TGT_DEF_H */ |
64119 | diff -uprN orig/linux-2.6.35/drivers/scst/qla2xxx-target/Makefile linux-2.6.35/drivers/scst/qla2xxx-target/Makefile | 63394 | diff -uprN orig/linux-2.6.36/drivers/scst/qla2xxx-target/Makefile linux-2.6.36/drivers/scst/qla2xxx-target/Makefile |
64120 | --- orig/linux-2.6.35/drivers/scst/qla2xxx-target/Makefile | 63395 | --- orig/linux-2.6.36/drivers/scst/qla2xxx-target/Makefile |
64121 | +++ linux-2.6.35/drivers/scst/qla2xxx-target/Makefile | 63396 | +++ linux-2.6.36/drivers/scst/qla2xxx-target/Makefile |
64122 | @@ -0,0 +1,5 @@ | 63397 | @@ -0,0 +1,5 @@ |
64123 | +ccflags-y += -Idrivers/scsi/qla2xxx | 63398 | +ccflags-y += -Idrivers/scsi/qla2xxx |
64124 | + | 63399 | + |
64125 | +qla2x00tgt-y := qla2x00t.o | 63400 | +qla2x00tgt-y := qla2x00t.o |
64126 | + | 63401 | + |
64127 | +obj-$(CONFIG_SCST_QLA_TGT_ADDON) += qla2x00tgt.o | 63402 | +obj-$(CONFIG_SCST_QLA_TGT_ADDON) += qla2x00tgt.o |
64128 | diff -uprN orig/linux-2.6.35/drivers/scst/qla2xxx-target/Kconfig linux-2.6.35/drivers/scst/qla2xxx-target/Kconfig | 63403 | diff -uprN orig/linux-2.6.36/drivers/scst/qla2xxx-target/Kconfig linux-2.6.36/drivers/scst/qla2xxx-target/Kconfig |
64129 | --- orig/linux-2.6.35/drivers/scst/qla2xxx-target/Kconfig | 63404 | --- orig/linux-2.6.36/drivers/scst/qla2xxx-target/Kconfig |
64130 | +++ linux-2.6.35/drivers/scst/qla2xxx-target/Kconfig | 63405 | +++ linux-2.6.36/drivers/scst/qla2xxx-target/Kconfig |
64131 | @@ -0,0 +1,30 @@ | 63406 | @@ -0,0 +1,30 @@ |
64132 | +config SCST_QLA_TGT_ADDON | 63407 | +config SCST_QLA_TGT_ADDON |
64133 | + tristate "QLogic 2XXX Target Mode Add-On" | 63408 | + tristate "QLogic 2XXX Target Mode Add-On" |
@@ -64159,9 +63434,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/qla2xxx-target/Kconfig linux-2.6.35/dr | |||
64159 | + performance loss. | 63434 | + performance loss. |
64160 | + | 63435 | + |
64161 | + If unsure, say "N". | 63436 | + If unsure, say "N". |
64162 | diff -uprN orig/linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.c linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.c | 63437 | diff -uprN orig/linux-2.6.36/drivers/scst/qla2xxx-target/qla2x00t.c linux-2.6.36/drivers/scst/qla2xxx-target/qla2x00t.c |
64163 | --- orig/linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.c | 63438 | --- orig/linux-2.6.36/drivers/scst/qla2xxx-target/qla2x00t.c |
64164 | +++ linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.c | 63439 | +++ linux-2.6.36/drivers/scst/qla2xxx-target/qla2x00t.c |
64165 | @@ -0,0 +1,5486 @@ | 63440 | @@ -0,0 +1,5486 @@ |
64166 | +/* | 63441 | +/* |
64167 | + * qla2x00t.c | 63442 | + * qla2x00t.c |
@@ -69649,9 +68924,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.c linux-2.6.35 | |||
69649 | +MODULE_DESCRIPTION("Target mode addon for qla2[2,3,4,5+]xx"); | 68924 | +MODULE_DESCRIPTION("Target mode addon for qla2[2,3,4,5+]xx"); |
69650 | +MODULE_LICENSE("GPL"); | 68925 | +MODULE_LICENSE("GPL"); |
69651 | +MODULE_VERSION(Q2T_VERSION_STRING); | 68926 | +MODULE_VERSION(Q2T_VERSION_STRING); |
69652 | diff -uprN orig/linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.h linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.h | 68927 | diff -uprN orig/linux-2.6.36/drivers/scst/qla2xxx-target/qla2x00t.h linux-2.6.36/drivers/scst/qla2xxx-target/qla2x00t.h |
69653 | --- orig/linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.h | 68928 | --- orig/linux-2.6.36/drivers/scst/qla2xxx-target/qla2x00t.h |
69654 | +++ linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.h | 68929 | +++ linux-2.6.36/drivers/scst/qla2xxx-target/qla2x00t.h |
69655 | @@ -0,0 +1,273 @@ | 68930 | @@ -0,0 +1,273 @@ |
69656 | +/* | 68931 | +/* |
69657 | + * qla2x00t.h | 68932 | + * qla2x00t.h |
@@ -69686,7 +68961,7 @@ diff -uprN orig/linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.h linux-2.6.35 | |||
69686 | +/* Version numbers, the same as for the kernel */ | 68961 | +/* Version numbers, the same as for the kernel */ |
69687 | +#define Q2T_VERSION(a, b, c, d) (((a) << 030) + ((b) << 020) + (c) << 010 + (d)) | 68962 | +#define Q2T_VERSION(a, b, c, d) (((a) << 030) + ((b) << 020) + (c) << 010 + (d)) |
69688 | +#define Q2T_VERSION_CODE Q2T_VERSION(1, 0, 2, 0) | 68963 | +#define Q2T_VERSION_CODE Q2T_VERSION(1, 0, 2, 0) |
69689 | +#define Q2T_VERSION_STRING "2.0.0-rc3" | 68964 | +#define Q2T_VERSION_STRING "2.0.0" |
69690 | +#define Q2T_PROC_VERSION_NAME "version" | 68965 | +#define Q2T_PROC_VERSION_NAME "version" |
69691 | + | 68966 | + |
69692 | +#define Q2T_MAX_CDB_LEN 16 | 68967 | +#define Q2T_MAX_CDB_LEN 16 |
@@ -69926,9 +69201,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/qla2xxx-target/qla2x00t.h linux-2.6.35 | |||
69926 | +#define Q2T_XMIT_ALL (Q2T_XMIT_STATUS|Q2T_XMIT_DATA) | 69201 | +#define Q2T_XMIT_ALL (Q2T_XMIT_STATUS|Q2T_XMIT_DATA) |
69927 | + | 69202 | + |
69928 | +#endif /* __QLA2X00T_H */ | 69203 | +#endif /* __QLA2X00T_H */ |
69929 | diff -uprN orig/linux-2.6.35/Documentation/scst/README.qla2x00t linux-2.6.35/Documentation/scst/README.qla2x00t | 69204 | diff -uprN orig/linux-2.6.36/Documentation/scst/README.qla2x00t linux-2.6.36/Documentation/scst/README.qla2x00t |
69930 | --- orig/linux-2.6.35/Documentation/scst/README.qla2x00t | 69205 | --- orig/linux-2.6.36/Documentation/scst/README.qla2x00t |
69931 | +++ linux-2.6.35/Documentation/scst/README.qla2x00t | 69206 | +++ linux-2.6.36/Documentation/scst/README.qla2x00t |
69932 | @@ -0,0 +1,526 @@ | 69207 | @@ -0,0 +1,526 @@ |
69933 | +Target driver for Qlogic 22xx/23xx/24xx/25xx Fibre Channel cards | 69208 | +Target driver for Qlogic 22xx/23xx/24xx/25xx Fibre Channel cards |
69934 | +================================================================ | 69209 | +================================================================ |
@@ -70456,9 +69731,9 @@ diff -uprN orig/linux-2.6.35/Documentation/scst/README.qla2x00t linux-2.6.35/Doc | |||
70456 | + * Ming Zhang <mingz@ele.uri.edu> for fixes. | 69731 | + * Ming Zhang <mingz@ele.uri.edu> for fixes. |
70457 | + | 69732 | + |
70458 | +Vladislav Bolkhovitin <vst@vlnb.net>, http://scst.sourceforge.net | 69733 | +Vladislav Bolkhovitin <vst@vlnb.net>, http://scst.sourceforge.net |
70459 | diff -uprN orig/linux-2.6.35/drivers/scst/srpt/Kconfig linux-2.6.35/drivers/scst/srpt/Kconfig | 69734 | diff -uprN orig/linux-2.6.36/drivers/scst/srpt/Kconfig linux-2.6.36/drivers/scst/srpt/Kconfig |
70460 | --- orig/linux-2.6.35/drivers/scst/srpt/Kconfig | 69735 | --- orig/linux-2.6.36/drivers/scst/srpt/Kconfig |
70461 | +++ linux-2.6.35/drivers/scst/srpt/Kconfig | 69736 | +++ linux-2.6.36/drivers/scst/srpt/Kconfig |
70462 | @@ -0,0 +1,12 @@ | 69737 | @@ -0,0 +1,12 @@ |
70463 | +config SCST_SRPT | 69738 | +config SCST_SRPT |
70464 | + tristate "InfiniBand SCSI RDMA Protocol target support" | 69739 | + tristate "InfiniBand SCSI RDMA Protocol target support" |
@@ -70472,14 +69747,14 @@ diff -uprN orig/linux-2.6.35/drivers/scst/srpt/Kconfig linux-2.6.35/drivers/scst | |||
70472 | + supported by InfiniBand and by iWarp network hardware. More | 69747 | + supported by InfiniBand and by iWarp network hardware. More |
70473 | + information about the SRP protocol can be found on the website | 69748 | + information about the SRP protocol can be found on the website |
70474 | + of the INCITS T10 technical committee (http://www.t10.org/). | 69749 | + of the INCITS T10 technical committee (http://www.t10.org/). |
70475 | diff -uprN orig/linux-2.6.35/drivers/scst/srpt/Makefile linux-2.6.35/drivers/scst/srpt/Makefile | 69750 | diff -uprN orig/linux-2.6.36/drivers/scst/srpt/Makefile linux-2.6.36/drivers/scst/srpt/Makefile |
70476 | --- orig/linux-2.6.35/drivers/scst/srpt/Makefile | 69751 | --- orig/linux-2.6.36/drivers/scst/srpt/Makefile |
70477 | +++ linux-2.6.35/drivers/scst/srpt/Makefile | 69752 | +++ linux-2.6.36/drivers/scst/srpt/Makefile |
70478 | @@ -0,0 +1,1 @@ | 69753 | @@ -0,0 +1,1 @@ |
70479 | +obj-$(CONFIG_SCST_SRPT) += ib_srpt.o | 69754 | +obj-$(CONFIG_SCST_SRPT) += ib_srpt.o |
70480 | diff -uprN orig/linux-2.6.35/drivers/scst/srpt/ib_dm_mad.h linux-2.6.35/drivers/scst/srpt/ib_dm_mad.h | 69755 | diff -uprN orig/linux-2.6.36/drivers/scst/srpt/ib_dm_mad.h linux-2.6.36/drivers/scst/srpt/ib_dm_mad.h |
70481 | --- orig/linux-2.6.35/drivers/scst/srpt/ib_dm_mad.h | 69756 | --- orig/linux-2.6.36/drivers/scst/srpt/ib_dm_mad.h |
70482 | +++ linux-2.6.35/drivers/scst/srpt/ib_dm_mad.h | 69757 | +++ linux-2.6.36/drivers/scst/srpt/ib_dm_mad.h |
70483 | @@ -0,0 +1,139 @@ | 69758 | @@ -0,0 +1,139 @@ |
70484 | +/* | 69759 | +/* |
70485 | + * Copyright (c) 2006 - 2009 Mellanox Technology Inc. All rights reserved. | 69760 | + * Copyright (c) 2006 - 2009 Mellanox Technology Inc. All rights reserved. |
@@ -70620,9 +69895,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/srpt/ib_dm_mad.h linux-2.6.35/drivers/ | |||
70620 | +}; | 69895 | +}; |
70621 | + | 69896 | + |
70622 | +#endif | 69897 | +#endif |
70623 | diff -uprN orig/linux-2.6.35/drivers/scst/srpt/ib_srpt.c linux-2.6.35/drivers/scst/srpt/ib_srpt.c | 69898 | diff -uprN orig/linux-2.6.36/drivers/scst/srpt/ib_srpt.c linux-2.6.36/drivers/scst/srpt/ib_srpt.c |
70624 | --- orig/linux-2.6.35/drivers/scst/srpt/ib_srpt.c | 69899 | --- orig/linux-2.6.36/drivers/scst/srpt/ib_srpt.c |
70625 | +++ linux-2.6.35/drivers/scst/srpt/ib_srpt.c | 69900 | +++ linux-2.6.36/drivers/scst/srpt/ib_srpt.c |
70626 | @@ -0,0 +1,3698 @@ | 69901 | @@ -0,0 +1,3698 @@ |
70627 | +/* | 69902 | +/* |
70628 | + * Copyright (c) 2006 - 2009 Mellanox Technology Inc. All rights reserved. | 69903 | + * Copyright (c) 2006 - 2009 Mellanox Technology Inc. All rights reserved. |
@@ -74322,9 +73597,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/srpt/ib_srpt.c linux-2.6.35/drivers/sc | |||
74322 | + * indent-tabs-mode: t | 73597 | + * indent-tabs-mode: t |
74323 | + * End: | 73598 | + * End: |
74324 | + */ | 73599 | + */ |
74325 | diff -uprN orig/linux-2.6.35/drivers/scst/srpt/ib_srpt.h linux-2.6.35/drivers/scst/srpt/ib_srpt.h | 73600 | diff -uprN orig/linux-2.6.36/drivers/scst/srpt/ib_srpt.h linux-2.6.36/drivers/scst/srpt/ib_srpt.h |
74326 | --- orig/linux-2.6.35/drivers/scst/srpt/ib_srpt.h | 73601 | --- orig/linux-2.6.36/drivers/scst/srpt/ib_srpt.h |
74327 | +++ linux-2.6.35/drivers/scst/srpt/ib_srpt.h | 73602 | +++ linux-2.6.36/drivers/scst/srpt/ib_srpt.h |
74328 | @@ -0,0 +1,353 @@ | 73603 | @@ -0,0 +1,353 @@ |
74329 | +/* | 73604 | +/* |
74330 | + * Copyright (c) 2006 - 2009 Mellanox Technology Inc. All rights reserved. | 73605 | + * Copyright (c) 2006 - 2009 Mellanox Technology Inc. All rights reserved. |
@@ -74679,9 +73954,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/srpt/ib_srpt.h linux-2.6.35/drivers/sc | |||
74679 | + * indent-tabs-mode: t | 73954 | + * indent-tabs-mode: t |
74680 | + * End: | 73955 | + * End: |
74681 | + */ | 73956 | + */ |
74682 | diff -uprN orig/linux-2.6.35/Documentation/scst/README.srpt linux-2.6.35/Documentation/scst/README.srpt | 73957 | diff -uprN orig/linux-2.6.36/Documentation/scst/README.srpt linux-2.6.36/Documentation/scst/README.srpt |
74683 | --- orig/linux-2.6.35/Documentation/scst/README.srpt | 73958 | --- orig/linux-2.6.36/Documentation/scst/README.srpt |
74684 | +++ linux-2.6.35/Documentation/scst/README.srpt | 73959 | +++ linux-2.6.36/Documentation/scst/README.srpt |
74685 | @@ -0,0 +1,109 @@ | 73960 | @@ -0,0 +1,109 @@ |
74686 | +SCSI RDMA Protocol (SRP) Target driver for Linux | 73961 | +SCSI RDMA Protocol (SRP) Target driver for Linux |
74687 | +================================================= | 73962 | +================================================= |
@@ -74792,9 +74067,9 @@ diff -uprN orig/linux-2.6.35/Documentation/scst/README.srpt linux-2.6.35/Documen | |||
74792 | + | 74067 | + |
74793 | +Send questions about this driver to scst-devel@lists.sourceforge.net, CC: | 74068 | +Send questions about this driver to scst-devel@lists.sourceforge.net, CC: |
74794 | +Vu Pham <vuhuong@mellanox.com> and Bart Van Assche <bart.vanassche@gmail.com>. | 74069 | +Vu Pham <vuhuong@mellanox.com> and Bart Van Assche <bart.vanassche@gmail.com>. |
74795 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_local/Kconfig linux-2.6.35/drivers/scst/scst_local/Kconfig | 74070 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_local/Kconfig linux-2.6.36/drivers/scst/scst_local/Kconfig |
74796 | --- orig/linux-2.6.35/drivers/scst/scst_local/Kconfig | 74071 | --- orig/linux-2.6.36/drivers/scst/scst_local/Kconfig |
74797 | +++ linux-2.6.35/drivers/scst/scst_local/Kconfig | 74072 | +++ linux-2.6.36/drivers/scst/scst_local/Kconfig |
74798 | @@ -0,0 +1,22 @@ | 74073 | @@ -0,0 +1,22 @@ |
74799 | +config SCST_LOCAL | 74074 | +config SCST_LOCAL |
74800 | + tristate "SCST Local driver" | 74075 | + tristate "SCST Local driver" |
@@ -74818,15 +74093,15 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_local/Kconfig linux-2.6.35/driver | |||
74818 | + unsafe. | 74093 | + unsafe. |
74819 | + | 74094 | + |
74820 | + If unsure, say "N". | 74095 | + If unsure, say "N". |
74821 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_local/Makefile linux-2.6.35/drivers/scst/scst_local/Makefile | 74096 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_local/Makefile linux-2.6.36/drivers/scst/scst_local/Makefile |
74822 | --- orig/linux-2.6.35/drivers/scst/scst_local/Makefile | 74097 | --- orig/linux-2.6.36/drivers/scst/scst_local/Makefile |
74823 | +++ linux-2.6.35/drivers/scst/scst_local/Makefile | 74098 | +++ linux-2.6.36/drivers/scst/scst_local/Makefile |
74824 | @@ -0,0 +1,2 @@ | 74099 | @@ -0,0 +1,2 @@ |
74825 | +obj-$(CONFIG_SCST_LOCAL) += scst_local.o | 74100 | +obj-$(CONFIG_SCST_LOCAL) += scst_local.o |
74826 | + | 74101 | + |
74827 | diff -uprN orig/linux-2.6.35/drivers/scst/scst_local/scst_local.c linux-2.6.35/drivers/scst/scst_local/scst_local.c | 74102 | diff -uprN orig/linux-2.6.36/drivers/scst/scst_local/scst_local.c linux-2.6.36/drivers/scst/scst_local/scst_local.c |
74828 | --- orig/linux-2.6.35/drivers/scst/scst_local/scst_local.c | 74103 | --- orig/linux-2.6.36/drivers/scst/scst_local/scst_local.c |
74829 | +++ linux-2.6.35/drivers/scst/scst_local/scst_local.c | 74104 | +++ linux-2.6.36/drivers/scst/scst_local/scst_local.c |
74830 | @@ -0,0 +1,1563 @@ | 74105 | @@ -0,0 +1,1563 @@ |
74831 | +/* | 74106 | +/* |
74832 | + * Copyright (C) 2008 - 2010 Richard Sharpe | 74107 | + * Copyright (C) 2008 - 2010 Richard Sharpe |
@@ -76391,9 +75666,9 @@ diff -uprN orig/linux-2.6.35/drivers/scst/scst_local/scst_local.c linux-2.6.35/d | |||
76391 | +device_initcall(scst_local_init); | 75666 | +device_initcall(scst_local_init); |
76392 | +module_exit(scst_local_exit); | 75667 | +module_exit(scst_local_exit); |
76393 | + | 75668 | + |
76394 | diff -uprN orig/linux-2.6.35/Documentation/scst/README.scst_local linux-2.6.35/Documentation/scst/README.scst_local | 75669 | diff -uprN orig/linux-2.6.36/Documentation/scst/README.scst_local linux-2.6.36/Documentation/scst/README.scst_local |
76395 | --- orig/linux-2.6.35/Documentation/scst/README.scst_local | 75670 | --- orig/linux-2.6.36/Documentation/scst/README.scst_local |
76396 | +++ linux-2.6.35/Documentation/scst/README.scst_local | 75671 | +++ linux-2.6.36/Documentation/scst/README.scst_local |
76397 | @@ -0,0 +1,259 @@ | 75672 | @@ -0,0 +1,259 @@ |
76398 | +SCST Local ... | 75673 | +SCST Local ... |
76399 | +Richard Sharpe, 30-Nov-2008 | 75674 | +Richard Sharpe, 30-Nov-2008 |
diff --git a/testing/linux-scst/unionfs-2.5.7_for_2.6.35.8.patch b/testing/linux-scst/unionfs-2.5.7_for_2.6.36.diff index 52fd9d8aa1..fabe758098 100644 --- a/testing/linux-scst/unionfs-2.5.7_for_2.6.35.8.patch +++ b/testing/linux-scst/unionfs-2.5.7_for_2.6.36.diff | |||
@@ -532,10 +532,10 @@ index 0000000..1adde69 | |||
532 | + | 532 | + |
533 | +For more information, see <http://unionfs.filesystems.org/>. | 533 | +For more information, see <http://unionfs.filesystems.org/>. |
534 | diff --git a/MAINTAINERS b/MAINTAINERS | 534 | diff --git a/MAINTAINERS b/MAINTAINERS |
535 | index 02f75fc..8c5efe7 100644 | 535 | index f2a2b8e..11d7f45 100644 |
536 | --- a/MAINTAINERS | 536 | --- a/MAINTAINERS |
537 | +++ b/MAINTAINERS | 537 | +++ b/MAINTAINERS |
538 | @@ -5766,6 +5766,14 @@ F: Documentation/cdrom/ | 538 | @@ -5917,6 +5917,14 @@ F: Documentation/cdrom/ |
539 | F: drivers/cdrom/cdrom.c | 539 | F: drivers/cdrom/cdrom.c |
540 | F: include/linux/cdrom.h | 540 | F: include/linux/cdrom.h |
541 | 541 | ||
@@ -551,7 +551,7 @@ index 02f75fc..8c5efe7 100644 | |||
551 | M: Artem Bityutskiy <dedekind1@gmail.com> | 551 | M: Artem Bityutskiy <dedekind1@gmail.com> |
552 | W: http://www.linux-mtd.infradead.org/ | 552 | W: http://www.linux-mtd.infradead.org/ |
553 | diff --git a/fs/Kconfig b/fs/Kconfig | 553 | diff --git a/fs/Kconfig b/fs/Kconfig |
554 | index 5f85b59..7b4501b 100644 | 554 | index 3d18530..65b6aa1 100644 |
555 | --- a/fs/Kconfig | 555 | --- a/fs/Kconfig |
556 | +++ b/fs/Kconfig | 556 | +++ b/fs/Kconfig |
557 | @@ -169,6 +169,7 @@ if MISC_FILESYSTEMS | 557 | @@ -169,6 +169,7 @@ if MISC_FILESYSTEMS |
@@ -575,10 +575,10 @@ index e6ec1d3..787332e 100644 | |||
575 | obj-$(CONFIG_NFS_FS) += nfs/ | 575 | obj-$(CONFIG_NFS_FS) += nfs/ |
576 | obj-$(CONFIG_EXPORTFS) += exportfs/ | 576 | obj-$(CONFIG_EXPORTFS) += exportfs/ |
577 | diff --git a/fs/namei.c b/fs/namei.c | 577 | diff --git a/fs/namei.c b/fs/namei.c |
578 | index 868d0cb..b5e09e1 100644 | 578 | index 24896e8..db22420 100644 |
579 | --- a/fs/namei.c | 579 | --- a/fs/namei.c |
580 | +++ b/fs/namei.c | 580 | +++ b/fs/namei.c |
581 | @@ -386,6 +386,7 @@ void release_open_intent(struct nameidata *nd) | 581 | @@ -385,6 +385,7 @@ void release_open_intent(struct nameidata *nd) |
582 | else | 582 | else |
583 | fput(nd->intent.open.file); | 583 | fput(nd->intent.open.file); |
584 | } | 584 | } |
@@ -587,10 +587,10 @@ index 868d0cb..b5e09e1 100644 | |||
587 | static inline struct dentry * | 587 | static inline struct dentry * |
588 | do_revalidate(struct dentry *dentry, struct nameidata *nd) | 588 | do_revalidate(struct dentry *dentry, struct nameidata *nd) |
589 | diff --git a/fs/splice.c b/fs/splice.c | 589 | diff --git a/fs/splice.c b/fs/splice.c |
590 | index efdbfec..1ff6bca 100644 | 590 | index 8f1dfae..7a57fab 100644 |
591 | --- a/fs/splice.c | 591 | --- a/fs/splice.c |
592 | +++ b/fs/splice.c | 592 | +++ b/fs/splice.c |
593 | @@ -1104,8 +1104,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); | 593 | @@ -1092,8 +1092,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); |
594 | /* | 594 | /* |
595 | * Attempt to initiate a splice from pipe to file. | 595 | * Attempt to initiate a splice from pipe to file. |
596 | */ | 596 | */ |
@@ -601,7 +601,7 @@ index efdbfec..1ff6bca 100644 | |||
601 | { | 601 | { |
602 | ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, | 602 | ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, |
603 | loff_t *, size_t, unsigned int); | 603 | loff_t *, size_t, unsigned int); |
604 | @@ -1128,13 +1128,14 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, | 604 | @@ -1116,13 +1116,14 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, |
605 | 605 | ||
606 | return splice_write(pipe, out, ppos, len, flags); | 606 | return splice_write(pipe, out, ppos, len, flags); |
607 | } | 607 | } |
@@ -619,7 +619,7 @@ index efdbfec..1ff6bca 100644 | |||
619 | { | 619 | { |
620 | ssize_t (*splice_read)(struct file *, loff_t *, | 620 | ssize_t (*splice_read)(struct file *, loff_t *, |
621 | struct pipe_inode_info *, size_t, unsigned int); | 621 | struct pipe_inode_info *, size_t, unsigned int); |
622 | @@ -1154,6 +1155,7 @@ static long do_splice_to(struct file *in, loff_t *ppos, | 622 | @@ -1142,6 +1143,7 @@ static long do_splice_to(struct file *in, loff_t *ppos, |
623 | 623 | ||
624 | return splice_read(in, ppos, pipe, len, flags); | 624 | return splice_read(in, ppos, pipe, len, flags); |
625 | } | 625 | } |
@@ -627,7 +627,7 @@ index efdbfec..1ff6bca 100644 | |||
627 | 627 | ||
628 | /** | 628 | /** |
629 | * splice_direct_to_actor - splices data directly between two non-pipes | 629 | * splice_direct_to_actor - splices data directly between two non-pipes |
630 | @@ -1223,7 +1225,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd, | 630 | @@ -1211,7 +1213,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd, |
631 | size_t read_len; | 631 | size_t read_len; |
632 | loff_t pos = sd->pos, prev_pos = pos; | 632 | loff_t pos = sd->pos, prev_pos = pos; |
633 | 633 | ||
@@ -636,7 +636,7 @@ index efdbfec..1ff6bca 100644 | |||
636 | if (unlikely(ret <= 0)) | 636 | if (unlikely(ret <= 0)) |
637 | goto out_release; | 637 | goto out_release; |
638 | 638 | ||
639 | @@ -1282,8 +1284,8 @@ static int direct_splice_actor(struct pipe_inode_info *pipe, | 639 | @@ -1270,8 +1272,8 @@ static int direct_splice_actor(struct pipe_inode_info *pipe, |
640 | { | 640 | { |
641 | struct file *file = sd->u.file; | 641 | struct file *file = sd->u.file; |
642 | 642 | ||
@@ -647,7 +647,7 @@ index efdbfec..1ff6bca 100644 | |||
647 | } | 647 | } |
648 | 648 | ||
649 | /** | 649 | /** |
650 | @@ -1380,7 +1382,7 @@ static long do_splice(struct file *in, loff_t __user *off_in, | 650 | @@ -1368,7 +1370,7 @@ static long do_splice(struct file *in, loff_t __user *off_in, |
651 | } else | 651 | } else |
652 | off = &out->f_pos; | 652 | off = &out->f_pos; |
653 | 653 | ||
@@ -656,7 +656,7 @@ index efdbfec..1ff6bca 100644 | |||
656 | 656 | ||
657 | if (off_out && copy_to_user(off_out, off, sizeof(loff_t))) | 657 | if (off_out && copy_to_user(off_out, off, sizeof(loff_t))) |
658 | ret = -EFAULT; | 658 | ret = -EFAULT; |
659 | @@ -1400,7 +1402,7 @@ static long do_splice(struct file *in, loff_t __user *off_in, | 659 | @@ -1388,7 +1390,7 @@ static long do_splice(struct file *in, loff_t __user *off_in, |
660 | } else | 660 | } else |
661 | off = &in->f_pos; | 661 | off = &in->f_pos; |
662 | 662 | ||
@@ -723,11 +723,11 @@ index 0000000..f3c1ac4 | |||
723 | + If you say Y here, you can turn on debugging output from Unionfs. | 723 | + If you say Y here, you can turn on debugging output from Unionfs. |
724 | diff --git a/fs/unionfs/Makefile b/fs/unionfs/Makefile | 724 | diff --git a/fs/unionfs/Makefile b/fs/unionfs/Makefile |
725 | new file mode 100644 | 725 | new file mode 100644 |
726 | index 0000000..d34e085 | 726 | index 0000000..86c32ba |
727 | --- /dev/null | 727 | --- /dev/null |
728 | +++ b/fs/unionfs/Makefile | 728 | +++ b/fs/unionfs/Makefile |
729 | @@ -0,0 +1,17 @@ | 729 | @@ -0,0 +1,17 @@ |
730 | +UNIONFS_VERSION="2.5.7 (for 2.6.35.8)" | 730 | +UNIONFS_VERSION="2.5.7 (for 2.6.36)" |
731 | + | 731 | + |
732 | +EXTRA_CFLAGS += -DUNIONFS_VERSION=\"$(UNIONFS_VERSION)\" | 732 | +EXTRA_CFLAGS += -DUNIONFS_VERSION=\"$(UNIONFS_VERSION)\" |
733 | + | 733 | + |
@@ -746,7 +746,7 @@ index 0000000..d34e085 | |||
746 | +endif | 746 | +endif |
747 | diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c | 747 | diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c |
748 | new file mode 100644 | 748 | new file mode 100644 |
749 | index 0000000..740c4ad | 749 | index 0000000..51ea65e |
750 | --- /dev/null | 750 | --- /dev/null |
751 | +++ b/fs/unionfs/commonfops.c | 751 | +++ b/fs/unionfs/commonfops.c |
752 | @@ -0,0 +1,896 @@ | 752 | @@ -0,0 +1,896 @@ |
@@ -1491,12 +1491,12 @@ index 0000000..740c4ad | |||
1491 | + goto out; | 1491 | + goto out; |
1492 | + if (lower_file->f_op->unlocked_ioctl) { | 1492 | + if (lower_file->f_op->unlocked_ioctl) { |
1493 | + err = lower_file->f_op->unlocked_ioctl(lower_file, cmd, arg); | 1493 | + err = lower_file->f_op->unlocked_ioctl(lower_file, cmd, arg); |
1494 | +#ifdef CONFIG_COMPAT | ||
1494 | + } else if (lower_file->f_op->ioctl) { | 1495 | + } else if (lower_file->f_op->ioctl) { |
1495 | + lock_kernel(); | 1496 | + err = lower_file->f_op->compat_ioctl( |
1496 | + err = lower_file->f_op->ioctl( | ||
1497 | + lower_file->f_path.dentry->d_inode, | 1497 | + lower_file->f_path.dentry->d_inode, |
1498 | + lower_file, cmd, arg); | 1498 | + lower_file, cmd, arg); |
1499 | + unlock_kernel(); | 1499 | +#endif |
1500 | + } | 1500 | + } |
1501 | + | 1501 | + |
1502 | +out: | 1502 | +out: |
@@ -4376,10 +4376,10 @@ index 0000000..5b77eac | |||
4376 | +#endif /* not _FANOUT_H */ | 4376 | +#endif /* not _FANOUT_H */ |
4377 | diff --git a/fs/unionfs/file.c b/fs/unionfs/file.c | 4377 | diff --git a/fs/unionfs/file.c b/fs/unionfs/file.c |
4378 | new file mode 100644 | 4378 | new file mode 100644 |
4379 | index 0000000..5a8f4e0 | 4379 | index 0000000..1c694c3 |
4380 | --- /dev/null | 4380 | --- /dev/null |
4381 | +++ b/fs/unionfs/file.c | 4381 | +++ b/fs/unionfs/file.c |
4382 | @@ -0,0 +1,379 @@ | 4382 | @@ -0,0 +1,382 @@ |
4383 | +/* | 4383 | +/* |
4384 | + * Copyright (c) 2003-2010 Erez Zadok | 4384 | + * Copyright (c) 2003-2010 Erez Zadok |
4385 | + * Copyright (c) 2003-2006 Charles P. Wright | 4385 | + * Copyright (c) 2003-2006 Charles P. Wright |
@@ -4750,6 +4750,9 @@ index 0000000..5a8f4e0 | |||
4750 | + .write = unionfs_write, | 4750 | + .write = unionfs_write, |
4751 | + .readdir = unionfs_file_readdir, | 4751 | + .readdir = unionfs_file_readdir, |
4752 | + .unlocked_ioctl = unionfs_ioctl, | 4752 | + .unlocked_ioctl = unionfs_ioctl, |
4753 | +#ifdef CONFIG_COMPAT | ||
4754 | + .compat_ioctl = unionfs_ioctl, | ||
4755 | +#endif | ||
4753 | + .mmap = unionfs_mmap, | 4756 | + .mmap = unionfs_mmap, |
4754 | + .open = unionfs_open, | 4757 | + .open = unionfs_open, |
4755 | + .flush = unionfs_flush, | 4758 | + .flush = unionfs_flush, |
@@ -8381,10 +8384,10 @@ index 0000000..570a344 | |||
8381 | +} | 8384 | +} |
8382 | diff --git a/fs/unionfs/super.c b/fs/unionfs/super.c | 8385 | diff --git a/fs/unionfs/super.c b/fs/unionfs/super.c |
8383 | new file mode 100644 | 8386 | new file mode 100644 |
8384 | index 0000000..a8f5571 | 8387 | index 0000000..45bb9bf |
8385 | --- /dev/null | 8388 | --- /dev/null |
8386 | +++ b/fs/unionfs/super.c | 8389 | +++ b/fs/unionfs/super.c |
8387 | @@ -0,0 +1,1048 @@ | 8390 | @@ -0,0 +1,1029 @@ |
8388 | +/* | 8391 | +/* |
8389 | + * Copyright (c) 2003-2010 Erez Zadok | 8392 | + * Copyright (c) 2003-2010 Erez Zadok |
8390 | + * Copyright (c) 2003-2006 Charles P. Wright | 8393 | + * Copyright (c) 2003-2006 Charles P. Wright |
@@ -8461,31 +8464,6 @@ index 0000000..a8f5571 | |||
8461 | +} | 8464 | +} |
8462 | + | 8465 | + |
8463 | +/* | 8466 | +/* |
8464 | + * we now define delete_inode, because there are two VFS paths that may | ||
8465 | + * destroy an inode: one of them calls clear inode before doing everything | ||
8466 | + * else that's needed, and the other is fine. This way we truncate the inode | ||
8467 | + * size (and its pages) and then clear our own inode, which will do an iput | ||
8468 | + * on our and the lower inode. | ||
8469 | + * | ||
8470 | + * No need to lock sb info's rwsem. | ||
8471 | + */ | ||
8472 | +static void unionfs_delete_inode(struct inode *inode) | ||
8473 | +{ | ||
8474 | +#if BITS_PER_LONG == 32 && defined(CONFIG_SMP) | ||
8475 | + spin_lock(&inode->i_lock); | ||
8476 | +#endif | ||
8477 | + i_size_write(inode, 0); /* every f/s seems to do that */ | ||
8478 | +#if BITS_PER_LONG == 32 && defined(CONFIG_SMP) | ||
8479 | + spin_unlock(&inode->i_lock); | ||
8480 | +#endif | ||
8481 | + | ||
8482 | + if (inode->i_data.nrpages) | ||
8483 | + truncate_inode_pages(&inode->i_data, 0); | ||
8484 | + | ||
8485 | + clear_inode(inode); | ||
8486 | +} | ||
8487 | + | ||
8488 | +/* | ||
8489 | + * final actions when unmounting a file system | 8467 | + * final actions when unmounting a file system |
8490 | + * | 8468 | + * |
8491 | + * No need to lock rwsem. | 8469 | + * No need to lock rwsem. |
@@ -8538,6 +8516,7 @@ index 0000000..a8f5571 | |||
8538 | + struct super_block *sb; | 8516 | + struct super_block *sb; |
8539 | + struct dentry *lower_dentry; | 8517 | + struct dentry *lower_dentry; |
8540 | + struct dentry *parent; | 8518 | + struct dentry *parent; |
8519 | + struct path lower_path; | ||
8541 | + bool valid; | 8520 | + bool valid; |
8542 | + | 8521 | + |
8543 | + sb = dentry->d_sb; | 8522 | + sb = dentry->d_sb; |
@@ -8554,7 +8533,10 @@ index 0000000..a8f5571 | |||
8554 | + unionfs_check_dentry(dentry); | 8533 | + unionfs_check_dentry(dentry); |
8555 | + | 8534 | + |
8556 | + lower_dentry = unionfs_lower_dentry(sb->s_root); | 8535 | + lower_dentry = unionfs_lower_dentry(sb->s_root); |
8557 | + err = vfs_statfs(lower_dentry, buf); | 8536 | + lower_path.dentry = lower_dentry; |
8537 | + lower_path.mnt = unionfs_mntget(sb->s_root, 0); | ||
8538 | + err = vfs_statfs(&lower_path, buf); | ||
8539 | + mntput(lower_path.mnt); | ||
8558 | + | 8540 | + |
8559 | + /* set return buf to our f/s to avoid confusing user-level utils */ | 8541 | + /* set return buf to our f/s to avoid confusing user-level utils */ |
8560 | + buf->f_type = UNIONFS_SUPER_MAGIC; | 8542 | + buf->f_type = UNIONFS_SUPER_MAGIC; |
@@ -9235,13 +9217,16 @@ index 0000000..a8f5571 | |||
9235 | + * | 9217 | + * |
9236 | + * No need to lock sb info's rwsem. | 9218 | + * No need to lock sb info's rwsem. |
9237 | + */ | 9219 | + */ |
9238 | +static void unionfs_clear_inode(struct inode *inode) | 9220 | +static void unionfs_evict_inode(struct inode *inode) |
9239 | +{ | 9221 | +{ |
9240 | + int bindex, bstart, bend; | 9222 | + int bindex, bstart, bend; |
9241 | + struct inode *lower_inode; | 9223 | + struct inode *lower_inode; |
9242 | + struct list_head *pos, *n; | 9224 | + struct list_head *pos, *n; |
9243 | + struct unionfs_dir_state *rdstate; | 9225 | + struct unionfs_dir_state *rdstate; |
9244 | + | 9226 | + |
9227 | + truncate_inode_pages(&inode->i_data, 0); | ||
9228 | + end_writeback(inode); | ||
9229 | + | ||
9245 | + list_for_each_safe(pos, n, &UNIONFS_I(inode)->readdircache) { | 9230 | + list_for_each_safe(pos, n, &UNIONFS_I(inode)->readdircache) { |
9246 | + rdstate = list_entry(pos, struct unionfs_dir_state, cache); | 9231 | + rdstate = list_entry(pos, struct unionfs_dir_state, cache); |
9247 | + list_del(&rdstate->cache); | 9232 | + list_del(&rdstate->cache); |
@@ -9422,11 +9407,10 @@ index 0000000..a8f5571 | |||
9422 | +} | 9407 | +} |
9423 | + | 9408 | + |
9424 | +struct super_operations unionfs_sops = { | 9409 | +struct super_operations unionfs_sops = { |
9425 | + .delete_inode = unionfs_delete_inode, | ||
9426 | + .put_super = unionfs_put_super, | 9410 | + .put_super = unionfs_put_super, |
9427 | + .statfs = unionfs_statfs, | 9411 | + .statfs = unionfs_statfs, |
9428 | + .remount_fs = unionfs_remount_fs, | 9412 | + .remount_fs = unionfs_remount_fs, |
9429 | + .clear_inode = unionfs_clear_inode, | 9413 | + .evict_inode = unionfs_evict_inode, |
9430 | + .umount_begin = unionfs_umount_begin, | 9414 | + .umount_begin = unionfs_umount_begin, |
9431 | + .show_options = unionfs_show_options, | 9415 | + .show_options = unionfs_show_options, |
9432 | + .write_inode = unionfs_write_inode, | 9416 | + .write_inode = unionfs_write_inode, |
@@ -11256,10 +11240,10 @@ index 0000000..c84d97e | |||
11256 | +#endif /* _LINUX_UNIONFS_H */ | 11240 | +#endif /* _LINUX_UNIONFS_H */ |
11257 | + | 11241 | + |
11258 | diff --git a/security/security.c b/security/security.c | 11242 | diff --git a/security/security.c b/security/security.c |
11259 | index 351942a..69505f7 100644 | 11243 | index c53949f..eb71394 100644 |
11260 | --- a/security/security.c | 11244 | --- a/security/security.c |
11261 | +++ b/security/security.c | 11245 | +++ b/security/security.c |
11262 | @@ -529,6 +529,7 @@ int security_inode_permission(struct inode *inode, int mask) | 11246 | @@ -528,6 +528,7 @@ int security_inode_permission(struct inode *inode, int mask) |
11263 | return 0; | 11247 | return 0; |
11264 | return security_ops->inode_permission(inode, mask); | 11248 | return security_ops->inode_permission(inode, mask); |
11265 | } | 11249 | } |